Enhance readability of error messages for GLSL

Specifically, make GLSL link error messages more specific and output
only information relevant to the error.

Also change type printing to more closely reflect GLSL syntax. This
is the default for link error messages, but must me enabled with the
new option --enhanced-msgs for compilation error messages.

Also with --enhanced-msgs, only emit one error message per source
line.
This commit is contained in:
Greg Fischer
2021-12-30 11:56:57 -07:00
parent c34bb3b6c5
commit ca0d54d51b
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
#