UI is really slow on device

Hi,

Building apps in exlusive MR with Polyspatial and UI made the app really slow.
Update a text at each frame kill the app performance with a CPU a 95%. An animation to open a popup is nearly at 2 frames/second.

Do we have some other options? Do I have missed something?

We have some improvements pending for the next release that should improve UI performance. However, either before or after that comes out, feel free to create a bug report with a repro case and let us know the incident number (IN-#####), so that we can look into the issue.

2 Likes

Did the changes to improve UI make it in? Are there more incoming?

We’re seeing the FPS halve when the (quite complex) UI is visible. As a comparison, perf is fine on Quest 2.

We included some improvements to UI performance in 1.1.4, yes. I’m not aware of any pending for the next release.

If you can submit a repro case and let us know the incident number (IN-#####), we can take a look and see where the slowdown might be. Assuming this is the rendering FPS (versus the update FPS), my first thought is just having lots of draw calls (i.e., separate UI elements) when using shader graphs (which we currently always use for UI). That’s something we’ve found to be a performance bottleneck, and have brought up with Apple (but it might help if you submit feedback regarding it as well). Assuming Apple doesn’t address the issue in the immediate future, we might be able to look into using non-shader-graph materials for UI and/or dynamic batching of UI elements.

randomly i have noticed that spawning the keyboard from TMP Input field might freeze the app.

but also this is because the keyboard is spawned somewhere not visible to the camera.

Is there some sort of way to log the time it takes from TMP Input field interaction to launch of keyboard?