at the moment I am trying to optimize my demo and I already optimized very much, but I am stuck with one problem I just don’t understand.
In the Profiler I saw that one of the biggest tasks is SlateDrawWindowsCommand .
How can I optimize this? My demo doesn’t even have any Interface elements or slate elements.
I recorded the profile in a Development Build but the performance is the same in the Shipping Build (just for information).
Can someone help me?
Slate is responsible for making the final present call to the GPU. The “Slate Render RT Time” is the time spent on the render thread sending draw commands for Slate UI, which is super tiny like id expect from your description. So this is unrelated to slate, we’re considering removing this from stats it’s clearly a confusion duplication of time logged elsewhere.
So why is it so high?
You must be overloading the GPU with the scene you’re attempting to render. It’s not done rendering and ready to present the new backbuffer you’re attempting to send it. This is exacerbated by doing things like V-Sync.
Hey Nick, I have the same problem as Picster, although it’s a lot worse for me:
47ms for the render thread, 24ms for “Slate RT present time”. That’s quite a lot. What is happening there? I have a UMG UI set up, but it shows nothing special.
The strange thing is, in the “Play in Editor” I get a render thread time of 0.25ms. That’s absolutely fine. But in standalone the draw time always equals the GPU time and also the frame time. Or is this just calculated differently in standalone compared to the editor?
I received some helpful information on this that I wanted to pass on to you.
Present time is the time it takes to swap buffers. Slate isn’t doing anything there except waiting for the rendering thread to swap buffers. If you’ve got a large amount of time there, it means your GPU can’t render the scene fast enough, or you’re waiting on vsync.
Simply, do not profile in the editor, you’re adding the overhead of running and rendering the editor on top of the game, there’s no way your profile numbers will be accurate, especially for anything involving slate.
At our game the Slate RT present time has a significant impact on the game. I deleted everything in our scene, just one simple, non textured mesh with some simple movement script and a HUD. The HUD containts of circa 12 seperated images wich are all below the size of 0,2MB. We also have a camera switcher, (push a button and the player is looking through another camera). If i switch between camera’s, the Slate RT present time decreases and than increases. My questions: How can this be? What can we do about this? It does not seem like the GPU can not render the scene fast enough.
Thanks in advance and kind regards,
PS: System specs: 16GB DDR3L (1600MHz) Kingston HyperX , Intel® Core™ i7-4700MQ (6M Cache, 3,4GHz) Samsung 850 EVO Solid State Disk, GForce gtx 860
Do you have vsync enabled? Are you in the editor?