glslang/Test/baseResults/link.multiAnonBlocksInvalid.0.0.vert.out
Malcolm Bechard 0b66fa3b62
Shader interface matching rework to fix #2136 (#2156)
* rework how shader interface block naming rules are handled

* Fixes 2136

According to the spec, shader interfaces (uniform blocks, buffer
blocks, input blocks, output blocks) all should be matched up via
their block names across all compilation units, not instance names.
Also, all block names can be re-used between all 4 interface types
without conflict. This change makes it so all of these blocks are
matched and remapped using block name and not by instance name.
Additional the rule that matched uniform and buffer blocks must
either be anonymous or named (but not nessearily the same name) is
now imposed.

* add warning if instance names differ between matched shader interfaces

* Add test cases from #2137 which is now fixed as well.

* replace some tab characters with spaces

* buffer blocks and uniform blocks now share the same block namespace
2020-04-02 02:03:53 -06:00

178 lines
14 KiB
Plaintext
Executable File

link.multiAnonBlocksInvalid.0.0.vert
ERROR: 0:22: 'ColorBlock' : nameless block contains a member that already has a name at global scope
ERROR: 0:42: 'v1' : redefinition
ERROR: 0:43: 'uProj' : redefinition
ERROR: 3 compilation errors. No code generated.
Shader version: 430
ERROR: node is still EOpNull!
0:46 Function Definition: main( ( global void)
0:46 Function Parameters:
0:48 Sequence
0:48 move second child to first child ( temp 4-component vector of float)
0:48 'oColor' ( smooth out 4-component vector of float)
0:48 component-wise multiply ( temp 4-component vector of float)
0:48 color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float)
0:48 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2, layout( column_major std140 offset=32) uniform 4-component vector of float v1})
0:48 Constant:
0:48 0 (const uint)
0:48 Function Call: getColor2( ( global 4-component vector of float)
0:49 move second child to first child ( temp 4-component vector of float)
0:49 v1: direct index for structure ( out 4-component vector of float)
0:49 'anon@2' ( out block{ out 4-component vector of float v1})
0:49 Constant:
0:49 0 (const uint)
0:49 color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float)
0:49 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2, layout( column_major std140 offset=32) uniform 4-component vector of float v1})
0:49 Constant:
0:49 0 (const uint)
0:51 move second child to first child ( temp 4-component vector of float)
0:51 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:51 'anon@4' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:51 Constant:
0:51 0 (const uint)
0:51 matrix-times-vector ( temp 4-component vector of float)
0:51 uProj: direct index for structure (layout( column_major std140 offset=0) uniform 4X4 matrix of float)
0:51 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj})
0:51 Constant:
0:51 0 (const uint)
0:51 Function Call: getWorld( ( global 4-component vector of float)
0:? Linker Objects
0:? 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj})
0:? 'anon@1' (layout( column_major shared) buffer block{layout( column_major shared) buffer 4-component vector of float b})
0:? 'anon@2' ( out block{ out 4-component vector of float v1})
0:? 'myName' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float m})
0:? 'oColor' ( smooth out 4-component vector of float)
0:? 'anon@4' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out unsized 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out unsized 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
link.multiAnonBlocksInvalid.0.1.vert
Shader version: 430
0:? Sequence
0:38 Function Definition: getColor2( ( global 4-component vector of float)
0:38 Function Parameters:
0:40 Sequence
0:40 Branch: Return with expression
0:40 color2: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float)
0:40 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color2})
0:40 Constant:
0:40 0 (const uint)
0:43 Function Definition: getWorld( ( global 4-component vector of float)
0:43 Function Parameters:
0:45 Sequence
0:45 Branch: Return with expression
0:45 matrix-times-vector ( temp 4-component vector of float)
0:45 uWorld: direct index for structure (layout( column_major std140 offset=64) uniform 4X4 matrix of float)
0:45 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld})
0:45 Constant:
0:45 1 (const uint)
0:45 'P' ( in 4-component vector of float)
0:46 move second child to first child ( temp 4-component vector of float)
0:46 v2: direct index for structure ( out 4-component vector of float)
0:46 'anon@2' ( out block{ out 4-component vector of float v1, out 4-component vector of float v2})
0:46 Constant:
0:46 1 (const uint)
0:46 Constant:
0:46 1.000000
0:46 1.000000
0:46 1.000000
0:46 1.000000
0:? Linker Objects
0:? 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color2})
0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld})
0:? 'anon@2' ( out block{ out 4-component vector of float v1, out 4-component vector of float v2})
0:? 'anon@3' (layout( column_major shared) buffer block{layout( column_major shared) buffer 4-component vector of float a})
0:? 'anon@4' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float m})
0:? 'P' ( in 4-component vector of float)
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
Linked vertex stage:
ERROR: Linking vertex stage: Types must match:
anon@0: "layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj}" versus anon@1: "layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld}"
ERROR: Linking vertex stage: Types must match:
anon@2: " out block{ out 4-component vector of float v1}" versus " out block{ out 4-component vector of float v1, out 4-component vector of float v2}"
ERROR: Linking vertex stage: Types must match:
anon@1: "layout( column_major shared) buffer block{layout( column_major shared) buffer 4-component vector of float b}" versus anon@3: "layout( column_major shared) buffer block{layout( column_major shared) buffer 4-component vector of float a}"
ERROR: Linking vertex stage: Matched Uniform or Storage blocks must all be anonymous, or all be named:
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
myName: "layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float m}" versus anon@4: "layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float m}"
Shader version: 430
ERROR: node is still EOpNull!
0:46 Function Definition: main( ( global void)
0:46 Function Parameters:
0:48 Sequence
0:48 move second child to first child ( temp 4-component vector of float)
0:48 'oColor' ( smooth out 4-component vector of float)
0:48 component-wise multiply ( temp 4-component vector of float)
0:48 color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float)
0:48 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2, layout( column_major std140 offset=32) uniform 4-component vector of float v1})
0:48 Constant:
0:48 0 (const uint)
0:48 Function Call: getColor2( ( global 4-component vector of float)
0:49 move second child to first child ( temp 4-component vector of float)
0:49 v1: direct index for structure ( out 4-component vector of float)
0:49 'anon@2' ( out block{ out 4-component vector of float v1})
0:49 Constant:
0:49 0 (const uint)
0:49 color1: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float)
0:49 'anon@3' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1, layout( column_major std140 offset=16) uniform 4-component vector of float color2, layout( column_major std140 offset=32) uniform 4-component vector of float v1})
0:49 Constant:
0:49 0 (const uint)
0:51 move second child to first child ( temp 4-component vector of float)
0:51 gl_Position: direct index for structure ( gl_Position 4-component vector of float Position)
0:51 'anon@4' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:51 Constant:
0:51 0 (const uint)
0:51 matrix-times-vector ( temp 4-component vector of float)
0:51 uProj: direct index for structure (layout( column_major std140 offset=0) uniform 4X4 matrix of float)
0:51 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj})
0:51 Constant:
0:51 0 (const uint)
0:51 Function Call: getWorld( ( global 4-component vector of float)
0:38 Function Definition: getColor2( ( global 4-component vector of float)
0:38 Function Parameters:
0:40 Sequence
0:40 Branch: Return with expression
0:40 color2: direct index for structure (layout( column_major std140 offset=0) uniform 4-component vector of float)
0:40 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color2})
0:40 Constant:
0:40 0 (const uint)
0:43 Function Definition: getWorld( ( global 4-component vector of float)
0:43 Function Parameters:
0:45 Sequence
0:45 Branch: Return with expression
0:45 matrix-times-vector ( temp 4-component vector of float)
0:45 uWorld: direct index for structure (layout( column_major std140 offset=64) uniform 4X4 matrix of float)
0:45 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform 4X4 matrix of float uWorld})
0:45 Constant:
0:45 1 (const uint)
0:45 'P' ( in 4-component vector of float)
0:46 move second child to first child ( temp 4-component vector of float)
0:46 v2: direct index for structure ( out 4-component vector of float)
0:46 'anon@2' ( out block{ out 4-component vector of float v1, out 4-component vector of float v2})
0:46 Constant:
0:46 1 (const uint)
0:46 Constant:
0:46 1.000000
0:46 1.000000
0:46 1.000000
0:46 1.000000
0:? Linker Objects
0:? 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj})
0:? 'anon@1' (layout( column_major shared) buffer block{layout( column_major shared) buffer 4-component vector of float b})
0:? 'anon@2' ( out block{ out 4-component vector of float v1})
0:? 'myName' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float m})
0:? 'oColor' ( smooth out 4-component vector of float)
0:? 'anon@4' ( out block{ gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
0:? 'anon@0' (layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color2})
0:? 'P' ( in 4-component vector of float)