I wonder why the engine is rendering minimized blueprint graphs while I’m playing the game in PIE?
I often have opened 20-30 tabs with blueprints (all in a new tab) and if I minimize the tab, click play and play the game in PIE I have like 3 fps in the game. If I close the windows with all the tabs, so I have no blueprints graphs or UMG widgets opened, I get 20 fps in PIE. So there is an extreme amount of performance wasted on rendering invisible graphs and probably UMG editors too. Why? Is there any reason why this is needed? I obviously don’t want to close all my tabs just for hitting PIE, but I also don’t want to play with 3 fps only :rolleyes:
I dont have that issue, even from a laptop, which is 5yo one. But i have my tabs docked to main window, not minimized. Which is not an answer for your question, just another side.
This is not actually PIE, or blueprints for that matter - Unreal natively lowers the FPS and pulls all performance if you are ‘unfocused’ out of the game itself. (i.e: if you click a different tab, or change focus to anything outside of the PIE viewport)
We don’t. Slate does not render any Window that’s not visible or minimized. It’s probably code that doesn’t realize it’s not visible that’s responding to events that don’t derive from the Slate’s render path. Like timer callbacks or debugging events; something along those lines that don’t involve the slate render path.
If it’s just “timer callbacks or debugging events”, do they really need to waste so much performance? Why do they not when the tabs are all closed? The screenshot above was actually taken with only 5 opened tabs, all minimized, so they don’t render. 3 UMG widgets and 2 regular actor blueprints. After closing the 5 tabs and start PIE again and profile, it looks like this:
I certainly have lower FPS in-editor when I have Blueprints open on another screen or if I have loads of tabs open. Not surprised by that though. Especially if you have ~30 tabs open, which is insane…
Dunno. That’s the render thread. You could use “stat slate” console command to see what’s happening on the main thread. I’ve verified that minimized windows do no pass through to the render thread to be drawn, so there’s something unique in your setup that I’m unable to reproduce.
Platform? Version? What do the stats show when the window is not minimized?
The times you see on 3. are actually just the stat overhead since they only appear if I have “stat slate” enabled. Without the stats enabled it runs smooth in PIE if no tabs are opened anywhere or minimized. If I take a look at “profilegpu” while not having “stat slate” enabled, the slate time is something like 0.45 ms, same like on the screenshot I posted above. If I have “stat slate” enabled, the slate time in “profilegpu” is something like 40 ms.
Now what I think is strange is that the difference between 1 and 3 is really low, but 3 runs smooth with stat slate disabled while 1 shows a slate time about 90 ms in profilegpu (with “stat slate” disabled). Does this mean that what’s causing the performance loss is not detected from “stat slate”?
Just to be clear: This issue is annoying, but it’s just annoying. I can live with it. It’s just in the editor, everything is fine in standalone, so no real problem. It’s not anywhere near the importance of the cyclical dependency problems of UMG (which make my project not even package), they really make using UE4 a nightmare at the moment. So if there is no time for fixing minor issues like this I can totally understand it
Nick / UMG team has been doing a big focus on Slate performance over the last couple of releases. I personally am not seeing anything as intense as this… I’ll check anyway though just in case. What do those stats look like when your NOT actually playing your game with those tabs open / minimized? Is it possible that some of the in-game UMG / widgets are to blame for the performance hit?
Hmm those numbers don’t match the story. You should be seeing 1 SlatePrepass per window, on just the editor open you’ve got 4, which tells me you’ve got 3 other windows somewhere doing work still. Do you have several notification windows in the bottom right hand corner? Here’s what vanilla 4.9.2 looks like on my 2.2 Ghz box.
I have not used any editor plugins, but while doing the tests above I still had one content browser opened on a second monitor and one minimized output log. Minimizing the content browser did not gave any significant difference in the times.
But the difference between 0.45 ms slate time with no tabs opened and 80 ms slate time with 5 tabs minimized means that the tabs are the problem, right?
Your editor is still attempting to render minimized windows but nobody else seems to be having that problem. So there’s something different with your setup, but I’m clueless as to what that might be.
I use the regular 4.9.1 version from the launcher, there is nothing special about my setup. I can’t believe this is only happening for me?
Could a few more people try to have some blueprint graphs and UMG widgets in a new editor window and minimize this window while playing PIE and see what profilegpu says about the slate time? I can’t be the only one with such huge differences between minimized window with tabs and no window with tabs.
Tested with 5 editor windows open in a new editor window (two UMG widgets and three blueprints). Minimized them, and got 0.64ms SlateUI time. and even with about 30 editor windows open, but minimized, its still around the same time. (0.57ms). So nothing out of the ordinary