Steps to Reproduce
We noticed a long wait on occlusion queries in the render thread, specifically around WaitForGatherDynamicMeshElements. This spawned an OcclusionCullPipe job that blocks the render thread and waits until the GPU has finished occlusion tests.
To get around this, we increased the r.NumBufferedOcclusionQueries. As soon as we did this, RHI and GPU times went up. What I found was there is still a sync point in the RHI thread that is causing a stall across all threads.
The behavior I was expecting was no wait. I expect the current frame to use the previous frames occlusion results, which should be ready and available. It seems there stil might be a wait or fence here that is preventing the game, rhi, and render threads from moving on until the GPU finishes.
Vsync is off.