Download

UE4 vs UE3/UDK performance

So just as a sanity check, what are other peoples performance results when working with UE4 on mobile platforms? We took a level and a bunch of assets we made in UE3 for mobile which runs around 40FPS on a ipod touch 5 and ported them over to UE4 and got around 10FPS. We are aiming for the iphone 5 to be our low end device but still on that we get about 30FPS UE4 and 60FPS UE3.

Turned off all post processing, only 3 static lights, 2 reflection capture actors, set mobile scale factor to 2, and no mobile HDR…which should get us close to what we had in UE3, and we are getting about half framerate.

Did you disable lightmap directionality in your materials? This will generate simpler shaders for your static geometry. You can force it to be disabled across the board by changing the “iOS ES2 quality” settings in the Project Settings.

I would also take caution with the reflection captures, the way UE4 does them is more complex than in UE3. Same goes for specular highlights. Remember that the iPod Touch 5 has roughly the same power as an iPhone 4S, so maybe you could disable those for that device (force non-metal and force fully rough in your “low” quality profile). Also make sure your lights are static, not stationary and that there is no non-static light on the scene. This also drives shading costs down.

Thanks for the input but forcing all those things on for low end devices and removing the reflection capture actors didn’t help with frame rate at all :(. I was pretty sure all of our materials were fully rough and lights static to begin with but wasn’t sure about the lightmap directionality.

One thing looking at “stats slow” is I see the “Slate draw windows command” taking up a lot of time. I though Slate was just for UI/editor stuff…may just be the stats display. Is there any way to disable Slate or is it something bigger than just a UI thing. The other big thing is ForwardShadingSceneRenderer.

ForwardShadingSceneRenderer is the actual rendering of the scene. Do you have any UI? UMG UI will list as “Slate” on the stats, since it uses Slate under the hood. Drawing the stats themselves also registers as “Slate” (you lose some performance with stats on).

BTW, is this a shipping or development build? The stat command is only available on development, AFAIK, and those are less optimized than shipping builds.

Also, here are other stat commands to help you figure out where the bottleneck might be:
stat SceneRendering (breaks down the rendering tasks)
stat Slate (if you have UI, helps differentiate between time spent ticking, preparing and actually rendering the UI)

No slate UI at all, or anything i added. Just a canvas based UI like we did for our old game hud. Looking around it looks like the “slate” is used to actually render the window so it shows up in stats even though it has nothing to with Slate itself. Although I did find this

https://answers.unrealengine.com/questions/231995/ios-perfomance-problem-48p3.html

I seem to be having the same issue but I’m using non-metal devices so it seems for me to have nothing to with metal…or not. When I forced it off, via those quality settings, it seemed to not do anything and the iphone5 is not a metal device. Anyways looking at all the stats we see the same thing. The game and draw unit stats all look ok but then the frame stat is doubled. It looks like the game is sitting in “slate rt present” which from poking around is it waiting for the frame buffer to be released so it can draw. Also tried novsynch but that did nothing.