Consider the following code:
layout(constant_id=0) const int Y = 1;
layout(constant_id=1) const int Z = 2;
layout(constant_id=3) const int X = Y + Z;
Previously, it would produce SPIR-V decorations like this:
Decorate 21(Y) SpecId 1
Decorate 22 SpecId 3
Decorate 33(Z) SpecId 0
This seems inaccurate, since the spec constant `X` that is dependent on
the two others did not get a name in the SPIR-V decorations. This behavior
may potentially negatively affect shader introspection capabilities.
This change alters the behavior to always add a name, which results in the code
above producing the following decorations:
Decorate 21(Y) SpecId 1
Decorate 22(X) SpecId 3
Decorate 33(Z) SpecId 0
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| CMakeLists.txt | Loading commit data... | |
| GLSL.ext.AMD.h | Loading commit data... | |
| GLSL.ext.EXT.h | Loading commit data... | |
| GLSL.ext.KHR.h | Loading commit data... | |
| GLSL.ext.NV.h | Loading commit data... | |
| GLSL.std.450.h | Loading commit data... | |
| GlslangToSpv.cpp | Loading commit data... | |
| GlslangToSpv.h | Loading commit data... | |
| InReadableOrder.cpp | Loading commit data... | |
| Logger.cpp | Loading commit data... | |
| Logger.h | Loading commit data... | |
| SPVRemapper.cpp | Loading commit data... | |
| SPVRemapper.h | Loading commit data... | |
| SpvBuilder.cpp | Loading commit data... | |
| SpvBuilder.h | Loading commit data... | |
| SpvPostProcess.cpp | Loading commit data... | |
| SpvTools.cpp | Loading commit data... | |
| SpvTools.h | Loading commit data... | |
| bitutils.h | Loading commit data... | |
| disassemble.cpp | Loading commit data... | |
| disassemble.h | Loading commit data... | |
| doc.cpp | Loading commit data... | |
| doc.h | Loading commit data... | |
| hex_float.h | Loading commit data... | |
| spirv.hpp | Loading commit data... | |
| spvIR.h | Loading commit data... |