Download

Slate Performance takes up to a quater of our Performance

Hey Guys,

I am working on improving the performance of our game. The main performance issue seems to be slate.
I use a packed version with r.vsync 0 and t.maxFrames 150 to make sure that no UI Elements from the editor interfere and the framerate is not capped by vsync or anything else.
When I have a look at the profiler slate takes something between half and a third of our whole frame time.
Profiler140720161146.png

What is kind of weird about this is that when I use the stat slate to look at the slate performance than the window is telling me that slate takes only 0.3ms which would be perfectly fine. In the profiler it is usually more than 10ms.
Slate140720161146.png

We do not have very complex widgets, only our tutorial screens. But they are only created once we need them. Only thing is that we have a special effect like shooter games so in certain situtations the corners of the screen turn red, which is handled by a widget. It is created from code but we have the performance issues before it is attached to the viewport.
Any ideas what is happening or how to improve this?

Cheers Pascal

Are you sure these stats are from your game?
It looks like stats from the Editor, in the first screenshot; UEditor also is built upon Slate widgets.

The in-viewport debugger seems correct.

Nope. I packaged the game and closed all other kind of Unreal instance to avoid editor UI or anything to influence the performance. All stats are from the packaged version.

I might got a little closer to the problem.
If I select Slate Total Widgets I get a relatice concerning number of 4,294,967,295 Widgets.
Seems like quite a lot to me or is this number normal?
be7cc4de1431a53cac9e88d38962233b675525f2.png

Getting even weider. When I use a completely new project ( the Blueprint Flying Example) which has no widgets one frame takes 5.386 ms. So far so good but slate uses 3.998 ms, most of the frame time in a project which does not even has a UI???
Project is also packed and not recorded in the editor. Any ideas

“4,294,967,295” is actually -1, converted to unsigned 32-bit value.
It seems there’s some bug in this profiler. I would not trust its data.