Allow tessellation shaders to work on versions back to 150. Also combined all the...
authorJohn Kessenich <cepheus@frii.com>
Wed, 18 Dec 2013 18:47:12 +0000 (18:47 +0000)
committerJohn Kessenich <cepheus@frii.com>
Wed, 18 Dec 2013 18:47:12 +0000 (18:47 +0000)
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24569 e7fa87d3-cd2b-0410-9028-fcbf551c1848

20 files changed:
Test/140.frag
Test/150.frag
Test/150.tesc [new file with mode: 0644]
Test/150.tese [new file with mode: 0644]
Test/baseResults/140.frag.out
Test/baseResults/150.frag.out
Test/baseResults/150.tesc.out [new file with mode: 0644]
Test/baseResults/400.tesc.out [deleted file]
Test/baseResults/400.tese.out [deleted file]
Test/baseResults/410.tesc.out [deleted file]
Test/baseResults/420.tesc.out [deleted file]
Test/baseResults/420.tese.out [deleted file]
Test/runtests
Test/testlist
glslang/Include/revision.h
glslang/MachineIndependent/Initialize.cpp
glslang/MachineIndependent/Scan.cpp
glslang/MachineIndependent/ShaderLang.cpp
glslang/MachineIndependent/Versions.h
glslang/MachineIndependent/glslang.y

index 1ac44ce..1e29d4d 100644 (file)
@@ -18,3 +18,5 @@ void main()
 #endif
 
 in struct S { float f; } s; // ERROR
+
+float patch = 3.1;
\ No newline at end of file
index 49d5636..6225aa7 100644 (file)
@@ -14,3 +14,5 @@ void main()
 layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord;  // ERROR, declared after use\r
 \r
 in struct S { float f; } s;\r
+\r
+float patch = 3.1;
\ No newline at end of file
diff --git a/Test/150.tesc b/Test/150.tesc
new file mode 100644 (file)
index 0000000..b72f0de
--- /dev/null
@@ -0,0 +1,34 @@
+#version 150\r
+\r
+#extension GL_ARB_tessellation_shader : enable\r
+\r
+layout(vertices = 4) out;\r
+int outa[gl_out.length()];\r
+\r
+patch out vec4 patchOut;\r
+\r
+void main()\r
+{\r
+    barrier();\r
+\r
+    int a = gl_MaxTessControlInputComponents +\r
+            gl_MaxTessControlOutputComponents +\r
+            gl_MaxTessControlTextureImageUnits +\r
+            gl_MaxTessControlUniformComponents +\r
+            gl_MaxTessControlTotalOutputComponents;\r
+\r
+    vec4 p = gl_in[1].gl_Position;\r
+    float ps = gl_in[1].gl_PointSize;\r
+    float cd = gl_in[1].gl_ClipDistance[2];\r
+\r
+    int pvi = gl_PatchVerticesIn;\r
+    int pid = gl_PrimitiveID;\r
+    int iid = gl_InvocationID;\r
+\r
+    gl_out[1].gl_Position = p;\r
+    gl_out[1].gl_PointSize = ps;\r
+    gl_out[1].gl_ClipDistance[1] = cd;\r
+\r
+    gl_TessLevelOuter[3] = 3.2;\r
+    gl_TessLevelInner[1] = 1.3;\r
+}\r
diff --git a/Test/150.tese b/Test/150.tese
new file mode 100644 (file)
index 0000000..aea65e8
--- /dev/null
@@ -0,0 +1,35 @@
+#version 150\r
+\r
+#extension GL_ARB_tessellation_shader : enable\r
+\r
+layout(quads, cw) in;\r
+layout(fractional_odd_spacing) in;    \r
+layout(point_mode) in;\r
+patch in vec4 patchIn;\r
+\r
+void main()\r
+{\r
+    barrier(); // ERROR\r
+\r
+    int a = gl_MaxTessEvaluationInputComponents +\r
+            gl_MaxTessEvaluationOutputComponents +\r
+            gl_MaxTessEvaluationTextureImageUnits +\r
+            gl_MaxTessEvaluationUniformComponents +\r
+            gl_MaxTessPatchComponents +\r
+            gl_MaxPatchVertices +\r
+            gl_MaxTessGenLevel;\r
+\r
+    vec4 p = gl_in[1].gl_Position;\r
+    float ps = gl_in[1].gl_PointSize;\r
+    float cd = gl_in[1].gl_ClipDistance[2];\r
+\r
+    int pvi = gl_PatchVerticesIn;\r
+    int pid = gl_PrimitiveID;\r
+    vec3 tc = gl_TessCoord;\r
+    float tlo = gl_TessLevelOuter[3];\r
+    float tli = gl_TessLevelInner[1];\r
+\r
+    gl_Position = p;\r
+    gl_PointSize = ps;\r
+    gl_ClipDistance[2] = cd;\r
+}\r
index 7ac82bb..eb5ceb1 100644 (file)
@@ -17,6 +17,11 @@ ERROR: node is still EOpNull!
 0:12            'gl_ClipDistance' (smooth in 5-element array of float)\r
 0:12            Constant:\r
 0:12              2 (const int)\r
+0:22  Sequence\r
+0:22    move second child to first child (float)\r
+0:22      'patch' (float)\r
+0:22      Constant:\r
+0:22        3.100000\r
 0:?   Linker Objects\r
 0:?     'v' (smooth in 4-component vector of float)\r
 0:?     'i' (smooth in 4-component vector of float)\r
@@ -24,6 +29,7 @@ ERROR: node is still EOpNull!
 0:?     'gl_ClipDistance' (smooth in 5-element array of float)\r
 0:?     'gl_ClipDistance' (smooth in 5-element array of float)\r
 0:?     's' (smooth in structure{f})\r
+0:?     'patch' (float)\r
 \r
 \r
 Linked fragment stage:\r
index d6efd18..148f5ea 100644 (file)
@@ -17,11 +17,17 @@ ERROR: node is still EOpNull!
 0:11        move second child to first child (4-component vector of float)\r
 0:11          'c' (4-component vector of float)\r
 0:11          'gl_FragCoord' (gl_FragCoord 4-component vector of float)\r
+0:18  Sequence\r
+0:18    move second child to first child (float)\r
+0:18      'patch' (float)\r
+0:18      Constant:\r
+0:18        3.100000\r
 0:?   Linker Objects\r
 0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float)\r
 0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float)\r
 0:?     'foo' (smooth in 4-component vector of float)\r
 0:?     's' (smooth in structure{f})\r
+0:?     'patch' (float)\r
 \r
 \r
 Linked fragment stage:\r
