Search Issue Tracker
Third Party Issue
Votes
0
Found in
2019.4
2020.3
2020.3.19f1
2021.1
2021.2
2022.1
Issue ID
1368661
Regression
No
Compute shader cannot compile when using "for loops" on a 2D static array with 255 or more rows
Reproduction steps:
1. Open project "ComputeShaderLoop"
2. If you don't immediately see the errors, open Scripts/MeshGenerator and click "Show compiled code" in the Inspector
Expected result: No errors are shown and the script compiles
Actual result: These errors are shown and the script doesn't compile:
"Shader Compiler IPC Exception: Terminating shader compiler process"
"Shader compiler: Compile MeshGenerator.compute - MarchingCubes: Internal error communicating with the shader compiler process. Please report a bug including this shader and the editor log."
"Shader error in 'MeshGenerator': Compiling MarchingCubes: Internal error communicating with the shader compiler process. Please report a bug including this shader and the editor log."
Reproducible with: 2019.4.31f1, 2020.3.20f1, 2021.1.24f1, 2021.2.0b15, 2022.1.0a13
Notes:
- In the "MeshGenerator" script when uncommenting lines 316-328 and commenting out the "for loop", the bug is not reproducible
- If the row length of the "triTable" array is 254 or lower, the bug is not reproducible
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
- PlayerPropertiesChanged event fires before Player Properties are applied
- Opening Media Pop-out in “Before You Start” Tutorial throws “Styles” and “Styles_Dark” messages in the Console window
- Play Mode Scenario selection/highlight is too long and out of its bounds when the Play Mode Scenario window is opened after maximizing
- Asset name is not shown in the Undo History window when a sprite is modified
- Moving a Tab to a floating window fails when floating windows are docked next to each other
Resolution Note:
This is related to the limit on the size of a constant buffer (65536 bytes). If the sum of sizes of all uniform variables that are declared outside of a constant buffer (and end up in the implicit global constant buffer) exceeds 64KB, the MS D3D11 compiler (FXC) crashes. We haven't found a workaround for this, nor have a reasonable way to detect this before feeding to the compiler.