diff --git a/Test/150.frag b/Test/150.frag index fb15a00f..d4d44881 100644 --- a/Test/150.frag +++ b/Test/150.frag @@ -11,4 +11,4 @@ void main() vec4 c = gl_FragCoord; } -layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; +layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, declared after use diff --git a/Test/150.vert b/Test/150.vert index cc7642c0..68a996e3 100644 --- a/Test/150.vert +++ b/Test/150.vert @@ -11,6 +11,7 @@ void main() gl_Position = iv4; gl_PointSize = ps; gl_ClipDistance[2] = iv4.x; + gl_ClipVertex = iv4; } float gl_ClipDistance[4]; diff --git a/Test/330.frag b/Test/330.frag index c96cf40b..26b98daa 100644 --- a/Test/330.frag +++ b/Test/330.frag @@ -7,8 +7,8 @@ varying vec4 varyingVar; void main() { - gl_FragColor = varyingVar; - gl_FragData[1] = inVar; + gl_FragColor = varyingVar; // link ERROR: user output was used + gl_FragData[1] = inVar; // link ERROR: user output was used int buffer = 4; } @@ -21,4 +21,5 @@ in gl_PerFragment { void foo() { vec4 c = gl_Color; + outVar = inVar; } diff --git a/Test/400.frag b/Test/400.frag index 82cd3ab0..bce9d88c 100644 --- a/Test/400.frag +++ b/Test/400.frag @@ -38,4 +38,4 @@ layout(location = 3) uniform vec3 uv3; layout(location = 5) in vec4 gl_Color; // ERROR, layout noperspective in float gl_ClipDistance[4]; // ERROR, can't change qualifier -layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; +layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, declared after use diff --git a/Test/baseResults/100.frag.out b/Test/baseResults/100.frag.out index 9a5c37e5..fa772618 100644 --- a/Test/baseResults/100.frag.out +++ b/Test/baseResults/100.frag.out @@ -1,3 +1,4 @@ +100.frag ERROR: 0:3: '{ } style initializers' : not supported with this profile: es ERROR: 0:3: 'initializer' : not supported for this version or the enabled extensions ERROR: 0:3: 'array initializer' : not supported for this version or the enabled extensions @@ -63,6 +64,7 @@ ERROR: 0:150: 'floating-point suffix' : not supported for this version or the en ERROR: 0:152: '' : syntax error ERROR: 56 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:3 Sequence 0:3 move second child to first child (3-element array of mediump int) @@ -280,3 +282,8 @@ ERROR: node is still EOpNull! 0:? 'f123' (mediump float) 0:? 'f124' (mediump float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/100Limits.vert.out b/Test/baseResults/100Limits.vert.out index e8a297b6..e561fcc4 100644 --- a/Test/baseResults/100Limits.vert.out +++ b/Test/baseResults/100Limits.vert.out @@ -1,3 +1,5 @@ +100Limits.vert + 0:? Sequence 0:15 Function Definition: foo(f1; (void) 0:15 Function Parameters: @@ -439,3 +441,8 @@ 0:? 2.000000 0:? 2.000000 + +Linked vertex stage: + + + diff --git a/Test/baseResults/100scope.vert.out b/Test/baseResults/100scope.vert.out index 4b948e33..02f1ad41 100644 --- a/Test/baseResults/100scope.vert.out +++ b/Test/baseResults/100scope.vert.out @@ -1,3 +1,4 @@ +100scope.vert ERROR: 0:5: 'a' : redefinition ERROR: 0:17: 'b' : redeclaration of existing name ERROR: 0:19: 'f' : redefinition @@ -8,6 +9,7 @@ ERROR: 0:54: 'z' : undeclared identifier ERROR: 0:54: 'z' : redefinition ERROR: 8 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:3 Function Definition: f(i1;i1;i1; (highp int) 0:3 Function Parameters: @@ -111,3 +113,8 @@ ERROR: node is still EOpNull! 0:? 'b' (bool) 0:? 'tan' (highp float) + +Linked vertex stage: + + + diff --git a/Test/baseResults/120.frag.out b/Test/baseResults/120.frag.out index 3b8bd701..10c70363 100644 --- a/Test/baseResults/120.frag.out +++ b/Test/baseResults/120.frag.out @@ -1,3 +1,4 @@ +120.frag ERROR: 0:9: 'in for stage inputs' : not supported for this version or the enabled extensions ERROR: 0:10: 'out for stage outputs' : not supported for this version or the enabled extensions ERROR: 0:54: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type '2-component vector of float' and a right operand of type '3-component vector of float' (or there is no acceptable conversion) @@ -31,6 +32,7 @@ ERROR: 0:115: 'return' : void function cannot return a value ERROR: 0:125: 'gl_TexCoord' : redeclaration of array with size ERROR: 31 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:21 Function Definition: main( (void) 0:21 Function Parameters: @@ -317,3 +319,10 @@ ERROR: node is still EOpNull! 0:? 'a' (int) 0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float) + +Linked fragment stage: + +ERROR: Linking fragment stage: Recursion detected: + foo(f1; calling foo(f1; + + diff --git a/Test/baseResults/120.vert.out b/Test/baseResults/120.vert.out index 5175d5bb..790bb6d2 100644 --- a/Test/baseResults/120.vert.out +++ b/Test/baseResults/120.vert.out @@ -1,3 +1,4 @@ +120.vert ERROR: 0:3: 'in for stage inputs' : not supported for this version or the enabled extensions ERROR: 0:4: 'out for stage outputs' : not supported for this version or the enabled extensions ERROR: 0:11: 'gl_Position' : cannot add storage, auxiliary, memory, interpolation, or precision qualifier to an existing variable @@ -44,6 +45,7 @@ ERROR: 0:111: 'overloadE' : no matching overloaded function found ERROR: 0:117: 'overloadF' : no matching overloaded function found ERROR: 44 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:15 Function Definition: main( (void) 0:15 Function Parameters: @@ -200,3 +202,8 @@ ERROR: node is still EOpNull! 0:? 'concall' (const float) 0:? 0.295520 + +Linked vertex stage: + + + diff --git a/Test/baseResults/130.frag.out b/Test/baseResults/130.frag.out index 203c9730..ae0773b4 100644 --- a/Test/baseResults/130.frag.out +++ b/Test/baseResults/130.frag.out @@ -1,3 +1,4 @@ +130.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. ERROR: 0:25: 'texture gather function' : not supported for this version or the enabled extensions ERROR: 0:35: 'redeclaration' : cannot change the type of gl_Color @@ -9,6 +10,7 @@ ERROR: 0:63: '>' : wrong operand types: no operation '>' exists that takes a le ERROR: 0:64: '>=' : wrong operand types: no operation '>=' exists that takes a left-hand operand of type 'const 2-component vector of uint' and a right operand of type 'const 2-component vector of uint' (or there is no acceptable conversion) ERROR: 7 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:16 Function Definition: main( (void) 0:16 Function Parameters: @@ -105,3 +107,8 @@ ERROR: node is still EOpNull! 0:? 'gl_Color' (smooth in 4-component vector of float) 0:? 'gl_Color' (flat in 4-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/140.frag.out b/Test/baseResults/140.frag.out index d548dd09..4e963ee7 100644 --- a/Test/baseResults/140.frag.out +++ b/Test/baseResults/140.frag.out @@ -1,8 +1,10 @@ +140.frag Warning, version 140 is not yet complete; most features are present, but a few are missing. WARNING: 0:3: varying deprecated in version 130; may be removed in future release ERROR: 0:17: '#error' : GL_ES is not set ERROR: 1 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:10 Function Definition: main( (void) 0:10 Function Parameters: @@ -21,3 +23,8 @@ ERROR: node is still EOpNull! 0:? 'gl_ClipDistance' (smooth in 5-element array of float) 0:? 'gl_ClipDistance' (smooth in 5-element array of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/150.frag.out b/Test/baseResults/150.frag.out index 9d98ddfa..398e38a1 100644 --- a/Test/baseResults/150.frag.out +++ b/Test/baseResults/150.frag.out @@ -1,8 +1,11 @@ +150.frag Warning, version 150 is not yet complete; some version-specific features are present, but many are missing. ERROR: 0:4: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord ERROR: 0:5: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord ERROR: 0:6: 'layout qualifier' : can only apply origin_upper_left and pixel_center_origin to gl_FragCoord -ERROR: 3 compilation errors. No code generated. +ERROR: 0:14: 'gl_FragCoord' : cannot redeclare after use +ERROR: 4 compilation errors. No code generated. + gl_FragCoord pixel center is integer gl_FragCoord origin is upper left @@ -19,3 +22,8 @@ ERROR: node is still EOpNull! 0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float) 0:? 'foo' (smooth in 4-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/150.geom.out b/Test/baseResults/150.geom.out index 9ae6fa73..1fb55894 100644 --- a/Test/baseResults/150.geom.out +++ b/Test/baseResults/150.geom.out @@ -1,3 +1,4 @@ +150.geom Warning, version 150 is not yet complete; some version-specific features are present, but many are missing. ERROR: 0:15: 'fromVertex' : block instance name redefinition ERROR: 0:19: 'fromVertex' : redefinition @@ -29,6 +30,7 @@ ERROR: 0:88: 'invocations' : not supported for this version or the enabled exten ERROR: 0:91: 'stream' : member cannot contradict block ERROR: 28 compilation errors. No code generated. + invocations = 4 max_vertices = 127 input primitive = lines_adjancency @@ -139,3 +141,8 @@ ERROR: node is still EOpNull! 0:? '__anon__3' (layout(stream=3 ) out block{f15}) 0:? '__anon__4' (layout(column_major shared ) uniform block{b15}) + +Linked geometry stage: + + + diff --git a/Test/baseResults/150.vert.out b/Test/baseResults/150.vert.out index b9d96995..306c8a33 100644 --- a/Test/baseResults/150.vert.out +++ b/Test/baseResults/150.vert.out @@ -1,7 +1,9 @@ +150.vert Warning, version 150 is not yet complete; some version-specific features are present, but many are missing. -ERROR: 0:21: 'a' : cannot redeclare a user-block member array +ERROR: 0:22: 'a' : cannot redeclare a user-block member array ERROR: 1 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:9 Function Definition: main( (void) 0:9 Function Parameters: @@ -30,6 +32,12 @@ ERROR: node is still EOpNull! 0:13 'iv4' (in 4-component vector of float) 0:13 Constant: 0:13 0 (const int) +0:14 move second child to first child (4-component vector of float) +0:14 gl_ClipVertex: direct index for structure (gl_ClipVertex 4-component vector of float) +0:14 '__anon__0' (out block{gl_Position,gl_PointSize,gl_ClipDistance,gl_ClipVertex,gl_FrontColor,gl_BackColor,gl_FrontSecondaryColor,gl_BackSecondaryColor,gl_TexCoord,gl_FogFragCoord}) +0:14 Constant: +0:14 3 (const uint) +0:14 'iv4' (in 4-component vector of float) 0:? Linker Objects 0:? 'iv4' (in 4-component vector of float) 0:? 'ps' (uniform float) @@ -37,3 +45,9 @@ ERROR: node is still EOpNull! 0:? 'gl_VertexID' (gl_VertexId int) 0:? 'gl_InstanceID' (gl_InstanceId int) + +Linked vertex stage: + +ERROR: Linking vertex stage: Can only use one of gl_ClipDistance or gl_ClipVertex (gl_ClipDistance is preferred) + + diff --git a/Test/baseResults/300.frag.out b/Test/baseResults/300.frag.out index 622033d0..837afa88 100644 --- a/Test/baseResults/300.frag.out +++ b/Test/baseResults/300.frag.out @@ -1,3 +1,4 @@ +300.frag ERROR: 0:30: 'noperspective' : Reserved word. ERROR: 0:30: 'noperspective' : not supported with this profile: es ERROR: 0:31: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: bads @@ -28,6 +29,7 @@ ERROR: 0:126: 'imageBuffer' : Reserved word. ERROR: 0:126: '' : syntax error ERROR: 28 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:53 Function Definition: main( (void) 0:53 Function Parameters: @@ -289,3 +291,9 @@ ERROR: node is still EOpNull! 0:? 'st1' (uniform structure{i,s}) 0:? 'st2' (uniform structure{i,s}) + +Linked fragment stage: + +ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers + + diff --git a/Test/baseResults/300.vert.out b/Test/baseResults/300.vert.out index d27382d0..4e113b27 100644 --- a/Test/baseResults/300.vert.out +++ b/Test/baseResults/300.vert.out @@ -1,3 +1,4 @@ +300.vert ERROR: 0:8: 'varying' : Reserved word. ERROR: 0:8: 'varying' : no longer supported in es profile; removed in version 300 ERROR: 0:9: 'vertex input arrays' : not supported with this profile: es @@ -18,12 +19,14 @@ ERROR: 0:63: '' : array size required ERROR: 0:65: '' : array size required ERROR: 0:64: '' : array size required ERROR: 0:67: '' : array size required +ERROR: 0:76: 'invariant' : cannot change qualification after use ERROR: 0:78: 'invariant' : can only apply to an output: invIn ERROR: 0:88: 'ub2' : Cannot reuse block name within the same interface: uniform ERROR: 0:92: 'ub2' : Cannot reuse block name within the same interface: uniform ERROR: 0:96: 'ub2' : Cannot reuse block name within the same interface: uniform ERROR: 0:104: 'ub3' : Cannot reuse block name within the same interface: uniform -ERROR: 25 compilation errors. No code generated. +ERROR: 26 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:27 Function Definition: main( (void) @@ -175,3 +178,8 @@ ERROR: node is still EOpNull! 0:? 'gl_VertexID' (gl_VertexId highp int) 0:? 'gl_InstanceID' (gl_InstanceId highp int) + +Linked vertex stage: + + + diff --git a/Test/baseResults/300BuiltIns.frag.out b/Test/baseResults/300BuiltIns.frag.out index bababafd..650d6228 100644 --- a/Test/baseResults/300BuiltIns.frag.out +++ b/Test/baseResults/300BuiltIns.frag.out @@ -1,7 +1,9 @@ +300BuiltIns.frag ERROR: 0:6: 'float' : type requires declaration of default precision qualifier ERROR: 0:70: 'noise2' : no matching overloaded function found ERROR: 2 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:26 Function Definition: main( (void) 0:26 Function Parameters: @@ -204,3 +206,8 @@ ERROR: node is still EOpNull! 0:? 'v2b' (mediump 2-component vector of float) 0:? 'v4' (mediump 4-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/300block.frag.out b/Test/baseResults/300block.frag.out index 6f2e670f..7edaf560 100644 --- a/Test/baseResults/300block.frag.out +++ b/Test/baseResults/300block.frag.out @@ -1,9 +1,11 @@ +300block.frag ERROR: 0:10: '' : cannot nest a structure definition inside a structure or block ERROR: 0:21: '' : cannot nest a structure definition inside a structure or block ERROR: 0:20: 'sampler' : member of block cannot be a sampler type ERROR: 0:45: 'variable indexing block array' : not supported with this profile: es ERROR: 4 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:42 Function Definition: main( (void) 0:42 Function Parameters: @@ -54,3 +56,8 @@ ERROR: node is still EOpNull! 0:? 'insts' (layout(column_major shared ) uniform 4-element array of block{nbv,ni}) 0:? '__anon__1' (layout(column_major shared ) uniform block{f,u}) + +Linked fragment stage: + + + diff --git a/Test/baseResults/300layout.frag.out b/Test/baseResults/300layout.frag.out index 2992d2e2..95d35963 100644 --- a/Test/baseResults/300layout.frag.out +++ b/Test/baseResults/300layout.frag.out @@ -1,6 +1,8 @@ +300layout.frag ERROR: 0:4: 'location qualifier on input' : not supported in this stage: fragment ERROR: 1 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:10 Function Definition: main( (void) 0:10 Function Parameters: @@ -24,3 +26,8 @@ ERROR: node is still EOpNull! 0:? 'p' (layout(location=3 ) out mediump 4-component vector of float) 0:? 'q' (layout(location=4 ) out 2-element array of mediump 4-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/300layout.vert.out b/Test/baseResults/300layout.vert.out index 445e7947..0505fb56 100644 --- a/Test/baseResults/300layout.vert.out +++ b/Test/baseResults/300layout.vert.out @@ -1,3 +1,4 @@ +300layout.vert ERROR: 0:7: 'vertex input arrays' : not supported with this profile: es ERROR: 0:8: 'in' : cannot be a structure or array ERROR: 0:8: 'vertex input arrays' : not supported with this profile: es @@ -12,6 +13,7 @@ ERROR: 0:47: 'shared' : not supported with this profile: es ERROR: 0:47: 'shared' : not supported in this stage: vertex ERROR: 12 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:41 Function Definition: main( (void) 0:41 Function Parameters: @@ -68,3 +70,8 @@ ERROR: node is still EOpNull! 0:? 'gl_VertexID' (gl_VertexId highp int) 0:? 'gl_InstanceID' (gl_InstanceId highp int) + +Linked vertex stage: + + + diff --git a/Test/baseResults/300operations.frag.out b/Test/baseResults/300operations.frag.out index db033f1a..0657e3d5 100644 --- a/Test/baseResults/300operations.frag.out +++ b/Test/baseResults/300operations.frag.out @@ -1,3 +1,4 @@ +300operations.frag ERROR: 0:11: 'float' : type requires declaration of default precision qualifier ERROR: 0:30: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout(column_major shared ) uniform block{f}' and a right operand of type 'layout(column_major shared ) uniform block{f}' (or there is no acceptable conversion) ERROR: 0:31: '+' : wrong operand types: no operation '+' exists that takes a left-hand operand of type 'structure{i}' and a right operand of type 'structure{i}' (or there is no acceptable conversion) @@ -56,6 +57,7 @@ ERROR: 0:89: '^' : wrong operand types: no operation '^' exists that takes a le ERROR: 0:90: 'assign' : l-value required ERROR: 56 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:13 Function Definition: main( (void) 0:13 Function Parameters: @@ -233,3 +235,8 @@ ERROR: node is still EOpNull! 0:? 's' (structure{i}) 0:? 'a' (5-element array of mediump float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/300scope.vert.out b/Test/baseResults/300scope.vert.out index 455cd327..aa7f37e4 100644 --- a/Test/baseResults/300scope.vert.out +++ b/Test/baseResults/300scope.vert.out @@ -1,3 +1,4 @@ +300scope.vert ERROR: 0:5: 'a' : redefinition ERROR: 0:17: 'b' : redeclaration of existing name ERROR: 0:19: 'f' : redefinition @@ -16,6 +17,7 @@ ERROR: 0:54: 'z' : undeclared identifier ERROR: 0:54: 'z' : redefinition ERROR: 16 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:3 Function Definition: f(i1;i1;i1; (highp int) 0:3 Function Parameters: @@ -120,3 +122,8 @@ ERROR: node is still EOpNull! 0:? 'gl_VertexID' (gl_VertexId highp int) 0:? 'gl_InstanceID' (gl_InstanceId highp int) + +Linked vertex stage: + + + diff --git a/Test/baseResults/330.frag.out b/Test/baseResults/330.frag.out index 6de5fef5..0e7ce4dd 100644 --- a/Test/baseResults/330.frag.out +++ b/Test/baseResults/330.frag.out @@ -1,4 +1,6 @@ +330.frag Warning, version 330 is not yet complete; some version-specific features are present, but many are missing. + 0:? Sequence 0:8 Function Definition: main( (void) 0:8 Function Parameters: @@ -27,9 +29,19 @@ Warning, version 330 is not yet complete; some version-specific features are pre 0:23 '__anon__0' (in block{gl_Color}) 0:23 Constant: 0:23 0 (const uint) +0:24 move second child to first child (4-component vector of float) +0:24 'outVar' (out 4-component vector of float) +0:24 'inVar' (smooth in 4-component vector of float) 0:? Linker Objects 0:? 'inVar' (smooth in 4-component vector of float) 0:? 'outVar' (out 4-component vector of float) 0:? 'varyingVar' (smooth in 4-component vector of float) 0:? '__anon__0' (in block{gl_Color}) + +Linked fragment stage: + +ERROR: Linking fragment stage: Cannot use gl_FragColor or gl_FragData when using user-defined outputs +ERROR: Linking fragment stage: Cannot use both gl_FragColor and gl_FragData + + diff --git a/Test/baseResults/330comp.frag.out b/Test/baseResults/330comp.frag.out index dfe8dc74..3e8852f9 100644 --- a/Test/baseResults/330comp.frag.out +++ b/Test/baseResults/330comp.frag.out @@ -1,4 +1,6 @@ +330comp.frag Warning, version 330 is not yet complete; some version-specific features are present, but many are missing. + 0:? Sequence 0:8 Function Definition: main( (void) 0:8 Function Parameters: @@ -19,3 +21,9 @@ Warning, version 330 is not yet complete; some version-specific features are pre 0:? 'outVar' (out 4-component vector of float) 0:? 'varyingVar' (smooth in 4-component vector of float) + +Linked fragment stage: + +ERROR: Linking fragment stage: Cannot use both gl_FragColor and gl_FragData + + diff --git a/Test/baseResults/400.frag.out b/Test/baseResults/400.frag.out index 6f478f64..4ec13fde 100644 --- a/Test/baseResults/400.frag.out +++ b/Test/baseResults/400.frag.out @@ -1,3 +1,4 @@ +400.frag Warning, version 400 is not yet complete; some version-specific features are present, but many are missing. ERROR: 0:20: 'texture gather component' : must be a constant ERROR: 0:21: 'texture gather component' : must be 0, 1, 2, or 3 @@ -8,6 +9,7 @@ ERROR: 0:39: 'redeclaration' : cannot change qualification of gl_ClipDistance ERROR: 0:41: 'gl_FragCoord' : cannot redeclare after use ERROR: 7 compilation errors. No code generated. + gl_FragCoord pixel center is integer gl_FragCoord origin is upper left ERROR: node is still EOpNull! @@ -130,3 +132,8 @@ ERROR: node is still EOpNull! 0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float) 0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/400.geom.out b/Test/baseResults/400.geom.out index 9bef6627..4884f6d2 100644 --- a/Test/baseResults/400.geom.out +++ b/Test/baseResults/400.geom.out @@ -1,3 +1,4 @@ +400.geom Warning, version 400 is not yet complete; some version-specific features are present, but many are missing. ERROR: 0:13: 'invocations' : can only apply to a standalone qualifier ERROR: 0:24: 'length' : array must be declared with a size before using this method @@ -6,6 +7,7 @@ ERROR: 0:39: 'triangles' : inconsistent input primitive for array size colorBad ERROR: 0:43: 'triangles' : inconsistent input primitive for array size colorbad2 ERROR: 5 compilation errors. No code generated. + invocations = 4 max_vertices = 127 input primitive = triangles @@ -65,3 +67,8 @@ ERROR: node is still EOpNull! 0:? 'colorBad' (in 4-element array of 4-component vector of float) 0:? 'colorbad2' (in 2-element array of 4-component vector of float) + +Linked geometry stage: + + + diff --git a/Test/baseResults/400.tesc.out b/Test/baseResults/400.tesc.out index e02d4d19..e598a2c4 100644 --- a/Test/baseResults/400.tesc.out +++ b/Test/baseResults/400.tesc.out @@ -1,4 +1,6 @@ +400.tesc Warning, version 400 is not yet complete; some version-specific features are present, but many are missing. + 0:? Sequence 0:3 Function Definition: main( (void) 0:3 Function Parameters: @@ -6,3 +8,8 @@ Warning, version 400 is not yet complete; some version-specific features are pre 0:5 Barrier (void) 0:? Linker Objects + +Linked tessellation control stage: + + + diff --git a/Test/baseResults/400.tese.out b/Test/baseResults/400.tese.out index 27c716cc..918c6dad 100644 --- a/Test/baseResults/400.tese.out +++ b/Test/baseResults/400.tese.out @@ -1,7 +1,9 @@ +400.tese Warning, version 400 is not yet complete; some version-specific features are present, but many are missing. ERROR: 0:5: 'barrier' : no matching overloaded function found ERROR: 1 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:3 Function Definition: main( (void) 0:3 Function Parameters: @@ -10,3 +12,8 @@ ERROR: node is still EOpNull! 0:5 0.000000 0:? Linker Objects + +Linked tessellation evaluation stage: + + + diff --git a/Test/baseResults/410.geom.out b/Test/baseResults/410.geom.out index 0b3acd85..1ff66f38 100644 --- a/Test/baseResults/410.geom.out +++ b/Test/baseResults/410.geom.out @@ -1,3 +1,4 @@ +410.geom Warning, version 410 is not yet complete; some version-specific features are present, but many are missing. ERROR: 0:8: 'myIn' : cannot redeclare a built-in block with a user name ERROR: 0:8: 'gl_' : reserved built-in name @@ -6,6 +7,7 @@ ERROR: 0:20: 'gl_PerVertex' : can only redeclare a built-in block once, and befo ERROR: 0:20: 'gl_' : reserved built-in name ERROR: 5 compilation errors. No code generated. + invocations = 0 max_vertices = 0 input primitive = none @@ -41,3 +43,8 @@ ERROR: node is still EOpNull! 0:? 'gl_in' (in unsized array of block{gl_PointSize}) 0:? '__anon__0' (layout(stream=0 ) out block{gl_PointSize}) + +Linked geometry stage: + + + diff --git a/Test/baseResults/420.geom.out b/Test/baseResults/420.geom.out index d06a7d6d..d8dcf196 100644 --- a/Test/baseResults/420.geom.out +++ b/Test/baseResults/420.geom.out @@ -1,3 +1,4 @@ +420.geom Warning, version 420 is not yet complete; some version-specific features are present, but many are missing. ERROR: 0:9: 'length' : array must be declared with a size before using this method ERROR: 0:11: '[' : array must be redeclared with a size before being indexed with a variable @@ -5,6 +6,7 @@ ERROR: 0:42: 'assign' : l-value required (can't modify a const) ERROR: 0:43: 'assign' : l-value required "v4" (can't modify a uniform) ERROR: 4 compilation errors. No code generated. + invocations = 0 max_vertices = 0 input primitive = triangles @@ -114,3 +116,9 @@ ERROR: node is still EOpNull! 0:? 'coord' (in 2-component vector of float) 0:? 'v4' (uniform 4-component vector of float) + +Linked geometry stage: + +ERROR: Linking geometry stage: Missing entry point: Each stage requires one "void main()" entry point + + diff --git a/Test/baseResults/420.tese.out b/Test/baseResults/420.tese.out index fe778bce..950517e7 100644 --- a/Test/baseResults/420.tese.out +++ b/Test/baseResults/420.tese.out @@ -1,3 +1,4 @@ +420.tese Warning, version 420 is not yet complete; some version-specific features are present, but many are missing. ERROR: 0:7: '=' : cannot convert from '3-element array of float' to '2-element array of float' ERROR: 0:8: 'initializer list' : wrong vector size (or rows in a matrix column): 2-component vector of float @@ -14,6 +15,7 @@ ERROR: 0:40: 'constructor' : cannot convert parameter 1 from 'float' to 'struct ERROR: 0:58: 'initializer list' : wrong number of structure members ERROR: 13 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:4 Sequence 0:4 move second child to first child (2X2 matrix of float) @@ -155,3 +157,8 @@ ERROR: node is still EOpNull! 0:? 'av3' (3-component vector of float) 0:? 'bv3' (3-component vector of float) + +Linked tessellation evaluation stage: + + + diff --git a/Test/baseResults/420.vert.out b/Test/baseResults/420.vert.out index 7af5abb7..8f6816ad 100644 --- a/Test/baseResults/420.vert.out +++ b/Test/baseResults/420.vert.out @@ -1,3 +1,4 @@ +420.vert Warning, version 420 is not yet complete; some version-specific features are present, but many are missing. WARNING: 0:3: varying deprecated in version 130; may be removed in future release ERROR: 0:3: 'varying' : no longer supported in core profile; removed in version 420 @@ -26,6 +27,7 @@ ERROR: 0:70: 'binding' : requires uniform or buffer storage qualifier ERROR: 0:71: 'binding' : binding is too large ERROR: 24 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:20 Function Definition: foo( (const int) 0:20 Function Parameters: @@ -125,3 +127,8 @@ ERROR: node is still EOpNull! 0:? 'gl_VertexID' (gl_VertexId int) 0:? 'gl_InstanceID' (gl_InstanceId int) + +Linked vertex stage: + + + diff --git a/Test/baseResults/430.comp.out b/Test/baseResults/430.comp.out index e1f238ad..fc4f4edf 100644 --- a/Test/baseResults/430.comp.out +++ b/Test/baseResults/430.comp.out @@ -1,7 +1,9 @@ +430.comp Warning, version 430 is not yet complete; some version-specific features are present, but many are missing. ERROR: 0:12: 'location qualifier on input' : not supported in this stage: compute ERROR: 1 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:3 Function Definition: main( (void) 0:3 Function Parameters: @@ -14,3 +16,8 @@ ERROR: node is still EOpNull! 0:? Linker Objects 0:? 'v3' (layout(location=2 ) in 3-component vector of float) + +Linked compute stage: + + + diff --git a/Test/baseResults/430.vert.out b/Test/baseResults/430.vert.out index 8500615f..54d80601 100644 --- a/Test/baseResults/430.vert.out +++ b/Test/baseResults/430.vert.out @@ -1,3 +1,4 @@ +430.vert Warning, version 430 is not yet complete; some version-specific features are present, but many are missing. ERROR: 0:3: 'v4' : location qualifiers only appy to uniform, buffer, in, or out storage qualifiers ERROR: 0:7: 'location qualifier on input block' : not supported for this version or the enabled extensions @@ -12,6 +13,7 @@ ERROR: 0:30: '' : cannot use layout qualifiers on a function parameter ERROR: 0:31: '' : cannot use auxiliary or interpolation qualifiers on a function parameter ERROR: 11 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:14 Function Definition: foo( (void) 0:14 Function Parameters: @@ -41,3 +43,9 @@ ERROR: node is still EOpNull! 0:? 'gl_VertexID' (gl_VertexId int) 0:? 'gl_InstanceID' (gl_InstanceId int) + +Linked vertex stage: + +ERROR: Linking vertex stage: Missing entry point: Each stage requires one "void main()" entry point + + diff --git a/Test/baseResults/430scope.vert.out b/Test/baseResults/430scope.vert.out index 4776db80..c87f3ee5 100644 --- a/Test/baseResults/430scope.vert.out +++ b/Test/baseResults/430scope.vert.out @@ -1,3 +1,4 @@ +430scope.vert Warning, version 430 is not yet complete; some version-specific features are present, but many are missing. ERROR: 0:5: 'a' : redefinition ERROR: 0:17: 'b' : redeclaration of existing name @@ -6,6 +7,7 @@ ERROR: 0:54: 'z' : undeclared identifier ERROR: 0:54: 'z' : redefinition ERROR: 5 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:3 Function Definition: f(i1;i1;i1; (int) 0:3 Function Parameters: @@ -114,3 +116,8 @@ ERROR: node is still EOpNull! 0:? 'gl_VertexID' (gl_VertexId int) 0:? 'gl_InstanceID' (gl_InstanceId int) + +Linked vertex stage: + + + diff --git a/Test/baseResults/Operations.frag.out b/Test/baseResults/Operations.frag.out index 434df498..e764d49c 100644 --- a/Test/baseResults/Operations.frag.out +++ b/Test/baseResults/Operations.frag.out @@ -1,4 +1,6 @@ +../../LunarGLASS/test/Operations.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. + 0:? Sequence 0:15 Function Definition: main( (void) 0:15 Function Parameters: @@ -431,3 +433,8 @@ Warning, version 130 is not yet complete; most features are present, but a few a 0:? 'uf' (uniform float) 0:? 'ui' (uniform int) + +Linked fragment stage: + + + diff --git a/Test/baseResults/aggOps.frag.out b/Test/baseResults/aggOps.frag.out index 382d30d0..711982cb 100644 --- a/Test/baseResults/aggOps.frag.out +++ b/Test/baseResults/aggOps.frag.out @@ -1,6 +1,8 @@ +../../LunarGLASS/test/aggOps.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. WARNING: 0:4: varying deprecated in version 130; may be removed in future release WARNING: 0:6: varying deprecated in version 130; may be removed in future release + 0:? Sequence 0:23 Function Definition: main( (void) 0:23 Function Parameters: @@ -145,3 +147,8 @@ WARNING: 0:6: varying deprecated in version 130; may be removed in future releas 0:? 'foo2a' (uniform structure{i,f,s1_1}) 0:? 'foo2b' (uniform structure{i,f,s1_1}) + +Linked fragment stage: + + + diff --git a/Test/baseResults/always-discard.frag.out b/Test/baseResults/always-discard.frag.out index 579e3ec5..99f24654 100644 --- a/Test/baseResults/always-discard.frag.out +++ b/Test/baseResults/always-discard.frag.out @@ -1,3 +1,5 @@ +../../LunarGLASS/test/always-discard.frag + 0:? Sequence 0:4 Function Definition: main( (void) 0:4 Function Parameters: @@ -114,3 +116,8 @@ 0:? Linker Objects 0:? 'tex_coord' (smooth in 2-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/always-discard2.frag.out b/Test/baseResults/always-discard2.frag.out index 401fab76..fe9c9c33 100644 --- a/Test/baseResults/always-discard2.frag.out +++ b/Test/baseResults/always-discard2.frag.out @@ -1,3 +1,5 @@ +../../LunarGLASS/test/always-discard2.frag + 0:? Sequence 0:4 Function Definition: main( (void) 0:4 Function Parameters: @@ -55,3 +57,8 @@ 0:? Linker Objects 0:? 'tex_coord' (smooth in 2-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/array.frag.out b/Test/baseResults/array.frag.out index e2046f8a..91208e83 100644 --- a/Test/baseResults/array.frag.out +++ b/Test/baseResults/array.frag.out @@ -1,3 +1,4 @@ +array.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. ERROR: 0:21: '[' : array index out of range '2' ERROR: 0:27: '[' : array must be redeclared with a size before being indexed with a variable @@ -15,6 +16,7 @@ ERROR: 0:57: '[' : index out of range '-858993459' ERROR: 0:58: '[]' : scalar integer expression required ERROR: 14 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:9 Function Definition: foo(f1[5]; (4-element array of float) 0:9 Function Parameters: @@ -186,3 +188,8 @@ ERROR: node is still EOpNull! 0:? 'g5' (5-element array of float) 0:? 'a' (uniform int) + +Linked fragment stage: + + + diff --git a/Test/baseResults/array100.frag.out b/Test/baseResults/array100.frag.out index 8223f4b4..5e12a74f 100644 --- a/Test/baseResults/array100.frag.out +++ b/Test/baseResults/array100.frag.out @@ -1,3 +1,4 @@ +array100.frag ERROR: 0:3: 'float' : type requires declaration of default precision qualifier ERROR: 0:3: '' : array size required ERROR: 0:9: 'arrayed type' : not supported for this version or the enabled extensions @@ -22,6 +23,7 @@ ERROR: 0:68: 'array assignment' : not supported for this version or the enabled ERROR: 0:69: 'array initializer' : not supported for this version or the enabled extensions ERROR: 22 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:9 Function Definition: foo(f1[5]; (4-element array of mediump float) 0:9 Function Parameters: @@ -154,3 +156,8 @@ ERROR: node is still EOpNull! 0:? 'g5' (5-element array of mediump float) 0:? 'a' (uniform mediump int) + +Linked fragment stage: + + + diff --git a/Test/baseResults/comment.frag.out b/Test/baseResults/comment.frag.out index 48e85c65..0daf7575 100644 --- a/Test/baseResults/comment.frag.out +++ b/Test/baseResults/comment.frag.out @@ -1,7 +1,14 @@ +comment.frag Warning, version 430 is not yet complete; some version-specific features are present, but many are missing. + 0:? Sequence 0:17 Function Definition: main( (void) 0:17 Function Parameters: 0:? Linker Objects 0:? 'v' (smooth in 4-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/conditionalDiscard.frag.out b/Test/baseResults/conditionalDiscard.frag.out index a4c3e6c2..f3df2e74 100644 --- a/Test/baseResults/conditionalDiscard.frag.out +++ b/Test/baseResults/conditionalDiscard.frag.out @@ -1,3 +1,5 @@ +../../LunarGLASS/test/conditionalDiscard.frag + 0:? Sequence 0:6 Function Definition: main( (void) 0:6 Function Parameters: @@ -26,3 +28,8 @@ 0:? 'tex' (uniform sampler2D) 0:? 'coord' (smooth in 2-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/constErrors.frag.out b/Test/baseResults/constErrors.frag.out index c099f84a..21e394a0 100644 --- a/Test/baseResults/constErrors.frag.out +++ b/Test/baseResults/constErrors.frag.out @@ -1,3 +1,4 @@ +constErrors.frag Warning, version 330 is not yet complete; some version-specific features are present, but many are missing. ERROR: 0:14: 'non-constant initializer' : not supported for this version or the enabled extensions ERROR: 0:17: '' : constant expression required @@ -10,6 +11,7 @@ ERROR: 0:27: '=' : global const initializers must be constant 'const structure{v ERROR: 0:33: '=' : global const initializers must be constant 'const structure{v3,iv2,m}' ERROR: 9 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:10 Function Definition: main( (void) 0:10 Function Parameters: @@ -29,3 +31,8 @@ ERROR: node is still EOpNull! 0:? 'f' (const float) 0:? 3.000000 + +Linked fragment stage: + + + diff --git a/Test/baseResults/constFold.frag.out b/Test/baseResults/constFold.frag.out index 0147f7c1..c2fb5803 100644 --- a/Test/baseResults/constFold.frag.out +++ b/Test/baseResults/constFold.frag.out @@ -1,3 +1,4 @@ +constFold.frag Warning, version 430 is not yet complete; some version-specific features are present, but many are missing. ERROR: 0:109: '[' : index out of range '-1' ERROR: 0:110: '[' : vector index out of range '4' @@ -7,6 +8,7 @@ ERROR: 0:113: '[' : vector index out of range '3' ERROR: 0:114: '[' : matrix index out of range '3' ERROR: 6 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:28 Function Definition: main( (void) 0:28 Function Parameters: @@ -303,3 +305,8 @@ ERROR: node is still EOpNull! 0:? 5.000000 0:? 'a4' (2-element array of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/conversion.frag.out b/Test/baseResults/conversion.frag.out index ec3d2f6d..b6f480ae 100644 --- a/Test/baseResults/conversion.frag.out +++ b/Test/baseResults/conversion.frag.out @@ -1,4 +1,6 @@ +../../LunarGLASS/test/conversion.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. + 0:? Sequence 0:33 Function Definition: main( (void) 0:33 Function Parameters: @@ -473,3 +475,8 @@ Warning, version 130 is not yet complete; most features are present, but a few a 0:? 'i_f3' (smooth in 3-component vector of float) 0:? 'i_f4' (smooth in 4-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/cppComplexExpr.vert.out b/Test/baseResults/cppComplexExpr.vert.out index d2f787e2..67a93e43 100644 --- a/Test/baseResults/cppComplexExpr.vert.out +++ b/Test/baseResults/cppComplexExpr.vert.out @@ -1,9 +1,11 @@ +cppComplexExpr.vert ERROR: 0:46: 'xyxwx' : illegal vector field selection ERROR: 0:46: 'xyxwx' : illegal vector field selection ERROR: 0:66: '#define' : Macro redefined; different substitutions: BIG ERROR: 0:79: '' : missing #endif ERROR: 4 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:4 Sequence 0:4 move second child to first child (highp float) @@ -69,3 +71,8 @@ ERROR: node is still EOpNull! 0:? 'gl_VertexID' (gl_VertexId highp int) 0:? 'gl_InstanceID' (gl_InstanceId highp int) + +Linked vertex stage: + + + diff --git a/Test/baseResults/cppIndent.vert.out b/Test/baseResults/cppIndent.vert.out index 221640e4..f6d8d0f7 100644 --- a/Test/baseResults/cppIndent.vert.out +++ b/Test/baseResults/cppIndent.vert.out @@ -1,3 +1,5 @@ +cppIndent.vert + 0:? Sequence 0:5 Sequence 0:5 move second child to first child (float) @@ -34,3 +36,8 @@ 0:? Linker Objects 0:? 'sum' (float) + +Linked vertex stage: + + + diff --git a/Test/baseResults/cppNest.vert.out b/Test/baseResults/cppNest.vert.out index 95f28f4b..c9406ba3 100644 --- a/Test/baseResults/cppNest.vert.out +++ b/Test/baseResults/cppNest.vert.out @@ -1,3 +1,5 @@ +cppNest.vert + 0:? Sequence 0:5 Sequence 0:5 move second child to first child (float) @@ -56,3 +58,8 @@ 0:? 'selected2' (int) 0:? 'selected3' (int) + +Linked vertex stage: + + + diff --git a/Test/baseResults/cppSimple.vert.out b/Test/baseResults/cppSimple.vert.out index a5d18f22..8d8ff798 100644 --- a/Test/baseResults/cppSimple.vert.out +++ b/Test/baseResults/cppSimple.vert.out @@ -1,3 +1,4 @@ +cppSimple.vert Warning, version 400 is not yet complete; some version-specific features are present, but many are missing. ERROR: 0:77: '#error' : good1 ERROR: 0:81: '#error' : good2 @@ -46,6 +47,7 @@ ERROR: 0:205: '#undef' : can't use with built-in names ("GL_" prefix) ERROR: 0:209: '' : missing #endif ERROR: 45 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:5 Sequence 0:5 move second child to first child (float) @@ -132,3 +134,8 @@ ERROR: node is still EOpNull! 0:? 'gl_VertexID' (gl_VertexId int) 0:? 'gl_InstanceID' (gl_InstanceId int) + +Linked vertex stage: + + + diff --git a/Test/baseResults/dataOut.frag.out b/Test/baseResults/dataOut.frag.out index dbceed65..311c10d3 100644 --- a/Test/baseResults/dataOut.frag.out +++ b/Test/baseResults/dataOut.frag.out @@ -1,5 +1,7 @@ +../../LunarGLASS/test/dataOut.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. WARNING: 0:3: varying deprecated in version 130; may be removed in future release + 0:? Sequence 0:5 Function Definition: main( (void) 0:5 Function Parameters: @@ -13,3 +15,8 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas 0:? Linker Objects 0:? 'Color' (smooth in 4-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/dataOutIndirect.frag.out b/Test/baseResults/dataOutIndirect.frag.out index b6e1c09b..80c45cfb 100644 --- a/Test/baseResults/dataOutIndirect.frag.out +++ b/Test/baseResults/dataOutIndirect.frag.out @@ -1,5 +1,7 @@ +../../LunarGLASS/test/dataOutIndirect.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. WARNING: 0:3: varying deprecated in version 130; may be removed in future release + 0:? Sequence 0:7 Function Definition: main( (void) 0:7 Function Parameters: @@ -13,3 +15,8 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas 0:? 'Color' (smooth in 4-component vector of float) 0:? 'i' (uniform int) + +Linked fragment stage: + + + diff --git a/Test/baseResults/dce.frag.out b/Test/baseResults/dce.frag.out index 2b948b6c..0a861806 100644 --- a/Test/baseResults/dce.frag.out +++ b/Test/baseResults/dce.frag.out @@ -1,4 +1,6 @@ +dce.frag Warning, version 400 is not yet complete; some version-specific features are present, but many are missing. + 0:? Sequence 0:5 Sequence 0:5 move second child to first child (int) @@ -132,3 +134,9 @@ Warning, version 400 is not yet complete; some version-specific features are pre 0:? false (const bool) 0:? 'c' (int) + +Linked fragment stage: + +ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point + + diff --git a/Test/baseResults/decls.frag.out b/Test/baseResults/decls.frag.out index f965ed91..5181b50d 100644 --- a/Test/baseResults/decls.frag.out +++ b/Test/baseResults/decls.frag.out @@ -1,3 +1,4 @@ +decls.frag ERROR: 0:19: 'vi4' : illegal use of type 'void' ERROR: 0:20: 'vj' : illegal use of type 'void' ERROR: 0:20: 'vk5' : illegal use of type 'void' @@ -18,6 +19,7 @@ ERROR: 0:42: '' : boolean expression expected ERROR: 0:43: 'gl_' : reserved built-in name ERROR: 18 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:5 Sequence 0:5 move second child to first child (int) @@ -214,3 +216,8 @@ ERROR: node is still EOpNull! 0:? 'gl_vn8' (4-element array of int) 0:? 'gl_vp' (int) + +Linked fragment stage: + + + diff --git a/Test/baseResults/deepRvalue.frag.out b/Test/baseResults/deepRvalue.frag.out index a1281944..b9f1f909 100644 --- a/Test/baseResults/deepRvalue.frag.out +++ b/Test/baseResults/deepRvalue.frag.out @@ -1,3 +1,5 @@ +../../LunarGLASS/test/deepRvalue.frag + 0:? Sequence 0:5 Sequence 0:5 move second child to first child (4-component vector of float) @@ -137,3 +139,8 @@ 0:? 'v3' (4-component vector of float) 0:? 'v4' (4-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/depthOut.frag.out b/Test/baseResults/depthOut.frag.out index dc2bd1c1..733be17c 100644 --- a/Test/baseResults/depthOut.frag.out +++ b/Test/baseResults/depthOut.frag.out @@ -1,6 +1,8 @@ +../../LunarGLASS/test/depthOut.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. WARNING: 0:3: varying deprecated in version 130; may be removed in future release WARNING: 0:4: varying deprecated in version 130; may be removed in future release + 0:? Sequence 0:8 Function Definition: main( (void) 0:8 Function Parameters: @@ -19,3 +21,9 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas 0:? 'Depth' (smooth in float) 0:? 'foo' (out 4-component vector of float) + +Linked fragment stage: + +ERROR: Linking fragment stage: Cannot use gl_FragColor or gl_FragData when using user-defined outputs + + diff --git a/Test/baseResults/discard-dce.frag.out b/Test/baseResults/discard-dce.frag.out index 97f012bc..35630f08 100644 --- a/Test/baseResults/discard-dce.frag.out +++ b/Test/baseResults/discard-dce.frag.out @@ -1,3 +1,5 @@ +../../LunarGLASS/test/discard-dce.frag + 0:? Sequence 0:4 Function Definition: main( (void) 0:4 Function Parameters: @@ -114,3 +116,8 @@ 0:? Linker Objects 0:? 'tex_coord' (smooth in 2-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/doWhileLoop.frag.out b/Test/baseResults/doWhileLoop.frag.out index 32956c44..331c35b0 100644 --- a/Test/baseResults/doWhileLoop.frag.out +++ b/Test/baseResults/doWhileLoop.frag.out @@ -1,3 +1,5 @@ +../../LunarGLASS/test/doWhileLoop.frag + 0:? Sequence 0:7 Function Definition: main( (void) 0:7 Function Parameters: @@ -27,3 +29,8 @@ 0:? 'BaseColor' (smooth in 4-component vector of float) 0:? 'd' (uniform float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/earlyReturnDiscard.frag.out b/Test/baseResults/earlyReturnDiscard.frag.out index 288f55ef..c712fbbf 100644 --- a/Test/baseResults/earlyReturnDiscard.frag.out +++ b/Test/baseResults/earlyReturnDiscard.frag.out @@ -1,3 +1,5 @@ +../../LunarGLASS/test/earlyReturnDiscard.frag + 0:? Sequence 0:19 Function Definition: main( (void) 0:19 Function Parameters: @@ -123,3 +125,8 @@ 0:? 'BaseColor' (smooth in 4-component vector of float) 0:? 'b' (uniform bool) + +Linked fragment stage: + + + diff --git a/Test/baseResults/errors.frag.out b/Test/baseResults/errors.frag.out index 01c46038..dbf63009 100644 --- a/Test/baseResults/errors.frag.out +++ b/Test/baseResults/errors.frag.out @@ -1,7 +1,9 @@ +errors.frag ERROR: 0:1: 'main' : function cannot take any parameter(s) ERROR: 0:1: 'int' : main function cannot return a value ERROR: 2 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:1 Function Definition: main(i1; (mediump int) 0:1 Function Parameters: @@ -12,3 +14,8 @@ ERROR: node is still EOpNull! 0:3 1 (const int) 0:? Linker Objects + +Linked fragment stage: + + + diff --git a/Test/baseResults/flowControl.frag.out b/Test/baseResults/flowControl.frag.out index 606671d1..3755e8d6 100644 --- a/Test/baseResults/flowControl.frag.out +++ b/Test/baseResults/flowControl.frag.out @@ -1,3 +1,5 @@ +../../LunarGLASS/test/flowControl.frag + 0:? Sequence 0:10 Function Definition: main( (void) 0:10 Function Parameters: @@ -35,3 +37,8 @@ 0:? 'c' (smooth in float) 0:? 'BaseColor' (smooth in 4-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/forLoop.frag.out b/Test/baseResults/forLoop.frag.out index 5db7911f..08f31744 100644 --- a/Test/baseResults/forLoop.frag.out +++ b/Test/baseResults/forLoop.frag.out @@ -1,3 +1,5 @@ +../../LunarGLASS/test/forLoop.frag + 0:? Sequence 0:8 Function Definition: main( (void) 0:8 Function Parameters: @@ -33,3 +35,8 @@ 0:? 'BaseColor' (smooth in 4-component vector of float) 0:? 'Count' (uniform int) + +Linked fragment stage: + + + diff --git a/Test/baseResults/forwardRef.frag.out b/Test/baseResults/forwardRef.frag.out index d63454a9..4769eb9e 100644 --- a/Test/baseResults/forwardRef.frag.out +++ b/Test/baseResults/forwardRef.frag.out @@ -1,3 +1,5 @@ +forwardRef.frag + 0:? Sequence 0:11 Function Definition: main( (void) 0:11 Function Parameters: @@ -57,3 +59,8 @@ 0:? 'BaseColor' (smooth in 4-component vector of float) 0:? 'd' (uniform float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/functionCall.frag.out b/Test/baseResults/functionCall.frag.out index e9a8af92..48f6a63c 100644 --- a/Test/baseResults/functionCall.frag.out +++ b/Test/baseResults/functionCall.frag.out @@ -1,5 +1,7 @@ +../../LunarGLASS/test/functionCall.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. WARNING: 0:4: varying deprecated in version 130; may be removed in future release + 0:? Sequence 0:7 Sequence 0:7 move second child to first child (float) @@ -87,3 +89,8 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas 0:? 'd' (uniform float) 0:? 'h' (float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/functionSemantics.frag.out b/Test/baseResults/functionSemantics.frag.out index 2208bc11..45678706 100644 --- a/Test/baseResults/functionSemantics.frag.out +++ b/Test/baseResults/functionSemantics.frag.out @@ -1,3 +1,5 @@ +../../LunarGLASS/test/functionSemantics.frag + 0:? Sequence 0:3 Function Definition: foo(i1;i1;i1;i1;i1;i1; (mediump int) 0:3 Function Parameters: @@ -117,3 +119,8 @@ 0:35 'color' (mediump int) 0:? Linker Objects + +Linked fragment stage: + + + diff --git a/Test/baseResults/length.frag.out b/Test/baseResults/length.frag.out index 0543e157..6f1699b8 100644 --- a/Test/baseResults/length.frag.out +++ b/Test/baseResults/length.frag.out @@ -1,3 +1,5 @@ +../../LunarGLASS/test/length.frag + 0:? Sequence 0:11 Function Definition: main( (void) 0:11 Function Parameters: @@ -25,3 +27,8 @@ 0:? 'u' (uniform 3-element array of 4-component vector of float) 0:? 'v' (smooth in 2-element array of 2-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/lineContinuation.vert.out b/Test/baseResults/lineContinuation.vert.out index 6c61ad87..0982a25e 100644 --- a/Test/baseResults/lineContinuation.vert.out +++ b/Test/baseResults/lineContinuation.vert.out @@ -1,8 +1,10 @@ +lineContinuation.vert ERROR: 0:6: '#error' : e1 ERROR: 0:11: '#error' : e2 ERROR: 0:18: '#error' : e3 ERROR: 3 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:20 Function Definition: main( (void) 0:20 Function Parameters: @@ -26,3 +28,8 @@ ERROR: node is still EOpNull! 0:? 'gl_VertexID' (gl_VertexId highp int) 0:? 'gl_InstanceID' (gl_InstanceId highp int) + +Linked vertex stage: + + + diff --git a/Test/baseResults/lineContinuation100.vert.out b/Test/baseResults/lineContinuation100.vert.out index 9b890c53..9e20998c 100644 --- a/Test/baseResults/lineContinuation100.vert.out +++ b/Test/baseResults/lineContinuation100.vert.out @@ -1,3 +1,4 @@ +lineContinuation100.vert ERROR: 0:3: 'line continuation' : not supported for this version or the enabled extensions ERROR: 0:6: '#error' : e1 ERROR: 0:8: 'line continuation' : not supported for this version or the enabled extensions @@ -9,6 +10,7 @@ ERROR: 0:18: '#error' : e3 ERROR: 0:24: 'line continuation' : not supported for this version or the enabled extensions ERROR: 9 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:20 Function Definition: main( (void) 0:20 Function Parameters: @@ -30,3 +32,8 @@ ERROR: node is still EOpNull! 0:? Linker Objects 0:? 'foo' (highp float) + +Linked vertex stage: + + + diff --git a/Test/baseResults/localAggregates.frag.out b/Test/baseResults/localAggregates.frag.out index 5dd201be..95e46f65 100644 --- a/Test/baseResults/localAggregates.frag.out +++ b/Test/baseResults/localAggregates.frag.out @@ -1,6 +1,8 @@ +../../LunarGLASS/test/localAggregates.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. WARNING: 0:4: varying deprecated in version 130; may be removed in future release WARNING: 0:5: varying deprecated in version 130; may be removed in future release + 0:? Sequence 0:34 Function Definition: main( (void) 0:34 Function Parameters: @@ -203,3 +205,8 @@ WARNING: 0:5: varying deprecated in version 130; may be removed in future releas 0:? 'uFloatArray' (uniform 16-element array of float) 0:? 'condition' (uniform int) + +Linked fragment stage: + + + diff --git a/Test/baseResults/loops.frag.out b/Test/baseResults/loops.frag.out index 64cb1312..db286d93 100644 --- a/Test/baseResults/loops.frag.out +++ b/Test/baseResults/loops.frag.out @@ -1,5 +1,7 @@ +../../LunarGLASS/test/loops.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. WARNING: 0:14: varying deprecated in version 130; may be removed in future release + 0:? Sequence 0:53 Function Definition: main( (void) 0:53 Function Parameters: @@ -963,3 +965,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea 0:? 'd34' (uniform float) 0:? 'Count' (uniform int) + +Linked fragment stage: + + + diff --git a/Test/baseResults/loopsArtificial.frag.out b/Test/baseResults/loopsArtificial.frag.out index ec6ec79d..6a6aef89 100644 --- a/Test/baseResults/loopsArtificial.frag.out +++ b/Test/baseResults/loopsArtificial.frag.out @@ -1,5 +1,7 @@ +../../LunarGLASS/test/loopsArtificial.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. WARNING: 0:14: varying deprecated in version 130; may be removed in future release + 0:? Sequence 0:53 Function Definition: main( (void) 0:53 Function Parameters: @@ -212,3 +214,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea 0:? 'd34' (uniform float) 0:? 'Count' (uniform int) + +Linked fragment stage: + + + diff --git a/Test/baseResults/matrix.frag.out b/Test/baseResults/matrix.frag.out index 2d794cf6..c0ad3eba 100644 --- a/Test/baseResults/matrix.frag.out +++ b/Test/baseResults/matrix.frag.out @@ -1,7 +1,9 @@ +../../LunarGLASS/test/matrix.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. WARNING: 0:6: varying deprecated in version 130; may be removed in future release WARNING: 0:17: varying deprecated in version 130; may be removed in future release WARNING: 0:22: varying deprecated in version 130; may be removed in future release + 0:? Sequence 0:25 Function Definition: main( (void) 0:25 Function Parameters: @@ -250,3 +252,8 @@ WARNING: 0:22: varying deprecated in version 130; may be removed in future relea 0:? 'v' (smooth in 4-component vector of float) 0:? 'u' (smooth in 4-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/matrix2.frag.out b/Test/baseResults/matrix2.frag.out index 976ef225..abcdbb0d 100644 --- a/Test/baseResults/matrix2.frag.out +++ b/Test/baseResults/matrix2.frag.out @@ -1,7 +1,9 @@ +../../LunarGLASS/test/matrix2.frag Warning, version 150 is not yet complete; some version-specific features are present, but many are missing. WARNING: 0:4: varying deprecated in version 130; may be removed in future release WARNING: 0:13: varying deprecated in version 130; may be removed in future release WARNING: 0:15: varying deprecated in version 130; may be removed in future release + 0:? Sequence 0:19 Function Definition: main( (void) 0:19 Function Parameters: @@ -158,3 +160,8 @@ WARNING: 0:15: varying deprecated in version 130; may be removed in future relea 0:? 'u' (smooth in 3-component vector of float) 0:? 'FragColor' (out 4-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/matrixError.vert.out b/Test/baseResults/matrixError.vert.out index 1ac11f13..b3d120ae 100644 --- a/Test/baseResults/matrixError.vert.out +++ b/Test/baseResults/matrixError.vert.out @@ -1,3 +1,4 @@ +matrixError.vert ERROR: 0:10: 'constructor' : too many arguments ERROR: 0:7: 'const' : non-matching or non-convertible constant type for const initializer ERROR: 0:17: 'assign' : cannot convert from '2-component vector of float' to '3-component vector of float' @@ -7,6 +8,7 @@ ERROR: 0:21: '[' : matrix index out of range '2' ERROR: 0:21: '[' : vector index out of range '4' ERROR: 7 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:12 Function Definition: main( (void) 0:12 Function Parameters: @@ -34,3 +36,8 @@ ERROR: node is still EOpNull! 0:? 'm32' (uniform 3X2 matrix of float) 0:? 'm24' (2X4 matrix of float) + +Linked vertex stage: + + + diff --git a/Test/baseResults/newTexture.frag.out b/Test/baseResults/newTexture.frag.out index fc4a36e1..7ea2a81d 100644 --- a/Test/baseResults/newTexture.frag.out +++ b/Test/baseResults/newTexture.frag.out @@ -1,4 +1,6 @@ +../../LunarGLASS/test/newTexture.frag Warning, version 430 is not yet complete; some version-specific features are present, but many are missing. + 0:? Sequence 0:34 Function Definition: main( (void) 0:34 Function Parameters: @@ -212,3 +214,8 @@ Warning, version 430 is not yet complete; some version-specific features are pre 0:? 'ic4D' (flat in 4-component vector of int) 0:? 'FragData' (out 4-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/nonSquare.vert.out b/Test/baseResults/nonSquare.vert.out index 6b1961dd..23bb0685 100644 --- a/Test/baseResults/nonSquare.vert.out +++ b/Test/baseResults/nonSquare.vert.out @@ -1,3 +1,5 @@ +nonSquare.vert + 0:? Sequence 0:15 Function Definition: main( (void) 0:15 Function Parameters: @@ -86,3 +88,8 @@ 0:? 7.000000 0:? 8.000000 + +Linked vertex stage: + + + diff --git a/Test/baseResults/numeral.frag.out b/Test/baseResults/numeral.frag.out index 035c07bf..f1c61963 100644 --- a/Test/baseResults/numeral.frag.out +++ b/Test/baseResults/numeral.frag.out @@ -1,3 +1,4 @@ +numeral.frag Warning, version 400 is not yet complete; some version-specific features are present, but many are missing. ERROR: 0:14: '' : octal literal digit too large ERROR: 0:15: '' : octal literal digit too large @@ -11,6 +12,7 @@ ERROR: 0:50: '' : hexidecimal literal too big ERROR: 0:88: '' : float literal needs a decimal point or exponent ERROR: 10 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:3 Function Definition: main( (void) 0:3 Function Parameters: @@ -378,3 +380,8 @@ ERROR: node is still EOpNull! 0:? 'c6' (layout(location=6 ) out 4-component vector of float) 0:? 'c7' (layout(location=7 ) out 4-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/pointCoord.frag.out b/Test/baseResults/pointCoord.frag.out index 688c624e..2813257d 100644 --- a/Test/baseResults/pointCoord.frag.out +++ b/Test/baseResults/pointCoord.frag.out @@ -1,3 +1,5 @@ +pointCoord.frag + 0:? Sequence 0:5 Function Definition: main( (void) 0:5 Function Parameters: @@ -29,3 +31,8 @@ 0:? Linker Objects 0:? 'sampler' (uniform lowp sampler2D) + +Linked fragment stage: + + + diff --git a/Test/baseResults/precision.frag.out b/Test/baseResults/precision.frag.out index 59e30e23..54daf021 100644 --- a/Test/baseResults/precision.frag.out +++ b/Test/baseResults/precision.frag.out @@ -1,3 +1,4 @@ +precision.frag ERROR: 0:3: 'float' : type requires declaration of default precision qualifier ERROR: 0:18: 'int' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type ERROR: 0:19: 'int' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type @@ -7,6 +8,7 @@ ERROR: 0:75: 'structure' : cannot apply precision statement to this type; use 'f ERROR: 0:76: 'bool' : type cannot have precision qualifier ERROR: 7 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:5 Function Definition: foo(vf3; (lowp 2-component vector of float) 0:5 Function Parameters: @@ -121,3 +123,8 @@ ERROR: node is still EOpNull! 0:? 'global_high' (highp int) 0:? 'b2' (mediump 2-component vector of bool) + +Linked fragment stage: + + + diff --git a/Test/baseResults/precision.vert.out b/Test/baseResults/precision.vert.out index 80242911..529b6280 100644 --- a/Test/baseResults/precision.vert.out +++ b/Test/baseResults/precision.vert.out @@ -1,8 +1,10 @@ +precision.vert ERROR: 0:7: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:8: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 0:14: 'sampler/image' : type requires declaration of default precision qualifier ERROR: 3 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:18 Function Definition: main( (void) 0:18 Function Parameters: @@ -46,3 +48,8 @@ ERROR: node is still EOpNull! 0:? 'gl_VertexID' (gl_VertexId highp int) 0:? 'gl_InstanceID' (gl_InstanceId highp int) + +Linked vertex stage: + + + diff --git a/Test/baseResults/prepost.frag.out b/Test/baseResults/prepost.frag.out index a6b0fae1..78fc83b7 100644 --- a/Test/baseResults/prepost.frag.out +++ b/Test/baseResults/prepost.frag.out @@ -1,4 +1,6 @@ +../../LunarGLASS/test/prepost.frag Warning, version 140 is not yet complete; most features are present, but a few are missing. + 0:? Sequence 0:3 Function Definition: main( (void) 0:3 Function Parameters: @@ -131,3 +133,8 @@ Warning, version 140 is not yet complete; most features are present, but a few a 0:37 'v' (4-component vector of float) 0:? Linker Objects + +Linked fragment stage: + + + diff --git a/Test/baseResults/sample.frag.out b/Test/baseResults/sample.frag.out index 0e85f8e9..ad427f79 100644 --- a/Test/baseResults/sample.frag.out +++ b/Test/baseResults/sample.frag.out @@ -1,3 +1,5 @@ +sample.frag + 0:? Sequence 0:38 Function Definition: main( (void) 0:38 Function Parameters: @@ -11,3 +13,8 @@ 0:? Linker Objects 0:? 'color' (smooth in 3-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/sample.vert.out b/Test/baseResults/sample.vert.out index e7942be4..bd073fd6 100644 --- a/Test/baseResults/sample.vert.out +++ b/Test/baseResults/sample.vert.out @@ -1,3 +1,5 @@ +sample.vert + 0:? Sequence 0:38 Function Definition: main( (void) 0:38 Function Parameters: @@ -16,3 +18,8 @@ 0:? Linker Objects 0:? 'color' (smooth out 3-component vector of float) + +Linked vertex stage: + + + diff --git a/Test/baseResults/simpleFunctionCall.frag.out b/Test/baseResults/simpleFunctionCall.frag.out index b87a6580..50fcb95b 100644 --- a/Test/baseResults/simpleFunctionCall.frag.out +++ b/Test/baseResults/simpleFunctionCall.frag.out @@ -1,5 +1,7 @@ +../../LunarGLASS/test/simpleFunctionCall.frag Warning, version 150 is not yet complete; some version-specific features are present, but many are missing. WARNING: 0:4: varying deprecated in version 130; may be removed in future release + 0:? Sequence 0:7 Function Definition: foo( (4-component vector of float) 0:7 Function Parameters: @@ -17,3 +19,8 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas 0:? 'BaseColor' (smooth in 4-component vector of float) 0:? 'd' (uniform float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/specExamples.frag.out b/Test/baseResults/specExamples.frag.out index 92ceaf5d..4668014b 100644 --- a/Test/baseResults/specExamples.frag.out +++ b/Test/baseResults/specExamples.frag.out @@ -1,3 +1,4 @@ +specExamples.frag Warning, version 430 is not yet complete; some version-specific features are present, but many are missing. ERROR: 0:6: '=' : cannot convert from 'const uint' to 'int' ERROR: 0:20: '' : numeric literal too big @@ -49,6 +50,7 @@ ERROR: 0:228: 'in' : not allowed in nested scope ERROR: 0:232: 'out' : not allowed in nested scope ERROR: 48 compilation errors. No code generated. + gl_FragCoord pixel center is integer gl_FragCoord origin is upper left ERROR: node is still EOpNull! @@ -295,3 +297,8 @@ ERROR: node is still EOpNull! 0:? '__anon__2' (in block{gl_FogFragCoord,gl_TexCoord,gl_Color,gl_SecondaryColor}) 0:? '__anon__2' (in block{gl_FogFragCoord,gl_TexCoord,gl_Color,gl_SecondaryColor}) + +Linked fragment stage: + + + diff --git a/Test/baseResults/specExamples.vert.out b/Test/baseResults/specExamples.vert.out index 28039033..29bc8c90 100644 --- a/Test/baseResults/specExamples.vert.out +++ b/Test/baseResults/specExamples.vert.out @@ -1,3 +1,4 @@ +specExamples.vert Warning, version 430 is not yet complete; some version-specific features are present, but many are missing. ERROR: 0:23: 'transforms' : redeclaration of array with size ERROR: 0:29: 's' : location qualifiers only appy to uniform, buffer, in, or out storage qualifiers @@ -44,6 +45,7 @@ ERROR: 0:193: 'constructor' : constructing from a non-dereferenced array ERROR: 0:194: 'constructor' : constructing from a non-dereferenced array ERROR: 42 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:134 Function Definition: funcA(I21; (4-component vector of float) 0:134 Function Parameters: @@ -314,3 +316,8 @@ ERROR: node is still EOpNull! 0:? 'gl_VertexID' (gl_VertexId int) 0:? 'gl_InstanceID' (gl_InstanceId int) + +Linked vertex stage: + + + diff --git a/Test/baseResults/structAssignment.frag.out b/Test/baseResults/structAssignment.frag.out index 97797437..39d110b4 100644 --- a/Test/baseResults/structAssignment.frag.out +++ b/Test/baseResults/structAssignment.frag.out @@ -1,5 +1,7 @@ +../../LunarGLASS/test/structAssignment.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. WARNING: 0:4: varying deprecated in version 130; may be removed in future release + 0:? Sequence 0:29 Function Definition: main( (void) 0:29 Function Parameters: @@ -47,3 +49,8 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas 0:? 'foo2' (uniform structure{i,f,s1_1}) 0:? 'foo3' (uniform structure{s2_1,i,f,s1_1}) + +Linked fragment stage: + + + diff --git a/Test/baseResults/structDeref.frag.out b/Test/baseResults/structDeref.frag.out index 75b74e4c..46b0e414 100644 --- a/Test/baseResults/structDeref.frag.out +++ b/Test/baseResults/structDeref.frag.out @@ -1,5 +1,7 @@ +../../LunarGLASS/test/structDeref.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. WARNING: 0:4: varying deprecated in version 130; may be removed in future release + 0:? Sequence 0:41 Function Definition: main( (void) 0:41 Function Parameters: @@ -168,3 +170,8 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas 0:? 'foo3' (uniform structure{s2_1,i,f,s1_1}) 0:? 'foo00' (uniform structure{s0_0}) + +Linked fragment stage: + + + diff --git a/Test/baseResults/structure.frag.out b/Test/baseResults/structure.frag.out index 53c7e96e..5e1936f7 100644 --- a/Test/baseResults/structure.frag.out +++ b/Test/baseResults/structure.frag.out @@ -1,5 +1,7 @@ +../../LunarGLASS/test/structure.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. WARNING: 0:3: varying deprecated in version 130; may be removed in future release + 0:? Sequence 0:20 Function Definition: main( (void) 0:20 Function Parameters: @@ -78,3 +80,8 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas 0:? 'foo' (uniform structure{i,f,color}) 0:? 'foo2' (uniform 5-element array of structure{i,f,s1_1}) + +Linked fragment stage: + + + diff --git a/Test/baseResults/switch.frag.out b/Test/baseResults/switch.frag.out index a55f0914..9e6b5f7f 100644 --- a/Test/baseResults/switch.frag.out +++ b/Test/baseResults/switch.frag.out @@ -1,3 +1,4 @@ +switch.frag ERROR: 0:11: 'switch' : condition must be a scalar integer expression ERROR: 0:14: 'switch' : condition must be a scalar integer expression ERROR: 0:21: 'switch' : last case/default label must be followed by statements @@ -9,6 +10,7 @@ ERROR: 0:67: 'case' : constant expression required ERROR: 0:89: '' : break statement only allowed in switch and loops ERROR: 9 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:6 Function Definition: main( (void) 0:6 Function Parameters: @@ -192,3 +194,8 @@ ERROR: node is still EOpNull! 0:? 'd' (uniform mediump int) 0:? 'x' (smooth in highp float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/swizzle.frag.out b/Test/baseResults/swizzle.frag.out index e6b3a934..b4e22b28 100644 --- a/Test/baseResults/swizzle.frag.out +++ b/Test/baseResults/swizzle.frag.out @@ -1,3 +1,5 @@ +../../LunarGLASS/test/swizzle.frag + 0:? Sequence 0:9 Function Definition: main( (void) 0:9 Function Parameters: @@ -206,3 +208,8 @@ 0:? 'p' (uniform bool) 0:? 't' (smooth in 2-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/syntaxError.frag.out b/Test/baseResults/syntaxError.frag.out index 54df8139..40c1f5a7 100644 --- a/Test/baseResults/syntaxError.frag.out +++ b/Test/baseResults/syntaxError.frag.out @@ -1,10 +1,17 @@ +../../LunarGLASS/test/syntaxError.frag ERROR: 0:9: 'vec5' : undeclared identifier ERROR: 0:9: '' : syntax error ERROR: 2 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:? Linker Objects 0:? 'bigColor' (uniform 4-component vector of float) 0:? 'BaseColor' (smooth in 4-component vector of float) 0:? 'd' (uniform float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/test.frag.out b/Test/baseResults/test.frag.out index 74bf2708..8e61b448 100644 --- a/Test/baseResults/test.frag.out +++ b/Test/baseResults/test.frag.out @@ -1,3 +1,5 @@ +../../LunarGLASS/test/test.frag + 0:? Sequence 0:13 Function Definition: main( (void) 0:13 Function Parameters: @@ -52,3 +54,8 @@ 0:? 't' (smooth in 2-component vector of float) 0:? 'coords' (smooth in 3-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/texture.frag.out b/Test/baseResults/texture.frag.out index 07f01f9b..544708d2 100644 --- a/Test/baseResults/texture.frag.out +++ b/Test/baseResults/texture.frag.out @@ -1,6 +1,8 @@ +../../LunarGLASS/test/texture.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. WARNING: 0:14: varying deprecated in version 130; may be removed in future release WARNING: 0:15: varying deprecated in version 130; may be removed in future release + 0:? Sequence 0:17 Function Definition: main( (void) 0:17 Function Parameters: @@ -280,3 +282,8 @@ WARNING: 0:15: varying deprecated in version 130; may be removed in future relea 0:? 't' (smooth in 2-component vector of float) 0:? 'coords2D' (smooth in 2-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/tokenLength.vert.out b/Test/baseResults/tokenLength.vert.out index fb82cc37..a75d43bf 100644 --- a/Test/baseResults/tokenLength.vert.out +++ b/Test/baseResults/tokenLength.vert.out @@ -1,3 +1,4 @@ +tokenLength.vert ERROR: 0:9: '' : numeric literal too big ERROR: 0:10: '' : numeric literal too big ERROR: 0:13: '' : octal literal too big @@ -14,6 +15,7 @@ ERROR: 0:36: '' : float literal too long ERROR: 0:36: '' : float literal too long ERROR: 14 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:9 Sequence 0:9 move second child to first child (highp int) @@ -105,3 +107,8 @@ ERROR: node is still EOpNull! 0:? 'gl_VertexID' (gl_VertexId highp int) 0:? 'gl_InstanceID' (gl_InstanceId highp int) + +Linked vertex stage: + + + diff --git a/Test/baseResults/types.frag.out b/Test/baseResults/types.frag.out index 91b3f7f0..cbd55e04 100644 --- a/Test/baseResults/types.frag.out +++ b/Test/baseResults/types.frag.out @@ -1,4 +1,6 @@ +../../LunarGLASS/test/types.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. + 0:? Sequence 0:33 Function Definition: main( (void) 0:33 Function Parameters: @@ -334,3 +336,8 @@ Warning, version 130 is not yet complete; most features are present, but a few a 0:? 'i_f3' (smooth in 3-component vector of float) 0:? 'i_f4' (smooth in 4-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/uint.frag.out b/Test/baseResults/uint.frag.out index 428df239..155aa9cc 100644 --- a/Test/baseResults/uint.frag.out +++ b/Test/baseResults/uint.frag.out @@ -1,3 +1,4 @@ +uint.frag ERROR: 0:2: 'uint' : must be qualified as flat in ERROR: 0:6: 'in' : cannot be bool ERROR: 0:20: 'const' : non-matching or non-convertible constant type for const initializer @@ -9,6 +10,7 @@ ERROR: 0:51: '=' : cannot convert from 'const int' to 'mediump uint' ERROR: 0:63: 'float' : type requires declaration of default precision qualifier ERROR: 9 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:15 Function Definition: main( (void) 0:15 Function Parameters: @@ -303,3 +305,8 @@ ERROR: node is still EOpNull! 0:? 'c' (out mediump 4-component vector of uint) 0:? 'usampler' (uniform lowp usampler2D) + +Linked fragment stage: + + + diff --git a/Test/baseResults/uniformArray.frag.out b/Test/baseResults/uniformArray.frag.out index e455809a..6156ddb0 100644 --- a/Test/baseResults/uniformArray.frag.out +++ b/Test/baseResults/uniformArray.frag.out @@ -1,4 +1,6 @@ +../../LunarGLASS/test/uniformArray.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. + 0:? Sequence 0:7 Function Definition: main( (void) 0:7 Function Parameters: @@ -44,3 +46,8 @@ Warning, version 130 is not yet complete; most features are present, but a few a 0:? 'color' (uniform 6-element array of 4-component vector of float) 0:? 'alpha' (uniform 16-element array of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/variableArrayIndex.frag.out b/Test/baseResults/variableArrayIndex.frag.out index e7d2d2a1..cbe8d05f 100644 --- a/Test/baseResults/variableArrayIndex.frag.out +++ b/Test/baseResults/variableArrayIndex.frag.out @@ -1,5 +1,7 @@ +../../LunarGLASS/test/variableArrayIndex.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. WARNING: 0:3: varying deprecated in version 130; may be removed in future release + 0:? Sequence 0:29 Function Definition: main( (void) 0:29 Function Parameters: @@ -108,3 +110,8 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas 0:? 'foo3' (uniform structure{s2_1,i,f,s1_1}) 0:? 'Count' (uniform int) + +Linked fragment stage: + + + diff --git a/Test/baseResults/varyingArray.frag.out b/Test/baseResults/varyingArray.frag.out index 8ea2a018..e930a0d0 100644 --- a/Test/baseResults/varyingArray.frag.out +++ b/Test/baseResults/varyingArray.frag.out @@ -1,8 +1,10 @@ +../../LunarGLASS/test/varyingArray.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. WARNING: 0:3: varying deprecated in version 130; may be removed in future release WARNING: 0:4: varying deprecated in version 130; may be removed in future release WARNING: 0:6: varying deprecated in version 130; may be removed in future release WARNING: 0:8: varying deprecated in version 130; may be removed in future release + 0:? Sequence 0:10 Function Definition: main( (void) 0:10 Function Parameters: @@ -57,3 +59,8 @@ WARNING: 0:8: varying deprecated in version 130; may be removed in future releas 0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float) 0:? 'foo' (smooth in 3-element array of 4-component vector of float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/varyingArrayIndirect.frag.out b/Test/baseResults/varyingArrayIndirect.frag.out index 087c6a59..b23fb63e 100644 --- a/Test/baseResults/varyingArrayIndirect.frag.out +++ b/Test/baseResults/varyingArrayIndirect.frag.out @@ -1,8 +1,10 @@ +../../LunarGLASS/test/varyingArrayIndirect.frag Warning, version 130 is not yet complete; most features are present, but a few are missing. WARNING: 0:3: varying deprecated in version 130; may be removed in future release WARNING: 0:4: varying deprecated in version 130; may be removed in future release WARNING: 0:6: varying deprecated in version 130; may be removed in future release WARNING: 0:8: varying deprecated in version 130; may be removed in future release + 0:? Sequence 0:12 Function Definition: main( (void) 0:12 Function Parameters: @@ -60,3 +62,8 @@ WARNING: 0:8: varying deprecated in version 130; may be removed in future releas 0:? 'a' (uniform int) 0:? 'b' (uniform int) + +Linked fragment stage: + + + diff --git a/Test/baseResults/versionsClean.frag.out b/Test/baseResults/versionsClean.frag.out index 783d469c..1a738472 100644 --- a/Test/baseResults/versionsClean.frag.out +++ b/Test/baseResults/versionsClean.frag.out @@ -1,7 +1,9 @@ +versionsClean.frag ERROR: #version: statement must appear first in es-profile shader; before comments or newlines ERROR: 0:34: '#version' : must occur first in shader ERROR: 2 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:41 Function Definition: main( (void) 0:41 Function Parameters: @@ -18,3 +20,8 @@ ERROR: node is still EOpNull! 0:? 'foo' (out highp 4-component vector of float) 0:? 'bar' (uniform highp sampler2DArrayShadow) + +Linked fragment stage: + + + diff --git a/Test/baseResults/versionsClean.vert.out b/Test/baseResults/versionsClean.vert.out index 8d83c614..b996b2d6 100644 --- a/Test/baseResults/versionsClean.vert.out +++ b/Test/baseResults/versionsClean.vert.out @@ -1,4 +1,6 @@ +versionsClean.vert Warning, version 420 is not yet complete; some version-specific features are present, but many are missing. + 0:? Sequence 0:40 Function Definition: main( (void) 0:40 Function Parameters: @@ -18,3 +20,8 @@ Warning, version 420 is not yet complete; some version-specific features are pre 0:? 'gl_VertexID' (gl_VertexId int) 0:? 'gl_InstanceID' (gl_InstanceId int) + +Linked vertex stage: + + + diff --git a/Test/baseResults/versionsErrors.frag.out b/Test/baseResults/versionsErrors.frag.out index cde4e280..034e0659 100644 --- a/Test/baseResults/versionsErrors.frag.out +++ b/Test/baseResults/versionsErrors.frag.out @@ -1,3 +1,4 @@ +versionsErrors.frag ERROR: #version: versions before 150 do not allow a profile token ERROR: 0:38: 'attribute' : not supported in this stage: fragment ERROR: 0:40: 'sampler2DRect' : Reserved word. @@ -5,6 +6,7 @@ ERROR: 0:40: 'rectangle texture' : not supported for this version or the enabled ERROR: 0:44: 'floating-point suffix' : not supported for this version or the enabled extensions ERROR: 5 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:42 Function Definition: main( (void) 0:42 Function Parameters: @@ -20,3 +22,8 @@ ERROR: node is still EOpNull! 0:? 'color' (smooth in 3-component vector of float) 0:? 'foo' (uniform sampler2DRect) + +Linked fragment stage: + + + diff --git a/Test/baseResults/versionsErrors.vert.out b/Test/baseResults/versionsErrors.vert.out index 0b6ac187..f3f51f5d 100644 --- a/Test/baseResults/versionsErrors.vert.out +++ b/Test/baseResults/versionsErrors.vert.out @@ -1,9 +1,11 @@ +versionsErrors.vert Warning, version 420 is not yet complete; some version-specific features are present, but many are missing. WARNING: 0:38: attribute deprecated in version 130; may be removed in future release ERROR: 0:38: 'attribute' : no longer supported in core profile; removed in version 420 ERROR: 0:45: 'discard' : not supported in this stage: vertex ERROR: 2 compilation errors. No code generated. + ERROR: node is still EOpNull! 0:42 Function Definition: main( (void) 0:42 Function Parameters: @@ -24,3 +26,8 @@ ERROR: node is still EOpNull! 0:? 'gl_VertexID' (gl_VertexId int) 0:? 'gl_InstanceID' (gl_InstanceId int) + +Linked vertex stage: + + + diff --git a/Test/baseResults/voidFunction.frag.out b/Test/baseResults/voidFunction.frag.out index 4b62cd21..2a408ff1 100644 --- a/Test/baseResults/voidFunction.frag.out +++ b/Test/baseResults/voidFunction.frag.out @@ -1,3 +1,5 @@ +../../LunarGLASS/test/voidFunction.frag + 0:? Sequence 0:7 Sequence 0:7 move second child to first child (float) @@ -40,3 +42,8 @@ 0:? 'd' (uniform float) 0:? 'bar' (float) + +Linked fragment stage: + + + diff --git a/Test/baseResults/whileLoop.frag.out b/Test/baseResults/whileLoop.frag.out index 7b25a0c3..fc1377e5 100644 --- a/Test/baseResults/whileLoop.frag.out +++ b/Test/baseResults/whileLoop.frag.out @@ -1,3 +1,5 @@ +../../LunarGLASS/test/whileLoop.frag + 0:? Sequence 0:7 Function Definition: main( (void) 0:7 Function Parameters: @@ -27,3 +29,8 @@ 0:? 'BaseColor' (smooth in 4-component vector of float) 0:? 'd' (uniform float) + +Linked fragment stage: + + + diff --git a/Test/runtests b/Test/runtests index 92633042..63cbd6ba 100755 --- a/Test/runtests +++ b/Test/runtests @@ -10,7 +10,7 @@ EXE=./glslangValidator.exe echo running configuration file test $EXE -c > $TARGETDIR/test.conf diff -b $BASEDIR/test.conf $TARGETDIR/test.conf -$EXE -i $TARGETDIR/test.conf specExamples.vert > $TARGETDIR/specExamples.vert.out +$EXE -i -l $TARGETDIR/test.conf specExamples.vert > $TARGETDIR/specExamples.vert.out diff -b $BASEDIR/specExamples.vert.out $TARGETDIR $EXE 100Limits.vert 100.conf > $TARGETDIR/100LimitsConf.vert.out diff -b $BASEDIR/100LimitsConf.vert.out $TARGETDIR/100LimitsConf.vert.out @@ -21,7 +21,7 @@ diff -b $BASEDIR/100LimitsConf.vert.out $TARGETDIR/100LimitsConf.vert.out while read t; do echo Running $t... b=`basename $t` - $EXE -i $t > $TARGETDIR/$b.out + $EXE -i -l $t > $TARGETDIR/$b.out diff -b $BASEDIR/$b.out $TARGETDIR/$b.out done < testlist diff --git a/Todo.txt b/Todo.txt index 34383162..462863a1 100644 --- a/Todo.txt +++ b/Todo.txt @@ -33,8 +33,8 @@ Link Validation - Non ES: binding overlap? - Non ES: gl_TexCoord can only have a max array size of up to gl_MaxTextureCoords + Non ES: geometry shader input array sizes and input layout qualifier declaration - - Non ES: read or write to both gl_ClipVertex and gl_ClipDistance - - Non ES: write to only one of gl_FragColor, gl_FragData, or user-declared + + Non ES: read or write to both gl_ClipVertex and gl_ClipDistance + + Non ES: write to only one of gl_FragColor, gl_FragData, or user-declared + 1.50: match between all explicit input array sizes and input primitive - 1.50: at least one geometry shader says input primitive and at least one says output primitive... - 1.50: at least one geometry shader says max_vertices... diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index 50508620..06e93cf0 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -312,6 +312,29 @@ public: } } + bool isIo() const + { + switch (storage) { + case EvqUniform: + case EvqBuffer: + case EvqVaryingIn: + case EvqFragCoord: + case EvqPointCoord: + case EvqFace: + case EvqVertexId: + case EvqInstanceId: + case EvqPosition: + case EvqPointSize: + case EvqClipVertex: + case EvqVaryingOut: + case EvqFragColor: + case EvqFragDepth: + return true; + default: + return false; + } + } + // Implementing an embedded layout-qualifier class here, since C++ can't have a real class bitfield void clearLayout() { diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 24b224aa..9aa56a79 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -54,7 +54,7 @@ TParseContext::TParseContext(TSymbolTable& symt, TIntermediate& interm, bool pb, contextPragma(true, false), loopNestingLevel(0), structNestingLevel(0), tokensBeforeEOF(false), currentScanner(0), numErrors(0), parsingBuiltins(pb), afterEOF(false), - anyIndexLimits(false), fragCoordUsedBeforeRedeclaration(false) + anyIndexLimits(false) { // ensure we always have a linkage node, even if empty, to simplify tree topology algorithms linkage = new TIntermAggregate; @@ -387,6 +387,7 @@ void C_DECL TParseContext::warn(TSourceLoc loc, const char *szReason, const char TIntermTyped* TParseContext::handleVariable(TSourceLoc loc, TSymbol* symbol, TString* string) { TIntermTyped* node = 0; + bool noteAccess = false; // Error check for function requiring specific extensions present. if (symbol && symbol->getNumExtensions()) @@ -403,6 +404,10 @@ TIntermTyped* TParseContext::handleVariable(TSourceLoc loc, TSymbol* symbol, TSt node = intermediate.addIndex(EOpIndexDirectStruct, container, constNode, loc); node->setType(*(*variable->getType().getStruct())[anon->getMemberNumber()].type); + if (variable->getType().getQualifier().isIo()) + noteAccess = true; + + // TODO: does this create any accidental type sharing with the built-in level? } else { // The symbol table search was done in the lexical phase, but // if this is a new symbol, it wouldn't have found it. @@ -419,18 +424,19 @@ TIntermTyped* TParseContext::handleVariable(TSourceLoc loc, TSymbol* symbol, TSt TType* type; if (variable->isReadOnly()) { type = new TType; - // break type sharing with built-ins + // break type sharing with built-ins; only costs if there are arrays or structures type->deepCopy(variable->getType()); - - // track use of unredeclared gl_FragCoord - if (variable->getName() == "gl_FragCoord") - fragCoordUsedBeforeRedeclaration = true; } else type = &variable->getWritableType(); node = intermediate.addSymbol(variable->getUniqueId(), variable->getName(), *type, loc); + if (type->getQualifier().isIo()) + noteAccess = true; } } + if (noteAccess) + intermediate.addIoAccessed(*string); + return node; } @@ -2069,10 +2075,8 @@ TSymbol* TParseContext::redeclareBuiltinVariable(TSourceLoc loc, const TString& symbolQualifier.storage != qualifier.storage) error(loc, "cannot change qualification of", "redeclaration", symbol->getName().c_str()); } else if (identifier == "gl_FragCoord") { - if (fragCoordUsedBeforeRedeclaration) + if (intermediate.inIoAccessed("gl_FragCoord")) error(loc, "cannot redeclare after use", "gl_FragCoord", ""); - // Note: this did not catch the case of 1) declare, 2) use, 3) declare again, because the "use" was of a redeclaration, and so didn't set fragCoordUsedBeforeRedeclaration. - // (and that's what the rules are too, as long as #3 matches #1) if (qualifier.nopersp != symbolQualifier.nopersp || qualifier.flat != symbolQualifier.flat || qualifier.isMemory() || qualifier.isAuxiliary()) error(loc, "can only change layout qualification of", "redeclaration", symbol->getName().c_str()); @@ -3425,6 +3429,8 @@ void TParseContext::addQualifierToExisting(TSourceLoc loc, TQualifier qualifier, symbol = symbolTable.copyUp(symbol); if (qualifier.invariant) { + if (intermediate.inIoAccessed(identifier)) + error(loc, "cannot change qualification after use", "invariant", ""); symbol->getWritableType().getQualifier().invariant = true; invariantCheck(loc, symbol->getType(), identifier); } diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index 81426be4..f96c0050 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -251,7 +251,6 @@ protected: TIdSetType inductiveLoopIds; bool anyIndexLimits; TVector needsIndexLimitationChecking; - bool fragCoordUsedBeforeRedeclaration; // // Geometry shader input arrays: diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp index 55bfdc63..f170a158 100644 --- a/glslang/MachineIndependent/linkValidate.cpp +++ b/glslang/MachineIndependent/linkValidate.cpp @@ -96,6 +96,8 @@ void TIntermediate::merge(TInfoSink& infoSink, TIntermediate& unit) mergeBodies(infoSink, globals, unitGlobals); mergeLinkerObjects(infoSink, linkerObjects, unitLinkerObjects); + + ioAccessed.insert(unit.ioAccessed.begin(), unit.ioAccessed.end()); } // @@ -249,6 +251,14 @@ void TIntermediate::errorCheck(TInfoSink& infoSink) // overlap/alias/missing I/O, etc. inOutLocationCheck(infoSink); + + if (inIoAccessed("gl_ClipDistance") && inIoAccessed("gl_ClipVertex")) + error(infoSink, "Can only use one of gl_ClipDistance or gl_ClipVertex (gl_ClipDistance is preferred)"); + + if (userOutputUsed() && (inIoAccessed("gl_FragColor") || inIoAccessed("gl_FragData"))) + error(infoSink, "Cannot use gl_FragColor or gl_FragData when using user-defined outputs"); + if (inIoAccessed("gl_FragColor") && inIoAccessed("gl_FragData")) + error(infoSink, "Cannot use both gl_FragColor and gl_FragData"); } // @@ -365,7 +375,7 @@ void TIntermediate::inOutLocationCheck(TInfoSink& infoSink) } } -TIntermSequence& TIntermediate::findLinkerObjects() +TIntermSequence& TIntermediate::findLinkerObjects() const { // Get the top-level globals TIntermSequence& globals = treeRoot->getAsAggregate()->getSequence(); @@ -376,4 +386,25 @@ TIntermSequence& TIntermediate::findLinkerObjects() return globals.back()->getAsAggregate()->getSequence(); } +// See if a variable was both a user-declared output and used. +// Note: the spec discusses writing to one, but this looks at read or write, which +// is more useful, and perhaps the spec should be changed to reflect that. +bool TIntermediate::userOutputUsed() const +{ + const TIntermSequence& linkerObjects = findLinkerObjects(); + + bool found = false; + for (size_t i = 0; i < linkerObjects.size(); ++i) { + const TIntermSymbol& symbolNode = *linkerObjects[i]->getAsSymbolNode(); + if (symbolNode.getQualifier().storage == EvqVaryingOut && + symbolNode.getName().compare(0, 3, "gl_") != 0 && + inIoAccessed(symbolNode.getName())) { + found = true; + break; + } + } + + return found; +} + } // end namespace glslang diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index 95c20ba8..c3213ef7 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -40,6 +40,7 @@ #include "Versions.h" #include +#include class TInfoSink; @@ -143,6 +144,9 @@ public: void merge(TInfoSink&, TIntermediate&); void errorCheck(TInfoSink&); + void addIoAccessed(const TString& name) { ioAccessed.insert(name); } + bool inIoAccessed(const TString& name) const { return ioAccessed.find(name) != ioAccessed.end(); } + void outputTree(TInfoSink&); void removeTree(); @@ -153,7 +157,8 @@ protected: void mergeErrorCheck(TInfoSink&, const TIntermSymbol&, const TIntermSymbol&, bool crossStage); void checkCallGraphCycles(TInfoSink&); void inOutLocationCheck(TInfoSink&); - TIntermSequence& findLinkerObjects(); + TIntermSequence& findLinkerObjects() const; + bool userOutputUsed() const; protected: const EShLanguage language; @@ -179,9 +184,11 @@ protected: bool currentPath; bool errorGiven; }; - typedef std::list TGraph; + typedef TList TGraph; TGraph callGraph; + std::set ioAccessed; // set of names of statically read/written I/O that might need extra checking + private: void operator=(TIntermediate&); // prevent assignments };