location aliasing (#3438)

* location aliasing
    when location aliasing, the aliases sharing the location must have the same underlying numerical type
    (floating-point or integer) and the same auxiliary storage and interpolation qualification.
    The following case, glslang need report error.

    layout(vertices = 1) out;

    layout (location = 1, component = 0)  in  double gohan[];
    layout (location = 1, component = 2)  in  float goten[];

    in  vec4 vs_tcs[];
    out vec4 tcs_tes[];

    void main()
    {
    }

* Need consider the following case: location aliasing with different interpolation qualifier.
This commit is contained in:
jimihem 2024-04-27 00:05:08 +08:00 committed by GitHub
parent 9337143313
commit 44fcbccd06
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 114 additions and 13 deletions

View file

@ -0,0 +1,27 @@
location_aliasing1.frag
ERROR: 0:6: 'location' : the aliases sharing the location 1 must be the same basic type and interpolation qualification
ERROR: 1 compilation errors. No code generated.
Shader version: 430
Requested GL_ARB_enhanced_layouts
ERROR: node is still EOpNull!
0:8 Function Definition: main( ( global void)
0:8 Function Parameters:
0:? Linker Objects
0:? 'in1' (layout( location=1 component=0) smooth in float)
0:? 'in2' (layout( location=1 component=2) flat in float)
Linked fragment stage:
Shader version: 430
Requested GL_ARB_enhanced_layouts
ERROR: node is still EOpNull!
0:8 Function Definition: main( ( global void)
0:8 Function Parameters:
0:? Linker Objects
0:? 'in1' (layout( location=1 component=0) smooth in float)
0:? 'in2' (layout( location=1 component=2) flat in float)