Hi there,
You may be interested in this case, I responded to a few days ago to see if it answers your questions: [Content removed]
The SyncPoint_Wait events usually show up when the CPU is running too far ahead of the GPU and has to wait for the GPU to catch up (GPU might be 1 frame behind). In these cases, the project will be GPU bound (GPU time higher than Game, Draw or RHIT).
If you’re getting syncpoint waits inconsistently, then it may just mean that your project is flipping between being CPU and GPU bound.
The SyncPoint_wait events, on occlusion queries, wait for the GPU to have all the occlusion data ready for the CPU before it starts processing occlusion on the CPU. This is why it waits on the first primitive. Increasing the r.NumBufferedOcclusionQueries often just moves these syncpoint waits a bit later, and to the RHI thread (D3D12 RHI thread can be a maximum of 1 frame ahead of the GPU). Increasing r.NumBufferedOcclusionQueries can also result in more incorrect occlusion results, and pop in, due to an increased number of out of date occlusion results.
Let me know if this matches with what you are seeing on your end.
Regards,
Thomas