Search Issue Tracker

By Design

Votes

0

Found in

2019.4

2020.3

2020.3.32f1

2021.3

2022.1

2022.2

Issue ID

1416425

Regression

No

Surface shaders do not correctly set unity_StereoEyeIndex when using Single Pass Instanced rendering in VR

Shader System

-

Steps to reproduce:
1. Open the attached "StereoSurfaceShaderBug.zip" project
2. Enter Play Mode and in the Game view observe that the Quad is displayed green on the left display and red on the right display
3. Select the TestMaterial in the Assets folder
4. In the Inspector change the Shader property to Custom/SurfaceShaderWithBug
5. Observe the Game view

Expected result: the Quad is displayed green on the left display and red on the right display
Actual result: the Quad is displayed green in both the left and the right displays

Reproducible with: 2019.4.38f1, 2020.3.33f1, 2021.3.0f1, 2022.1.0b16, 2022.2.0a10

  1. Resolution Note:

    To fix this, simply remove the line "UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(IN);" from the surface function. This line is already emitted in surface shaders and adding it inside the surface function is overwriting unity_StereoEyeIndex with zero.

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.