Reproduction steps:
1. Open the attached project "FramePacingBug"
2. Open “File > Build Settings”
3. Switch platform to the Android
4. Tick Developer Build
5. Tick Autoconnect Profiler
6. Tick Deep Profiling Support
7. Build And Run
8. Observe the built Scene and the Profiler window
Expected result: The Scene is running without stutters and no spikes appear in the Profiler window
Actual result: The Scene is stuttering with spikes seen in the Profiler window
Reproducible with: 2022.2.6f1, 2023.1.0b3, 2023.2.0a1
Could not test with: 2020.3.45f1. 2021.3.18f1 (com.unity.ugui@1.0.0\Runtime\UI\Core\Toggle.cs(162,33): error CS0115: 'Toggle.OnDidApplyAnimationProperties())
Reproducible with devices:
VLNQA00379, Oculus (Quest 2), Android 10, CPU: Snapdragon XR2, GPU: Adreno (TM) 650
Reproducible on: Windows 10 Enterprise 21H2
Notes:
- The issue is only noticeable on Quest VR builds. With Steam VR the issue does not appear present
- The user started to experience stutters after upgrading the project from Unity 2020.3.4 (URP 10.4.0) to Unity 2021.3.10 (URP 12.1.7)
- We’ve been able to reduce the issue by switching to 72hz. But there is still a stutter every one to two seconds. We’ve discovered that if we try to change the refresh rate with the OVRManager call the issue will get worse until the headset is put to sleep and woken back up.
- When running with the profiler the issue gets worse and the spikes are OculusRuntime.WaitToBeginFrame. Everything else in the game is well below 10ms.
- What We’ve tried and hasn’t had an impact
-Upgrading the Oculus Integration 3.2.2 (Package Manager)
-Upgrading the Oculus SDK to v47 (Asset Store)
-Switched Oculus to use the OpenXR back end
-Tested on OpenGLES and Vulkan
-Test builds with Late Latching, Phase Sync, and Optimized Frame Pacing
SLACK THREAD DISCUSSION:
https://unity.slack.com/archives/C06364Q5MSP/p1698430583463459