Slate is a performance hog on iOS

I fell in love with Slate through UMG in 4.5. I have these nice looking UI, with animations and property binding. Custom user widgets allow my to make my UI very modular and after getting my head around the slot system my UI is fluid and adapts very well to different display sizes and proportions (ScaleBox and SizeBox are awesome!).

The problem is, I’m getting massive performance hits from Slate if I have anything more than a couple buttons on the screen. It’s not a problem on high-end devices like the iPhone5 and 5S, but on the original iPad Mini and iPod Touch 5 the impact is severe, specially in screens with content like lists and such.

I really don’t want to drop Slate and use the HUD class for UI, the loss in productivity would be massive. I’m bringing this up in hope there is someone out there who can look into this. I attached a screenshot of the “stat slate” report below.

Howdy Pedro,

Thank you for reporting this issue. Would you be able to attach your Dxdiag and your project log files to this post? Also, would there be a way that i may be able to recreate this issue on my end? Any additional information would be greatly appreciated.

Thanks and have a great day!

Hi Sean,

I’m not sure a DXDiag would be applicable, since the problem happens mostly on older iOS devices. On PCs and newer iOS devices (iPhone 5, iPad 4) it runs fine, or at least they are fast enough to not be compromised by the slate overhead.

It looks like you might have a fair bit of overdraw there. Mobile devices in my experience are very fillrate limited, so anything you can do to alleviate overdraw there would probably by a good idea.

Howdy Pedro,

You are correct that slat is being a hog on iOS devices. This is due to the specs on the device. Rendering has been know to eat a lot of the CPU and could be causing the performance hits that you are seeing.

This Device Capabilities list may help with some additional information on the subject: A new, community-hosted Unreal Engine Wiki - Announcements - Unreal Engine Forums. Some of the devices are showing that they are not supported, but this may not be fully true. I is really saying that they run at a less then desirable rate.

Thanks and have a great day!

I asked because I’ve done quite more complex UI on other engines and they didn’t perform this bad, so I suspected there was some unintended overhead in Slate.

I noticed pretty much all Slate containers clip their content, could that cause overhead on lower end devices due to excess of scissor rect setup?