Render Query Result and slate ui dropping fps

For some reason the render query result is very high and is dropping my FPS

I got a picture from the gpu visualizer too idk if it helps

Does someone know what is the render query result or slate ui(i know its like… the hud… but idk why it takes so many ms)

I have an intel 7, nvidia m960, 16 ram btw

There’s something in UE4 that makes RenderQueryResult take a lot of time in some situations. I’ve seen this happening a lot on less capable GPUs but recently I had a project that had the same issue on nVidia GTX 1060 in some specific cases.

I first identified the bottleneck in that project as InitView/…/OcclusionCulling/…/RenderQueryResult so I’ve disabled Occlusion Culling for the project to see if that changes anything and to my surprise that had no effect on performance. The hot path in the render thread moved from OcclusionCulling to Slate/…/RenderQueryResult but the call was taking the same amount of time. Which is quite odd if you ask me!

That sounds somewhat expected. “Occlusion Culling” works out we can avoid drawing, if another object is infront of it. This is a fairly expensive process, often counter-productive, but in a large scene with lots of “walls” (or perhaps mountains) preventing you from seeing most of the secne at any one time, it may help more.
Disabling it will spend less time working out what to draw, and more time drawing, as there is more to draw.

I’ve also seen this recently on an Nvidia 1060. On my other machine (i7-3770 + Ati Rx480) I get 61 fps in a scene, and the same scene on my newer machine (i7-8700k + Nvidia 1060) I am getting just 40 fps. 14.5 ms of that is being used in that same spot though. Have yet to find a solution.

My understanding now is that RenderQueryResult is just the last thing that happens when the frame is presented by the GPU (which makes sense for render queries). If you see a lot of time going there that means the GPU spends all that time rendering the frame.

But sometimes it’s not just your game/app alone as other software can interfere. The simplest example would be looking at the stats while having your screen shared over a Skype call. Your frame rates will drop and you will see RenderQueryResult readings go up. It’s just that the GPU gets hijacked by Skype before it can report the frame fully rendered. What you then see is RenderQueryResult including the time spent by Skype fetching and compressing the frame buffer for its video streaming.

When you say you get 21 fps lower on the new hardware that kind of rings the bell. You might have something running alongside that incurs that GPU overhead. Also keep in mind that it’s better to analyze performance stats in a Standalone mode or (even better) a built/packaged game to prevent the UE4 editor from adding its own overhead to the stats.