How UE5 detects whether the PSO contents should be pre-compiled again

Hi,

thanks for getting back. Using -nostablepipelinecache will disable the bundled PSO cache, and in that case only the GPU driver cache will be used. This will cause hitches during the first run of a game, as the GPU driver cache will need to compile every new shader it encounters on the fly. On subsequent runs, shader compilation will only occur if the driver has not seen the shader yet (so there may still be hitches/stutters), otherwise it will just return the cached shader. This is just to say that passing -nostablepipelinecache in the command line will bypass the PSO cache completely and should only be used for testing/debugging purposes. The GPU driver cache can be cleared with the -clearPSOdrivercache command, which may be useful to see if the PSO bundle has missed some shaders as explained in this article.

Apart from the PSO cache, there is also a user cache file which caches all the shaders not captured by the PSO cache (more info at this link).

Hopefully this helps. Please let me know if you have more questions.

Best,

Sam