Steps to reproduce:
1. Create a new project using the VR template (or open the attached project "Unity_6_5_URP_VR_depth_bug.zip")
2. In Edit > Project Settings > XR Plug-in Management > OpenXR, set Depth Submission Mode to "Depth 24 Bit"
3. Set Varjo OpenXR runtime as the active OpenXR runtime (Varjo Base > System > OpenXR)
4. Connect a Varjo headset and enter Play Mode
5. Open Varjo Base > Analytics window and observe the depth buffer visualization
Actual result: The depth buffer submitted to the OpenXR runtime is vertically flipped (upside down) relative to the color buffer (see attached screenshots)
Expected result: The submitted depth buffer has the same orientation as the submitted color buffer
Reproducible with according to the user: 6000.5.0f1
Could not test on 6000.0.78f1, 6000.3.19f1, 6000.5.3f1, 6000.6.0b2, 6000.7.0a2 due to missing hardware
Reproducible with these devices:
(user)Varjo OpenXR runtime
Not reproducible with these devices:
VLNQA00609 - Oculus Quest 3 (Quest 3), CPU: Snapdragon XR2 Gen 2 (SM8550), GPU: Adreno 740, OS: 14
VLNQA00644 - Oculus Quest 3S (Quest 3S), CPU: Google Tensor G2, GPU: Adreno 740, OS: 14
VLNQA00415 - Oculus Quest 2 (Quest 2), CPU: Snapdragon XR2, GPU: Adreno 650, OS: 14
Notes:
-Do note this was not reproduced by CQA
-Not reproducible via Meta Quest Link: under Meta's runtime the final depth write into the swapchain goes through the Blitter (CoreBlit, texcoord-based, y-flip honored), while under Varjo's runtime it goes through URP's CopyDepthPass, which samples by destination pixel position and drops the requested scaleBias y-flip — root cause is runtime-independent but the triggering code path is only selected under Varjo
-User's suggested fix (patch attached "xr-copy-depth-flip-fix.patch"): add a _CopyDepthFlipY parameter to Shaders/Utils/CopyDepthPass.hlsl and derive the flip from the existing scaleBias sign in Runtime/Passes/CopyDepthPass.cs; depth confirmed correct with the patch applied per user comments