Merge pull request #2883 from greg-lunarg/link2

Enhance readability of error messages for GLSL
This commit is contained in:
Greg Fischer 2022-02-01 15:47:19 -07:00 committed by GitHub
commit 16e3b403aa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
56 changed files with 1055 additions and 374 deletions

View file

@ -627,7 +627,7 @@ ERROR: node is still EOpNull!
ERROR: 0:7: 'vertices' : inconsistent output number of vertices for array size of gl_out
ERROR: 0:11: 'vertices' : inconsistent output number of vertices for array size of a
ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size of outb
ERROR: 0:26: 'gl_PointSize' : no such field in structure
ERROR: 0:26: 'gl_PointSize' : no such field in structure 'gl_out'
ERROR: 0:26: 'assign' : cannot convert from ' temp float' to ' temp block{ out 4-component vector of float Position gl_Position}'
ERROR: 0:29: 'out' : type must be an array: outf
ERROR: 0:43: 'vertices' : must be greater than 0
@ -940,8 +940,9 @@ ERROR: Linking tessellation control stage: Multiple function bodies in multiple
main(
ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
main(
ERROR: Linking tessellation control stage: Types must match:
outa: " global 4-element array of int" versus " global 1-element array of int"
ERROR: Linking tessellation control and tessellation control stages: Array sizes must be compatible:
tessellation control stage: " int outa[4]"
tessellation control stage: " int outa[1]"
ERROR: Linking tessellation control stage: can't handle multiple entry points per stage
ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
main(
@ -951,8 +952,9 @@ ERROR: Linking tessellation control stage: Multiple function bodies in multiple
foo(
ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:
main(
ERROR: Linking tessellation control stage: Types must match:
gl_out: " out 4-element array of block{ out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out unsized 2-element array of float ClipDistance gl_ClipDistance}" versus " out 3-element array of block{ out 4-component vector of float Position gl_Position}"
ERROR: Linking tessellation control and tessellation control stages: tessellation control block member has no corresponding member in tessellation control block:
tessellation control stage: Block: gl_PerVertex, Member: gl_PointSize
tessellation control stage: Block: gl_PerVertex, Member: n/a
Linked tessellation evaluation stage:

View file

@ -6,7 +6,7 @@ ERROR: 0:43: 'EmitStreamVertex' : no matching overloaded function found
ERROR: 0:44: 'EndStreamPrimitive' : no matching overloaded function found
ERROR: 0:47: 'gl_ClipDistance' : undeclared identifier
ERROR: 0:47: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector
ERROR: 0:48: 'gl_ClipDistance' : no such field in structure
ERROR: 0:48: 'gl_ClipDistance' : no such field in structure 'gl_in'
ERROR: 0:48: 'expression' : left of '[' is not of type array, matrix, or vector
ERROR: 0:47: 'assign' : l-value required (can't modify a const)
ERROR: 0:55: 'selecting output stream' : not supported with this profile: es

View file

@ -6,12 +6,12 @@ ERROR: 0:12: 'patch' : can only use on output in tessellation-control shader
ERROR: 0:26: 'gl_PointSize' : required extension not requested: Possible extensions include:
GL_EXT_tessellation_point_size
GL_OES_tessellation_point_size
ERROR: 0:27: 'gl_ClipDistance' : no such field in structure
ERROR: 0:27: 'gl_ClipDistance' : no such field in structure 'gl_in'
ERROR: 0:27: 'expression' : left of '[' is not of type array, matrix, or vector
ERROR: 0:34: 'gl_PointSize' : required extension not requested: Possible extensions include:
GL_EXT_tessellation_point_size
GL_OES_tessellation_point_size
ERROR: 0:35: 'gl_ClipDistance' : no such field in structure
ERROR: 0:35: 'gl_ClipDistance' : no such field in structure 'gl_out'
ERROR: 0:35: 'expression' : left of '[' is not of type array, matrix, or vector
ERROR: 0:35: 'assign' : l-value required (can't modify a const)
ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control

View file

@ -10,7 +10,7 @@ ERROR: 0:26: 'barrier' : no matching overloaded function found
ERROR: 0:37: 'gl_PointSize' : required extension not requested: Possible extensions include:
GL_EXT_tessellation_point_size
GL_OES_tessellation_point_size
ERROR: 0:38: 'gl_ClipDistance' : no such field in structure
ERROR: 0:38: 'gl_ClipDistance' : no such field in structure 'gl_in'
ERROR: 0:38: 'expression' : left of '[' is not of type array, matrix, or vector
ERROR: 0:47: 'gl_PointSize' : required extension not requested: Possible extensions include:
GL_EXT_tessellation_point_size
@ -43,7 +43,7 @@ ERROR: 0:100: 'location' : overlapping use of location 24
ERROR: 0:103: 'location' : overlapping use of location 24
ERROR: 0:105: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved
ERROR: 0:113: 'sample' : Reserved word.
ERROR: 0:119: 'gl_PointSize' : no such field in structure
ERROR: 0:119: 'gl_PointSize' : no such field in structure 'gl_in'
ERROR: 0:119: '=' : cannot convert from ' temp block{ in highp 4-component vector of float Position gl_Position}' to ' temp highp float'
ERROR: 0:127: 'gl_BoundingBoxOES' : undeclared identifier
ERROR: 43 compilation errors. No code generated.

View file

@ -6,7 +6,7 @@ ERROR: 0:33: 'EmitStreamVertex' : no matching overloaded function found
ERROR: 0:34: 'EndStreamPrimitive' : no matching overloaded function found
ERROR: 0:37: 'gl_ClipDistance' : undeclared identifier
ERROR: 0:37: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector
ERROR: 0:38: 'gl_ClipDistance' : no such field in structure
ERROR: 0:38: 'gl_ClipDistance' : no such field in structure 'gl_in'
ERROR: 0:38: 'expression' : left of '[' is not of type array, matrix, or vector
ERROR: 0:37: 'assign' : l-value required (can't modify a const)
ERROR: 0:45: 'selecting output stream' : not supported with this profile: es

View file

@ -6,12 +6,12 @@ ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader
ERROR: 0:24: 'gl_PointSize' : required extension not requested: Possible extensions include:
GL_EXT_tessellation_point_size
GL_OES_tessellation_point_size
ERROR: 0:25: 'gl_ClipDistance' : no such field in structure
ERROR: 0:25: 'gl_ClipDistance' : no such field in structure 'gl_in'
ERROR: 0:25: 'expression' : left of '[' is not of type array, matrix, or vector
ERROR: 0:32: 'gl_PointSize' : required extension not requested: Possible extensions include:
GL_EXT_tessellation_point_size
GL_OES_tessellation_point_size
ERROR: 0:33: 'gl_ClipDistance' : no such field in structure
ERROR: 0:33: 'gl_ClipDistance' : no such field in structure 'gl_out'
ERROR: 0:33: 'expression' : left of '[' is not of type array, matrix, or vector
ERROR: 0:33: 'assign' : l-value required (can't modify a const)
ERROR: 0:39: '' : tessellation control barrier() cannot be placed within flow control

View file

@ -10,7 +10,7 @@ ERROR: 0:22: 'barrier' : no matching overloaded function found
ERROR: 0:33: 'gl_PointSize' : required extension not requested: Possible extensions include:
GL_EXT_tessellation_point_size
GL_OES_tessellation_point_size
ERROR: 0:34: 'gl_ClipDistance' : no such field in structure
ERROR: 0:34: 'gl_ClipDistance' : no such field in structure 'gl_in'
ERROR: 0:34: 'expression' : left of '[' is not of type array, matrix, or vector
ERROR: 0:43: 'gl_PointSize' : required extension not requested: Possible extensions include:
GL_EXT_tessellation_point_size

View file

@ -2,7 +2,7 @@
ERROR: 0:8: 'myIn' : cannot redeclare a built-in block with a user name
ERROR: 0:12: 'gl_myIn' : no declaration found for redeclaration
ERROR: 0:20: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use
ERROR: 0:32: 'gl_Position' : no such field in structure
ERROR: 0:32: 'gl_Position' : no such field in structure 'gl_in'
ERROR: 0:32: '=' : cannot convert from ' temp block{ in float PointSize gl_PointSize}' to ' temp 4-component vector of float'
ERROR: 0:33: 'gl_Position' : member of nameless block was not redeclared
ERROR: 0:33: 'assign' : l-value required "gl_PerVertex" (can't modify void)

View file

@ -2,7 +2,7 @@
ERROR: 0:7: 'vertices' : inconsistent output number of vertices for array size of gl_out
ERROR: 0:11: 'vertices' : inconsistent output number of vertices for array size of a
ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size of outb
ERROR: 0:26: 'gl_PointSize' : no such field in structure
ERROR: 0:26: 'gl_PointSize' : no such field in structure 'gl_out'
ERROR: 0:26: 'assign' : cannot convert from ' temp float' to ' temp block{ out 4-component vector of float Position gl_Position}'
ERROR: 0:29: 'out' : type must be an array: outf
ERROR: 0:43: 'vertices' : must be greater than 0

View file

@ -1,6 +1,6 @@
450.geom
ERROR: 0:15: '[' : array index out of range '3'
ERROR: 0:15: 'gl_Position' : no such field in structure
ERROR: 0:15: 'gl_Position' : no such field in structure 'gl_in'
ERROR: 0:19: 'points' : can only apply to a standalone qualifier
ERROR: 3 compilation errors. No code generated.

View file

@ -0,0 +1,6 @@
enhanced.0.frag
ERROR: enhanced.0.frag:7: ' vec4 constructor' : not enough data provided for construction
ERROR: 1 compilation errors. No code generated.
SPIR-V is not generated for failed compile or link

View file

@ -0,0 +1,6 @@
enhanced.1.frag
ERROR: enhanced.1.frag:9: 'v2' : no such field in structure 'vVert'
ERROR: 1 compilation errors. No code generated.
SPIR-V is not generated for failed compile or link

View file

@ -0,0 +1,6 @@
enhanced.2.frag
ERROR: enhanced.2.frag:5: ' vec3 constructor' : too many arguments
ERROR: 1 compilation errors. No code generated.
SPIR-V is not generated for failed compile or link

View file

@ -0,0 +1,8 @@
enhanced.3.vert
enhanced.3.frag
ERROR: Linking vertex and fragment stages: Member names and types must match:
Block: VS_OUT
vertex stage: " vec2 TexCoords"
fragment stage: " vec2 foobar"
SPIR-V is not generated for failed compile or link

View file

@ -0,0 +1,7 @@
enhanced.4.vert
enhanced.4.frag
ERROR: Linking vertex and fragment stages: Layout location qualifier must match:
vertex stage: Block: VS_OUT Instance: vs_out: "layout( location=0) out"
fragment stage: Block: VS_OUT Instance: fs_in: "layout( location=1) in"
SPIR-V is not generated for failed compile or link

View file

@ -0,0 +1,8 @@
enhanced.5.vert
enhanced.5.frag
ERROR: Linking vertex and fragment stages: Member names and types must match:
Block: VS_OUT
vertex stage: " vec2 TexCoords"
fragment stage: " vec3 TexCoords"
SPIR-V is not generated for failed compile or link

View file

@ -0,0 +1,7 @@
enhanced.6.vert
enhanced.6.frag
ERROR: Linking vertex and fragment stages: Array sizes must be compatible:
vertex stage: " VS_OUT{ vec2 TexCoords} vs_out[2]"
fragment stage: " VS_OUT{ vec2 TexCoords} fs_in[1]"
SPIR-V is not generated for failed compile or link

View file

@ -0,0 +1,7 @@
enhanced.7.vert
enhanced.7.frag
ERROR: Linking vertex and fragment stages: vertex block member has no corresponding member in fragment block:
vertex stage: Block: Vertex, Member: ii
fragment stage: Block: Vertex, Member: n/a
SPIR-V is not generated for failed compile or link

View file

@ -207,8 +207,9 @@ Linked geometry stage:
Linked fragment stage:
WARNING: Linking unknown stage stage: Matched shader interfaces are using different instance names.
blockName1: "layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b}" versus blockName2: "layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b}"
WARNING: Linking unknown stage and fragment stages: Matched shader interfaces are using different instance names.
unknown stage stage: Block: crossStageBlock2 Instance: blockName1: ""
fragment stage: Block: crossStageBlock2 Instance: blockName2: ""
Shader version: 460
0:? Sequence

View file

@ -133,8 +133,9 @@ Linked vertex stage:
Linked fragment stage:
WARNING: Linking unknown stage stage: Matched shader interfaces are using different instance names.
blockName1: "layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b}" versus blockName2: "layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b}"
WARNING: Linking unknown stage and fragment stages: Matched shader interfaces are using different instance names.
unknown stage stage: Block: crossStageBlock2 Instance: blockName1: ""
fragment stage: Block: crossStageBlock2 Instance: blockName2: ""
Shader version: 460
0:? Sequence

View file

@ -194,8 +194,9 @@ Linked geometry stage:
Linked fragment stage:
WARNING: Linking unknown stage stage: Matched shader interfaces are using different instance names.
blockName1: "layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}" versus blockName2: "layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}"
WARNING: Linking unknown stage and fragment stages: Matched shader interfaces are using different instance names.
unknown stage stage: Block: crossStageBlock2 Instance: blockName1: ""
fragment stage: Block: crossStageBlock2 Instance: blockName2: ""
Shader version: 460
0:? Sequence

View file

@ -92,15 +92,20 @@ Shader version: 430
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}"
ERROR: Linking vertex and vertex stages: vertex block member has no corresponding member in vertex block:
vertex stage: Block: Block, Member: uWorld
vertex stage: Block: Block, Member: n/a
ERROR: Linking vertex and vertex stages: vertex block member has no corresponding member in vertex block:
vertex stage: Block: Vertex, Member: v2
vertex stage: Block: Vertex, Member: n/a
ERROR: Linking vertex and vertex stages: Member names and types must match:
Block: BufferBlock
vertex stage: " vec4 b"
vertex stage: " vec4 a"
ERROR: Linking vertex and vertex stages: Matched Uniform or Storage blocks must all be anonymous, or all be named:
WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names.
vertex stage: Block: NamedBlock Instance: myName: ""
vertex stage: Block: NamedBlock Instance: anon@4: ""
Shader version: 430
ERROR: node is still EOpNull!

View file

@ -89,19 +89,35 @@ Shader version: 430
Linked vertex stage:
ERROR: Linking vertex stage: Types must match:
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
uC: "layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color1}" versus uColorB: "layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color2}"
ERROR: Linking vertex stage: Types must match:
ERROR: Linking vertex stage: Storage qualifiers must match:
ERROR: Linking vertex stage: Layout qualification must match:
uBufC: "layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer 4-component vector of float color1}" versus uColorB: "layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4-component vector of float color2}"
ERROR: Linking vertex stage: Types must match:
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
uD: "layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uProj}" versus uDefaultB: "layout( column_major std140) uniform block{layout( column_major std140 offset=0) uniform 4X4 matrix of float uWorld}"
ERROR: Linking vertex stage: Types must match:
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
oV: " out block{ out 4-component vector of float v1}" versus oVert: " out block{ out 4-component vector of float v2}"
ERROR: Linking vertex and vertex stages: Member names and types must match:
Block: ColorBlock
vertex stage: " vec4 color1"
vertex stage: " vec4 color2"
WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names.
vertex stage: Block: ColorBlock Instance: uC: ""
vertex stage: Block: ColorBlock Instance: uColorB: ""
ERROR: Linking vertex and vertex stages: Member names and types must match:
Block: ColorBlock
vertex stage: " vec4 color1"
vertex stage: " vec4 color2"
ERROR: Linking vertex and vertex stages: Storage qualifiers must match:
ERROR: Linking vertex and vertex stages: Layout packing qualifier must match:
vertex stage: Block: ColorBlock Instance: uBufC: "layout( column_major std430) buffer"
vertex stage: Block: ColorBlock Instance: uColorB: "layout( column_major std140) uniform"
ERROR: Linking vertex and vertex stages: Member names and types must match:
Block: Block
vertex stage: " mat4x4 uProj"
vertex stage: " mat4x4 uWorld"
WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names.
vertex stage: Block: Block Instance: uD: ""
vertex stage: Block: Block Instance: uDefaultB: ""
ERROR: Linking vertex and vertex stages: Member names and types must match:
Block: Vertex
vertex stage: " vec4 v1"
vertex stage: " vec4 v2"
WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names.
vertex stage: Block: Vertex Instance: oV: ""
vertex stage: Block: Vertex Instance: oVert: ""
Shader version: 430
0:? Sequence

View file

@ -83,12 +83,15 @@ Shader version: 430
Linked vertex stage:
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
c: "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}" versus a: "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}"
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
a: "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}" versus b: "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}"
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
b: " out block{ out 4-component vector of float v1, out 4-component vector of float v2}" versus c: " out block{ out 4-component vector of float v1, out 4-component vector of float v2}"
WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names.
vertex stage: Block: ColorBlock Instance: c: ""
vertex stage: Block: ColorBlock Instance: a: ""
WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names.
vertex stage: Block: Block Instance: a: ""
vertex stage: Block: Block Instance: b: ""
WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names.
vertex stage: Block: Vertex Instance: b: ""
vertex stage: Block: Vertex Instance: c: ""
Shader version: 430
0:? Sequence

View file

@ -52,8 +52,10 @@ gl_FragCoord origin is upper left
Linked fragment stage:
ERROR: Linking fragment stage: Types must match:
uPC: "layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}" versus "layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale2}"
ERROR: Linking fragment and fragment stages: Member names and types must match:
Block: PushConstantBlock
fragment stage: " float scale"
fragment stage: " float scale2"
Shader version: 450
gl_FragCoord origin is upper left

View file

@ -52,10 +52,12 @@ gl_FragCoord origin is upper left
Linked fragment stage:
ERROR: Linking fragment stage: Types must match:
uPC: "layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale, layout( column_major std430 offset=36) uniform highp float scale2}" versus "layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}"
ERROR: Linking fragment stage: Types must match:
uPC: "layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale, layout( column_major std430 offset=36) uniform highp float scale2}" versus "layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale}"
ERROR: Linking fragment and fragment stages: fragment block member has no corresponding member in fragment block:
fragment stage: Block: PushConstantBlock, Member: scale2
fragment stage: Block: PushConstantBlock, Member: n/a
ERROR: Linking fragment and fragment stages: fragment block member has no corresponding member in fragment block:
fragment stage: Block: PushConstantBlock, Member: scale2
fragment stage: Block: PushConstantBlock, Member: n/a
Shader version: 450
gl_FragCoord origin is upper left

View file

@ -87,14 +87,18 @@ Shader version: 430
Linked vertex stage:
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
uC: "layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}" versus uColor: "layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}"
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
uBuf: "layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4X4 matrix of float p}" versus uBuffer: "layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4X4 matrix of float p}"
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
uM: "layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld}" versus uMatrix: "layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld}"
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
oV: " out block{ out highp 4-component vector of float v1, out highp 4-component vector of float v2}" versus anon@0: " out block{ out highp 4-component vector of float v1, out highp 4-component vector of float v2}"
WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names.
vertex stage: Block: ColorBlock Instance: uC: ""
vertex stage: Block: ColorBlock Instance: uColor: ""
WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names.
vertex stage: Block: BufferBlock Instance: uBuf: ""
vertex stage: Block: BufferBlock Instance: uBuffer: ""
WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names.
vertex stage: Block: MatrixBlock Instance: uM: ""
vertex stage: Block: MatrixBlock Instance: uMatrix: ""
WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names.
vertex stage: Block: Vertex Instance: oV: ""
vertex stage: Block: Vertex Instance: anon@0: ""
Shader version: 430
0:? Sequence

View file

@ -131,16 +131,21 @@ output primitive = triangle_strip
Linked geometry stage:
WARNING: Linking geometry stage: Matched shader interfaces are using different instance names.
uC: "layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}" versus uColor: "layout( binding=1 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4-component vector of float color1, layout( column_major std140 offset=16) uniform bool b, layout( column_major std140 offset=32) uniform highp 4-component vector of float color2, layout( column_major std140 offset=48) uniform highp 4-component vector of float color3}"
WARNING: Linking geometry stage: Matched shader interfaces are using different instance names.
uBuf: "layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4X4 matrix of float p}" versus uBuffer: "layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer highp 4X4 matrix of float p}"
WARNING: Linking geometry stage: Matched shader interfaces are using different instance names.
uM: "layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld}" versus uMatrix: "layout( binding=0 column_major std140) uniform block{layout( column_major std140 offset=0) uniform highp 4X4 matrix of float uProj, layout( column_major std140 offset=64) uniform highp 4X4 matrix of float uWorld}"
WARNING: Linking geometry stage: Matched shader interfaces are using different instance names.
oV: "layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float val1}" versus anon@0: "layout( stream=0) out block{layout( stream=0) out highp 4-component vector of float val1}"
WARNING: Linking geometry stage: Matched shader interfaces are using different instance names.
iV: " in 3-element array of block{ in highp 4-component vector of float v1, in highp 4-component vector of float v2}" versus iVV: " in 3-element array of block{ in highp 4-component vector of float v1, in highp 4-component vector of float v2}"
WARNING: Linking geometry and geometry stages: Matched shader interfaces are using different instance names.
geometry stage: Block: ColorBlock Instance: uC: ""
geometry stage: Block: ColorBlock Instance: uColor: ""
WARNING: Linking geometry and geometry stages: Matched shader interfaces are using different instance names.
geometry stage: Block: BufferBlock Instance: uBuf: ""
geometry stage: Block: BufferBlock Instance: uBuffer: ""
WARNING: Linking geometry and geometry stages: Matched shader interfaces are using different instance names.
geometry stage: Block: MatrixBlock Instance: uM: ""
geometry stage: Block: MatrixBlock Instance: uMatrix: ""
WARNING: Linking geometry and geometry stages: Matched shader interfaces are using different instance names.
geometry stage: Block: Vertex Instance: oV: ""
geometry stage: Block: Vertex Instance: anon@0: ""
WARNING: Linking geometry and geometry stages: Matched shader interfaces are using different instance names.
geometry stage: Block: Vertex Instance: iV: ""
geometry stage: Block: Vertex Instance: iVV: ""
Shader version: 430
invocations = 1

View file

@ -56,8 +56,9 @@ Shader version: 450
Linked vertex stage:
WARNING: Linking vertex stage: Matched shader interfaces are using different instance names.
a: "layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}" versus b: "layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4X4 matrix of float uWorld, layout( column_major std430 offset=64) uniform highp 4X4 matrix of float uProj, layout( column_major std430 offset=128) uniform highp 4-component vector of float color1, layout( column_major std430 offset=144) uniform highp 4-component vector of float color2}"
WARNING: Linking vertex and vertex stages: Matched shader interfaces are using different instance names.
vertex stage: Block: PCBlock Instance: a: ""
vertex stage: Block: PCBlock Instance: b: ""
Shader version: 450
0:? Sequence

9
Test/enhanced.0.frag Normal file
View file

@ -0,0 +1,9 @@
#version 450
in vec3 v;
void main()
{
vec4 color = vec4(v);
}

11
Test/enhanced.1.frag Normal file
View file

@ -0,0 +1,11 @@
#version 450
in Vertex {
vec4 v;
} vVert;
void main()
{
vec4 color = vec4(vVert.v2.rgb, 1.0);
}

7
Test/enhanced.2.frag Normal file
View file

@ -0,0 +1,7 @@
#version 450
void main()
{
vec3 color = vec3(0.0,0.0,0.0,1.0);
}

16
Test/enhanced.3.frag Normal file
View file

@ -0,0 +1,16 @@
#version 450 core
layout (location = 0) out vec4 FragColor;
layout (location = 0) in VS_OUT
{
vec2 foobar;
} fs_in;
layout (binding = 1) uniform sampler2D t0;
void main()
{
FragColor = texture(t0, fs_in.foobar);
}

22
Test/enhanced.3.vert Normal file
View file

@ -0,0 +1,22 @@
#version 450 core
layout (location = 0) in vec3 aPos;
layout (location = 1) in vec2 aTexCoords;
layout (binding = 0) uniform anonblock {
mat4 model;
mat4 view;
mat4 projection;
} ;
layout (location = 0) out VS_OUT
{
vec2 TexCoords;
} vs_out;
void main()
{
gl_Position = projection * view * model * vec4(aPos, 1.0);
vs_out.TexCoords = aTexCoords;
}

16
Test/enhanced.4.frag Normal file
View file

@ -0,0 +1,16 @@
#version 450 core
layout (location = 0) out vec4 FragColor;
layout (location = 1) in VS_OUT
{
vec2 TexCoords;
} fs_in;
layout (binding = 1) uniform sampler2D t0;
void main()
{
FragColor = texture(t0, fs_in.TexCoords);
}

22
Test/enhanced.4.vert Normal file
View file

@ -0,0 +1,22 @@
#version 450 core
layout (location = 0) in vec3 aPos;
layout (location = 1) in vec2 aTexCoords;
layout (binding = 0) uniform anonblock {
mat4 model;
mat4 view;
mat4 projection;
} ;
layout (location = 0) out VS_OUT
{
vec2 TexCoords;
} vs_out;
void main()
{
gl_Position = projection * view * model * vec4(aPos, 1.0);
vs_out.TexCoords = aTexCoords;
}

16
Test/enhanced.5.frag Normal file
View file

@ -0,0 +1,16 @@
#version 450 core
layout (location = 0) out vec4 FragColor;
layout (location = 0) in VS_OUT
{
vec3 TexCoords;
} fs_in;
layout (binding = 1) uniform sampler2D t0;
void main()
{
FragColor = texture(t0, fs_in.TexCoords.xy);
}

22
Test/enhanced.5.vert Normal file
View file

@ -0,0 +1,22 @@
#version 450 core
layout (location = 0) in vec3 aPos;
layout (location = 1) in vec2 aTexCoords;
layout (binding = 0) uniform anonblock {
mat4 model;
mat4 view;
mat4 projection;
} ;
layout (location = 0) out VS_OUT
{
vec2 TexCoords;
} vs_out;
void main()
{
gl_Position = projection * view * model * vec4(aPos, 1.0);
vs_out.TexCoords = aTexCoords;
}

16
Test/enhanced.6.frag Normal file
View file

@ -0,0 +1,16 @@
#version 450 core
layout (location = 0) out vec4 FragColor;
layout (location = 0) in VS_OUT
{
vec2 TexCoords;
} fs_in[1];
layout (binding = 1) uniform sampler2D t0;
void main()
{
FragColor = texture(t0, fs_in[0].TexCoords);
}

22
Test/enhanced.6.vert Normal file
View file

@ -0,0 +1,22 @@
#version 450 core
layout (location = 0) in vec3 aPos;
layout (location = 1) in vec2 aTexCoords;
layout (binding = 0) uniform anonblock {
mat4 model;
mat4 view;
mat4 projection;
} ;
layout (location = 0) out VS_OUT
{
vec2 TexCoords;
} vs_out[2];
void main()
{
gl_Position = projection * view * model * vec4(aPos, 1.0);
vs_out[0].TexCoords = aTexCoords;
}

20
Test/enhanced.7.frag Normal file
View file

@ -0,0 +1,20 @@
#version 450 core
layout (location = 0) out vec4 FragColor;
layout (location = 0) in Vertex
{
vec4 color;
vec3 worldSpacePos;
vec3 worldSpaceNorm;
vec2 texCoord1;
flat int cameraIndex;
} fs_in;
layout (binding = 1) uniform sampler2D t0;
void main()
{
FragColor = texture(t0, fs_in.texCoord1);
}

27
Test/enhanced.7.vert Normal file
View file

@ -0,0 +1,27 @@
#version 450 core
layout (location = 0) in vec3 aPos;
layout (location = 1) in vec2 aTexCoords;
layout (binding = 0) uniform anonblock {
mat4 model;
mat4 view;
mat4 projection;
} ;
layout (location = 0) out Vertex
{
vec4 color;
vec3 worldSpacePos;
vec3 worldSpaceNorm;
vec2 texCoord1;
flat int cameraIndex;
float ii;
} vs_out;
void main()
{
gl_Position = projection * view * model * vec4(aPos, 1.0);
vs_out.texCoord1 = aTexCoords;
}

View file

@ -298,6 +298,28 @@ diff -b $BASEDIR/hlsl.autosampledtextures.frag.out $TARGETDIR/hlsl.autosampledte
run --auto-sampled-textures -H -Od -S frag glsl.autosampledtextures.frag > $TARGETDIR/glsl.autosampledtextures.frag.out
diff -b $BASEDIR/glsl.autosampledtextures.frag.out $TARGETDIR/glsl.autosampledtextures.frag.out || HASERROR=1
#
# Test --enhanced-msgs
#
echo "Testing enhanced-msgs"
run --enhanced-msgs -V --target-env vulkan1.2 --amb --aml enhanced.0.frag > $TARGETDIR/enhanced.0.frag.out
diff -b $BASEDIR/enhanced.0.frag.out $TARGETDIR/enhanced.0.frag.out || HASERROR=1
run --enhanced-msgs -V --target-env vulkan1.2 --amb --aml enhanced.1.frag > $TARGETDIR/enhanced.1.frag.out
diff -b $BASEDIR/enhanced.1.frag.out $TARGETDIR/enhanced.1.frag.out || HASERROR=1
run --enhanced-msgs -V --target-env vulkan1.2 --amb --aml enhanced.2.frag > $TARGETDIR/enhanced.2.frag.out
diff -b $BASEDIR/enhanced.2.frag.out $TARGETDIR/enhanced.2.frag.out || HASERROR=1
run --enhanced-msgs -V --target-env vulkan1.2 --amb --aml enhanced.3.vert enhanced.3.frag > $TARGETDIR/enhanced.3.link.out
diff -b $BASEDIR/enhanced.3.link.out $TARGETDIR/enhanced.3.link.out || HASERROR=1
run --enhanced-msgs -V --target-env vulkan1.2 --amb --aml enhanced.4.vert enhanced.4.frag > $TARGETDIR/enhanced.4.link.out
diff -b $BASEDIR/enhanced.4.link.out $TARGETDIR/enhanced.4.link.out || HASERROR=1
run --enhanced-msgs -V --target-env vulkan1.2 --amb --aml enhanced.5.vert enhanced.5.frag > $TARGETDIR/enhanced.5.link.out
diff -b $BASEDIR/enhanced.5.link.out $TARGETDIR/enhanced.5.link.out || HASERROR=1
run --enhanced-msgs -V --target-env vulkan1.2 --amb --aml enhanced.6.vert enhanced.6.frag > $TARGETDIR/enhanced.6.link.out
diff -b $BASEDIR/enhanced.6.link.out $TARGETDIR/enhanced.6.link.out || HASERROR=1
run --enhanced-msgs -V --target-env vulkan1.2 --amb --aml enhanced.7.vert enhanced.7.frag > $TARGETDIR/enhanced.7.link.out
diff -b $BASEDIR/enhanced.7.link.out $TARGETDIR/enhanced.7.link.out || HASERROR=1
#
# Final checking
#