VR Quest Pro/3 performance issues vs Quest 2?

Hi all!

We’re making a VR app for both the Quest Pro and Quest 2 and noticed a HUGE difference in performance, and we have no idea why.

For some reason the Quest 2 runs our app flawlessly with no issues, but when running it on a Quest 3 or Pro it crashes when we look at our in-game model.

This is surprising because the Pro and 3 have better specs than the 2 version.

Does anyone know why and if there’s maybe a hidden setting somewhere in unity we are missing?

First of all, is performance worse or does it crash?
Those are 2 different things.

Secondly, have you updated Unity, URP (if used), Oculus Integration (or better, the new meta XR packages), and the Oculus XR plugin?
If it crashes, what does logcat say?

1 Like

It doesn’t crash, it just goes to like 1FPS and you can’t get out of the app. the view still updates but it’s very poor/slow.

We don’t use URP, latest SDKs of oculus everything is updated. We are using Unity 2022.3.7

Worth updating Unity as well for sure.
And if it doesn’t crash what does the profiler say?
And is it CPU or GPU limited?

Seems weird that a unity update would increase the performance on a device by 1000x or something, but we can try.

haven’t used the profiler yet as it’s working flawlessly inside Unity, so can’t tell if it’s CPU or GPU limited. We have about 2000 batches and a scene of about 9million triangles total.

Maybe it can, since that Unity version has probably released before the quest 3 was announced. Did you also check the changelogs for oculus xr plugin btw? The package manager does not state the update unless you add it manually or update the engine.

You can use the profiler when connected via USB. Make an android build with developer mode and autoconnect profiler enabled. When using URP setpass calls is more important to look at than batches, but hearing that number and the amount of tris, its most likely the GPU. You can check fps and usage of CPU and GPU using OVRMetrics in real time

Thanks for all the suggestion, very apreciated!

I will forward all this information to my colleague, who is the programmer on the project.

1 Like

None of those devices can handle that many batches and vertices.

and yet Quest 2 runs it perfectly fine.

Okay according to my colleague it had to do with the lightpixel count (which we didn’t change), he changed it to 1 and it works flawlessly.