Slate draw windows command fast in editor slow in game with no ui

I’m seeing draw tread jumping from 3ms in editor and pie up to 33ms in standalone game.
PIE run at 54 fps gpu limited, while the game is running 25-27 fps draw thread bound.
The difference is all in the RenderThread/SlateDrawWindowsCommand/Slate Rt Present time/endDrawinViewport_flush\Present Time\RenderQueryResult.

profiled with stat startfile occuping 31,366 ms for a total of 89% of the whole rendering thread time.

All this even if no widget is rendered in game.

I expect to see in game better or at least the same performances I’ getting in PIE.

1 Like

Slate presents the whole backbuffer not just Slate so even with widgets you are still going to get that call.

When you have PIE running it it at the same resolution as your standalone game?

Can you give us some more info about what is in your scene and your GPU specs?

Also are you running the editor and the standalone game at the same time? If so please try that again without running both at the same time.

Scene is the same and very simple. 6 characters 10k tris each running on few static mesh (textured boxes), no static light just directional and skylight both dynamic.no dfao no lpv, standard post with motionblur and autoexposure disabled.Directional has cascade 2*2000 units no per character shadow no raytracing just fading out.both apps are run separately. Standalone get resolution set with r.setres to the editor res.
My GPU is n amd 5770 , CPU is an Intel q9300 .Do you mean that that time is engine waiting GPU?on some views draw come back to 3ms viewing almost everything while is 33 on whatever else view angle also slightly different also just black screen.
30 fps on black screen at 720 p is something my poor specs could manage I guess.

I tested today with no dual screen and I got 62 fps at 720 p my hardware\driver seem to have problems with fullscreenapp when dual screen is on(empty second screen) dual screen still produce 33 ms draw.I have to check with other games.
Draw is always switching from 3 to 12 average and up to 17 but in a single almost empty view, but fps are constant apart from that view and this time with lpv too.Sorry if it is my hardware fault it remains to find out if it have this issue just with UE or with a specific driver.

Please let us know what you find regarding multiple screen setups.

We get terrible performance in the non-focused windows when running multiple instances, and surprisingly it’s Slate and not the main render loop.

Hi Duke,

Can you post more information about what you’re seeing on your end?

I’ll need to know the following:

  • DxDiag
  • What are your repro steps and test to confirm this?
  • Which version of the engine are you using? 4.9, 4.10 or another version?

Thank you!

Tim

Tim, ill get back to you with further details when I get back to he office tomorrow. It occurred in both 4.9 and 4.10 on win10 64bit, 980 gtx ti. I suspect it has more to do with the way either directx or ue is allocating resources because the cpu isn’t getting maxed out, and I’m forcing cpu priority with a powershell script.

I’ll attempt to make a test project and get it to you Monday/Tuesday.

I received your email with the test project. I used your repro steps with the sample project. When switching between the two I’m not seeing any FPS drop. Each stays at a consistent 62 fps (the locked max FPS). I even used the console command and set t.MaxFPS to 120 and I see a consistent 100 FPS whether an instance is in-focus or not. I tried to capture a video with both screens, but wasn’t able to with the tool that I have (Snag-It).

Even using Stat Unit, I’m seeing consistent behavior across both instances of the exe being opened.

I’m open to test any other steps you may have.

I suppose the test project wasn’t quite as heavy as our full project. If you start up 10+ instances, you should definitely notice that the focused window appears to get priority.

I’m not sure that opening 10 instances of a packaged project is the best way to test this.