Search Issue Tracker
Fixed in 2020.2.X
Fixed in 2018.4.X, 2019.4.X
[Critical] HLSLcc uses an incorrect variable in an if statement when the needed variable is defined below float type matrix
How to reproduce:
1. Open the attached project "1242345.zip"
2. Open the "Test" Scene
3. Open the "Test.compute" Compute Shader by selecting it in Project window and clicking "Open" in the top-right corner of the Inspector window
4. Open the "Test.compute" Compute Shader by selecting it in Project window and clicking "Show compiled code" in the Inspector window
5. Observe lines 26 and 27 in the compiled Compute Shader file (Compiled-Test-.shader)
Expected result: the Compute Shader's "if" statement was compiled using the value of "float(0.0)!=Globals._EnableTonemapping"
Actual result: the Compute Shader's "if" statement was compiled using the value of "float(0.0)!=Globals.hlslcc_mtx3x3_WhitePointTransform.w"
Reproducible with: 2018.4.26f1, 2019.4.6f1, 2020.1.0f1, 2020.2.0a19
Workaround: changing the order of variables in lines 7 (float3x3 _WhitePointTransform;) and 8 (float _EnableTonemapping;) solves the issue
- Tested and reproduces with OpenGLCore, OpenGLES2, OpenGLES3, and Metal APIs
- Not sure if reproduces with Vulkan, DirectX11, and DirectX12 as compiled code is hardly readable
- Only reproduces if the "_WhitePointTransform" variable is a matrix of type float or int (float2x2, float 3x3, int3x3, etc...)
- In case matrix type is an int - "intBitsToFloat" method is called to handle a conversion
- Does not reproduce if the matrix size is 4x4 or 4x3 (float4x4, float4x3)
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
- [Linux] Executing Build And Run with Dedicated Server platform does not open Terminal
- [deprecated] BuildOptions.EnableHeadlessMode needs clearer warning for its conflicts with BuildOptions.subtarget field
- UNITY_SERVER scripting define does not work when switching to Dedicated Server from Windows by script
- Editor crashes when opening it with "-standaloneBuildSubtarget Server" CLI
- [Hub] Templates are missing in Hub 3.0.0-beta.2 when creating new project for Unity 2022.1