• Hey Guest. Check out your NeoGAF Wrapped 2025 results here!

NVIDIA adds Auto Shader Compilation beta to NVIDIA App

IbizaPocholo

NeoGAFs Kent Brockman

NVIDIA has introduced a beta version of Auto Shader Compilation in the NVIDIA App. The feature rebuilds DirectX 12 game shaders after a driver update while the system is idle, or on demand, with the goal of reducing runtime shader compilation after driver installs. NVIDIA says the feature requires GeForce Game Ready Driver 595.97 WHQL or newer.
The feature is off by default. Users can enable it in the NVIDIA App under Graphics, Global Settings, Shader Cache. NVIDIA also added a manual "Compile Now" option on the Shader Cache screen for users who want to trigger a rebuild immediately instead of waiting for an idle period. The new app features are available through the beta and experimental branch in Settings, About.
NVIDIA is also clear about what ASC does not do. After installing a game for the first time, shaders still need to be generated in-game. Auto Shader Compilation only updates those shaders after a driver update, so this is aimed at reducing repeat compilation rather than removing shader generation entirely.

nvidia-app-auto-shader-compilation.png
 
Pretty cool feature, depending on how well it actually works when they settle on a v1.

If Microsoft's Advanced Shader Delivery system can deliver as well, where games will just be packaged with pre-compiled shaders, and this Auto Shader Compilation feature re-compiles everything after your do a driver update...could finally kill shader compilation stutters. Only thing left will be game engines like UE5 still having traversal stutters with big environments.
 
Pretty cool feature, depending on how well it actually works when they settle on a v1.

If Microsoft's Advanced Shader Delivery system can deliver as well, where games will just be packaged with pre-compiled shaders, and this Auto Shader Compilation feature re-compiles everything after your do a driver update...could finally kill shader compilation stutters. Only thing left will be game engines like UE5 still having traversal stutters with big environments.
4BMmpQw9ZxUZuVYP.jpeg
 
This just recompiles the shaders that were already compiled, post a driver update. Won't address issues like long/incomplete shader compilation on FIRST game run. If a game misses some shaders in it's first run (and needs to be compiled on the fly during gameplay) the related stutters won't be improved from ASD.
 
This just recompiles the shaders that were already compiled, post a driver update. Won't address issues like long/incomplete shader compilation on FIRST game run. If a game misses some shaders in it's first run (and needs to be compiled on the fly during gameplay) the related stutters won't be improved from ASD.
Ya, that seems to be the case. I tried running it manually which completed in a few minutes. I then cleared the cache and ran it again and it just finished instantly without actually doing anything. It doesn't seem to look through your games and precompile the shaders for them like many people were hoping for.
 
This just recompiles the shaders that were already compiled, post a driver update. Won't address issues like long/incomplete shader compilation on FIRST game run. If a game misses some shaders in it's first run (and needs to be compiled on the fly during gameplay) the related stutters won't be improved from ASD.
Yea, this Nvidia feature is specifically for recompilation after driver and game updates which invalidate the shader cache.

Advanced Shader Delivery from Microsoft, which will hopefully be supported by all the major storefronts (Steam, EGS, Xbox, ect) will download precompiled shader binaries so that the first run is smooth. It should also provide updated binaries after game and driver updates, but this system will help avoid recompilations when launching games that don't support ASD. With ASD developers currently have to collect PSOs manually as they already do for pre-compiling within the game.. but in the future the idea is that game engines with ASD support integrated should collect all shader state automatically and provide a much higher hit-rate than manually collecting them. So ideally there will be less "missed PSOs" in the future.

We're not quite there yet, but we're getting there. An all encompassing solution is coming together. Each IHVs are doing their parts to reduce the amount of recompilation that has to happen between drivers by separating their driver stack and their shader compilers so that the compiler can be updated separately at a lesser frequency, which will help both this Auto Recompilation feature AND Microsoft's Advanced Shader Delivery cloud compiling. Microsoft is providing the standardized State Object (SODBs) and Precompiled Shader Database formats (PSDBs). Now we just need Steam and Epic and others to integrate this into their clients and suddenly we're going to be in a much better place than we were just a bit ago.
 
Last edited:
This just recompiles the shaders that were already compiled, post a driver update. Won't address issues like long/incomplete shader compilation on FIRST game run. If a game misses some shaders in it's first run (and needs to be compiled on the fly during gameplay) the related stutters won't be improved from ASD.
This is still huge. In fact, this is exactly what i needed.

I have a ton of games on my PC and i love replaying a lot of older stuff. Also a lot of modded games and a ton of emulators. Every time i update the driver, all this stuff has to be re-compiled from scratch. So i get stutters to everything, it feels like i messed up my PC. It's the reason i haven't updated my drivers since August last year.

Question is, it only works with DX12 stuff? Not DX11, OpenGL or Vulkan?
 
Last edited:
Question is, it only works with DX12 stuff?
Yes.

Not DX11, OpenGL or Vulkan?
DX11 doesn't really need shader compilation and there's no easy way of doing it outside of the engine.
Vulkan can be added in theory.
OpenGL is too broad of an API for a generic solution but those which use SPIR-V could be added at the same time as Vulkan.

This just recompiles the shaders that were already compiled, post a driver update. Won't address issues like long/incomplete shader compilation on FIRST game run. If a game misses some shaders in it's first run (and needs to be compiled on the fly during gameplay) the related stutters won't be improved from ASD.
This is not ASD, it's a local Nvidia driver/NvApp service which can re-compile in offline/background after a driver update DXBC/DXIL PSOs stored by the driver/NvApp from the engine output.
ASD remains a solely AMD thing for now, and it's highly restrictive in what games and h/w it supports.
In theory ASD can be plugged into this same service eventually but it will have to be supported on the game side first as it's the game which has to provide/output the PSDB for offline compilation.
And for games which are already out there ASD won't solve anything unless MS will figure out a generic solution of catching DXBC/DXIL and packing them into PSDBs.
 
Last edited:
This just recompiles the shaders that were already compiled, post a driver update. Won't address issues like long/incomplete shader compilation on FIRST game run. If a game misses some shaders in it's first run (and needs to be compiled on the fly during gameplay) the related stutters won't be improved from ASD.

Yes, but this is a step in the right direction. Before this I was thinking twice before updating driver (and then seeing shader compilation screens again).

This is still huge. In fact, this is exactly what i needed.

I have a ton of games on my PC and i love replaying a lot of older stuff. Also a lot of modded games and a ton of emulators. Every time i update the driver, all this stuff has to be re-compiled from scratch. So i get stutters to everything, it feels like i messed up my PC. It's the reason i haven't updated my drivers since August last year.

Question is, it only works with DX12 stuff? Not DX11, OpenGL or Vulkan?

Exactly.
 
Top Bottom