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
- "GetPreferedValue" returns max value when using auto-sizing
- UI Builder doesn't update the style sheet when using "Extract inline style" right-click option
- “Assertion failed on expression” errors thrown when undoing Nodes creation with keyboard shortcut
- Crash on various stack traces when using Texture2D.CreateExternalTexture() while rendering
- Clicking on section text in Node Library > Context folder throws NullReferenceException errors
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.