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

  1. 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.

Comments (3)

  1. burbukz

    Mar 02, 2025 14:34

    Also looking for an update on this because its been effecting our game as well

  2. ammars26

    Feb 28, 2025 03:29

    Waiting for some update?

  3. DevDunk

    Feb 27, 2025 01:10

    Any update?

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.