Hello everyone,
Our project uses both bundled and PSO precaching.
Recently we audited our most frequent PSO Precaching misses and some questions emerged, so we would appreaciate some deeper clarification on the following points (for each you can find an example from the logs in the attached file):
- We get various “Too Late” misses during early gameplay even though we already wait until FShaderPipelineCache::NumPrecompilesRemaining() <= 0. According to this thread, this method should account for both the bundled and precached PSOs. If that’s true, what could be the reason these "Too Late"s after NumPrecompilesRemaining() <= 0?
- For certain SMs in the level we force their last LOD during gameplay which contains their own material which are not precached. Does PSO precaching not account for all LOD levels of the static meshes in the level?
- We get several Landscape Material Instances misses, but shouldn’t PSO precaching catch them as they are part of the level, or is the landscape not supported with precaching?
- When we trigger chaos destruction (GeometryCollection) we get misses for WorldGridMaterial, even though we are not using it and have no references to it. Is this behavior expected?
- In the loaded level we have translucent materials assigned to Static Meshes and they will always miss, even after enabling r.PSOPrecache.TranslucencyAllPass 1. Isn’t this cvar supposed to deal with those cases? It’s also interesting that in mobile devices, these same materials will have PassName = Unknown.
[Attachment Removed]