Search Issue Tracker
Third Party Issue
Votes
0
Found in
2022.3.10f1
Issue ID
UUM-68005
Regression
No
[Quest] EarlyUpdate.XRUpdate taking over 20ms when no intermediate textures are used in rendering on Quest 2/3
Steps to reproduce:
1. Download the attached project "Project.zip" from the Google Drive link
2. Ensure that you have a Meta Quest 2 headset attached to your PC
3. Go to File > Build Settings and switch to the Android platform. Enable the Development Build and Autoconnect Profiler options and select Build And Run to deploy the project to a headset
4. Wait until you have in-game control and look towards the cave entrance
5. Watch the Unity profiler after the build starts running on the headset and observe the long time (over 20ms on average) spent on EarlyUpdate.XRUpdate in the Timeline on the main thread
6. Go back to the Unity project and in the Project window, find the URP asset labelled "Universal Render Pipeline Asset-Quest" and in the Inspector, in the Quality settings enable "HDR"
7. In the Project window, find the URP Renderer labelled "Universal Render Pipeline Asset_Renderer", select this item and in the Inspector enable the Post Processing option
8. Save the project then go to File > Build and Run to deploy the project to the headset
9. Wait until you have in-game control and look towards the cave entrance
10. Watch the Unity profiler after the build starts running on the headset and observe only 10ms of time spent on average in EarlyUpdate.XRUpdate which is expected
Expected Results: The profiler results taken during step 5 show the call to EarlyUpdate.XRUpdate taking about 10ms, which is shown in the profiler results shown in step 10 when an intermediate texture is used
Actual Results: The profiler results taken during step 5 show the call to EarlyUpdate.XRUpdate taking over 20ms on average
Reproducible on: 2022.3.10f1
Could not test on 2021.3.36f1, 2022.3.22f1, 2023.2.16f1 and 6000.0.0b13 due to project errors after upgrading/downgrading
Reproducible on these devices:
VLNQA00609 - Oculus Quest 3 (Quest 3), CPU: Snapdragon XR2 Gen 2 (SM8550), GPU: Adreno 740, OS: 12
VLNQA00415 - Oculus Quest 2 (Quest 2), CPU: Snapdragon XR2, GPU: Adreno 650, OS: 12
Testing Environment: Windows 11
Not reproducible on: No other environment tested
Notes:
-Project uses OculusXR plugin, could not test on other XR plugins due to errors when switching plugins
-Intermediate renderbuffers such as CopyDepth and CopyColor have been disabled in the project by disabling HDR and Post processing
-Attached are profiler captures showing the difference, the capture named "GPUBound.data" shows the low perfromance which can be compared to the "notGPUBound.data" capture that shows better performance when intermediate textures are used
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- “Remove Unused Overrides” available on not loaded Scene and throws “ArgumentException: The scene is not loaded” warning
- Adaptive Probe Volume occlusion edge is calculated incorrectly when viewing probes near geometry edges
- Sampling a texture using an HLSL file throws shader errors and the code does not compile
- "Graphics.CopyTexture called with null source texture" error when Base Camera of an Overlay Camera is removed with DX11 Graphics API and Compatibility Mode enabled
- WebGL sends wrong value with large numbers when SendMessage function is used
Resolution Note:
We have dived into this case pretty deep and couldn't spot anything wrong, hence the delay in moving this case forward.
We have tested and the issue is Quest2 only. Quest3 doesn't have the issue and direct to eye renders faster as expected.
This case is now also investigated by Meta engineer and is forwarded to QCOM for driver layer investigation.
What can be helpful is to isolate the issue with a smaller scene (disable some drawcalls/effects/computes.... until you have a much smaller setup that still repros the issue). We've had some issues in the past with some applications that were doing a lot of compute so maybe trying to disable the particles/computes to see if the bug is still there could be an interesting data point.
For now, we close this as third party issue because there is no action item on Unity side. If there is new data point that we can act upon, please feel free to reopen.