Search Issue Tracker

By Design

Votes

0

Found in

2018.4

2019.2

2019.2.10f1

2019.3

2020.1

Issue ID

1202968

Regression

No

"IPreprocessShaders.OnProcessShader" doesn't work with "multi_compile_local" variants

Shaders

-

Reproduction steps:
1. Open "New Unity Project (12).zip" project
2. Build for Android
3. Look at the Console output

Expected Result: "F00000000000_ON" and "F000000000_OFF" are outputted
Actual Result: "F00000000000_ON" and "F000000000_OFF" are not outputted

Reproduced with: 2020.1.0a15, 2019.3.0f2, 2019.2.16f1, 2018.4.14f1
Could not reproduce on: 2017.4.35f1(Scripting errors)

  1. Resolution Note:

    This is by desing, function that u are using `keys[j].GetKeywordName()` is only works for global keywords.
    In 2020.1 we added new functions `ShaderKeyword.GetKeywordName(Shader, ShaderKeyword)` and `ShaderKeyword.GetGlobalKeywordName(ShaderKeyword)` where `keys[j].GetKeywordName()` is deprecated. The reason we needed new functions, as local keyword names can only be resolved if shader is known in context.

Add comment

Log in to post comment