What does "Queue Present" mean in the RHI thread of Unreal insights?

I am extremely confused.

I am currently working on a mobile game in UE5.5 and hitting some pretty severe performance drops. To determine the issue I’m using unreal insights but when looking at the tasks, both the game thread and render thread are waiting or idle so therefore don’t appear to be the problem, the RHI thread may be in the same boat but I don’t know.

So my question is, what does “Queue present” on the RHI thread mean?

Hi Boomer64,

“Queue Present” is something that appears in Android traces that have the Vulkan graphics API enabled, and under the hood it’s caused by a call to vkQueuePresentKHR in the Vulkan rendering code.

Presenting means to insert the final fully-rendered frame into the swapchain to be displayed on screen. In Vulkan this present command is added to a queue on the GPU, but will only be executed when the render commands in that queue for the current frame have first been processed. When you see a lot of time spent in “Queue Present” in a trace it means you are GPU bound and waiting for the GPU to finish its work for that frame.

At this point using something like Renderdoc to better understand what’s happening on the GPU can be really useful, there’s a fork of Renderdoc from Meta that I’ve found has good compatibility with Android, more so than the regular version. There’s also the GPU visualizer that could help shed some light on what’s happening.

Looking into your material complexity, or potentially using FSR to reduce the screen size you’re rendering to could be helpful for reducing GPU time also.

Hope that helps

2 Likes