Performance problems and expected improvements leading to launch

Hi,

Our game is an adaptation/port of a game that runs extremely smoothly on modest iOS devices, and so far under PolySpatial, our game runs about 10FPS. While we haven’t done a deep dive into profiling yet (we’re currently still trying to unbreak the game under PolySpatial), can you please advice us as to whether this is something we should expect, where the performance tends to be going (ie. is your Unity ↔ RealityKit scene bridge suboptimal atm for example), and how much we can expect it to improve by launch?

Also note that we’re really limited in what we can change; all the ‘dials’ we can tune were largely dialed for other Apple/PowerVR based devices and run very smoothly; our game is very modest in what it contains.

Basically, our game runs really slowly and I need to know in rough terms whether now is the time to panic :).

Thanks in advance,

-Jack.

From my experience:

  • UI is very slow (our project goes from 90 FPS to <30 FPS when UI is enabled)
  • Set the PolySpatial Collider Layer Mask, to track only stuff you need to interact with.
  • Moving the VolumeCamera is very slow (90FPS to < 20FPS) (I assume this will be fixed, as it wasn’t an issue previously)
  • Disable trackers you don’t need in the PolySpatial settings
1 Like

No substitute for profiling your particular situation (which is thankfully very easy as there are very readable symbols both for PolySpatial and RealityKit), a couple of other performance cliffs I’ve hit that might be relevant:

  • Modifying or creating colliders (e…g, BoxCollider) is very costly. Pool them and use nonuniform scaling transforms instead.
  • Creating new mesh assets is expensive
  • Unsupported RenderTexture formats require a CPU readback
  • Use the scene filter or the new (0.5.0) “Disable Tracking Mask” to prevent specific GameObjects from being tracked by PolySpatial

If you suspect that RealityKit rendering rather than PolySpatial bridge is the problem, attach the profiler to backboardd process instead of your game – this is the actual renderer.

1 Like

Thanks. Yeah, we’re yet to do a deep dive, since we’ve been so busy trying to “unbreak” our existing game that we’re porting to Polyspatial. Just wanted to get an initial heads up in case we’re doing something radically wrong, or whether everyone is generally finding the platform to be slow under conditions that typically run well on other devices. The UI issues are very interesting, we’ll try disabling our UI to see what impact that has.