Search Issue Tracker
Fixed in 2017.1.0f3
Fixed in 2017.2.X
Votes
0
Found in
2017.1.0b10
Issue ID
924464
Regression
No
Incorrect definition of _ShadowCoord in AutoLight.cginc
In AutoLight.cginc, _ShadowCoord is defined in some cases where it is not needed. This results in a useless interpolator. It can also lead to unexpected compile errors if UNITY_INITIALIZE_OUTPUT is not used to initialize the interpolator struct. Usage of UNITY_INITIALIZE_OUTPUT in Unity's shaders hides this bug.
The definition is on line 116. Here are lines 115-117:
#else
# define UNITY_SHADOW_COORDS(idx1) unityShadowCoord2 _ShadowCoord : TEXCOORD##idx1;
# if defined(SHADOWS_SHADOWMASK)
The line should be moved inside the defined(SHADOWS_SHADOWMASK) block below it. So lines 115-117 become:
#else
#if defined(SHADOWS_SHADOWMASK)
#define UNITY_SHADOW_COORDS(idx1) unityShadowCoord2 _ShadowCoord : TEXCOORD##idx1;
Reproduced with: 5.6.2p1, 2017.1.0f1, 2017.2.0b1
Comments (2)
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
- 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
- Graphics Settings shows default values instead of the real values in the Rendering Debugger when Volume.profile is assigned via script
- Deleting multiple Tags throws “NullReferenceException”, and "Retrieving array element that was out of bounds" errors when holding the Enter key
xZeroCoolx
Jan 18, 2018 19:19
I can still reproduce this bug in Unity 2017.3.0f3 with the following custom shader:
https://pastebin.com/Htg5p0EP
Can be fixed by using UNITY_INITIALIZE_OUTPUT macro in the vertex shader.