hello guys,as the picture shows,both the RenderThread and RHIThread were waiting,
what might the RenderThread be waiting for?
Probably waiting for your GPU to finish whatever it was doing?
That looks very much like waiting for visibility queries, which likely are waiting on z buffer rasterization and reading back the fragments-pass query results.
(Would be my guess, without actually reading the code.)
Now, that may mean that visibility queries is your bottleneck, but it may also just mean that some other rendering mechanism is your bottleneck, and the visibility queries are being backed up behind that.
OR it may mean that VSync is on and you’re actually just waiting on each frame being presented.
You’ll need to vary the standard things (vsync, window size, turn off texturing, …) to see where the bottleneck might lie.
Also, read the code for VetchVisibilityForOther and trace it through, to get more of an understanding for what’s going on, if the standard “change the window to very small” delta measurements don’t work.
thank you for your reply,I will try again today
Actually,i try to render from several diffrent cameras in every single tick like what multiple views do.
And if the first view size is too large(1920*1080),when the second view do visibility queries,it needs to wait for the gpu finishing the first view render.And if the second view size is too large, the RenderThread wiil wait too when fetch visibility for 3rd view.
So, the solution i think is to balance each view size.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.