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
- Light rendering artefacts appear in the Editor when assigning unsupported 3D Custom Render Texture in Camera’s Output Texture, unclearable errors and warnings spammed
- Memory leak when running a test with "GfxThreadingMode" set to "SplitJobs"
- Loading Unloaded unsaved Scene throws “ArgumentException” error in the Console
- Crash on std::__1::__tree_const_iterator when opening the Build Profiles window in a specific project
- Sub-State machine “breadcrumb trail” doesn’t fit in the window if there’s too many Sub-State machines
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.