Search Issue Tracker

Fixed in 2019.3.X

Votes

0

Found in

2018.3.0a1

2018.4.0f1

2019.1.0a1

2019.1.6f1

2019.2.0a1

2019.3.0a1

Issue ID

1162577

Regression

Yes

Asset importer crashes when importing a shader and Unity freezes if you try to reimport it

Shaders

-

Steps to reproduce:
1. Open the project attached by QA;
2. Reimport the shader.

Expected: Editor does not freeze, the shader is successfully reimported.
Actual: After opening a project, a message is thrown to the Console:
A default asset was created for 'Assets/testshader2.shader' because the asset importer crashed on it last time.
After trying to reimport the shader, Unity freezes.

Reproduced in: 2018.3.0a1, 2018.4.3f1, 2019.1.9f1, 2019.2.0b7, 2019.3.0a7
Not reproduced in: 2017.4.29f1*

Notes: User reports crashing, but during the testing, it did not emerge.

*Import fails with "Assertion failed: Shader Compiler Socket Exception: Terminating shader compiler process, 0 retries left"
"Assertion failed: Shader compiler: internal error compiling shader snippet type=1 platform=4: Protocol error - failed to read correct magic number"
After some time

  1. Resolution Note (fix version 2019.3):

    Shader compiler connection simply times out here as the shader takes very long time to compile. Removing the [unroll] directives makes the shader to compile ok in a couple of seconds. However, if this level of compilation complexity is absolutely needed, one can manually override the timeout limit via an environment variable named UNITY_SHADER_COMPILER_TASK_TIMEOUT_MINUTES
    We will be improving the error messaging on compiler timeouts.

Add comment

Log in to post comment