Andriod (Oculus Quest 2 app) locked at 30 fps

Hello all!

I’ve been working on optimizing my VR experience for the quest 2 and can’t seem to get my fps over 30 when built. I used Bakery and Mesh Combiner 2 to help optimize and reduce draw calls to 36, triangle count and lowered image resolution.

I’m using Unity XR with the Oculus plugin. I tried setting the fps manually via code through

Unity.XR.Oculus.Performance.TrySetDisplayRefreshRate(90f);

I’ve also changed the time stamp to 0.01333

It looks like either “FrameEvent.XREndFrame” or “semaphore.wait for signal” depending how I build it are causing massive time lags in the playerloop. But as seen below it always tries to stay at 30 fps.

I’ve tried just a normal build and no luck. On PC, like expected it runs faster than 90Hz (I have 144Hz monitors).

I also noticed on builds that the scene is darker (contrast) and anti aliasing isn’t doing anything though it looks more correct on PC.

Any and all help is greatly appreciated - definitely hitting a wall!

Systems:
Unity 2019.4.28f1
URP 7.6.0
Oculus XR Plugin 1.9.1
XR Plugin Management 4.0.1
XR Interaction Toolkit 0.10.0 - preview.7

Unity.XR.Oculus.Performance.TrySetDisplayRefreshRate(90f);

Will actually succeed every time, and try to maintain it, but can’t. Have no idea why, but in the build you do too much.

The other problem is that you should set framerate to the highest it can maintain. You should set it to 60 or 72 since that is expected as a minimum.