Does anyone know what information Unreal uses in the OcclusionSubmittedFence Wait channel found in the stat scenerendering channel? Or know of a way to find out?
If you run a Niagara particle system on a Ray Traced project you can find this as one of the cycle counters. I’ve found that if you setup a complex particle system, for instance a fire that has embers, flames, and dust particles around it, the longer they remain active, the more and more the information in this channel gets stacked and doesn’t clean itself.
A scene might start with the OcclusionSubmittedFence Wait channel taking up about 4-5ms InclusiveAvg, but when left open for 10 minutes, it takes up to 9-10ms, and the longer the scene stays active the more and more performance you lose.
Are these the particles its waiting to render? Are these particles that aren’t big enough to render so its occluded them? There’s no documentation anywhere on what information this is supposed to be handling, and it is destroying more and more performance the longer the project is open.
With all the debugging I’ve done I’ve determined it only happens when Niagara particles AND ray tracing are both active. I’ve also tested setting up level streaming and found that if I place all the systems in a level and then unstream that level, then activate it again, the OcclusionSubmittedFence Wait will be reset to whatever its initial load was.
I can revert back to cascade systems and don’t run into this problem, but I’d like to solve for using Niagara as I know this will be the go to particle system moving forward.