Search Issue Tracker
Third Party Issue
Votes
21
Found in
2022.3.56f1
6000.0.33f1
6000.1.0b2
6000.2.0a1
6000.3.0a1
Issue ID
UUM-93226
Regression
No
[Performance] Vulkan performing much worse than OpenGLES due to excessive buffer copies on Quest 2/3
Steps to reproduce:
1. Open the attached user's project "MetaXRSDKOriginals.zip"
2. Switch to Android platform
3. Connect Quest 2/3
4. Open Meta Developer hub and enable Metrics Hud
5. Make sure Graphics API is set to either Vulkan and OpenGLES
6. Build to a Quest 2/3 device and observe the FPS and GPU Usage
Expected Results: Vulkan performs better or is on par with OpenGLES
Actual Results: Vulkan performing much worse than OpenGLES due to excessive buffer copies on Quest 2/3
Reproducible on: 2022.3.56f1, 6000.0.33f1, 6000.0.0b2
Reproducible with 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:
-Issue is described more in depth in this discussion post: [https://discussions.unity.com/t/vulkan-performing-much-worse-than-opengl-es-due-to-excessive-buffer-copies-on-quest-2-3/1561926]
-When MSAA is disabled under the "Camera Rig", fps hovers around 30 and stuttering is gone
-Renderdoc captures are attached "Vulkan2.rdc" and "OpenGLES.rdc"
-Issue reproduces with Vulkan and OpenGLES, on Vulkan fps is lower and the application stutters significantly more than on OpenGLES
-Issue reproduces with both OpenXR and OculusXR Plugins
-There's no difference when switching to Multi-pass, Multi-view and or Single Pass Instanced Rendering modes
Comments (3)
-
burbukz
Mar 02, 2025 14:34
Also looking for an update on this because its been effecting our game as well
-
ammars26
Feb 28, 2025 03:29
Waiting for some update?
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
- Properties window is not closed when the GameObject is deleted and the Properties window is not focused
- ComputeBuffer readback fails when Render Graph is enabled
- Opening Terrain Prefab in Prefab Editing Mode throws "NullReferenceException" error
- [Search] Dragging query pills put them behind the search text field
- A CustomPropertyDrawer that returns a PropertyField for a property named the same as a child field will not render all child fields
Resolution Note:
Thank you for reporting a bug to Unity.
We have reviewed the issue carefully, and that's the conclusion of our investigation.
The worst performance on Vulkan compared to OpenGL, based on the repro project, looks to be caused by a QCOM bug related to the visibility stream.
It seems to manifest when there are a lot of meshes in the scene and should be fixed in future release of Meta OS for Quest devices.
Regarding the additional buffer copies in Vulkan (with and without MSAA) that seems to be related to the QCOM cost of using Vulkan.
For XR and MSAA we suggest to enable the Optimize Buffer Discard feature that improves performance. The feature is available in both OpenXR and Oculus plugin, you can read more about it in https://docs.unity3d.com/Packages/com.unity.xr.oculus@1.12/manual/index.html
Thank you again for taking the time to report this issue, and please let us know if there is anything else that changes the impact or severity of this issue.