From e8fe7b81d75a015bb85f4c45f7a4119420d4beef Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Wed, 18 Dec 2013 18:47:12 +0000 Subject: [PATCH] Allow tessellation shaders to work on versions back to 150. Also combined all the tessellation tests into a single run. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24569 e7fa87d3-cd2b-0410-9028-fcbf551c1848 --- Test/140.frag | 2 + Test/150.frag | 2 + Test/150.tesc | 34 + Test/150.tese | 35 + Test/baseResults/140.frag.out | 6 + Test/baseResults/150.frag.out | 6 + Test/baseResults/150.tesc.out | 1374 +++++++++++++++++++++ Test/baseResults/400.tesc.out | 134 -- Test/baseResults/400.tese.out | 141 --- Test/baseResults/410.tesc.out | 21 - Test/baseResults/420.tesc.out | 87 -- Test/baseResults/420.tese.out | 171 --- Test/runtests | 23 +- Test/testlist | 5 - glslang/Include/revision.h | 4 +- glslang/MachineIndependent/Initialize.cpp | 8 +- glslang/MachineIndependent/Scan.cpp | 5 + glslang/MachineIndependent/ShaderLang.cpp | 8 +- glslang/MachineIndependent/Versions.h | 2 +- glslang/MachineIndependent/glslang.y | 1 - 20 files changed, 1487 insertions(+), 582 deletions(-) create mode 100644 Test/150.tesc create mode 100644 Test/150.tese create mode 100644 Test/baseResults/150.tesc.out delete mode 100644 Test/baseResults/400.tesc.out delete mode 100644 Test/baseResults/400.tese.out delete mode 100644 Test/baseResults/410.tesc.out delete mode 100644 Test/baseResults/420.tesc.out delete mode 100644 Test/baseResults/420.tese.out diff --git a/Test/140.frag b/Test/140.frag index 1ac44ce8e..1e29d4d4d 100644 --- a/Test/140.frag +++ b/Test/140.frag @@ -18,3 +18,5 @@ void main() #endif in struct S { float f; } s; // ERROR + +float patch = 3.1; \ No newline at end of file diff --git a/Test/150.frag b/Test/150.frag index 49d5636a8..6225aa7a7 100644 --- a/Test/150.frag +++ b/Test/150.frag @@ -14,3 +14,5 @@ void main() layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, declared after use in struct S { float f; } s; + +float patch = 3.1; \ No newline at end of file diff --git a/Test/150.tesc b/Test/150.tesc new file mode 100644 index 000000000..b72f0def9 --- /dev/null +++ b/Test/150.tesc @@ -0,0 +1,34 @@ +#version 150 + +#extension GL_ARB_tessellation_shader : enable + +layout(vertices = 4) out; +int outa[gl_out.length()]; + +patch out vec4 patchOut; + +void main() +{ + barrier(); + + int a = gl_MaxTessControlInputComponents + + gl_MaxTessControlOutputComponents + + gl_MaxTessControlTextureImageUnits + + gl_MaxTessControlUniformComponents + + gl_MaxTessControlTotalOutputComponents; + + vec4 p = gl_in[1].gl_Position; + float ps = gl_in[1].gl_PointSize; + float cd = gl_in[1].gl_ClipDistance[2]; + + int pvi = gl_PatchVerticesIn; + int pid = gl_PrimitiveID; + int iid = gl_InvocationID; + + gl_out[1].gl_Position = p; + gl_out[1].gl_PointSize = ps; + gl_out[1].gl_ClipDistance[1] = cd; + + gl_TessLevelOuter[3] = 3.2; + gl_TessLevelInner[1] = 1.3; +} diff --git a/Test/150.tese b/Test/150.tese new file mode 100644 index 000000000..aea65e810 --- /dev/null +++ b/Test/150.tese @@ -0,0 +1,35 @@ +#version 150 + +#extension GL_ARB_tessellation_shader : enable + +layout(quads, cw) in; +layout(fractional_odd_spacing) in; +layout(point_mode) in; +patch in vec4 patchIn; + +void main() +{ + barrier(); // ERROR + + int a = gl_MaxTessEvaluationInputComponents + + gl_MaxTessEvaluationOutputComponents + + gl_MaxTessEvaluationTextureImageUnits + + gl_MaxTessEvaluationUniformComponents + + gl_MaxTessPatchComponents + + gl_MaxPatchVertices + + gl_MaxTessGenLevel; + + vec4 p = gl_in[1].gl_Position; + float ps = gl_in[1].gl_PointSize; + float cd = gl_in[1].gl_ClipDistance[2]; + + int pvi = gl_PatchVerticesIn; + int pid = gl_PrimitiveID; + vec3 tc = gl_TessCoord; + float tlo = gl_TessLevelOuter[3]; + float tli = gl_TessLevelInner[1]; + + gl_Position = p; + gl_PointSize = ps; + gl_ClipDistance[2] = cd; +} diff --git a/Test/baseResults/140.frag.out b/Test/baseResults/140.frag.out index 7ac82bb00..eb5ceb103 100644 --- a/Test/baseResults/140.frag.out +++ b/Test/baseResults/140.frag.out @@ -17,6 +17,11 @@ ERROR: node is still EOpNull! 0:12 'gl_ClipDistance' (smooth in 5-element array of float) 0:12 Constant: 0:12 2 (const int) +0:22 Sequence +0:22 move second child to first child (float) +0:22 'patch' (float) +0:22 Constant: +0:22 3.100000 0:? Linker Objects 0:? 'v' (smooth in 4-component vector of float) 0:? 'i' (smooth in 4-component vector of float) @@ -24,6 +29,7 @@ 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) 0:? 's' (smooth in structure{f}) +0:? 'patch' (float) Linked fragment stage: diff --git a/Test/baseResults/150.frag.out b/Test/baseResults/150.frag.out index d6efd180f..148f5ea54 100644 --- a/Test/baseResults/150.frag.out +++ b/Test/baseResults/150.frag.out @@ -17,11 +17,17 @@ ERROR: node is still EOpNull! 0:11 move second child to first child (4-component vector of float) 0:11 'c' (4-component vector of float) 0:11 'gl_FragCoord' (gl_FragCoord 4-component vector of float) +0:18 Sequence +0:18 move second child to first child (float) +0:18 'patch' (float) +0:18 Constant: +0:18 3.100000 0:? Linker Objects 0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float) 0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float) 0:? 'foo' (smooth in 4-component vector of float) 0:? 's' (smooth in structure{f}) +0:? 'patch' (float) Linked fragment stage: diff --git a/Test/baseResults/150.tesc.out b/Test/baseResults/150.tesc.out new file mode 100644 index 000000000..b7fbe2741 --- /dev/null +++ b/Test/baseResults/150.tesc.out @@ -0,0 +1,1374 @@ +150.tesc +Warning, version 150 is not yet complete; some version-specific features are present, but many are missing. + +vertices = 4 +0:? Sequence +0:10 Function Definition: main( (void) +0:10 Function Parameters: +0:12 Sequence +0:12 Barrier (void) +0:14 Sequence +0:14 move second child to first child (int) +0:14 'a' (int) +0:14 Constant: +0:14 5392 (const int) +0:20 Sequence +0:20 move second child to first child (4-component vector of float) +0:20 'p' (4-component vector of float) +0:20 gl_Position: direct index for structure (4-component vector of float) +0:20 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:20 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:21 Sequence +0:21 move second child to first child (float) +0:21 'ps' (float) +0:21 gl_PointSize: direct index for structure (float) +0:21 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:21 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:21 Constant: +0:21 1 (const int) +0:21 Constant: +0:21 1 (const int) +0:22 Sequence +0:22 move second child to first child (float) +0:22 'cd' (float) +0:22 direct index (float) +0:22 gl_ClipDistance: direct index for structure (unsized array of float) +0:22 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:22 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 2 (const int) +0:22 Constant: +0:22 2 (const int) +0:24 Sequence +0:24 move second child to first child (int) +0:24 'pvi' (int) +0:24 'gl_PatchVerticesIn' (in int) +0:25 Sequence +0:25 move second child to first child (int) +0:25 'pid' (int) +0:25 'gl_PrimitiveID' (in int) +0:26 Sequence +0:26 move second child to first child (int) +0:26 'iid' (int) +0:26 'gl_InvocationID' (in int) +0:28 move second child to first child (4-component vector of float) +0:28 gl_Position: direct index for structure (4-component vector of float) +0:28 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:28 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:28 Constant: +0:28 1 (const int) +0:28 Constant: +0:28 0 (const int) +0:28 'p' (4-component vector of float) +0:29 move second child to first child (float) +0:29 gl_PointSize: direct index for structure (float) +0:29 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:29 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:29 Constant: +0:29 1 (const int) +0:29 Constant: +0:29 1 (const int) +0:29 'ps' (float) +0:30 move second child to first child (float) +0:30 direct index (float) +0:30 gl_ClipDistance: direct index for structure (unsized array of float) +0:30 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:30 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:30 Constant: +0:30 1 (const int) +0:30 Constant: +0:30 2 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 'cd' (float) +0:32 move second child to first child (float) +0:32 direct index (patch float) +0:32 'gl_TessLevelOuter' (patch out 4-element array of float) +0:32 Constant: +0:32 3 (const int) +0:32 Constant: +0:32 3.200000 +0:33 move second child to first child (float) +0:33 direct index (patch float) +0:33 'gl_TessLevelInner' (patch out 2-element array of float) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 1.300000 +0:? Linker Objects +0:? 'outa' (4-element array of int) +0:? 'patchOut' (patch out 4-component vector of float) +0:? 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) + +150.tese +Warning, version 150 is not yet complete; some version-specific features are present, but many are missing. +ERROR: 0:12: 'barrier' : no matching overloaded function found +ERROR: 1 compilation errors. No code generated. + + +input primitive = quads +vertex spacing = fractional_odd_spacing +triangle order = cw +using point mode +ERROR: node is still EOpNull! +0:10 Function Definition: main( (void) +0:10 Function Parameters: +0:12 Sequence +0:12 Constant: +0:12 0.000000 +0:14 Sequence +0:14 move second child to first child (int) +0:14 'a' (int) +0:14 Constant: +0:14 1512 (const int) +0:22 Sequence +0:22 move second child to first child (4-component vector of float) +0:22 'p' (4-component vector of float) +0:22 gl_Position: direct index for structure (4-component vector of float) +0:22 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:22 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 0 (const int) +0:23 Sequence +0:23 move second child to first child (float) +0:23 'ps' (float) +0:23 gl_PointSize: direct index for structure (float) +0:23 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:23 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 1 (const int) +0:24 Sequence +0:24 move second child to first child (float) +0:24 'cd' (float) +0:24 direct index (float) +0:24 gl_ClipDistance: direct index for structure (unsized array of float) +0:24 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:24 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 2 (const int) +0:24 Constant: +0:24 2 (const int) +0:26 Sequence +0:26 move second child to first child (int) +0:26 'pvi' (int) +0:26 'gl_PatchVerticesIn' (in int) +0:27 Sequence +0:27 move second child to first child (int) +0:27 'pid' (int) +0:27 'gl_PrimitiveID' (in int) +0:28 Sequence +0:28 move second child to first child (3-component vector of float) +0:28 'tc' (3-component vector of float) +0:28 'gl_TessCoord' (in 3-component vector of float) +0:29 Sequence +0:29 move second child to first child (float) +0:29 'tlo' (float) +0:29 direct index (patch float) +0:29 'gl_TessLevelOuter' (patch in 4-element array of float) +0:29 Constant: +0:29 3 (const int) +0:30 Sequence +0:30 move second child to first child (float) +0:30 'tli' (float) +0:30 direct index (patch float) +0:30 'gl_TessLevelInner' (patch in 2-element array of float) +0:30 Constant: +0:30 1 (const int) +0:32 move second child to first child (4-component vector of float) +0:32 gl_Position: direct index for structure (gl_Position 4-component vector of float) +0:32 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:32 Constant: +0:32 0 (const uint) +0:32 'p' (4-component vector of float) +0:33 move second child to first child (float) +0:33 gl_PointSize: direct index for structure (gl_PointSize float) +0:33 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:33 Constant: +0:33 1 (const uint) +0:33 'ps' (float) +0:34 move second child to first child (float) +0:34 direct index (float) +0:34 gl_ClipDistance: direct index for structure (unsized array of float) +0:34 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:34 Constant: +0:34 2 (const uint) +0:34 Constant: +0:34 2 (const int) +0:34 'cd' (float) +0:? Linker Objects +0:? 'patchIn' (patch in 4-component vector of float) + +400.tesc +Warning, version 400 is not yet complete; some version-specific features are present, but many are missing. +ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignemnt (e.g., binding = 4) +ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignemnt (e.g., binding = 4) +ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignemnt (e.g., binding = 4) +ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader +ERROR: 0:39: 'vertices' : can only apply to 'out' +ERROR: 0:40: 'vertices' : cannot change previously set layout value +ERROR: 0:44: '[' : array index out of range '4' +ERROR: 7 compilation errors. No code generated. + + +vertices = 4 +ERROR: node is still EOpNull! +0:13 Function Definition: main( (void) +0:13 Function Parameters: +0:15 Sequence +0:15 Barrier (void) +0:17 Sequence +0:17 move second child to first child (int) +0:17 'a' (int) +0:17 Constant: +0:17 5392 (const int) +0:23 Sequence +0:23 move second child to first child (4-component vector of float) +0:23 'p' (4-component vector of float) +0:23 gl_Position: direct index for structure (4-component vector of float) +0:23 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:23 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child (float) +0:24 'ps' (float) +0:24 gl_PointSize: direct index for structure (float) +0:24 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:24 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child (float) +0:25 'cd' (float) +0:25 direct index (float) +0:25 gl_ClipDistance: direct index for structure (unsized array of float) +0:25 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:25 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:25 Constant: +0:25 1 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child (int) +0:27 'pvi' (int) +0:27 'gl_PatchVerticesIn' (in int) +0:28 Sequence +0:28 move second child to first child (int) +0:28 'pid' (int) +0:28 'gl_PrimitiveID' (in int) +0:29 Sequence +0:29 move second child to first child (int) +0:29 'iid' (int) +0:29 'gl_InvocationID' (in int) +0:31 move second child to first child (4-component vector of float) +0:31 gl_Position: direct index for structure (4-component vector of float) +0:31 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:31 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:31 Constant: +0:31 1 (const int) +0:31 Constant: +0:31 0 (const int) +0:31 'p' (4-component vector of float) +0:32 move second child to first child (float) +0:32 gl_PointSize: direct index for structure (float) +0:32 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:32 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 'ps' (float) +0:33 move second child to first child (float) +0:33 direct index (float) +0:33 gl_ClipDistance: direct index for structure (unsized array of float) +0:33 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:33 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 2 (const int) +0:33 Constant: +0:33 1 (const int) +0:33 'cd' (float) +0:35 move second child to first child (float) +0:35 direct index (patch float) +0:35 'gl_TessLevelOuter' (patch out 4-element array of float) +0:35 Constant: +0:35 3 (const int) +0:35 Constant: +0:35 3.200000 +0:36 move second child to first child (float) +0:36 direct index (patch float) +0:36 'gl_TessLevelInner' (patch out 2-element array of float) +0:36 Constant: +0:36 1 (const int) +0:36 Constant: +0:36 1.300000 +0:42 Function Definition: foo( (void) +0:42 Function Parameters: +0:44 Sequence +0:44 gl_PointSize: direct index for structure (float) +0:44 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:44 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:44 Constant: +0:44 4 (const int) +0:44 Constant: +0:44 1 (const int) +0:? Linker Objects +0:? 'outa' (4-element array of int) +0:? 'patchIn' (patch in 4-component vector of float) +0:? 'patchOut' (patch out 4-component vector of float) +0:? 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) + +400.tese +Warning, version 400 is not yet complete; some version-specific features are present, but many are missing. +ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value +ERROR: 0:5: 'triangles' : cannot change previously set input primitive +ERROR: 0:6: 'isolines' : cannot change previously set input primitive +ERROR: 0:8: 'ccw' : cannot change previously set vertex order +ERROR: 0:12: 'equal_spacing' : cannot change previously set vertex spacing +ERROR: 0:13: 'fractional_even_spacing' : cannot change previously set vertex spacing +ERROR: 0:18: 'patch' : can only use on input in tessellation-evaluation shader +ERROR: 0:22: 'barrier' : no matching overloaded function found +ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch +ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch +ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch +ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample) +ERROR: 0:54: 'gl_PerVertex' : block already declared with size, can't redeclare as unsized +ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use +ERROR: 0:64: 'quads' : cannot apply to 'out' +ERROR: 0:64: 'cw' : can only apply to 'in' +ERROR: 0:65: 'triangles' : cannot apply to 'out' +ERROR: 0:66: 'isolines' : cannot apply to 'out' +ERROR: 0:67: 'cw' : can only apply to 'in' +ERROR: 0:68: 'fractional_odd_spacing' : can only apply to 'in' +ERROR: 0:69: 'equal_spacing' : can only apply to 'in' +ERROR: 0:70: 'fractional_even_spacing' : can only apply to 'in' +ERROR: 0:71: 'point_mode' : can only apply to 'in' +ERROR: 23 compilation errors. No code generated. + + +input primitive = quads +vertex spacing = fractional_odd_spacing +triangle order = cw +using point mode +ERROR: node is still EOpNull! +0:20 Function Definition: main( (void) +0:20 Function Parameters: +0:22 Sequence +0:22 Constant: +0:22 0.000000 +0:24 Sequence +0:24 move second child to first child (int) +0:24 'a' (int) +0:24 Constant: +0:24 1512 (const int) +0:32 Sequence +0:32 move second child to first child (4-component vector of float) +0:32 'p' (4-component vector of float) +0:32 gl_Position: direct index for structure (4-component vector of float) +0:32 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:32 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 0 (const int) +0:33 Sequence +0:33 move second child to first child (float) +0:33 'ps' (float) +0:33 gl_PointSize: direct index for structure (float) +0:33 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:33 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 1 (const int) +0:34 Sequence +0:34 move second child to first child (float) +0:34 'cd' (float) +0:34 direct index (float) +0:34 gl_ClipDistance: direct index for structure (unsized array of float) +0:34 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:34 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 2 (const int) +0:34 Constant: +0:34 2 (const int) +0:36 Sequence +0:36 move second child to first child (int) +0:36 'pvi' (int) +0:36 'gl_PatchVerticesIn' (in int) +0:37 Sequence +0:37 move second child to first child (int) +0:37 'pid' (int) +0:37 'gl_PrimitiveID' (in int) +0:38 Sequence +0:38 move second child to first child (3-component vector of float) +0:38 'tc' (3-component vector of float) +0:38 'gl_TessCoord' (in 3-component vector of float) +0:39 Sequence +0:39 move second child to first child (float) +0:39 'tlo' (float) +0:39 direct index (patch float) +0:39 'gl_TessLevelOuter' (patch in 4-element array of float) +0:39 Constant: +0:39 3 (const int) +0:40 Sequence +0:40 move second child to first child (float) +0:40 'tli' (float) +0:40 direct index (patch float) +0:40 'gl_TessLevelInner' (patch in 2-element array of float) +0:40 Constant: +0:40 1 (const int) +0:42 move second child to first child (4-component vector of float) +0:42 gl_Position: direct index for structure (gl_Position 4-component vector of float) +0:42 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:42 Constant: +0:42 0 (const uint) +0:42 'p' (4-component vector of float) +0:43 move second child to first child (float) +0:43 gl_PointSize: direct index for structure (gl_PointSize float) +0:43 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:43 Constant: +0:43 1 (const uint) +0:43 'ps' (float) +0:44 move second child to first child (float) +0:44 direct index (float) +0:44 gl_ClipDistance: direct index for structure (unsized array of float) +0:44 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:44 Constant: +0:44 2 (const uint) +0:44 Constant: +0:44 2 (const int) +0:44 'cd' (float) +0:? Linker Objects +0:? 'patchIn' (patch in 4-component vector of float) +0:? 'patchOut' (patch out 4-component vector of float) +0:? 'badp1' (smooth patch in 4-component vector of float) +0:? 'badp2' (flat patch in 4-component vector of float) +0:? 'badp3' (noperspective patch in 4-component vector of float) +0:? 'badp4' (patch sample in 3-component vector of float) +0:? 'gl_in' (in 32-element array of block{gl_ClipDistance}) + +410.tesc +Warning, version 400 is not yet complete; some version-specific features are present, but many are missing. +ERROR: 0:4: 'length' : array must first be sized by a redeclaration or layout qualifier +ERROR: 1 compilation errors. No code generated. + + +vertices = 0 +ERROR: node is still EOpNull! +0:8 Function Definition: main( (void) +0:8 Function Parameters: +0:? Linker Objects +0:? 'outa' (1-element array of int) +0:? 'patchOut' (patch out 4-component vector of float) + +420.tesc +Warning, version 400 is not yet complete; some version-specific features are present, but many are missing. +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: 'assign' : cannot convert from 'float' to 'block{gl_Position}' +ERROR: 0:29: 'out' : type must be an array: outf +ERROR: 6 compilation errors. No code generated. + + +vertices = 4 +ERROR: node is still EOpNull! +0:15 Function Definition: main( (void) +0:15 Function Parameters: +0:17 Sequence +0:17 Sequence +0:17 move second child to first child (4-component vector of float) +0:17 'p' (4-component vector of float) +0:17 gl_Position: direct index for structure (4-component vector of float) +0:17 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:17 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 0 (const int) +0:18 Sequence +0:18 move second child to first child (float) +0:18 'ps' (float) +0:18 gl_PointSize: direct index for structure (float) +0:18 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:18 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 1 (const int) +0:19 Sequence +0:19 move second child to first child (float) +0:19 'cd' (float) +0:19 direct index (float) +0:19 gl_ClipDistance: direct index for structure (unsized array of float) +0:19 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:19 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 2 (const int) +0:21 Sequence +0:21 move second child to first child (int) +0:21 'pvi' (int) +0:21 'gl_PatchVerticesIn' (in int) +0:22 Sequence +0:22 move second child to first child (int) +0:22 'pid' (int) +0:22 'gl_PrimitiveID' (in int) +0:23 Sequence +0:23 move second child to first child (int) +0:23 'iid' (int) +0:23 'gl_InvocationID' (in int) +0:25 move second child to first child (4-component vector of float) +0:25 gl_Position: direct index for structure (4-component vector of float) +0:25 direct index (block{gl_Position}) +0:25 'gl_out' (out 3-element array of block{gl_Position}) +0:25 Constant: +0:25 1 (const int) +0:25 Constant: +0:25 0 (const int) +0:25 'p' (4-component vector of float) +0:26 direct index (block{gl_Position}) +0:26 'gl_out' (out 3-element array of block{gl_Position}) +0:26 Constant: +0:26 1 (const int) +0:? Linker Objects +0:? 'gl_out' (out 3-element array of block{gl_Position}) +0:? 'a' (out 3-element array of int) +0:? 'outb' (out 5-element array of int) +0:? 'outc' (out 4-element array of int) +0:? 'outf' (out float) + +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 +ERROR: 0:9: 'initializer list' : wrong number of matrix columns: 3X3 matrix of float +ERROR: 0:10: 'initializer list' : wrong number of matrix columns: 2X2 matrix of float +ERROR: 0:25: 'initializer list' : wrong number of structure members +ERROR: 0:27: '=' : cannot convert from 'const bool' to 'int' +ERROR: 0:28: 'constructor' : cannot convert parameter 2 from 'const float' to '4-component vector of float' +ERROR: 0:29: 'constructor' : cannot convert parameter 2 from 'const 2X2 matrix of float' to 'const 4-component vector of float' +ERROR: 0:29: 'const 2-element array of 4-component vector of float' : cannot construct with these arguments +ERROR: 0:29: '=' : cannot convert from 'const float' to '2-element array of 4-component vector of float' +ERROR: 0:30: 'initializer list' : wrong number of matrix columns: 4X2 matrix of float +ERROR: 0:40: 'constructor' : cannot convert parameter 1 from 'float' to 'structure{s,t}' +ERROR: 0:58: 'initializer list' : wrong number of structure members +ERROR: 13 compilation errors. No code generated. + + +input primitive = none +vertex spacing = none +triangle order = none +ERROR: node is still EOpNull! +0:4 Sequence +0:4 move second child to first child (2X2 matrix of float) +0:4 'b' (2X2 matrix of float) +0:4 Constant: +0:4 1.000000 +0:4 0.000000 +0:4 0.000000 +0:4 1.000000 +0:15 Sequence +0:15 move second child to first child (structure{a,b}) +0:15 'e' (structure{a,b}) +0:15 Constant: +0:15 1.200000 +0:15 2 (const int) +0:20 Sequence +0:20 move second child to first child (structure{a,b}) +0:20 'e2' (structure{a,b}) +0:20 Constant: +0:20 1.000000 +0:20 3 (const int) +0:42 Sequence +0:42 move second child to first child (5-element array of float) +0:42 'b5' (5-element array of float) +0:42 Constant: +0:42 3.400000 +0:42 4.200000 +0:42 5.000000 +0:42 5.200000 +0:42 1.100000 +0:67 Sequence +0:67 move second child to first child (3-component vector of float) +0:67 'av3' (3-component vector of float) +0:67 Construct vec3 (3-component vector of float) +0:67 'vc1' (float) +0:67 'vc2' (float) +0:67 'vc3' (float) +0:68 Sequence +0:68 move second child to first child (3-component vector of float) +0:68 'bv3' (3-component vector of float) +0:68 Construct vec3 (3-component vector of float) +0:68 'vc1' (float) +0:68 'vc2' (float) +0:68 'vc3' (float) +0:70 Function Definition: main( (void) +0:70 Function Parameters: +0:72 Sequence +0:72 MemoryBarrier (void) +0:74 Test condition and select (void) +0:74 Condition +0:74 Compare Equal (bool) +0:74 Constant: +0:74 1 (const uint) +0:74 2 (const uint) +0:74 3.000000 +0:74 4.000000 +0:74 0.000000 +0:74 0.000000 +0:74 0.000000 +0:74 4.000000 +0:74 0.000000 +0:74 5.000000 +0:74 6.000000 +0:74 0.000000 +0:74 0.000000 +0:74 0.000000 +0:74 6.000000 +0:74 0.000000 +0:74 'curlybad1' (structure{uv2,s}) +0:74 true case is null +0:76 Test condition and select (void) +0:76 Condition +0:76 Constant: +0:76 true (const bool) +0:76 true case is null +0:? Linker Objects +0:? 'a' (const 2X2 matrix of float) +0:? 1.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:? 'b' (2X2 matrix of float) +0:? 'c' (const 2X2 matrix of float) +0:? 1.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:? 'a2' (2-element array of float) +0:? 'b2' (2-component vector of float) +0:? 'c2' (3X3 matrix of float) +0:? 'd' (2X2 matrix of float) +0:? 'e' (structure{a,b}) +0:? 'e2' (structure{a,b}) +0:? 'e3' (structure{a,b}) +0:? 'a3' (int) +0:? 'b3' (2-element array of 4-component vector of float) +0:? 'b4' (2-element array of 4-component vector of float) +0:? 'c3' (4X2 matrix of float) +0:? 'd2' (unsized array of structure{s,t}) +0:? 'b5' (5-element array of float) +0:? 'constructed' (const structure{uv2,s}) +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3.000000 +0:? 4.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 4.000000 +0:? 0.000000 +0:? 5.000000 +0:? 6.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 6.000000 +0:? 0.000000 +0:? 'curlybad1' (structure{uv2,s}) +0:? 'curlyInit' (const structure{uv2,s}) +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3.000000 +0:? 4.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 4.000000 +0:? 0.000000 +0:? 5.000000 +0:? 6.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 6.000000 +0:? 0.000000 +0:? 'vc1' (float) +0:? 'vc2' (float) +0:? 'vc3' (float) +0:? 'av3' (3-component vector of float) +0:? 'bv3' (3-component vector of float) + + +Linked tessellation control stage: + +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: Contradictory layout vertices values +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: 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: "4-element array of int" versus "1-element array of int" +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: Multiple function bodies in multiple compilation units for the same signature in the same stage: + 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: + gl_out: "out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}" versus "out 3-element array of block{gl_Position}" + +Linked tessellation evaluation stage: + +ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: + main( +ERROR: Linking tessellation evaluation stage: Contradictory input layout primitives +ERROR: Linking tessellation evaluation stage: Contradictory input vertex spacing +ERROR: Linking tessellation evaluation stage: Contradictory triangle ordering +ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: + main( +ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: + main( + +vertices = 4 +0:? Sequence +0:10 Function Definition: main( (void) +0:10 Function Parameters: +0:12 Sequence +0:12 Barrier (void) +0:14 Sequence +0:14 move second child to first child (int) +0:14 'a' (int) +0:14 Constant: +0:14 5392 (const int) +0:20 Sequence +0:20 move second child to first child (4-component vector of float) +0:20 'p' (4-component vector of float) +0:20 gl_Position: direct index for structure (4-component vector of float) +0:20 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:20 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:20 Constant: +0:20 1 (const int) +0:20 Constant: +0:20 0 (const int) +0:21 Sequence +0:21 move second child to first child (float) +0:21 'ps' (float) +0:21 gl_PointSize: direct index for structure (float) +0:21 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:21 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:21 Constant: +0:21 1 (const int) +0:21 Constant: +0:21 1 (const int) +0:22 Sequence +0:22 move second child to first child (float) +0:22 'cd' (float) +0:22 direct index (float) +0:22 gl_ClipDistance: direct index for structure (unsized array of float) +0:22 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:22 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 2 (const int) +0:22 Constant: +0:22 2 (const int) +0:24 Sequence +0:24 move second child to first child (int) +0:24 'pvi' (int) +0:24 'gl_PatchVerticesIn' (in int) +0:25 Sequence +0:25 move second child to first child (int) +0:25 'pid' (int) +0:25 'gl_PrimitiveID' (in int) +0:26 Sequence +0:26 move second child to first child (int) +0:26 'iid' (int) +0:26 'gl_InvocationID' (in int) +0:28 move second child to first child (4-component vector of float) +0:28 gl_Position: direct index for structure (4-component vector of float) +0:28 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:28 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:28 Constant: +0:28 1 (const int) +0:28 Constant: +0:28 0 (const int) +0:28 'p' (4-component vector of float) +0:29 move second child to first child (float) +0:29 gl_PointSize: direct index for structure (float) +0:29 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:29 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:29 Constant: +0:29 1 (const int) +0:29 Constant: +0:29 1 (const int) +0:29 'ps' (float) +0:30 move second child to first child (float) +0:30 direct index (float) +0:30 gl_ClipDistance: direct index for structure (unsized array of float) +0:30 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:30 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:30 Constant: +0:30 1 (const int) +0:30 Constant: +0:30 2 (const int) +0:30 Constant: +0:30 1 (const int) +0:30 'cd' (float) +0:32 move second child to first child (float) +0:32 direct index (patch float) +0:32 'gl_TessLevelOuter' (patch out 4-element array of float) +0:32 Constant: +0:32 3 (const int) +0:32 Constant: +0:32 3.200000 +0:33 move second child to first child (float) +0:33 direct index (patch float) +0:33 'gl_TessLevelInner' (patch out 2-element array of float) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 1.300000 +0:13 Function Definition: main( (void) +0:13 Function Parameters: +0:15 Sequence +0:15 Barrier (void) +0:17 Sequence +0:17 move second child to first child (int) +0:17 'a' (int) +0:17 Constant: +0:17 5392 (const int) +0:23 Sequence +0:23 move second child to first child (4-component vector of float) +0:23 'p' (4-component vector of float) +0:23 gl_Position: direct index for structure (4-component vector of float) +0:23 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:23 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 0 (const int) +0:24 Sequence +0:24 move second child to first child (float) +0:24 'ps' (float) +0:24 gl_PointSize: direct index for structure (float) +0:24 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:24 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 1 (const int) +0:25 Sequence +0:25 move second child to first child (float) +0:25 'cd' (float) +0:25 direct index (float) +0:25 gl_ClipDistance: direct index for structure (unsized array of float) +0:25 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:25 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:25 Constant: +0:25 1 (const int) +0:25 Constant: +0:25 2 (const int) +0:25 Constant: +0:25 2 (const int) +0:27 Sequence +0:27 move second child to first child (int) +0:27 'pvi' (int) +0:27 'gl_PatchVerticesIn' (in int) +0:28 Sequence +0:28 move second child to first child (int) +0:28 'pid' (int) +0:28 'gl_PrimitiveID' (in int) +0:29 Sequence +0:29 move second child to first child (int) +0:29 'iid' (int) +0:29 'gl_InvocationID' (in int) +0:31 move second child to first child (4-component vector of float) +0:31 gl_Position: direct index for structure (4-component vector of float) +0:31 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:31 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:31 Constant: +0:31 1 (const int) +0:31 Constant: +0:31 0 (const int) +0:31 'p' (4-component vector of float) +0:32 move second child to first child (float) +0:32 gl_PointSize: direct index for structure (float) +0:32 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:32 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 1 (const int) +0:32 'ps' (float) +0:33 move second child to first child (float) +0:33 direct index (float) +0:33 gl_ClipDistance: direct index for structure (unsized array of float) +0:33 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:33 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 2 (const int) +0:33 Constant: +0:33 1 (const int) +0:33 'cd' (float) +0:35 move second child to first child (float) +0:35 direct index (patch float) +0:35 'gl_TessLevelOuter' (patch out 4-element array of float) +0:35 Constant: +0:35 3 (const int) +0:35 Constant: +0:35 3.200000 +0:36 move second child to first child (float) +0:36 direct index (patch float) +0:36 'gl_TessLevelInner' (patch out 2-element array of float) +0:36 Constant: +0:36 1 (const int) +0:36 Constant: +0:36 1.300000 +0:42 Function Definition: foo( (void) +0:42 Function Parameters: +0:44 Sequence +0:44 gl_PointSize: direct index for structure (float) +0:44 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:44 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:44 Constant: +0:44 4 (const int) +0:44 Constant: +0:44 1 (const int) +0:8 Function Definition: main( (void) +0:8 Function Parameters: +0:15 Function Definition: main( (void) +0:15 Function Parameters: +0:17 Sequence +0:17 Sequence +0:17 move second child to first child (4-component vector of float) +0:17 'p' (4-component vector of float) +0:17 gl_Position: direct index for structure (4-component vector of float) +0:17 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:17 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 0 (const int) +0:18 Sequence +0:18 move second child to first child (float) +0:18 'ps' (float) +0:18 gl_PointSize: direct index for structure (float) +0:18 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:18 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 1 (const int) +0:19 Sequence +0:19 move second child to first child (float) +0:19 'cd' (float) +0:19 direct index (float) +0:19 gl_ClipDistance: direct index for structure (unsized array of float) +0:19 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:19 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 2 (const int) +0:19 Constant: +0:19 2 (const int) +0:21 Sequence +0:21 move second child to first child (int) +0:21 'pvi' (int) +0:21 'gl_PatchVerticesIn' (in int) +0:22 Sequence +0:22 move second child to first child (int) +0:22 'pid' (int) +0:22 'gl_PrimitiveID' (in int) +0:23 Sequence +0:23 move second child to first child (int) +0:23 'iid' (int) +0:23 'gl_InvocationID' (in int) +0:25 move second child to first child (4-component vector of float) +0:25 gl_Position: direct index for structure (4-component vector of float) +0:25 direct index (block{gl_Position}) +0:25 'gl_out' (out 3-element array of block{gl_Position}) +0:25 Constant: +0:25 1 (const int) +0:25 Constant: +0:25 0 (const int) +0:25 'p' (4-component vector of float) +0:26 direct index (block{gl_Position}) +0:26 'gl_out' (out 3-element array of block{gl_Position}) +0:26 Constant: +0:26 1 (const int) +0:? Linker Objects +0:? 'outa' (4-element array of int) +0:? 'patchOut' (patch out 4-component vector of float) +0:? 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:? 'patchIn' (patch in 4-component vector of float) +0:? 'a' (out 3-element array of int) +0:? 'outb' (out 5-element array of int) +0:? 'outc' (out 4-element array of int) +0:? 'outf' (out float) +input primitive = quads +vertex spacing = fractional_odd_spacing +triangle order = cw +using point mode +ERROR: node is still EOpNull! +0:10 Function Definition: main( (void) +0:10 Function Parameters: +0:12 Sequence +0:12 Constant: +0:12 0.000000 +0:14 Sequence +0:14 move second child to first child (int) +0:14 'a' (int) +0:14 Constant: +0:14 1512 (const int) +0:22 Sequence +0:22 move second child to first child (4-component vector of float) +0:22 'p' (4-component vector of float) +0:22 gl_Position: direct index for structure (4-component vector of float) +0:22 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:22 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:22 Constant: +0:22 1 (const int) +0:22 Constant: +0:22 0 (const int) +0:23 Sequence +0:23 move second child to first child (float) +0:23 'ps' (float) +0:23 gl_PointSize: direct index for structure (float) +0:23 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:23 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:23 Constant: +0:23 1 (const int) +0:23 Constant: +0:23 1 (const int) +0:24 Sequence +0:24 move second child to first child (float) +0:24 'cd' (float) +0:24 direct index (float) +0:24 gl_ClipDistance: direct index for structure (unsized array of float) +0:24 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:24 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:24 Constant: +0:24 1 (const int) +0:24 Constant: +0:24 2 (const int) +0:24 Constant: +0:24 2 (const int) +0:26 Sequence +0:26 move second child to first child (int) +0:26 'pvi' (int) +0:26 'gl_PatchVerticesIn' (in int) +0:27 Sequence +0:27 move second child to first child (int) +0:27 'pid' (int) +0:27 'gl_PrimitiveID' (in int) +0:28 Sequence +0:28 move second child to first child (3-component vector of float) +0:28 'tc' (3-component vector of float) +0:28 'gl_TessCoord' (in 3-component vector of float) +0:29 Sequence +0:29 move second child to first child (float) +0:29 'tlo' (float) +0:29 direct index (patch float) +0:29 'gl_TessLevelOuter' (patch in 4-element array of float) +0:29 Constant: +0:29 3 (const int) +0:30 Sequence +0:30 move second child to first child (float) +0:30 'tli' (float) +0:30 direct index (patch float) +0:30 'gl_TessLevelInner' (patch in 2-element array of float) +0:30 Constant: +0:30 1 (const int) +0:32 move second child to first child (4-component vector of float) +0:32 gl_Position: direct index for structure (gl_Position 4-component vector of float) +0:32 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:32 Constant: +0:32 0 (const uint) +0:32 'p' (4-component vector of float) +0:33 move second child to first child (float) +0:33 gl_PointSize: direct index for structure (gl_PointSize float) +0:33 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:33 Constant: +0:33 1 (const uint) +0:33 'ps' (float) +0:34 move second child to first child (float) +0:34 direct index (float) +0:34 gl_ClipDistance: direct index for structure (unsized array of float) +0:34 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:34 Constant: +0:34 2 (const uint) +0:34 Constant: +0:34 2 (const int) +0:34 'cd' (float) +0:20 Function Definition: main( (void) +0:20 Function Parameters: +0:22 Sequence +0:22 Constant: +0:22 0.000000 +0:24 Sequence +0:24 move second child to first child (int) +0:24 'a' (int) +0:24 Constant: +0:24 1512 (const int) +0:32 Sequence +0:32 move second child to first child (4-component vector of float) +0:32 'p' (4-component vector of float) +0:32 gl_Position: direct index for structure (4-component vector of float) +0:32 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:32 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:32 Constant: +0:32 1 (const int) +0:32 Constant: +0:32 0 (const int) +0:33 Sequence +0:33 move second child to first child (float) +0:33 'ps' (float) +0:33 gl_PointSize: direct index for structure (float) +0:33 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:33 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:33 Constant: +0:33 1 (const int) +0:33 Constant: +0:33 1 (const int) +0:34 Sequence +0:34 move second child to first child (float) +0:34 'cd' (float) +0:34 direct index (float) +0:34 gl_ClipDistance: direct index for structure (unsized array of float) +0:34 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:34 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:34 Constant: +0:34 1 (const int) +0:34 Constant: +0:34 2 (const int) +0:34 Constant: +0:34 2 (const int) +0:36 Sequence +0:36 move second child to first child (int) +0:36 'pvi' (int) +0:36 'gl_PatchVerticesIn' (in int) +0:37 Sequence +0:37 move second child to first child (int) +0:37 'pid' (int) +0:37 'gl_PrimitiveID' (in int) +0:38 Sequence +0:38 move second child to first child (3-component vector of float) +0:38 'tc' (3-component vector of float) +0:38 'gl_TessCoord' (in 3-component vector of float) +0:39 Sequence +0:39 move second child to first child (float) +0:39 'tlo' (float) +0:39 direct index (patch float) +0:39 'gl_TessLevelOuter' (patch in 4-element array of float) +0:39 Constant: +0:39 3 (const int) +0:40 Sequence +0:40 move second child to first child (float) +0:40 'tli' (float) +0:40 direct index (patch float) +0:40 'gl_TessLevelInner' (patch in 2-element array of float) +0:40 Constant: +0:40 1 (const int) +0:42 move second child to first child (4-component vector of float) +0:42 gl_Position: direct index for structure (gl_Position 4-component vector of float) +0:42 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:42 Constant: +0:42 0 (const uint) +0:42 'p' (4-component vector of float) +0:43 move second child to first child (float) +0:43 gl_PointSize: direct index for structure (gl_PointSize float) +0:43 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:43 Constant: +0:43 1 (const uint) +0:43 'ps' (float) +0:44 move second child to first child (float) +0:44 direct index (float) +0:44 gl_ClipDistance: direct index for structure (unsized array of float) +0:44 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance}) +0:44 Constant: +0:44 2 (const uint) +0:44 Constant: +0:44 2 (const int) +0:44 'cd' (float) +0:4 Sequence +0:4 move second child to first child (2X2 matrix of float) +0:4 'b' (2X2 matrix of float) +0:4 Constant: +0:4 1.000000 +0:4 0.000000 +0:4 0.000000 +0:4 1.000000 +0:15 Sequence +0:15 move second child to first child (structure{a,b}) +0:15 'e' (structure{a,b}) +0:15 Constant: +0:15 1.200000 +0:15 2 (const int) +0:20 Sequence +0:20 move second child to first child (structure{a,b}) +0:20 'e2' (structure{a,b}) +0:20 Constant: +0:20 1.000000 +0:20 3 (const int) +0:42 Sequence +0:42 move second child to first child (5-element array of float) +0:42 'b5' (5-element array of float) +0:42 Constant: +0:42 3.400000 +0:42 4.200000 +0:42 5.000000 +0:42 5.200000 +0:42 1.100000 +0:67 Sequence +0:67 move second child to first child (3-component vector of float) +0:67 'av3' (3-component vector of float) +0:67 Construct vec3 (3-component vector of float) +0:67 'vc1' (float) +0:67 'vc2' (float) +0:67 'vc3' (float) +0:68 Sequence +0:68 move second child to first child (3-component vector of float) +0:68 'bv3' (3-component vector of float) +0:68 Construct vec3 (3-component vector of float) +0:68 'vc1' (float) +0:68 'vc2' (float) +0:68 'vc3' (float) +0:70 Function Definition: main( (void) +0:70 Function Parameters: +0:72 Sequence +0:72 MemoryBarrier (void) +0:74 Test condition and select (void) +0:74 Condition +0:74 Compare Equal (bool) +0:74 Constant: +0:74 1 (const uint) +0:74 2 (const uint) +0:74 3.000000 +0:74 4.000000 +0:74 0.000000 +0:74 0.000000 +0:74 0.000000 +0:74 4.000000 +0:74 0.000000 +0:74 5.000000 +0:74 6.000000 +0:74 0.000000 +0:74 0.000000 +0:74 0.000000 +0:74 6.000000 +0:74 0.000000 +0:74 'curlybad1' (structure{uv2,s}) +0:74 true case is null +0:76 Test condition and select (void) +0:76 Condition +0:76 Constant: +0:76 true (const bool) +0:76 true case is null +0:? Linker Objects +0:? 'patchIn' (patch in 4-component vector of float) +0:? 'patchOut' (patch out 4-component vector of float) +0:? 'badp1' (smooth patch in 4-component vector of float) +0:? 'badp2' (flat patch in 4-component vector of float) +0:? 'badp3' (noperspective patch in 4-component vector of float) +0:? 'badp4' (patch sample in 3-component vector of float) +0:? 'gl_in' (in 32-element array of block{gl_ClipDistance}) +0:? 'a' (const 2X2 matrix of float) +0:? 1.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:? 'b' (2X2 matrix of float) +0:? 'c' (const 2X2 matrix of float) +0:? 1.000000 +0:? 0.000000 +0:? 0.000000 +0:? 1.000000 +0:? 'a2' (2-element array of float) +0:? 'b2' (2-component vector of float) +0:? 'c2' (3X3 matrix of float) +0:? 'd' (2X2 matrix of float) +0:? 'e' (structure{a,b}) +0:? 'e2' (structure{a,b}) +0:? 'e3' (structure{a,b}) +0:? 'a3' (int) +0:? 'b3' (2-element array of 4-component vector of float) +0:? 'b4' (2-element array of 4-component vector of float) +0:? 'c3' (4X2 matrix of float) +0:? 'd2' (unsized array of structure{s,t}) +0:? 'b5' (5-element array of float) +0:? 'constructed' (const structure{uv2,s}) +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3.000000 +0:? 4.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 4.000000 +0:? 0.000000 +0:? 5.000000 +0:? 6.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 6.000000 +0:? 0.000000 +0:? 'curlybad1' (structure{uv2,s}) +0:? 'curlyInit' (const structure{uv2,s}) +0:? 1 (const uint) +0:? 2 (const uint) +0:? 3.000000 +0:? 4.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 4.000000 +0:? 0.000000 +0:? 5.000000 +0:? 6.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 6.000000 +0:? 0.000000 +0:? 'vc1' (float) +0:? 'vc2' (float) +0:? 'vc3' (float) +0:? 'av3' (3-component vector of float) +0:? 'bv3' (3-component vector of float) + diff --git a/Test/baseResults/400.tesc.out b/Test/baseResults/400.tesc.out deleted file mode 100644 index 3e10c21f1..000000000 --- a/Test/baseResults/400.tesc.out +++ /dev/null @@ -1,134 +0,0 @@ -400.tesc -Warning, version 400 is not yet complete; some version-specific features are present, but many are missing. -ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignemnt (e.g., binding = 4) -ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignemnt (e.g., binding = 4) -ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignemnt (e.g., binding = 4) -ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader -ERROR: 0:39: 'vertices' : can only apply to 'out' -ERROR: 0:40: 'vertices' : cannot change previously set layout value -ERROR: 0:44: '[' : array index out of range '4' -ERROR: 7 compilation errors. No code generated. - - -vertices = 4 -ERROR: node is still EOpNull! -0:13 Function Definition: main( (void) -0:13 Function Parameters: -0:15 Sequence -0:15 Barrier (void) -0:17 Sequence -0:17 move second child to first child (int) -0:17 'a' (int) -0:17 Constant: -0:17 5392 (const int) -0:23 Sequence -0:23 move second child to first child (4-component vector of float) -0:23 'p' (4-component vector of float) -0:23 gl_Position: direct index for structure (4-component vector of float) -0:23 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:23 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:23 Constant: -0:23 1 (const int) -0:23 Constant: -0:23 0 (const int) -0:24 Sequence -0:24 move second child to first child (float) -0:24 'ps' (float) -0:24 gl_PointSize: direct index for structure (float) -0:24 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:24 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:24 Constant: -0:24 1 (const int) -0:24 Constant: -0:24 1 (const int) -0:25 Sequence -0:25 move second child to first child (float) -0:25 'cd' (float) -0:25 direct index (float) -0:25 gl_ClipDistance: direct index for structure (unsized array of float) -0:25 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:25 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 2 (const int) -0:25 Constant: -0:25 2 (const int) -0:27 Sequence -0:27 move second child to first child (int) -0:27 'pvi' (int) -0:27 'gl_PatchVerticesIn' (in int) -0:28 Sequence -0:28 move second child to first child (int) -0:28 'pid' (int) -0:28 'gl_PrimitiveID' (in int) -0:29 Sequence -0:29 move second child to first child (int) -0:29 'iid' (int) -0:29 'gl_InvocationID' (in int) -0:31 move second child to first child (4-component vector of float) -0:31 gl_Position: direct index for structure (4-component vector of float) -0:31 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:31 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:31 Constant: -0:31 1 (const int) -0:31 Constant: -0:31 0 (const int) -0:31 'p' (4-component vector of float) -0:32 move second child to first child (float) -0:32 gl_PointSize: direct index for structure (float) -0:32 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:32 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 1 (const int) -0:32 'ps' (float) -0:33 move second child to first child (float) -0:33 direct index (float) -0:33 gl_ClipDistance: direct index for structure (unsized array of float) -0:33 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:33 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 2 (const int) -0:33 Constant: -0:33 1 (const int) -0:33 'cd' (float) -0:35 move second child to first child (float) -0:35 direct index (patch float) -0:35 'gl_TessLevelOuter' (patch out 4-element array of float) -0:35 Constant: -0:35 3 (const int) -0:35 Constant: -0:35 3.200000 -0:36 move second child to first child (float) -0:36 direct index (patch float) -0:36 'gl_TessLevelInner' (patch out 2-element array of float) -0:36 Constant: -0:36 1 (const int) -0:36 Constant: -0:36 1.300000 -0:42 Function Definition: foo( (void) -0:42 Function Parameters: -0:44 Sequence -0:44 gl_PointSize: direct index for structure (float) -0:44 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:44 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:44 Constant: -0:44 4 (const int) -0:44 Constant: -0:44 1 (const int) -0:? Linker Objects -0:? 'outa' (4-element array of int) -0:? 'patchIn' (patch in 4-component vector of float) -0:? 'patchOut' (patch out 4-component vector of float) -0:? 'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) - - -Linked tessellation control stage: - - -vertices = 4 - diff --git a/Test/baseResults/400.tese.out b/Test/baseResults/400.tese.out deleted file mode 100644 index 121f32f95..000000000 --- a/Test/baseResults/400.tese.out +++ /dev/null @@ -1,141 +0,0 @@ -400.tese -Warning, version 400 is not yet complete; some version-specific features are present, but many are missing. -ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value -ERROR: 0:5: 'triangles' : cannot change previously set input primitive -ERROR: 0:6: 'isolines' : cannot change previously set input primitive -ERROR: 0:8: 'ccw' : cannot change previously set vertex order -ERROR: 0:12: 'equal_spacing' : cannot change previously set vertex spacing -ERROR: 0:13: 'fractional_even_spacing' : cannot change previously set vertex spacing -ERROR: 0:18: 'patch' : can only use on input in tessellation-evaluation shader -ERROR: 0:22: 'barrier' : no matching overloaded function found -ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch -ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch -ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch -ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample) -ERROR: 0:54: 'gl_PerVertex' : block already declared with size, can't redeclare as unsized -ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use -ERROR: 0:64: 'quads' : cannot apply to 'out' -ERROR: 0:64: 'cw' : can only apply to 'in' -ERROR: 0:65: 'triangles' : cannot apply to 'out' -ERROR: 0:66: 'isolines' : cannot apply to 'out' -ERROR: 0:67: 'cw' : can only apply to 'in' -ERROR: 0:68: 'fractional_odd_spacing' : can only apply to 'in' -ERROR: 0:69: 'equal_spacing' : can only apply to 'in' -ERROR: 0:70: 'fractional_even_spacing' : can only apply to 'in' -ERROR: 0:71: 'point_mode' : can only apply to 'in' -ERROR: 23 compilation errors. No code generated. - - -input primitive = quads -vertex spacing = fractional_odd_spacing -triangle order = cw -using point mode -ERROR: node is still EOpNull! -0:20 Function Definition: main( (void) -0:20 Function Parameters: -0:22 Sequence -0:22 Constant: -0:22 0.000000 -0:24 Sequence -0:24 move second child to first child (int) -0:24 'a' (int) -0:24 Constant: -0:24 1512 (const int) -0:32 Sequence -0:32 move second child to first child (4-component vector of float) -0:32 'p' (4-component vector of float) -0:32 gl_Position: direct index for structure (4-component vector of float) -0:32 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:32 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:32 Constant: -0:32 1 (const int) -0:32 Constant: -0:32 0 (const int) -0:33 Sequence -0:33 move second child to first child (float) -0:33 'ps' (float) -0:33 gl_PointSize: direct index for structure (float) -0:33 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:33 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:33 Constant: -0:33 1 (const int) -0:33 Constant: -0:33 1 (const int) -0:34 Sequence -0:34 move second child to first child (float) -0:34 'cd' (float) -0:34 direct index (float) -0:34 gl_ClipDistance: direct index for structure (unsized array of float) -0:34 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:34 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:34 Constant: -0:34 1 (const int) -0:34 Constant: -0:34 2 (const int) -0:34 Constant: -0:34 2 (const int) -0:36 Sequence -0:36 move second child to first child (int) -0:36 'pvi' (int) -0:36 'gl_PatchVerticesIn' (in int) -0:37 Sequence -0:37 move second child to first child (int) -0:37 'pid' (int) -0:37 'gl_PrimitiveID' (in int) -0:38 Sequence -0:38 move second child to first child (3-component vector of float) -0:38 'tc' (3-component vector of float) -0:38 'gl_TessCoord' (in 3-component vector of float) -0:39 Sequence -0:39 move second child to first child (float) -0:39 'tlo' (float) -0:39 direct index (patch float) -0:39 'gl_TessLevelOuter' (patch in 4-element array of float) -0:39 Constant: -0:39 3 (const int) -0:40 Sequence -0:40 move second child to first child (float) -0:40 'tli' (float) -0:40 direct index (patch float) -0:40 'gl_TessLevelInner' (patch in 2-element array of float) -0:40 Constant: -0:40 1 (const int) -0:42 move second child to first child (4-component vector of float) -0:42 gl_Position: direct index for structure (gl_Position 4-component vector of float) -0:42 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:42 Constant: -0:42 0 (const uint) -0:42 'p' (4-component vector of float) -0:43 move second child to first child (float) -0:43 gl_PointSize: direct index for structure (gl_PointSize float) -0:43 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:43 Constant: -0:43 1 (const uint) -0:43 'ps' (float) -0:44 move second child to first child (float) -0:44 direct index (float) -0:44 gl_ClipDistance: direct index for structure (unsized array of float) -0:44 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:44 Constant: -0:44 2 (const uint) -0:44 Constant: -0:44 2 (const int) -0:44 'cd' (float) -0:? Linker Objects -0:? 'patchIn' (patch in 4-component vector of float) -0:? 'patchOut' (patch out 4-component vector of float) -0:? 'badp1' (smooth patch in 4-component vector of float) -0:? 'badp2' (flat patch in 4-component vector of float) -0:? 'badp3' (noperspective patch in 4-component vector of float) -0:? 'badp4' (patch sample in 3-component vector of float) -0:? 'gl_in' (in 32-element array of block{gl_ClipDistance}) - - -Linked tessellation evaluation stage: - - -input primitive = quads -vertex spacing = fractional_odd_spacing -triangle order = cw -using point mode - diff --git a/Test/baseResults/410.tesc.out b/Test/baseResults/410.tesc.out deleted file mode 100644 index 832ee90cf..000000000 --- a/Test/baseResults/410.tesc.out +++ /dev/null @@ -1,21 +0,0 @@ -410.tesc -Warning, version 400 is not yet complete; some version-specific features are present, but many are missing. -ERROR: 0:4: 'length' : array must first be sized by a redeclaration or layout qualifier -ERROR: 1 compilation errors. No code generated. - - -vertices = 0 -ERROR: node is still EOpNull! -0:8 Function Definition: main( (void) -0:8 Function Parameters: -0:? Linker Objects -0:? 'outa' (1-element array of int) -0:? 'patchOut' (patch out 4-component vector of float) - - -Linked tessellation control stage: - -ERROR: Linking tessellation control stage: At least one shader must specify an output layout(vertices=...) - -vertices = 0 - diff --git a/Test/baseResults/420.tesc.out b/Test/baseResults/420.tesc.out deleted file mode 100644 index 12794d181..000000000 --- a/Test/baseResults/420.tesc.out +++ /dev/null @@ -1,87 +0,0 @@ -420.tesc -Warning, version 400 is not yet complete; some version-specific features are present, but many are missing. -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: 'assign' : cannot convert from 'float' to 'block{gl_Position}' -ERROR: 0:29: 'out' : type must be an array: outf -ERROR: 6 compilation errors. No code generated. - - -vertices = 4 -ERROR: node is still EOpNull! -0:15 Function Definition: main( (void) -0:15 Function Parameters: -0:17 Sequence -0:17 Sequence -0:17 move second child to first child (4-component vector of float) -0:17 'p' (4-component vector of float) -0:17 gl_Position: direct index for structure (4-component vector of float) -0:17 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:17 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:17 Constant: -0:17 1 (const int) -0:17 Constant: -0:17 0 (const int) -0:18 Sequence -0:18 move second child to first child (float) -0:18 'ps' (float) -0:18 gl_PointSize: direct index for structure (float) -0:18 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:18 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:18 Constant: -0:18 1 (const int) -0:18 Constant: -0:18 1 (const int) -0:19 Sequence -0:19 move second child to first child (float) -0:19 'cd' (float) -0:19 direct index (float) -0:19 gl_ClipDistance: direct index for structure (unsized array of float) -0:19 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:19 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}) -0:19 Constant: -0:19 1 (const int) -0:19 Constant: -0:19 2 (const int) -0:19 Constant: -0:19 2 (const int) -0:21 Sequence -0:21 move second child to first child (int) -0:21 'pvi' (int) -0:21 'gl_PatchVerticesIn' (in int) -0:22 Sequence -0:22 move second child to first child (int) -0:22 'pid' (int) -0:22 'gl_PrimitiveID' (in int) -0:23 Sequence -0:23 move second child to first child (int) -0:23 'iid' (int) -0:23 'gl_InvocationID' (in int) -0:25 move second child to first child (4-component vector of float) -0:25 gl_Position: direct index for structure (4-component vector of float) -0:25 direct index (block{gl_Position}) -0:25 'gl_out' (out 3-element array of block{gl_Position}) -0:25 Constant: -0:25 1 (const int) -0:25 Constant: -0:25 0 (const int) -0:25 'p' (4-component vector of float) -0:26 direct index (block{gl_Position}) -0:26 'gl_out' (out 3-element array of block{gl_Position}) -0:26 Constant: -0:26 1 (const int) -0:? Linker Objects -0:? 'gl_out' (out 3-element array of block{gl_Position}) -0:? 'a' (out 3-element array of int) -0:? 'outb' (out 5-element array of int) -0:? 'outc' (out 4-element array of int) -0:? 'outf' (out float) - - -Linked tessellation control stage: - - -vertices = 4 - diff --git a/Test/baseResults/420.tese.out b/Test/baseResults/420.tese.out deleted file mode 100644 index 71ddd9374..000000000 --- a/Test/baseResults/420.tese.out +++ /dev/null @@ -1,171 +0,0 @@ -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 -ERROR: 0:9: 'initializer list' : wrong number of matrix columns: 3X3 matrix of float -ERROR: 0:10: 'initializer list' : wrong number of matrix columns: 2X2 matrix of float -ERROR: 0:25: 'initializer list' : wrong number of structure members -ERROR: 0:27: '=' : cannot convert from 'const bool' to 'int' -ERROR: 0:28: 'constructor' : cannot convert parameter 2 from 'const float' to '4-component vector of float' -ERROR: 0:29: 'constructor' : cannot convert parameter 2 from 'const 2X2 matrix of float' to 'const 4-component vector of float' -ERROR: 0:29: 'const 2-element array of 4-component vector of float' : cannot construct with these arguments -ERROR: 0:29: '=' : cannot convert from 'const float' to '2-element array of 4-component vector of float' -ERROR: 0:30: 'initializer list' : wrong number of matrix columns: 4X2 matrix of float -ERROR: 0:40: 'constructor' : cannot convert parameter 1 from 'float' to 'structure{s,t}' -ERROR: 0:58: 'initializer list' : wrong number of structure members -ERROR: 13 compilation errors. No code generated. - - -input primitive = none -vertex spacing = none -triangle order = none -ERROR: node is still EOpNull! -0:4 Sequence -0:4 move second child to first child (2X2 matrix of float) -0:4 'b' (2X2 matrix of float) -0:4 Constant: -0:4 1.000000 -0:4 0.000000 -0:4 0.000000 -0:4 1.000000 -0:15 Sequence -0:15 move second child to first child (structure{a,b}) -0:15 'e' (structure{a,b}) -0:15 Constant: -0:15 1.200000 -0:15 2 (const int) -0:20 Sequence -0:20 move second child to first child (structure{a,b}) -0:20 'e2' (structure{a,b}) -0:20 Constant: -0:20 1.000000 -0:20 3 (const int) -0:42 Sequence -0:42 move second child to first child (5-element array of float) -0:42 'b5' (5-element array of float) -0:42 Constant: -0:42 3.400000 -0:42 4.200000 -0:42 5.000000 -0:42 5.200000 -0:42 1.100000 -0:67 Sequence -0:67 move second child to first child (3-component vector of float) -0:67 'av3' (3-component vector of float) -0:67 Construct vec3 (3-component vector of float) -0:67 'vc1' (float) -0:67 'vc2' (float) -0:67 'vc3' (float) -0:68 Sequence -0:68 move second child to first child (3-component vector of float) -0:68 'bv3' (3-component vector of float) -0:68 Construct vec3 (3-component vector of float) -0:68 'vc1' (float) -0:68 'vc2' (float) -0:68 'vc3' (float) -0:70 Function Definition: main( (void) -0:70 Function Parameters: -0:72 Sequence -0:72 MemoryBarrier (void) -0:74 Test condition and select (void) -0:74 Condition -0:74 Compare Equal (bool) -0:74 Constant: -0:74 1 (const uint) -0:74 2 (const uint) -0:74 3.000000 -0:74 4.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 4.000000 -0:74 0.000000 -0:74 5.000000 -0:74 6.000000 -0:74 0.000000 -0:74 0.000000 -0:74 0.000000 -0:74 6.000000 -0:74 0.000000 -0:74 'curlybad1' (structure{uv2,s}) -0:74 true case is null -0:76 Test condition and select (void) -0:76 Condition -0:76 Constant: -0:76 true (const bool) -0:76 true case is null -0:? Linker Objects -0:? 'a' (const 2X2 matrix of float) -0:? 1.000000 -0:? 0.000000 -0:? 0.000000 -0:? 1.000000 -0:? 'b' (2X2 matrix of float) -0:? 'c' (const 2X2 matrix of float) -0:? 1.000000 -0:? 0.000000 -0:? 0.000000 -0:? 1.000000 -0:? 'a2' (2-element array of float) -0:? 'b2' (2-component vector of float) -0:? 'c2' (3X3 matrix of float) -0:? 'd' (2X2 matrix of float) -0:? 'e' (structure{a,b}) -0:? 'e2' (structure{a,b}) -0:? 'e3' (structure{a,b}) -0:? 'a3' (int) -0:? 'b3' (2-element array of 4-component vector of float) -0:? 'b4' (2-element array of 4-component vector of float) -0:? 'c3' (4X2 matrix of float) -0:? 'd2' (unsized array of structure{s,t}) -0:? 'b5' (5-element array of float) -0:? 'constructed' (const structure{uv2,s}) -0:? 1 (const uint) -0:? 2 (const uint) -0:? 3.000000 -0:? 4.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 4.000000 -0:? 0.000000 -0:? 5.000000 -0:? 6.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 6.000000 -0:? 0.000000 -0:? 'curlybad1' (structure{uv2,s}) -0:? 'curlyInit' (const structure{uv2,s}) -0:? 1 (const uint) -0:? 2 (const uint) -0:? 3.000000 -0:? 4.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 4.000000 -0:? 0.000000 -0:? 5.000000 -0:? 6.000000 -0:? 0.000000 -0:? 0.000000 -0:? 0.000000 -0:? 6.000000 -0:? 0.000000 -0:? 'vc1' (float) -0:? 'vc2' (float) -0:? 'vc3' (float) -0:? 'av3' (3-component vector of float) -0:? 'bv3' (3-component vector of float) - - -Linked tessellation evaluation stage: - -ERROR: Linking tessellation evaluation stage: At least one shader must specify an input layout primitive - -input primitive = none -vertex spacing = equal_spacing -triangle order = ccw - diff --git a/Test/runtests b/Test/runtests index 63cbd6ba6..5604bbb47 100755 --- a/Test/runtests +++ b/Test/runtests @@ -26,22 +26,23 @@ while read t; do done < testlist # -# grouped shaders for link tests +# grouped shaders for bulk (faster) tests # -function runLinkTest { +function runBulkTest { echo Running $*... - $EXE -i -l $* > $TARGETDIR/$1.out + $EXE -i -l -t $* > $TARGETDIR/$1.out diff -b $BASEDIR/$1.out $TARGETDIR/$1.out } -runLinkTest mains1.frag mains2.frag noMain1.geom noMain2.geom -runLinkTest noMain.vert mains.frag -runLinkTest link1.frag link2.frag link3.frag -runLinkTest recurse1.vert recurse1.frag recurse2.frag -runLinkTest 300link.frag -runLinkTest 300link2.frag -runLinkTest 300link3.frag -runLinkTest empty.frag empty2.frag empty3.frag +runBulkTest mains1.frag mains2.frag noMain1.geom noMain2.geom +runBulkTest noMain.vert mains.frag +runBulkTest link1.frag link2.frag link3.frag +runBulkTest recurse1.vert recurse1.frag recurse2.frag +runBulkTest 300link.frag +runBulkTest 300link2.frag +runBulkTest 300link3.frag +runBulkTest empty.frag empty2.frag empty3.frag +runBulkTest 150.tesc 150.tese 400.tesc 400.tese 410.tesc 420.tesc 420.tese # # reflection tests diff --git a/Test/testlist b/Test/testlist index ac63cbbf9..06f8b57fd 100644 --- a/Test/testlist +++ b/Test/testlist @@ -49,7 +49,6 @@ tokenLength.vert 300scope.vert 400.frag 420.vert -420.tesc 420.geom 420_size_gl_in.geom 430scope.vert @@ -57,11 +56,7 @@ lineContinuation100.vert lineContinuation.vert numeral.frag 400.geom -400.tesc -400.tese 410.geom -410.tesc -420.tese 430.vert 430.comp dce.frag diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index fd61d29eb..579257d7d 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -9,5 +9,5 @@ // source have to figure out how to create revision.h just to get a build // going. However, if it is not updated, it can be a version behind. -#define GLSLANG_REVISION "24530" -#define GLSLANG_DATE "2013/12/16 16:58:15" +#define GLSLANG_REVISION "24551" +#define GLSLANG_DATE "2013/12/17 20:06:24" diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index ac576f228..a421c0eb8 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -811,7 +811,7 @@ void TBuiltIns::initialize(int version, EProfile profile) // //============================================================================ - if (version >= 400) + if (version >= 150) stageBuiltins[EShLangTessControl].append( "void barrier();" ); @@ -1255,7 +1255,7 @@ void TBuiltIns::initialize(int version, EProfile profile) // //============================================================================ - if (version >= 400) { + if (version >= 150) { // Note: "in gl_PerVertex {...} gl_in[gl_MaxPatchVertices];" is declared in initialize() below, // as it depends on the resource sizing of gl_MaxPatchVertices. @@ -1293,7 +1293,7 @@ void TBuiltIns::initialize(int version, EProfile profile) // //============================================================================ - if (version >= 400) { + if (version >= 150) { // Note: "in gl_PerVertex {...} gl_in[gl_MaxPatchVertices];" is declared in initialize() below, // as it depends on the resource sizing of gl_MaxPatchVertices. @@ -2001,7 +2001,7 @@ void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProf } // tessellation - if (version >= 400) { + if (version >= 150) { snprintf(builtInConstant, maxSize, "const int gl_MaxTessControlInputComponents = %d;", resources.maxTessControlInputComponents); s.append(builtInConstant); snprintf(builtInConstant, maxSize, "const int gl_MaxTessControlOutputComponents = %d;", resources.maxTessControlOutputComponents); diff --git a/glslang/MachineIndependent/Scan.cpp b/glslang/MachineIndependent/Scan.cpp index 9077ca696..9fb381b57 100644 --- a/glslang/MachineIndependent/Scan.cpp +++ b/glslang/MachineIndependent/Scan.cpp @@ -654,6 +654,11 @@ int TScanContext::tokenizeIdentifier() return keyword; case PATCH: + if (parseContext.symbolTable.atBuiltInLevel() || parseContext.extensionsTurnedOn(1, &GL_ARB_tessellation_shader)) + return es30ReservedFromGLSL(150); + else + return es30ReservedFromGLSL(400); + case SAMPLE: case SUBROUTINE: return es30ReservedFromGLSL(400); diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index 53f9451ed..d7810832e 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -191,7 +191,7 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS // do the per-stage tables InitializeStageSymbolTable(builtIns, version, profile, EShLangVertex, infoSink, commonTable, symbolTables); InitializeStageSymbolTable(builtIns, version, profile, EShLangFragment, infoSink, commonTable, symbolTables); - if (profile != EEsProfile && version >= 400) { + if (profile != EEsProfile && version >= 150) { InitializeStageSymbolTable(builtIns, version, profile, EShLangTessControl, infoSink, commonTable, symbolTables); InitializeStageSymbolTable(builtIns, version, profile, EShLangTessEvaluation, infoSink, commonTable, symbolTables); } @@ -353,10 +353,10 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo break; case EShLangTessControl: case EShLangTessEvaluation: - if (version < 400 || (profile != ECoreProfile && profile != ECompatibilityProfile)) { + if (version < 150 || (profile != ECoreProfile && profile != ECompatibilityProfile)) { correct = false; - infoSink.info.message(EPrefixError, "#version: tessellation shaders require non-es profile and version 400 or above"); - version = 400; + infoSink.info.message(EPrefixError, "#version: tessellation shaders require non-es profile and version 150 or above"); + version = 150; profile = ECoreProfile; } break; diff --git a/glslang/MachineIndependent/Versions.h b/glslang/MachineIndependent/Versions.h index 758f8d687..d0997b816 100644 --- a/glslang/MachineIndependent/Versions.h +++ b/glslang/MachineIndependent/Versions.h @@ -85,7 +85,7 @@ const char* const GL_ARB_shading_language_420pack = "GL_ARB_shading_language_420 const char* const GL_ARB_texture_gather = "GL_ARB_texture_gather"; const char* const GL_ARB_gpu_shader5 = "GL_ARB_gpu_shader5"; const char* const GL_ARB_separate_shader_objects = "GL_ARB_separate_shader_objects"; -const char* const GL_ARB_tessellation_shader = "GL_ARB_tessellation_shader"; // TODO: tessellation: make this extension work on version 150 and above shaders +const char* const GL_ARB_tessellation_shader = "GL_ARB_tessellation_shader"; } // end namespace glslang diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y index cd20b3efc..7e4f6e7bd 100644 --- a/glslang/MachineIndependent/glslang.y +++ b/glslang/MachineIndependent/glslang.y @@ -1227,7 +1227,6 @@ storage_qualifier | PATCH { parseContext.globalCheck($1.loc, "patch"); parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); - parseContext.profileRequires($1.loc, ~EEsProfile, 400, 1, &GL_ARB_tessellation_shader, "patch"); $$.init($1.loc); $$.qualifier.patch = true; }