Skip to content
Snippets Groups Projects
  • Grigory Dzhavadyan's avatar
    Add names for composite constants in SPIR-V · 4c9876b3
    Grigory Dzhavadyan authored
    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
    4c9876b3