Add names for composite constants in SPIR-V
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
This commit is contained in:
parent
b2b3d81e9b
commit
4c9876b34c
8 changed files with 232 additions and 117 deletions
|
|
@ -236,6 +236,7 @@ layout(constant_id = 101) const uint64_t su64 = 20UL;
|
|||
layout(constant_id = 102) const int si = -5;
|
||||
layout(constant_id = 103) const uint su = 4;
|
||||
layout(constant_id = 104) const bool sb = true;
|
||||
layout(constant_id = 105) const uint64_t su64inc = su64 + 1UL;
|
||||
|
||||
// bool <-> int64/uint64
|
||||
const bool i64_to_b = bool(si64);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue