Hi,
I hope you can help me again. I implemented PSO precaching for our custom mesh processor related to lighting (which removed all of the untracked PSOs, hooray!), but now we have legitimate PSO precache misses related to the same mesh processor. I’m having trouble tracking them down.
I implemented PSO precaching by:
- Overriding CollectPSOInitializers function for the mesh pass processor
- Using a REGISTER_MESHPASSPROCESSOR_AND_PSOCOLLECTOR macro to register it
I’m looking at multiple pieces of information to track down why PSO Precache Misses still happen, but I’m not sure how to parse all of it.
From the logs, I get a lot of similar entries:
PSO PRECACHING MISS:
Type: ShadersOnly
PSOPrecachingState: Missed
Material: roof
VertexFactoryType: FLocalVertexFactory
MDCStatsCategory: StaticMeshComponent
MeshPassName: SmartVoxelize
Shader Hashes:
VertexShader: EC467F81CA0695B253E15823E35C8C118D380A9E
PixelShader: 53BB51FD38CF6761EF48AA9E7207E18FA1DC26A7
Missed Info:
Precached with: FNaniteVertexFactory (PSOPrecacheParamData: 130048\)
which shows me the custom mesh pass SmartVoxelize failed for the roof material on a static mesh component, but I’m not quite sure why.
I also tried looking at the Unreal Insights Trace. Here is an example unrelated to the roof material, where PSO was missed on a PostProcessing pass:
[Image Removed]
I get quite a lot of DOFs and Blooms that trigger a PSOPrecache Miss. I’ve attached an Unreal Insights Trace in case it’s helpful.
I’m pretty sure this is all related to our custom mesh processor, but I’m not sure how to use this information to give PSO precaching what it needs during initialization. If you have any advice on how to track that down, that would be very appreciated.
Thank you!
[Attachment Removed]