diff --git a/Test/baseResults/150.tesc.out b/Test/baseResults/150.tesc.out
new file mode 100644 (file)
index 0000000..b7fbe27
--- /dev/null
@@ -0,0 +1,1374 @@
+150.tesc\r
+Warning, version 150 is not yet complete; some version-specific features are present, but many are missing.\r
+\r
+vertices = 4\r
+0:? Sequence\r
+0:10  Function Definition: main( (void)\r
+0:10    Function Parameters: \r
+0:12    Sequence\r
+0:12      Barrier (void)\r
+0:14      Sequence\r
+0:14        move second child to first child (int)\r
+0:14          'a' (int)\r
+0:14          Constant:\r
+0:14            5392 (const int)\r
+0:20      Sequence\r
+0:20        move second child to first child (4-component vector of float)\r
+0:20          'p' (4-component vector of float)\r
+0:20          gl_Position: direct index for structure (4-component vector of float)\r
+0:20            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:20              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:20              Constant:\r
+0:20                1 (const int)\r
+0:20            Constant:\r
+0:20              0 (const int)\r
+0:21      Sequence\r
+0:21        move second child to first child (float)\r
+0:21          'ps' (float)\r
+0:21          gl_PointSize: direct index for structure (float)\r
+0:21            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:21              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:21              Constant:\r
+0:21                1 (const int)\r
+0:21            Constant:\r
+0:21              1 (const int)\r
+0:22      Sequence\r
+0:22        move second child to first child (float)\r
+0:22          'cd' (float)\r
+0:22          direct index (float)\r
+0:22            gl_ClipDistance: direct index for structure (unsized array of float)\r
+0:22              direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:22                'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:22                Constant:\r
+0:22                  1 (const int)\r
+0:22              Constant:\r
+0:22                2 (const int)\r
+0:22            Constant:\r
+0:22              2 (const int)\r
+0:24      Sequence\r
+0:24        move second child to first child (int)\r
+0:24          'pvi' (int)\r
+0:24          'gl_PatchVerticesIn' (in int)\r
+0:25      Sequence\r
+0:25        move second child to first child (int)\r
+0:25          'pid' (int)\r
+0:25          'gl_PrimitiveID' (in int)\r
+0:26      Sequence\r
+0:26        move second child to first child (int)\r
+0:26          'iid' (int)\r
+0:26          'gl_InvocationID' (in int)\r
+0:28      move second child to first child (4-component vector of float)\r
+0:28        gl_Position: direct index for structure (4-component vector of float)\r
+0:28          direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:28            'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:28            Constant:\r
+0:28              1 (const int)\r
+0:28          Constant:\r
+0:28            0 (const int)\r
+0:28        'p' (4-component vector of float)\r
+0:29      move second child to first child (float)\r
+0:29        gl_PointSize: direct index for structure (float)\r
+0:29          direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:29            'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:29            Constant:\r
+0:29              1 (const int)\r
+0:29          Constant:\r
+0:29            1 (const int)\r
+0:29        'ps' (float)\r
+0:30      move second child to first child (float)\r
+0:30        direct index (float)\r
+0:30          gl_ClipDistance: direct index for structure (unsized array of float)\r
+0:30            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:30              'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:30              Constant:\r
+0:30                1 (const int)\r
+0:30            Constant:\r
+0:30              2 (const int)\r
+0:30          Constant:\r
+0:30            1 (const int)\r
+0:30        'cd' (float)\r
+0:32      move second child to first child (float)\r
+0:32        direct index (patch float)\r
+0:32          'gl_TessLevelOuter' (patch out 4-element array of float)\r
+0:32          Constant:\r
+0:32            3 (const int)\r
+0:32        Constant:\r
+0:32          3.200000\r
+0:33      move second child to first child (float)\r
+0:33        direct index (patch float)\r
+0:33          'gl_TessLevelInner' (patch out 2-element array of float)\r
+0:33          Constant:\r
+0:33            1 (const int)\r
+0:33        Constant:\r
+0:33          1.300000\r
+0:?   Linker Objects\r
+0:?     'outa' (4-element array of int)\r
+0:?     'patchOut' (patch out 4-component vector of float)\r
+0:?     'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+\r
+150.tese\r
+Warning, version 150 is not yet complete; some version-specific features are present, but many are missing.\r
+ERROR: 0:12: 'barrier' : no matching overloaded function found \r
+ERROR: 1 compilation errors.  No code generated.\r
+\r
+\r
+input primitive = quads\r
+vertex spacing = fractional_odd_spacing\r
+triangle order = cw\r
+using point mode\r
+ERROR: node is still EOpNull!\r
+0:10  Function Definition: main( (void)\r
+0:10    Function Parameters: \r
+0:12    Sequence\r
+0:12      Constant:\r
+0:12        0.000000\r
+0:14      Sequence\r
+0:14        move second child to first child (int)\r
+0:14          'a' (int)\r
+0:14          Constant:\r
+0:14            1512 (const int)\r
+0:22      Sequence\r
+0:22        move second child to first child (4-component vector of float)\r
+0:22          'p' (4-component vector of float)\r
+0:22          gl_Position: direct index for structure (4-component vector of float)\r
+0:22            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:22              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:22              Constant:\r
+0:22                1 (const int)\r
+0:22            Constant:\r
+0:22              0 (const int)\r
+0:23      Sequence\r
+0:23        move second child to first child (float)\r
+0:23          'ps' (float)\r
+0:23          gl_PointSize: direct index for structure (float)\r
+0:23            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:23              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:23              Constant:\r
+0:23                1 (const int)\r
+0:23            Constant:\r
+0:23              1 (const int)\r
+0:24      Sequence\r
+0:24        move second child to first child (float)\r
+0:24          'cd' (float)\r
+0:24          direct index (float)\r
+0:24            gl_ClipDistance: direct index for structure (unsized array of float)\r
+0:24              direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:24                'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:24                Constant:\r
+0:24                  1 (const int)\r
+0:24              Constant:\r
+0:24                2 (const int)\r
+0:24            Constant:\r
+0:24              2 (const int)\r
+0:26      Sequence\r
+0:26        move second child to first child (int)\r
+0:26          'pvi' (int)\r
+0:26          'gl_PatchVerticesIn' (in int)\r
+0:27      Sequence\r
+0:27        move second child to first child (int)\r
+0:27          'pid' (int)\r
+0:27          'gl_PrimitiveID' (in int)\r
+0:28      Sequence\r
+0:28        move second child to first child (3-component vector of float)\r
+0:28          'tc' (3-component vector of float)\r
+0:28          'gl_TessCoord' (in 3-component vector of float)\r
+0:29      Sequence\r
+0:29        move second child to first child (float)\r
+0:29          'tlo' (float)\r
+0:29          direct index (patch float)\r
+0:29            'gl_TessLevelOuter' (patch in 4-element array of float)\r
+0:29            Constant:\r
+0:29              3 (const int)\r
+0:30      Sequence\r
+0:30        move second child to first child (float)\r
+0:30          'tli' (float)\r
+0:30          direct index (patch float)\r
+0:30            'gl_TessLevelInner' (patch in 2-element array of float)\r
+0:30            Constant:\r
+0:30              1 (const int)\r
+0:32      move second child to first child (4-component vector of float)\r
+0:32        gl_Position: direct index for structure (gl_Position 4-component vector of float)\r
+0:32          '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:32          Constant:\r
+0:32            0 (const uint)\r
+0:32        'p' (4-component vector of float)\r
+0:33      move second child to first child (float)\r
+0:33        gl_PointSize: direct index for structure (gl_PointSize float)\r
+0:33          '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:33          Constant:\r
+0:33            1 (const uint)\r
+0:33        'ps' (float)\r
+0:34      move second child to first child (float)\r
+0:34        direct index (float)\r
+0:34          gl_ClipDistance: direct index for structure (unsized array of float)\r
+0:34            '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:34            Constant:\r
+0:34              2 (const uint)\r
+0:34          Constant:\r
+0:34            2 (const int)\r
+0:34        'cd' (float)\r
+0:?   Linker Objects\r
+0:?     'patchIn' (patch in 4-component vector of float)\r
+\r
+400.tesc\r
+Warning, version 400 is not yet complete; some version-specific features are present, but many are missing.\r
+ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignemnt (e.g., binding = 4) \r
+ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignemnt (e.g., binding = 4) \r
+ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignemnt (e.g., binding = 4) \r
+ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader \r
+ERROR: 0:39: 'vertices' : can only apply to 'out' \r
+ERROR: 0:40: 'vertices' : cannot change previously set layout value \r
+ERROR: 0:44: '[' :  array index out of range '4'\r
+ERROR: 7 compilation errors.  No code generated.\r
+\r
+\r
+vertices = 4\r
+ERROR: node is still EOpNull!\r
+0:13  Function Definition: main( (void)\r
+0:13    Function Parameters: \r
+0:15    Sequence\r
+0:15      Barrier (void)\r
+0:17      Sequence\r
+0:17        move second child to first child (int)\r
+0:17          'a' (int)\r
+0:17          Constant:\r
+0:17            5392 (const int)\r
+0:23      Sequence\r
+0:23        move second child to first child (4-component vector of float)\r
+0:23          'p' (4-component vector of float)\r
+0:23          gl_Position: direct index for structure (4-component vector of float)\r
+0:23            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:23              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:23              Constant:\r
+0:23                1 (const int)\r
+0:23            Constant:\r
+0:23              0 (const int)\r
+0:24      Sequence\r
+0:24        move second child to first child (float)\r
+0:24          'ps' (float)\r
+0:24          gl_PointSize: direct index for structure (float)\r
+0:24            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:24              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:24              Constant:\r
+0:24                1 (const int)\r
+0:24            Constant:\r
+0:24              1 (const int)\r
+0:25      Sequence\r
+0:25        move second child to first child (float)\r
+0:25          'cd' (float)\r
+0:25          direct index (float)\r
+0:25            gl_ClipDistance: direct index for structure (unsized array of float)\r
+0:25              direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:25                'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:25                Constant:\r
+0:25                  1 (const int)\r
+0:25              Constant:\r
+0:25                2 (const int)\r
+0:25            Constant:\r
+0:25              2 (const int)\r
+0:27      Sequence\r
+0:27        move second child to first child (int)\r
+0:27          'pvi' (int)\r
+0:27          'gl_PatchVerticesIn' (in int)\r
+0:28      Sequence\r
+0:28        move second child to first child (int)\r
+0:28          'pid' (int)\r
+0:28          'gl_PrimitiveID' (in int)\r
+0:29      Sequence\r
+0:29        move second child to first child (int)\r
+0:29          'iid' (int)\r
+0:29          'gl_InvocationID' (in int)\r
+0:31      move second child to first child (4-component vector of float)\r
+0:31        gl_Position: direct index for structure (4-component vector of float)\r
+0:31          direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:31            'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:31            Constant:\r
+0:31              1 (const int)\r
+0:31          Constant:\r
+0:31            0 (const int)\r
+0:31        'p' (4-component vector of float)\r
+0:32      move second child to first child (float)\r
+0:32        gl_PointSize: direct index for structure (float)\r
+0:32          direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:32            'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:32            Constant:\r
+0:32              1 (const int)\r
+0:32          Constant:\r
+0:32            1 (const int)\r
+0:32        'ps' (float)\r
+0:33      move second child to first child (float)\r
+0:33        direct index (float)\r
+0:33          gl_ClipDistance: direct index for structure (unsized array of float)\r
+0:33            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:33              'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:33              Constant:\r
+0:33                1 (const int)\r
+0:33            Constant:\r
+0:33              2 (const int)\r
+0:33          Constant:\r
+0:33            1 (const int)\r
+0:33        'cd' (float)\r
+0:35      move second child to first child (float)\r
+0:35        direct index (patch float)\r
+0:35          'gl_TessLevelOuter' (patch out 4-element array of float)\r
+0:35          Constant:\r
+0:35            3 (const int)\r
+0:35        Constant:\r
+0:35          3.200000\r
+0:36      move second child to first child (float)\r
+0:36        direct index (patch float)\r
+0:36          'gl_TessLevelInner' (patch out 2-element array of float)\r
+0:36          Constant:\r
+0:36            1 (const int)\r
+0:36        Constant:\r
+0:36          1.300000\r
+0:42  Function Definition: foo( (void)\r
+0:42    Function Parameters: \r
+0:44    Sequence\r
+0:44      gl_PointSize: direct index for structure (float)\r
+0:44        direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:44          'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:44          Constant:\r
+0:44            4 (const int)\r
+0:44        Constant:\r
+0:44          1 (const int)\r
+0:?   Linker Objects\r
+0:?     'outa' (4-element array of int)\r
+0:?     'patchIn' (patch in 4-component vector of float)\r
+0:?     'patchOut' (patch out 4-component vector of float)\r
+0:?     'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+\r
+400.tese\r
+Warning, version 400 is not yet complete; some version-specific features are present, but many are missing.\r
+ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value \r
+ERROR: 0:5: 'triangles' : cannot change previously set input primitive \r
+ERROR: 0:6: 'isolines' : cannot change previously set input primitive \r
+ERROR: 0:8: 'ccw' : cannot change previously set vertex order \r
+ERROR: 0:12: 'equal_spacing' : cannot change previously set vertex spacing \r
+ERROR: 0:13: 'fractional_even_spacing' : cannot change previously set vertex spacing \r
+ERROR: 0:18: 'patch' : can only use on input in tessellation-evaluation shader \r
+ERROR: 0:22: 'barrier' : no matching overloaded function found \r
+ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch \r
+ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch \r
+ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch \r
+ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample) \r
+ERROR: 0:54: 'gl_PerVertex' : block already declared with size, can't redeclare as unsized \r
+ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use \r
+ERROR: 0:64: 'quads' : cannot apply to 'out' \r
+ERROR: 0:64: 'cw' : can only apply to 'in' \r
+ERROR: 0:65: 'triangles' : cannot apply to 'out' \r
+ERROR: 0:66: 'isolines' : cannot apply to 'out' \r
+ERROR: 0:67: 'cw' : can only apply to 'in' \r
+ERROR: 0:68: 'fractional_odd_spacing' : can only apply to 'in' \r
+ERROR: 0:69: 'equal_spacing' : can only apply to 'in' \r
+ERROR: 0:70: 'fractional_even_spacing' : can only apply to 'in' \r
+ERROR: 0:71: 'point_mode' : can only apply to 'in' \r
+ERROR: 23 compilation errors.  No code generated.\r
+\r
+\r
+input primitive = quads\r
+vertex spacing = fractional_odd_spacing\r
+triangle order = cw\r
+using point mode\r
+ERROR: node is still EOpNull!\r
+0:20  Function Definition: main( (void)\r
+0:20    Function Parameters: \r
+0:22    Sequence\r
+0:22      Constant:\r
+0:22        0.000000\r
+0:24      Sequence\r
+0:24        move second child to first child (int)\r
+0:24          'a' (int)\r
+0:24          Constant:\r
+0:24            1512 (const int)\r
+0:32      Sequence\r
+0:32        move second child to first child (4-component vector of float)\r
+0:32          'p' (4-component vector of float)\r
+0:32          gl_Position: direct index for structure (4-component vector of float)\r
+0:32            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:32              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:32              Constant:\r
+0:32                1 (const int)\r
+0:32            Constant:\r
+0:32              0 (const int)\r
+0:33      Sequence\r
+0:33        move second child to first child (float)\r
+0:33          'ps' (float)\r
+0:33          gl_PointSize: direct index for structure (float)\r
+0:33            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:33              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:33              Constant:\r
+0:33                1 (const int)\r
+0:33            Constant:\r
+0:33              1 (const int)\r
+0:34      Sequence\r
+0:34        move second child to first child (float)\r
+0:34          'cd' (float)\r
+0:34          direct index (float)\r
+0:34            gl_ClipDistance: direct index for structure (unsized array of float)\r
+0:34              direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:34                'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:34                Constant:\r
+0:34                  1 (const int)\r
+0:34              Constant:\r
+0:34                2 (const int)\r
+0:34            Constant:\r
+0:34              2 (const int)\r
+0:36      Sequence\r
+0:36        move second child to first child (int)\r
+0:36          'pvi' (int)\r
+0:36          'gl_PatchVerticesIn' (in int)\r
+0:37      Sequence\r
+0:37        move second child to first child (int)\r
+0:37          'pid' (int)\r
+0:37          'gl_PrimitiveID' (in int)\r
+0:38      Sequence\r
+0:38        move second child to first child (3-component vector of float)\r
+0:38          'tc' (3-component vector of float)\r
+0:38          'gl_TessCoord' (in 3-component vector of float)\r
+0:39      Sequence\r
+0:39        move second child to first child (float)\r
+0:39          'tlo' (float)\r
+0:39          direct index (patch float)\r
+0:39            'gl_TessLevelOuter' (patch in 4-element array of float)\r
+0:39            Constant:\r
+0:39              3 (const int)\r
+0:40      Sequence\r
+0:40        move second child to first child (float)\r
+0:40          'tli' (float)\r
+0:40          direct index (patch float)\r
+0:40            'gl_TessLevelInner' (patch in 2-element array of float)\r
+0:40            Constant:\r
+0:40              1 (const int)\r
+0:42      move second child to first child (4-component vector of float)\r
+0:42        gl_Position: direct index for structure (gl_Position 4-component vector of float)\r
+0:42          '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:42          Constant:\r
+0:42            0 (const uint)\r
+0:42        'p' (4-component vector of float)\r
+0:43      move second child to first child (float)\r
+0:43        gl_PointSize: direct index for structure (gl_PointSize float)\r
+0:43          '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:43          Constant:\r
+0:43            1 (const uint)\r
+0:43        'ps' (float)\r
+0:44      move second child to first child (float)\r
+0:44        direct index (float)\r
+0:44          gl_ClipDistance: direct index for structure (unsized array of float)\r
+0:44            '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:44            Constant:\r
+0:44              2 (const uint)\r
+0:44          Constant:\r
+0:44            2 (const int)\r
+0:44        'cd' (float)\r
+0:?   Linker Objects\r
+0:?     'patchIn' (patch in 4-component vector of float)\r
+0:?     'patchOut' (patch out 4-component vector of float)\r
+0:?     'badp1' (smooth patch in 4-component vector of float)\r
+0:?     'badp2' (flat patch in 4-component vector of float)\r
+0:?     'badp3' (noperspective patch in 4-component vector of float)\r
+0:?     'badp4' (patch sample in 3-component vector of float)\r
+0:?     'gl_in' (in 32-element array of block{gl_ClipDistance})\r
+\r
+410.tesc\r
+Warning, version 400 is not yet complete; some version-specific features are present, but many are missing.\r
+ERROR: 0:4: 'length' :  array must first be sized by a redeclaration or layout qualifier\r
+ERROR: 1 compilation errors.  No code generated.\r
+\r
+\r
+vertices = 0\r
+ERROR: node is still EOpNull!\r
+0:8  Function Definition: main( (void)\r
+0:8    Function Parameters: \r
+0:?   Linker Objects\r
+0:?     'outa' (1-element array of int)\r
+0:?     'patchOut' (patch out 4-component vector of float)\r
+\r
+420.tesc\r
+Warning, version 400 is not yet complete; some version-specific features are present, but many are missing.\r
+ERROR: 0:7: 'vertices' : inconsistent output number of vertices for array size of gl_out\r
+ERROR: 0:11: 'vertices' : inconsistent output number of vertices for array size of a\r
+ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size of outb\r
+ERROR: 0:26: 'gl_PointSize' :  no such field in structure \r
+ERROR: 0:26: 'assign' :  cannot convert from 'float' to 'block{gl_Position}'\r
+ERROR: 0:29: 'out' : type must be an array: outf\r
+ERROR: 6 compilation errors.  No code generated.\r
+\r
+\r
+vertices = 4\r
+ERROR: node is still EOpNull!\r
+0:15  Function Definition: main( (void)\r
+0:15    Function Parameters: \r
+0:17    Sequence\r
+0:17      Sequence\r
+0:17        move second child to first child (4-component vector of float)\r
+0:17          'p' (4-component vector of float)\r
+0:17          gl_Position: direct index for structure (4-component vector of float)\r
+0:17            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:17              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:17              Constant:\r
+0:17                1 (const int)\r
+0:17            Constant:\r
+0:17              0 (const int)\r
+0:18      Sequence\r
+0:18        move second child to first child (float)\r
+0:18          'ps' (float)\r
+0:18          gl_PointSize: direct index for structure (float)\r
+0:18            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:18              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:18              Constant:\r
+0:18                1 (const int)\r
+0:18            Constant:\r
+0:18              1 (const int)\r
+0:19      Sequence\r
+0:19        move second child to first child (float)\r
+0:19          'cd' (float)\r
+0:19          direct index (float)\r
+0:19            gl_ClipDistance: direct index for structure (unsized array of float)\r
+0:19              direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:19                'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:19                Constant:\r
+0:19                  1 (const int)\r
+0:19              Constant:\r
+0:19                2 (const int)\r
+0:19            Constant:\r
+0:19              2 (const int)\r
+0:21      Sequence\r
+0:21        move second child to first child (int)\r
+0:21          'pvi' (int)\r
+0:21          'gl_PatchVerticesIn' (in int)\r
+0:22      Sequence\r
+0:22        move second child to first child (int)\r
+0:22          'pid' (int)\r
+0:22          'gl_PrimitiveID' (in int)\r
+0:23      Sequence\r
+0:23        move second child to first child (int)\r
+0:23          'iid' (int)\r
+0:23          'gl_InvocationID' (in int)\r
+0:25      move second child to first child (4-component vector of float)\r
+0:25        gl_Position: direct index for structure (4-component vector of float)\r
+0:25          direct index (block{gl_Position})\r
+0:25            'gl_out' (out 3-element array of block{gl_Position})\r
+0:25            Constant:\r
+0:25              1 (const int)\r
+0:25          Constant:\r
+0:25            0 (const int)\r
+0:25        'p' (4-component vector of float)\r
+0:26      direct index (block{gl_Position})\r
+0:26        'gl_out' (out 3-element array of block{gl_Position})\r
+0:26        Constant:\r
+0:26          1 (const int)\r
+0:?   Linker Objects\r
+0:?     'gl_out' (out 3-element array of block{gl_Position})\r
+0:?     'a' (out 3-element array of int)\r
+0:?     'outb' (out 5-element array of int)\r
+0:?     'outc' (out 4-element array of int)\r
+0:?     'outf' (out float)\r
+\r
+420.tese\r
+Warning, version 420 is not yet complete; some version-specific features are present, but many are missing.\r
+ERROR: 0:7: '=' :  cannot convert from '3-element array of float' to '2-element array of float'\r
+ERROR: 0:8: 'initializer list' : wrong vector size (or rows in a matrix column): 2-component vector of float\r
+ERROR: 0:9: 'initializer list' : wrong number of matrix columns: 3X3 matrix of float\r
+ERROR: 0:10: 'initializer list' : wrong number of matrix columns: 2X2 matrix of float\r
+ERROR: 0:25: 'initializer list' : wrong number of structure members \r
+ERROR: 0:27: '=' :  cannot convert from 'const bool' to 'int'\r
+ERROR: 0:28: 'constructor' :  cannot convert parameter 2 from 'const float' to '4-component vector of float'\r
+ERROR: 0:29: 'constructor' :  cannot convert parameter 2 from 'const 2X2 matrix of float' to 'const 4-component vector of float'\r
+ERROR: 0:29: 'const 2-element array of 4-component vector of float' : cannot construct with these arguments \r
+ERROR: 0:29: '=' :  cannot convert from 'const float' to '2-element array of 4-component vector of float'\r
+ERROR: 0:30: 'initializer list' : wrong number of matrix columns: 4X2 matrix of float\r
+ERROR: 0:40: 'constructor' :  cannot convert parameter 1 from 'float' to 'structure{s,t}'\r
+ERROR: 0:58: 'initializer list' : wrong number of structure members \r
+ERROR: 13 compilation errors.  No code generated.\r
+\r
+\r
+input primitive = none\r
+vertex spacing = none\r
+triangle order = none\r
+ERROR: node is still EOpNull!\r
+0:4  Sequence\r
+0:4    move second child to first child (2X2 matrix of float)\r
+0:4      'b' (2X2 matrix of float)\r
+0:4      Constant:\r
+0:4        1.000000\r
+0:4        0.000000\r
+0:4        0.000000\r
+0:4        1.000000\r
+0:15  Sequence\r
+0:15    move second child to first child (structure{a,b})\r
+0:15      'e' (structure{a,b})\r
+0:15      Constant:\r
+0:15        1.200000\r
+0:15        2 (const int)\r
+0:20  Sequence\r
+0:20    move second child to first child (structure{a,b})\r
+0:20      'e2' (structure{a,b})\r
+0:20      Constant:\r
+0:20        1.000000\r
+0:20        3 (const int)\r
+0:42  Sequence\r
+0:42    move second child to first child (5-element array of float)\r
+0:42      'b5' (5-element array of float)\r
+0:42      Constant:\r
+0:42        3.400000\r
+0:42        4.200000\r
+0:42        5.000000\r
+0:42        5.200000\r
+0:42        1.100000\r
+0:67  Sequence\r
+0:67    move second child to first child (3-component vector of float)\r
+0:67      'av3' (3-component vector of float)\r
+0:67      Construct vec3 (3-component vector of float)\r
+0:67        'vc1' (float)\r
+0:67        'vc2' (float)\r
+0:67        'vc3' (float)\r
+0:68  Sequence\r
+0:68    move second child to first child (3-component vector of float)\r
+0:68      'bv3' (3-component vector of float)\r
+0:68      Construct vec3 (3-component vector of float)\r
+0:68        'vc1' (float)\r
+0:68        'vc2' (float)\r
+0:68        'vc3' (float)\r
+0:70  Function Definition: main( (void)\r
+0:70    Function Parameters: \r
+0:72    Sequence\r
+0:72      MemoryBarrier (void)\r
+0:74      Test condition and select (void)\r
+0:74        Condition\r
+0:74        Compare Equal (bool)\r
+0:74          Constant:\r
+0:74            1 (const uint)\r
+0:74            2 (const uint)\r
+0:74            3.000000\r
+0:74            4.000000\r
+0:74            0.000000\r
+0:74            0.000000\r
+0:74            0.000000\r
+0:74            4.000000\r
+0:74            0.000000\r
+0:74            5.000000\r
+0:74            6.000000\r
+0:74            0.000000\r
+0:74            0.000000\r
+0:74            0.000000\r
+0:74            6.000000\r
+0:74            0.000000\r
+0:74          'curlybad1' (structure{uv2,s})\r
+0:74        true case is null\r
+0:76      Test condition and select (void)\r
+0:76        Condition\r
+0:76        Constant:\r
+0:76          true (const bool)\r
+0:76        true case is null\r
+0:?   Linker Objects\r
+0:?     'a' (const 2X2 matrix of float)\r
+0:?       1.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       1.000000\r
+0:?     'b' (2X2 matrix of float)\r
+0:?     'c' (const 2X2 matrix of float)\r
+0:?       1.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       1.000000\r
+0:?     'a2' (2-element array of float)\r
+0:?     'b2' (2-component vector of float)\r
+0:?     'c2' (3X3 matrix of float)\r
+0:?     'd' (2X2 matrix of float)\r
+0:?     'e' (structure{a,b})\r
+0:?     'e2' (structure{a,b})\r
+0:?     'e3' (structure{a,b})\r
+0:?     'a3' (int)\r
+0:?     'b3' (2-element array of 4-component vector of float)\r
+0:?     'b4' (2-element array of 4-component vector of float)\r
+0:?     'c3' (4X2 matrix of float)\r
+0:?     'd2' (unsized array of structure{s,t})\r
+0:?     'b5' (5-element array of float)\r
+0:?     'constructed' (const structure{uv2,s})\r
+0:?       1 (const uint)\r
+0:?       2 (const uint)\r
+0:?       3.000000\r
+0:?       4.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       4.000000\r
+0:?       0.000000\r
+0:?       5.000000\r
+0:?       6.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       6.000000\r
+0:?       0.000000\r
+0:?     'curlybad1' (structure{uv2,s})\r
+0:?     'curlyInit' (const structure{uv2,s})\r
+0:?       1 (const uint)\r
+0:?       2 (const uint)\r
+0:?       3.000000\r
+0:?       4.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       4.000000\r
+0:?       0.000000\r
+0:?       5.000000\r
+0:?       6.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       6.000000\r
+0:?       0.000000\r
+0:?     'vc1' (float)\r
+0:?     'vc2' (float)\r
+0:?     'vc3' (float)\r
+0:?     'av3' (3-component vector of float)\r
+0:?     'bv3' (3-component vector of float)\r
+\r
+\r
+Linked tessellation control stage:\r
+\r
+ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:\r
+    main(\r
+ERROR: Linking tessellation control stage: Contradictory layout vertices values\r
+ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:\r
+    main(\r
+ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:\r
+    main(\r
+ERROR: Linking tessellation control stage: Types must match:\r
+    outa: "4-element array of int" versus "1-element array of int"\r
+ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:\r
+    main(\r
+ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:\r
+    main(\r
+ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:\r
+    main(\r
+ERROR: Linking tessellation control stage: Types must match:\r
+    gl_out: "out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance}" versus "out 3-element array of block{gl_Position}"\r
+\r
+Linked tessellation evaluation stage:\r
+\r
+ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:\r
+    main(\r
+ERROR: Linking tessellation evaluation stage: Contradictory input layout primitives\r
+ERROR: Linking tessellation evaluation stage: Contradictory input vertex spacing\r
+ERROR: Linking tessellation evaluation stage: Contradictory triangle ordering\r
+ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:\r
+    main(\r
+ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage:\r
+    main(\r
+\r
+vertices = 4\r
+0:? Sequence\r
+0:10  Function Definition: main( (void)\r
+0:10    Function Parameters: \r
+0:12    Sequence\r
+0:12      Barrier (void)\r
+0:14      Sequence\r
+0:14        move second child to first child (int)\r
+0:14          'a' (int)\r
+0:14          Constant:\r
+0:14            5392 (const int)\r
+0:20      Sequence\r
+0:20        move second child to first child (4-component vector of float)\r
+0:20          'p' (4-component vector of float)\r
+0:20          gl_Position: direct index for structure (4-component vector of float)\r
+0:20            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:20              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:20              Constant:\r
+0:20                1 (const int)\r
+0:20            Constant:\r
+0:20              0 (const int)\r
+0:21      Sequence\r
+0:21        move second child to first child (float)\r
+0:21          'ps' (float)\r
+0:21          gl_PointSize: direct index for structure (float)\r
+0:21            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:21              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:21              Constant:\r
+0:21                1 (const int)\r
+0:21            Constant:\r
+0:21              1 (const int)\r
+0:22      Sequence\r
+0:22        move second child to first child (float)\r
+0:22          'cd' (float)\r
+0:22          direct index (float)\r
+0:22            gl_ClipDistance: direct index for structure (unsized array of float)\r
+0:22              direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:22                'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:22                Constant:\r
+0:22                  1 (const int)\r
+0:22              Constant:\r
+0:22                2 (const int)\r
+0:22            Constant:\r
+0:22              2 (const int)\r
+0:24      Sequence\r
+0:24        move second child to first child (int)\r
+0:24          'pvi' (int)\r
+0:24          'gl_PatchVerticesIn' (in int)\r
+0:25      Sequence\r
+0:25        move second child to first child (int)\r
+0:25          'pid' (int)\r
+0:25          'gl_PrimitiveID' (in int)\r
+0:26      Sequence\r
+0:26        move second child to first child (int)\r
+0:26          'iid' (int)\r
+0:26          'gl_InvocationID' (in int)\r
+0:28      move second child to first child (4-component vector of float)\r
+0:28        gl_Position: direct index for structure (4-component vector of float)\r
+0:28          direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:28            'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:28            Constant:\r
+0:28              1 (const int)\r
+0:28          Constant:\r
+0:28            0 (const int)\r
+0:28        'p' (4-component vector of float)\r
+0:29      move second child to first child (float)\r
+0:29        gl_PointSize: direct index for structure (float)\r
+0:29          direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:29            'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:29            Constant:\r
+0:29              1 (const int)\r
+0:29          Constant:\r
+0:29            1 (const int)\r
+0:29        'ps' (float)\r
+0:30      move second child to first child (float)\r
+0:30        direct index (float)\r
+0:30          gl_ClipDistance: direct index for structure (unsized array of float)\r
+0:30            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:30              'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:30              Constant:\r
+0:30                1 (const int)\r
+0:30            Constant:\r
+0:30              2 (const int)\r
+0:30          Constant:\r
+0:30            1 (const int)\r
+0:30        'cd' (float)\r
+0:32      move second child to first child (float)\r
+0:32        direct index (patch float)\r
+0:32          'gl_TessLevelOuter' (patch out 4-element array of float)\r
+0:32          Constant:\r
+0:32            3 (const int)\r
+0:32        Constant:\r
+0:32          3.200000\r
+0:33      move second child to first child (float)\r
+0:33        direct index (patch float)\r
+0:33          'gl_TessLevelInner' (patch out 2-element array of float)\r
+0:33          Constant:\r
+0:33            1 (const int)\r
+0:33        Constant:\r
+0:33          1.300000\r
+0:13  Function Definition: main( (void)\r
+0:13    Function Parameters: \r
+0:15    Sequence\r
+0:15      Barrier (void)\r
+0:17      Sequence\r
+0:17        move second child to first child (int)\r
+0:17          'a' (int)\r
+0:17          Constant:\r
+0:17            5392 (const int)\r
+0:23      Sequence\r
+0:23        move second child to first child (4-component vector of float)\r
+0:23          'p' (4-component vector of float)\r
+0:23          gl_Position: direct index for structure (4-component vector of float)\r
+0:23            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:23              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:23              Constant:\r
+0:23                1 (const int)\r
+0:23            Constant:\r
+0:23              0 (const int)\r
+0:24      Sequence\r
+0:24        move second child to first child (float)\r
+0:24          'ps' (float)\r
+0:24          gl_PointSize: direct index for structure (float)\r
+0:24            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:24              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:24              Constant:\r
+0:24                1 (const int)\r
+0:24            Constant:\r
+0:24              1 (const int)\r
+0:25      Sequence\r
+0:25        move second child to first child (float)\r
+0:25          'cd' (float)\r
+0:25          direct index (float)\r
+0:25            gl_ClipDistance: direct index for structure (unsized array of float)\r
+0:25              direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:25                'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:25                Constant:\r
+0:25                  1 (const int)\r
+0:25              Constant:\r
+0:25                2 (const int)\r
+0:25            Constant:\r
+0:25              2 (const int)\r
+0:27      Sequence\r
+0:27        move second child to first child (int)\r
+0:27          'pvi' (int)\r
+0:27          'gl_PatchVerticesIn' (in int)\r
+0:28      Sequence\r
+0:28        move second child to first child (int)\r
+0:28          'pid' (int)\r
+0:28          'gl_PrimitiveID' (in int)\r
+0:29      Sequence\r
+0:29        move second child to first child (int)\r
+0:29          'iid' (int)\r
+0:29          'gl_InvocationID' (in int)\r
+0:31      move second child to first child (4-component vector of float)\r
+0:31        gl_Position: direct index for structure (4-component vector of float)\r
+0:31          direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:31            'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:31            Constant:\r
+0:31              1 (const int)\r
+0:31          Constant:\r
+0:31            0 (const int)\r
+0:31        'p' (4-component vector of float)\r
+0:32      move second child to first child (float)\r
+0:32        gl_PointSize: direct index for structure (float)\r
+0:32          direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:32            'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:32            Constant:\r
+0:32              1 (const int)\r
+0:32          Constant:\r
+0:32            1 (const int)\r
+0:32        'ps' (float)\r
+0:33      move second child to first child (float)\r
+0:33        direct index (float)\r
+0:33          gl_ClipDistance: direct index for structure (unsized array of float)\r
+0:33            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:33              'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:33              Constant:\r
+0:33                1 (const int)\r
+0:33            Constant:\r
+0:33              2 (const int)\r
+0:33          Constant:\r
+0:33            1 (const int)\r
+0:33        'cd' (float)\r
+0:35      move second child to first child (float)\r
+0:35        direct index (patch float)\r
+0:35          'gl_TessLevelOuter' (patch out 4-element array of float)\r
+0:35          Constant:\r
+0:35            3 (const int)\r
+0:35        Constant:\r
+0:35          3.200000\r
+0:36      move second child to first child (float)\r
+0:36        direct index (patch float)\r
+0:36          'gl_TessLevelInner' (patch out 2-element array of float)\r
+0:36          Constant:\r
+0:36            1 (const int)\r
+0:36        Constant:\r
+0:36          1.300000\r
+0:42  Function Definition: foo( (void)\r
+0:42    Function Parameters: \r
+0:44    Sequence\r
+0:44      gl_PointSize: direct index for structure (float)\r
+0:44        direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:44          'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:44          Constant:\r
+0:44            4 (const int)\r
+0:44        Constant:\r
+0:44          1 (const int)\r
+0:8  Function Definition: main( (void)\r
+0:8    Function Parameters: \r
+0:15  Function Definition: main( (void)\r
+0:15    Function Parameters: \r
+0:17    Sequence\r
+0:17      Sequence\r
+0:17        move second child to first child (4-component vector of float)\r
+0:17          'p' (4-component vector of float)\r
+0:17          gl_Position: direct index for structure (4-component vector of float)\r
+0:17            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:17              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:17              Constant:\r
+0:17                1 (const int)\r
+0:17            Constant:\r
+0:17              0 (const int)\r
+0:18      Sequence\r
+0:18        move second child to first child (float)\r
+0:18          'ps' (float)\r
+0:18          gl_PointSize: direct index for structure (float)\r
+0:18            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:18              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:18              Constant:\r
+0:18                1 (const int)\r
+0:18            Constant:\r
+0:18              1 (const int)\r
+0:19      Sequence\r
+0:19        move second child to first child (float)\r
+0:19          'cd' (float)\r
+0:19          direct index (float)\r
+0:19            gl_ClipDistance: direct index for structure (unsized array of float)\r
+0:19              direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:19                'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:19                Constant:\r
+0:19                  1 (const int)\r
+0:19              Constant:\r
+0:19                2 (const int)\r
+0:19            Constant:\r
+0:19              2 (const int)\r
+0:21      Sequence\r
+0:21        move second child to first child (int)\r
+0:21          'pvi' (int)\r
+0:21          'gl_PatchVerticesIn' (in int)\r
+0:22      Sequence\r
+0:22        move second child to first child (int)\r
+0:22          'pid' (int)\r
+0:22          'gl_PrimitiveID' (in int)\r
+0:23      Sequence\r
+0:23        move second child to first child (int)\r
+0:23          'iid' (int)\r
+0:23          'gl_InvocationID' (in int)\r
+0:25      move second child to first child (4-component vector of float)\r
+0:25        gl_Position: direct index for structure (4-component vector of float)\r
+0:25          direct index (block{gl_Position})\r
+0:25            'gl_out' (out 3-element array of block{gl_Position})\r
+0:25            Constant:\r
+0:25              1 (const int)\r
+0:25          Constant:\r
+0:25            0 (const int)\r
+0:25        'p' (4-component vector of float)\r
+0:26      direct index (block{gl_Position})\r
+0:26        'gl_out' (out 3-element array of block{gl_Position})\r
+0:26        Constant:\r
+0:26          1 (const int)\r
+0:?   Linker Objects\r
+0:?     'outa' (4-element array of int)\r
+0:?     'patchOut' (patch out 4-component vector of float)\r
+0:?     'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:?     'patchIn' (patch in 4-component vector of float)\r
+0:?     'a' (out 3-element array of int)\r
+0:?     'outb' (out 5-element array of int)\r
+0:?     'outc' (out 4-element array of int)\r
+0:?     'outf' (out float)\r
+input primitive = quads\r
+vertex spacing = fractional_odd_spacing\r
+triangle order = cw\r
+using point mode\r
+ERROR: node is still EOpNull!\r
+0:10  Function Definition: main( (void)\r
+0:10    Function Parameters: \r
+0:12    Sequence\r
+0:12      Constant:\r
+0:12        0.000000\r
+0:14      Sequence\r
+0:14        move second child to first child (int)\r
+0:14          'a' (int)\r
+0:14          Constant:\r
+0:14            1512 (const int)\r
+0:22      Sequence\r
+0:22        move second child to first child (4-component vector of float)\r
+0:22          'p' (4-component vector of float)\r
+0:22          gl_Position: direct index for structure (4-component vector of float)\r
+0:22            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:22              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:22              Constant:\r
+0:22                1 (const int)\r
+0:22            Constant:\r
+0:22              0 (const int)\r
+0:23      Sequence\r
+0:23        move second child to first child (float)\r
+0:23          'ps' (float)\r
+0:23          gl_PointSize: direct index for structure (float)\r
+0:23            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:23              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:23              Constant:\r
+0:23                1 (const int)\r
+0:23            Constant:\r
+0:23              1 (const int)\r
+0:24      Sequence\r
+0:24        move second child to first child (float)\r
+0:24          'cd' (float)\r
+0:24          direct index (float)\r
+0:24            gl_ClipDistance: direct index for structure (unsized array of float)\r
+0:24              direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:24                'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:24                Constant:\r
+0:24                  1 (const int)\r
+0:24              Constant:\r
+0:24                2 (const int)\r
+0:24            Constant:\r
+0:24              2 (const int)\r
+0:26      Sequence\r
+0:26        move second child to first child (int)\r
+0:26          'pvi' (int)\r
+0:26          'gl_PatchVerticesIn' (in int)\r
+0:27      Sequence\r
+0:27        move second child to first child (int)\r
+0:27          'pid' (int)\r
+0:27          'gl_PrimitiveID' (in int)\r
+0:28      Sequence\r
+0:28        move second child to first child (3-component vector of float)\r
+0:28          'tc' (3-component vector of float)\r
+0:28          'gl_TessCoord' (in 3-component vector of float)\r
+0:29      Sequence\r
+0:29        move second child to first child (float)\r
+0:29          'tlo' (float)\r
+0:29          direct index (patch float)\r
+0:29            'gl_TessLevelOuter' (patch in 4-element array of float)\r
+0:29            Constant:\r
+0:29              3 (const int)\r
+0:30      Sequence\r
+0:30        move second child to first child (float)\r
+0:30          'tli' (float)\r
+0:30          direct index (patch float)\r
+0:30            'gl_TessLevelInner' (patch in 2-element array of float)\r
+0:30            Constant:\r
+0:30              1 (const int)\r
+0:32      move second child to first child (4-component vector of float)\r
+0:32        gl_Position: direct index for structure (gl_Position 4-component vector of float)\r
+0:32          '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:32          Constant:\r
+0:32            0 (const uint)\r
+0:32        'p' (4-component vector of float)\r
+0:33      move second child to first child (float)\r
+0:33        gl_PointSize: direct index for structure (gl_PointSize float)\r
+0:33          '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:33          Constant:\r
+0:33            1 (const uint)\r
+0:33        'ps' (float)\r
+0:34      move second child to first child (float)\r
+0:34        direct index (float)\r
+0:34          gl_ClipDistance: direct index for structure (unsized array of float)\r
+0:34            '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:34            Constant:\r
+0:34              2 (const uint)\r
+0:34          Constant:\r
+0:34            2 (const int)\r
+0:34        'cd' (float)\r
+0:20  Function Definition: main( (void)\r
+0:20    Function Parameters: \r
+0:22    Sequence\r
+0:22      Constant:\r
+0:22        0.000000\r
+0:24      Sequence\r
+0:24        move second child to first child (int)\r
+0:24          'a' (int)\r
+0:24          Constant:\r
+0:24            1512 (const int)\r
+0:32      Sequence\r
+0:32        move second child to first child (4-component vector of float)\r
+0:32          'p' (4-component vector of float)\r
+0:32          gl_Position: direct index for structure (4-component vector of float)\r
+0:32            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:32              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:32              Constant:\r
+0:32                1 (const int)\r
+0:32            Constant:\r
+0:32              0 (const int)\r
+0:33      Sequence\r
+0:33        move second child to first child (float)\r
+0:33          'ps' (float)\r
+0:33          gl_PointSize: direct index for structure (float)\r
+0:33            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:33              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:33              Constant:\r
+0:33                1 (const int)\r
+0:33            Constant:\r
+0:33              1 (const int)\r
+0:34      Sequence\r
+0:34        move second child to first child (float)\r
+0:34          'cd' (float)\r
+0:34          direct index (float)\r
+0:34            gl_ClipDistance: direct index for structure (unsized array of float)\r
+0:34              direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:34                'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:34                Constant:\r
+0:34                  1 (const int)\r
+0:34              Constant:\r
+0:34                2 (const int)\r
+0:34            Constant:\r
+0:34              2 (const int)\r
+0:36      Sequence\r
+0:36        move second child to first child (int)\r
+0:36          'pvi' (int)\r
+0:36          'gl_PatchVerticesIn' (in int)\r
+0:37      Sequence\r
+0:37        move second child to first child (int)\r
+0:37          'pid' (int)\r
+0:37          'gl_PrimitiveID' (in int)\r
+0:38      Sequence\r
+0:38        move second child to first child (3-component vector of float)\r
+0:38          'tc' (3-component vector of float)\r
+0:38          'gl_TessCoord' (in 3-component vector of float)\r
+0:39      Sequence\r
+0:39        move second child to first child (float)\r
+0:39          'tlo' (float)\r
+0:39          direct index (patch float)\r
+0:39            'gl_TessLevelOuter' (patch in 4-element array of float)\r
+0:39            Constant:\r
+0:39              3 (const int)\r
+0:40      Sequence\r
+0:40        move second child to first child (float)\r
+0:40          'tli' (float)\r
+0:40          direct index (patch float)\r
+0:40            'gl_TessLevelInner' (patch in 2-element array of float)\r
+0:40            Constant:\r
+0:40              1 (const int)\r
+0:42      move second child to first child (4-component vector of float)\r
+0:42        gl_Position: direct index for structure (gl_Position 4-component vector of float)\r
+0:42          '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:42          Constant:\r
+0:42            0 (const uint)\r
+0:42        'p' (4-component vector of float)\r
+0:43      move second child to first child (float)\r
+0:43        gl_PointSize: direct index for structure (gl_PointSize float)\r
+0:43          '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:43          Constant:\r
+0:43            1 (const uint)\r
+0:43        'ps' (float)\r
+0:44      move second child to first child (float)\r
+0:44        direct index (float)\r
+0:44          gl_ClipDistance: direct index for structure (unsized array of float)\r
+0:44            '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})\r
+0:44            Constant:\r
+0:44              2 (const uint)\r
+0:44          Constant:\r
+0:44            2 (const int)\r
+0:44        'cd' (float)\r
+0:4  Sequence\r
+0:4    move second child to first child (2X2 matrix of float)\r
+0:4      'b' (2X2 matrix of float)\r
+0:4      Constant:\r
+0:4        1.000000\r
+0:4        0.000000\r
+0:4        0.000000\r
+0:4        1.000000\r
+0:15  Sequence\r
+0:15    move second child to first child (structure{a,b})\r
+0:15      'e' (structure{a,b})\r
+0:15      Constant:\r
+0:15        1.200000\r
+0:15        2 (const int)\r
+0:20  Sequence\r
+0:20    move second child to first child (structure{a,b})\r
+0:20      'e2' (structure{a,b})\r
+0:20      Constant:\r
+0:20        1.000000\r
+0:20        3 (const int)\r
+0:42  Sequence\r
+0:42    move second child to first child (5-element array of float)\r
+0:42      'b5' (5-element array of float)\r
+0:42      Constant:\r
+0:42        3.400000\r
+0:42        4.200000\r
+0:42        5.000000\r
+0:42        5.200000\r
+0:42        1.100000\r
+0:67  Sequence\r
+0:67    move second child to first child (3-component vector of float)\r
+0:67      'av3' (3-component vector of float)\r
+0:67      Construct vec3 (3-component vector of float)\r
+0:67        'vc1' (float)\r
+0:67        'vc2' (float)\r
+0:67        'vc3' (float)\r
+0:68  Sequence\r
+0:68    move second child to first child (3-component vector of float)\r
+0:68      'bv3' (3-component vector of float)\r
+0:68      Construct vec3 (3-component vector of float)\r
+0:68        'vc1' (float)\r
+0:68        'vc2' (float)\r
+0:68        'vc3' (float)\r
+0:70  Function Definition: main( (void)\r
+0:70    Function Parameters: \r
+0:72    Sequence\r
+0:72      MemoryBarrier (void)\r
+0:74      Test condition and select (void)\r
+0:74        Condition\r
+0:74        Compare Equal (bool)\r
+0:74          Constant:\r
+0:74            1 (const uint)\r
+0:74            2 (const uint)\r
+0:74            3.000000\r
+0:74            4.000000\r
+0:74            0.000000\r
+0:74            0.000000\r
+0:74            0.000000\r
+0:74            4.000000\r
+0:74            0.000000\r
+0:74            5.000000\r
+0:74            6.000000\r
+0:74            0.000000\r
+0:74            0.000000\r
+0:74            0.000000\r
+0:74            6.000000\r
+0:74            0.000000\r
+0:74          'curlybad1' (structure{uv2,s})\r
+0:74        true case is null\r
+0:76      Test condition and select (void)\r
+0:76        Condition\r
+0:76        Constant:\r
+0:76          true (const bool)\r
+0:76        true case is null\r
+0:?   Linker Objects\r
+0:?     'patchIn' (patch in 4-component vector of float)\r
+0:?     'patchOut' (patch out 4-component vector of float)\r
+0:?     'badp1' (smooth patch in 4-component vector of float)\r
+0:?     'badp2' (flat patch in 4-component vector of float)\r
+0:?     'badp3' (noperspective patch in 4-component vector of float)\r
+0:?     'badp4' (patch sample in 3-component vector of float)\r
+0:?     'gl_in' (in 32-element array of block{gl_ClipDistance})\r
+0:?     'a' (const 2X2 matrix of float)\r
+0:?       1.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       1.000000\r
+0:?     'b' (2X2 matrix of float)\r
+0:?     'c' (const 2X2 matrix of float)\r
+0:?       1.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       1.000000\r
+0:?     'a2' (2-element array of float)\r
+0:?     'b2' (2-component vector of float)\r
+0:?     'c2' (3X3 matrix of float)\r
+0:?     'd' (2X2 matrix of float)\r
+0:?     'e' (structure{a,b})\r
+0:?     'e2' (structure{a,b})\r
+0:?     'e3' (structure{a,b})\r
+0:?     'a3' (int)\r
+0:?     'b3' (2-element array of 4-component vector of float)\r
+0:?     'b4' (2-element array of 4-component vector of float)\r
+0:?     'c3' (4X2 matrix of float)\r
+0:?     'd2' (unsized array of structure{s,t})\r
+0:?     'b5' (5-element array of float)\r
+0:?     'constructed' (const structure{uv2,s})\r
+0:?       1 (const uint)\r
+0:?       2 (const uint)\r
+0:?       3.000000\r
+0:?       4.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       4.000000\r
+0:?       0.000000\r
+0:?       5.000000\r
+0:?       6.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       6.000000\r
+0:?       0.000000\r
+0:?     'curlybad1' (structure{uv2,s})\r
+0:?     'curlyInit' (const structure{uv2,s})\r
+0:?       1 (const uint)\r
+0:?       2 (const uint)\r
+0:?       3.000000\r
+0:?       4.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       4.000000\r
+0:?       0.000000\r
+0:?       5.000000\r
+0:?       6.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       6.000000\r
+0:?       0.000000\r
+0:?     'vc1' (float)\r
+0:?     'vc2' (float)\r
+0:?     'vc3' (float)\r
+0:?     'av3' (3-component vector of float)\r
+0:?     'bv3' (3-component vector of float)\r
+\r
diff --git a/Test/baseResults/400.tesc.out b/Test/baseResults/400.tesc.out
deleted file mode 100644 (file)
index 3e10c21..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-400.tesc\r
-Warning, version 400 is not yet complete; some version-specific features are present, but many are missing.\r
-ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignemnt (e.g., binding = 4) \r
-ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignemnt (e.g., binding = 4) \r
-ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignemnt (e.g., binding = 4) \r
-ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader \r
-ERROR: 0:39: 'vertices' : can only apply to 'out' \r
-ERROR: 0:40: 'vertices' : cannot change previously set layout value \r
-ERROR: 0:44: '[' :  array index out of range '4'\r
-ERROR: 7 compilation errors.  No code generated.\r
-\r
-\r
-vertices = 4\r
-ERROR: node is still EOpNull!\r
-0:13  Function Definition: main( (void)\r
-0:13    Function Parameters: \r
-0:15    Sequence\r
-0:15      Barrier (void)\r
-0:17      Sequence\r
-0:17        move second child to first child (int)\r
-0:17          'a' (int)\r
-0:17          Constant:\r
-0:17            5392 (const int)\r
-0:23      Sequence\r
-0:23        move second child to first child (4-component vector of float)\r
-0:23          'p' (4-component vector of float)\r
-0:23          gl_Position: direct index for structure (4-component vector of float)\r
-0:23            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:23              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:23              Constant:\r
-0:23                1 (const int)\r
-0:23            Constant:\r
-0:23              0 (const int)\r
-0:24      Sequence\r
-0:24        move second child to first child (float)\r
-0:24          'ps' (float)\r
-0:24          gl_PointSize: direct index for structure (float)\r
-0:24            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:24              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:24              Constant:\r
-0:24                1 (const int)\r
-0:24            Constant:\r
-0:24              1 (const int)\r
-0:25      Sequence\r
-0:25        move second child to first child (float)\r
-0:25          'cd' (float)\r
-0:25          direct index (float)\r
-0:25            gl_ClipDistance: direct index for structure (unsized array of float)\r
-0:25              direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:25                'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:25                Constant:\r
-0:25                  1 (const int)\r
-0:25              Constant:\r
-0:25                2 (const int)\r
-0:25            Constant:\r
-0:25              2 (const int)\r
-0:27      Sequence\r
-0:27        move second child to first child (int)\r
-0:27          'pvi' (int)\r
-0:27          'gl_PatchVerticesIn' (in int)\r
-0:28      Sequence\r
-0:28        move second child to first child (int)\r
-0:28          'pid' (int)\r
-0:28          'gl_PrimitiveID' (in int)\r
-0:29      Sequence\r
-0:29        move second child to first child (int)\r
-0:29          'iid' (int)\r
-0:29          'gl_InvocationID' (in int)\r
-0:31      move second child to first child (4-component vector of float)\r
-0:31        gl_Position: direct index for structure (4-component vector of float)\r
-0:31          direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:31            'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:31            Constant:\r
-0:31              1 (const int)\r
-0:31          Constant:\r
-0:31            0 (const int)\r
-0:31        'p' (4-component vector of float)\r
-0:32      move second child to first child (float)\r
-0:32        gl_PointSize: direct index for structure (float)\r
-0:32          direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:32            'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:32            Constant:\r
-0:32              1 (const int)\r
-0:32          Constant:\r
-0:32            1 (const int)\r
-0:32        'ps' (float)\r
-0:33      move second child to first child (float)\r
-0:33        direct index (float)\r
-0:33          gl_ClipDistance: direct index for structure (unsized array of float)\r
-0:33            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:33              'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:33              Constant:\r
-0:33                1 (const int)\r
-0:33            Constant:\r
-0:33              2 (const int)\r
-0:33          Constant:\r
-0:33            1 (const int)\r
-0:33        'cd' (float)\r
-0:35      move second child to first child (float)\r
-0:35        direct index (patch float)\r
-0:35          'gl_TessLevelOuter' (patch out 4-element array of float)\r
-0:35          Constant:\r
-0:35            3 (const int)\r
-0:35        Constant:\r
-0:35          3.200000\r
-0:36      move second child to first child (float)\r
-0:36        direct index (patch float)\r
-0:36          'gl_TessLevelInner' (patch out 2-element array of float)\r
-0:36          Constant:\r
-0:36            1 (const int)\r
-0:36        Constant:\r
-0:36          1.300000\r
-0:42  Function Definition: foo( (void)\r
-0:42    Function Parameters: \r
-0:44    Sequence\r
-0:44      gl_PointSize: direct index for structure (float)\r
-0:44        direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:44          'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:44          Constant:\r
-0:44            4 (const int)\r
-0:44        Constant:\r
-0:44          1 (const int)\r
-0:?   Linker Objects\r
-0:?     'outa' (4-element array of int)\r
-0:?     'patchIn' (patch in 4-component vector of float)\r
-0:?     'patchOut' (patch out 4-component vector of float)\r
-0:?     'gl_out' (out 4-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-\r
-\r
-Linked tessellation control stage:\r
-\r
-\r
-vertices = 4\r
-\r
diff --git a/Test/baseResults/400.tese.out b/Test/baseResults/400.tese.out
deleted file mode 100644 (file)
index 121f32f..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-400.tese\r
-Warning, version 400 is not yet complete; some version-specific features are present, but many are missing.\r
-ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value \r
-ERROR: 0:5: 'triangles' : cannot change previously set input primitive \r
-ERROR: 0:6: 'isolines' : cannot change previously set input primitive \r
-ERROR: 0:8: 'ccw' : cannot change previously set vertex order \r
-ERROR: 0:12: 'equal_spacing' : cannot change previously set vertex spacing \r
-ERROR: 0:13: 'fractional_even_spacing' : cannot change previously set vertex spacing \r
-ERROR: 0:18: 'patch' : can only use on input in tessellation-evaluation shader \r
-ERROR: 0:22: 'barrier' : no matching overloaded function found \r
-ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch \r
-ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch \r
-ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch \r
-ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample) \r
-ERROR: 0:54: 'gl_PerVertex' : block already declared with size, can't redeclare as unsized \r
-ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use \r
-ERROR: 0:64: 'quads' : cannot apply to 'out' \r
-ERROR: 0:64: 'cw' : can only apply to 'in' \r
-ERROR: 0:65: 'triangles' : cannot apply to 'out' \r
-ERROR: 0:66: 'isolines' : cannot apply to 'out' \r
-ERROR: 0:67: 'cw' : can only apply to 'in' \r
-ERROR: 0:68: 'fractional_odd_spacing' : can only apply to 'in' \r
-ERROR: 0:69: 'equal_spacing' : can only apply to 'in' \r
-ERROR: 0:70: 'fractional_even_spacing' : can only apply to 'in' \r
-ERROR: 0:71: 'point_mode' : can only apply to 'in' \r
-ERROR: 23 compilation errors.  No code generated.\r
-\r
-\r
-input primitive = quads\r
-vertex spacing = fractional_odd_spacing\r
-triangle order = cw\r
-using point mode\r
-ERROR: node is still EOpNull!\r
-0:20  Function Definition: main( (void)\r
-0:20    Function Parameters: \r
-0:22    Sequence\r
-0:22      Constant:\r
-0:22        0.000000\r
-0:24      Sequence\r
-0:24        move second child to first child (int)\r
-0:24          'a' (int)\r
-0:24          Constant:\r
-0:24            1512 (const int)\r
-0:32      Sequence\r
-0:32        move second child to first child (4-component vector of float)\r
-0:32          'p' (4-component vector of float)\r
-0:32          gl_Position: direct index for structure (4-component vector of float)\r
-0:32            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:32              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:32              Constant:\r
-0:32                1 (const int)\r
-0:32            Constant:\r
-0:32              0 (const int)\r
-0:33      Sequence\r
-0:33        move second child to first child (float)\r
-0:33          'ps' (float)\r
-0:33          gl_PointSize: direct index for structure (float)\r
-0:33            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:33              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:33              Constant:\r
-0:33                1 (const int)\r
-0:33            Constant:\r
-0:33              1 (const int)\r
-0:34      Sequence\r
-0:34        move second child to first child (float)\r
-0:34          'cd' (float)\r
-0:34          direct index (float)\r
-0:34            gl_ClipDistance: direct index for structure (unsized array of float)\r
-0:34              direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:34                'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:34                Constant:\r
-0:34                  1 (const int)\r
-0:34              Constant:\r
-0:34                2 (const int)\r
-0:34            Constant:\r
-0:34              2 (const int)\r
-0:36      Sequence\r
-0:36        move second child to first child (int)\r
-0:36          'pvi' (int)\r
-0:36          'gl_PatchVerticesIn' (in int)\r
-0:37      Sequence\r
-0:37        move second child to first child (int)\r
-0:37          'pid' (int)\r
-0:37          'gl_PrimitiveID' (in int)\r
-0:38      Sequence\r
-0:38        move second child to first child (3-component vector of float)\r
-0:38          'tc' (3-component vector of float)\r
-0:38          'gl_TessCoord' (in 3-component vector of float)\r
-0:39      Sequence\r
-0:39        move second child to first child (float)\r
-0:39          'tlo' (float)\r
-0:39          direct index (patch float)\r
-0:39            'gl_TessLevelOuter' (patch in 4-element array of float)\r
-0:39            Constant:\r
-0:39              3 (const int)\r
-0:40      Sequence\r
-0:40        move second child to first child (float)\r
-0:40          'tli' (float)\r
-0:40          direct index (patch float)\r
-0:40            'gl_TessLevelInner' (patch in 2-element array of float)\r
-0:40            Constant:\r
-0:40              1 (const int)\r
-0:42      move second child to first child (4-component vector of float)\r
-0:42        gl_Position: direct index for structure (gl_Position 4-component vector of float)\r
-0:42          '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:42          Constant:\r
-0:42            0 (const uint)\r
-0:42        'p' (4-component vector of float)\r
-0:43      move second child to first child (float)\r
-0:43        gl_PointSize: direct index for structure (gl_PointSize float)\r
-0:43          '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:43          Constant:\r
-0:43            1 (const uint)\r
-0:43        'ps' (float)\r
-0:44      move second child to first child (float)\r
-0:44        direct index (float)\r
-0:44          gl_ClipDistance: direct index for structure (unsized array of float)\r
-0:44            '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:44            Constant:\r
-0:44              2 (const uint)\r
-0:44          Constant:\r
-0:44            2 (const int)\r
-0:44        'cd' (float)\r
-0:?   Linker Objects\r
-0:?     'patchIn' (patch in 4-component vector of float)\r
-0:?     'patchOut' (patch out 4-component vector of float)\r
-0:?     'badp1' (smooth patch in 4-component vector of float)\r
-0:?     'badp2' (flat patch in 4-component vector of float)\r
-0:?     'badp3' (noperspective patch in 4-component vector of float)\r
-0:?     'badp4' (patch sample in 3-component vector of float)\r
-0:?     'gl_in' (in 32-element array of block{gl_ClipDistance})\r
-\r
-\r
-Linked tessellation evaluation stage:\r
-\r
-\r
-input primitive = quads\r
-vertex spacing = fractional_odd_spacing\r
-triangle order = cw\r
-using point mode\r
-\r
diff --git a/Test/baseResults/410.tesc.out b/Test/baseResults/410.tesc.out
deleted file mode 100644 (file)
index 832ee90..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-410.tesc\r
-Warning, version 400 is not yet complete; some version-specific features are present, but many are missing.\r
-ERROR: 0:4: 'length' :  array must first be sized by a redeclaration or layout qualifier\r
-ERROR: 1 compilation errors.  No code generated.\r
-\r
-\r
-vertices = 0\r
-ERROR: node is still EOpNull!\r
-0:8  Function Definition: main( (void)\r
-0:8    Function Parameters: \r
-0:?   Linker Objects\r
-0:?     'outa' (1-element array of int)\r
-0:?     'patchOut' (patch out 4-component vector of float)\r
-\r
-\r
-Linked tessellation control stage:\r
-\r
-ERROR: Linking tessellation control stage: At least one shader must specify an output layout(vertices=...)\r
-\r
-vertices = 0\r
-\r
diff --git a/Test/baseResults/420.tesc.out b/Test/baseResults/420.tesc.out
deleted file mode 100644 (file)
index 12794d1..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-420.tesc\r
-Warning, version 400 is not yet complete; some version-specific features are present, but many are missing.\r
-ERROR: 0:7: 'vertices' : inconsistent output number of vertices for array size of gl_out\r
-ERROR: 0:11: 'vertices' : inconsistent output number of vertices for array size of a\r
-ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size of outb\r
-ERROR: 0:26: 'gl_PointSize' :  no such field in structure \r
-ERROR: 0:26: 'assign' :  cannot convert from 'float' to 'block{gl_Position}'\r
-ERROR: 0:29: 'out' : type must be an array: outf\r
-ERROR: 6 compilation errors.  No code generated.\r
-\r
-\r
-vertices = 4\r
-ERROR: node is still EOpNull!\r
-0:15  Function Definition: main( (void)\r
-0:15    Function Parameters: \r
-0:17    Sequence\r
-0:17      Sequence\r
-0:17        move second child to first child (4-component vector of float)\r
-0:17          'p' (4-component vector of float)\r
-0:17          gl_Position: direct index for structure (4-component vector of float)\r
-0:17            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:17              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:17              Constant:\r
-0:17                1 (const int)\r
-0:17            Constant:\r
-0:17              0 (const int)\r
-0:18      Sequence\r
-0:18        move second child to first child (float)\r
-0:18          'ps' (float)\r
-0:18          gl_PointSize: direct index for structure (float)\r
-0:18            direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:18              'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:18              Constant:\r
-0:18                1 (const int)\r
-0:18            Constant:\r
-0:18              1 (const int)\r
-0:19      Sequence\r
-0:19        move second child to first child (float)\r
-0:19          'cd' (float)\r
-0:19          direct index (float)\r
-0:19            gl_ClipDistance: direct index for structure (unsized array of float)\r
-0:19              direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:19                'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})\r
-0:19                Constant:\r
-0:19                  1 (const int)\r
-0:19              Constant:\r
-0:19                2 (const int)\r
-0:19            Constant:\r
-0:19              2 (const int)\r
-0:21      Sequence\r
-0:21        move second child to first child (int)\r
-0:21          'pvi' (int)\r
-0:21          'gl_PatchVerticesIn' (in int)\r
-0:22      Sequence\r
-0:22        move second child to first child (int)\r
-0:22          'pid' (int)\r
-0:22          'gl_PrimitiveID' (in int)\r
-0:23      Sequence\r
-0:23        move second child to first child (int)\r
-0:23          'iid' (int)\r
-0:23          'gl_InvocationID' (in int)\r
-0:25      move second child to first child (4-component vector of float)\r
-0:25        gl_Position: direct index for structure (4-component vector of float)\r
-0:25          direct index (block{gl_Position})\r
-0:25            'gl_out' (out 3-element array of block{gl_Position})\r
-0:25            Constant:\r
-0:25              1 (const int)\r
-0:25          Constant:\r
-0:25            0 (const int)\r
-0:25        'p' (4-component vector of float)\r
-0:26      direct index (block{gl_Position})\r
-0:26        'gl_out' (out 3-element array of block{gl_Position})\r
-0:26        Constant:\r
-0:26          1 (const int)\r
-0:?   Linker Objects\r
-0:?     'gl_out' (out 3-element array of block{gl_Position})\r
-0:?     'a' (out 3-element array of int)\r
-0:?     'outb' (out 5-element array of int)\r
-0:?     'outc' (out 4-element array of int)\r
-0:?     'outf' (out float)\r
-\r
-\r
-Linked tessellation control stage:\r
-\r
-\r
-vertices = 4\r
-\r
diff --git a/Test/baseResults/420.tese.out b/Test/baseResults/420.tese.out
deleted file mode 100644 (file)
index 71ddd93..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-420.tese\r
-Warning, version 420 is not yet complete; some version-specific features are present, but many are missing.\r
-ERROR: 0:7: '=' :  cannot convert from '3-element array of float' to '2-element array of float'\r
-ERROR: 0:8: 'initializer list' : wrong vector size (or rows in a matrix column): 2-component vector of float\r
-ERROR: 0:9: 'initializer list' : wrong number of matrix columns: 3X3 matrix of float\r
-ERROR: 0:10: 'initializer list' : wrong number of matrix columns: 2X2 matrix of float\r
-ERROR: 0:25: 'initializer list' : wrong number of structure members \r
-ERROR: 0:27: '=' :  cannot convert from 'const bool' to 'int'\r
-ERROR: 0:28: 'constructor' :  cannot convert parameter 2 from 'const float' to '4-component vector of float'\r
-ERROR: 0:29: 'constructor' :  cannot convert parameter 2 from 'const 2X2 matrix of float' to 'const 4-component vector of float'\r
-ERROR: 0:29: 'const 2-element array of 4-component vector of float' : cannot construct with these arguments \r
-ERROR: 0:29: '=' :  cannot convert from 'const float' to '2-element array of 4-component vector of float'\r
-ERROR: 0:30: 'initializer list' : wrong number of matrix columns: 4X2 matrix of float\r
-ERROR: 0:40: 'constructor' :  cannot convert parameter 1 from 'float' to 'structure{s,t}'\r
-ERROR: 0:58: 'initializer list' : wrong number of structure members \r
-ERROR: 13 compilation errors.  No code generated.\r
-\r
-\r
-input primitive = none\r
-vertex spacing = none\r
-triangle order = none\r
-ERROR: node is still EOpNull!\r
-0:4  Sequence\r
-0:4    move second child to first child (2X2 matrix of float)\r
-0:4      'b' (2X2 matrix of float)\r
-0:4      Constant:\r
-0:4        1.000000\r
-0:4        0.000000\r
-0:4        0.000000\r
-0:4        1.000000\r
-0:15  Sequence\r
-0:15    move second child to first child (structure{a,b})\r
-0:15      'e' (structure{a,b})\r
-0:15      Constant:\r
-0:15        1.200000\r
-0:15        2 (const int)\r
-0:20  Sequence\r
-0:20    move second child to first child (structure{a,b})\r
-0:20      'e2' (structure{a,b})\r
-0:20      Constant:\r
-0:20        1.000000\r
-0:20        3 (const int)\r
-0:42  Sequence\r
-0:42    move second child to first child (5-element array of float)\r
-0:42      'b5' (5-element array of float)\r
-0:42      Constant:\r
-0:42        3.400000\r
-0:42        4.200000\r
-0:42        5.000000\r
-0:42        5.200000\r
-0:42        1.100000\r
-0:67  Sequence\r
-0:67    move second child to first child (3-component vector of float)\r
-0:67      'av3' (3-component vector of float)\r
-0:67      Construct vec3 (3-component vector of float)\r
-0:67        'vc1' (float)\r
-0:67        'vc2' (float)\r
-0:67        'vc3' (float)\r
-0:68  Sequence\r
-0:68    move second child to first child (3-component vector of float)\r
-0:68      'bv3' (3-component vector of float)\r
-0:68      Construct vec3 (3-component vector of float)\r
-0:68        'vc1' (float)\r
-0:68        'vc2' (float)\r
-0:68        'vc3' (float)\r
-0:70  Function Definition: main( (void)\r
-0:70    Function Parameters: \r
-0:72    Sequence\r
-0:72      MemoryBarrier (void)\r
-0:74      Test condition and select (void)\r
-0:74        Condition\r
-0:74        Compare Equal (bool)\r
-0:74          Constant:\r
-0:74            1 (const uint)\r
-0:74            2 (const uint)\r
-0:74            3.000000\r
-0:74            4.000000\r
-0:74            0.000000\r
-0:74            0.000000\r
-0:74            0.000000\r
-0:74            4.000000\r
-0:74            0.000000\r
-0:74            5.000000\r
-0:74            6.000000\r
-0:74            0.000000\r
-0:74            0.000000\r
-0:74            0.000000\r
-0:74            6.000000\r
-0:74            0.000000\r
-0:74          'curlybad1' (structure{uv2,s})\r
-0:74        true case is null\r
-0:76      Test condition and select (void)\r
-0:76        Condition\r
-0:76        Constant:\r
-0:76          true (const bool)\r
-0:76        true case is null\r
-0:?   Linker Objects\r
-0:?     'a' (const 2X2 matrix of float)\r
-0:?       1.000000\r
-0:?       0.000000\r
-0:?       0.000000\r
-0:?       1.000000\r
-0:?     'b' (2X2 matrix of float)\r
-0:?     'c' (const 2X2 matrix of float)\r
-0:?       1.000000\r
-0:?       0.000000\r
-0:?       0.000000\r
-0:?       1.000000\r
-0:?     'a2' (2-element array of float)\r
-0:?     'b2' (2-component vector of float)\r
-0:?     'c2' (3X3 matrix of float)\r
-0:?     'd' (2X2 matrix of float)\r
-0:?     'e' (structure{a,b})\r
-0:?     'e2' (structure{a,b})\r
-0:?     'e3' (structure{a,b})\r
-0:?     'a3' (int)\r
-0:?     'b3' (2-element array of 4-component vector of float)\r
-0:?     'b4' (2-element array of 4-component vector of float)\r
-0:?     'c3' (4X2 matrix of float)\r
-0:?     'd2' (unsized array of structure{s,t})\r
-0:?     'b5' (5-element array of float)\r
-0:?     'constructed' (const structure{uv2,s})\r
-0:?       1 (const uint)\r
-0:?       2 (const uint)\r
-0:?       3.000000\r
-0:?       4.000000\r
-0:?       0.000000\r
-0:?       0.000000\r
-0:?       0.000000\r
-0:?       4.000000\r
-0:?       0.000000\r
-0:?       5.000000\r
-0:?       6.000000\r
-0:?       0.000000\r
-0:?       0.000000\r
-0:?       0.000000\r
-0:?       6.000000\r
-0:?       0.000000\r
-0:?     'curlybad1' (structure{uv2,s})\r
-0:?     'curlyInit' (const structure{uv2,s})\r
-0:?       1 (const uint)\r
-0:?       2 (const uint)\r
-0:?       3.000000\r
-0:?       4.000000\r
-0:?       0.000000\r
-0:?       0.000000\r
-0:?       0.000000\r
-0:?       4.000000\r
-0:?       0.000000\r
-0:?       5.000000\r
-0:?       6.000000\r
-0:?       0.000000\r
-0:?       0.000000\r
-0:?       0.000000\r
-0:?       6.000000\r
-0:?       0.000000\r
-0:?     'vc1' (float)\r
-0:?     'vc2' (float)\r
-0:?     'vc3' (float)\r
-0:?     'av3' (3-component vector of float)\r
-0:?     'bv3' (3-component vector of float)\r
-\r
-\r
-Linked tessellation evaluation stage:\r
-\r
-ERROR: Linking tessellation evaluation stage: At least one shader must specify an input layout primitive\r
-\r
-input primitive = none\r
-vertex spacing = equal_spacing\r
-triangle order = ccw\r
-\r
index 63cbd6b..5604bbb 100755 (executable)
@@ -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
index ac63cbb..06f8b57 100644 (file)
@@ -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
index fd61d29..579257d 100644 (file)
@@ -9,5 +9,5 @@
 // source have to figure out how to create revision.h just to get a build\r
 // going.  However, if it is not updated, it can be a version behind.\r
 \r
-#define GLSLANG_REVISION "24530"\r
-#define GLSLANG_DATE     "2013/12/16 16:58:15"\r
+#define GLSLANG_REVISION "24551"\r
+#define GLSLANG_DATE     "2013/12/17 20:06:24"\r
index ac576f2..a421c0e 100644 (file)
@@ -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);
index 9077ca6..9fb381b 100644 (file)
@@ -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);
index 53f9451..d781083 100644 (file)
@@ -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;
index 758f8d6..d0997b8 100644 (file)
@@ -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
 
index cd20b3e..7e4f6e7 100644 (file)
@@ -1227,7 +1227,6 @@ storage_qualifier
     | PATCH {\r
         parseContext.globalCheck($1.loc, "patch");\r
         parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");\r
-        parseContext.profileRequires($1.loc, ~EEsProfile, 400, 1, &GL_ARB_tessellation_shader, "patch");\r
         $$.init($1.loc);\r
         $$.qualifier.patch = true;\r
     }\r