Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shader interface matching rework to fix #2136 #2156

Merged
merged 7 commits into from
Apr 2, 2020
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
177 changes: 177 additions & 0 deletions Test/baseResults/link.multiAnonBlocksInvalid.0.0.vert.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
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)

Loading