Search Issue Tracker

Third Party Issue

Votes

5

Found in

2021.3.33f1

2022.3.15f1

2023.2.2f1

2023.3.0a18

6000.0.0b11

Issue ID

UUM-58722

Regression

No

[XR][URP] Reflection probes with box projection result in line-crossing artifacts in VR headset builds

--

-

Steps to reproduce:
1. Open the attached user's project "VRSandbox.zip"
2. Make sure OculusXR or OpenXR is selected in the XR Plugin Management
3. In the Editor, Move the "XR Origin (XR Rig)" GameObject in front of a mirror
4. Build for Quest 2/3
5. Observe in line-crossing artifacts in the middle of the mirror

Expected results: Reflection probes with box projection do not result in line-crossing artifacts in VR headset builds
Actual Results: Reflection probes with box projection result in line-crossing artifacts in VR headset builds (See attached Repro.png)

Reproducible with: 2021.3.33f1, 2022.3.15f1, 2023.2.2f1, 2023.3.0a18

Reproducible on these devices:
VLNQA00609 - Oculus Quest 3 (Quest 3), CPU: Snapdragon XR2 Gen 2 (SM8550), GPU: Adreno 740, OS: 12
VLNQA00533 - Pico 4 (A8110) (A8110), CPU: Snapdragon 865 SM8250 / Qualcomm® XR2, GPU: Adreno 650, OS: 10
VLNQA00415 - Oculus Quest 2 (Quest 2), CPU: Snapdragon XR2, GPU: Adreno 650, OS: 10

Not reproducible on these devices:
VLNQA00528 - HMD Global Nokia G20 (Nokia G20), CPU: Mediatek MT6765G Helio G35 (12 nm), GPU: PowerVR Rogue GE8320, OS: 13
VLNQA00422 - Galaxy S21 Ultra 5G (SM-G998B), CPU: Exynos 2100, GPU: Mali-G78, OS: 11
VLNQA00460 - Google Pixel 6 (Pixel 6), CPU: Google Tensor (Whitechapel), GPU: Mali-G78, OS: 14
VLNQA00381 - Xiaomi Redmi Note 8 Pro (Redmi Note 8 Pro), CPU: MediaTek Helios G90T MT6785T, GPU: Mali-G76 MC4, OS: 9
VLNQA00282 - Samsung Galaxy S10e USA (SM-G970U), CPU: Snapdragon 855 SM8150, GPU: Adreno 640, OS: 9
VLNQA00202 - Samsung Galaxy Note 9 USA (SM-N9600), CPU: Snapdragon 845 SDM845, GPU: Adreno 630, OS: 9

Testing Environment: Windows 11
Not reproducible on: No other environment tested

Notes:
-Issue is more apparent in the headset
-Issue does not reproduce in Editor and Standalone Windows Player
-Issue reproduces with Vulkan, OpenGLES 3
-Issue reproduces with MultiView, Multi-Pass
-Issue reproduces with OpenXR and OculusXR plugins

  1. Resolution Note:

    Unfortunately this is a driver issue. We found a workaround to solve it but we can't land that workaround because it has performance impact to other platforms.
    The workaround is to increase reflectVector&viewDirectionWS precision from half to float in shaders in the following shader functions:
    BoxProjectedCubemapDirection, GlossyEnvironmentReflection, GetObjectSpaceNormalizeViewDir
    And then update InputData viewDirectionWS to float3
    Finally update `half3 viewDirWS` to `float3 viewDirWS` in LitForwardPass.hlsl

    The issue only repro'd on Quest, and not on other Android phones we tested so far. It is likely due to the driver and we reported the issue to Meta. If you have concerns about this resolution, please feel free to reopen and provide more details. Thanks

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.