Tessellation: implement 'patch' semantics.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24486 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich 2013-12-12 01:25:37 +00:00
parent a57a78ed9f
commit 116c30b6ed
14 changed files with 311 additions and 221 deletions

View file

@ -6,8 +6,13 @@ ERROR: 0:6: 'isolines' : cannot change previously set input primitive
ERROR: 0:9: 'ccw' : cannot change previously set vertex order
ERROR: 0:12: 'equal_spacing' : cannot change previously set vertex spacing
ERROR: 0:13: 'fractional_even_spacing' : cannot change previously set vertex spacing
ERROR: 0:19: 'barrier' : no matching overloaded function found
ERROR: 7 compilation errors. No code generated.
ERROR: 0:18: 'patch' : can only use on input in tessellation-evaluation shader
ERROR: 0:22: 'barrier' : no matching overloaded function found
ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch
ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch
ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch
ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample)
ERROR: 12 compilation errors. No code generated.
input primitive = quads
@ -15,97 +20,103 @@ vertex spacing = fractional_odd_spacing
triangle order = cw
using point mode
ERROR: node is still EOpNull!
0:17 Function Definition: main( (void)
0:17 Function Parameters:
0:19 Sequence
0:19 Constant:
0:19 0.000000
0:21 Sequence
0:21 move second child to first child (int)
0:21 'a' (int)
0:21 Constant:
0:21 1512 (const int)
0:29 Sequence
0:29 move second child to first child (4-component vector of float)
0:29 'p' (4-component vector of float)
0:29 gl_Position: direct index for structure (4-component vector of float)
0:29 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})
0:29 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})
0:29 Constant:
0:29 1 (const int)
0:29 Constant:
0:29 0 (const int)
0:30 Sequence
0:30 move second child to first child (float)
0:30 'ps' (float)
0:30 gl_PointSize: direct index for structure (float)
0:30 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})
0:30 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})
0:30 Constant:
0:30 1 (const int)
0:30 Constant:
0:30 1 (const int)
0:31 Sequence
0:31 move second child to first child (float)
0:31 'cd' (float)
0:31 direct index (float)
0:31 gl_ClipDistance: direct index for structure (unsized array of float)
0:31 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})
0:31 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})
0:31 Constant:
0:31 1 (const int)
0:31 Constant:
0:31 2 (const int)
0:31 Constant:
0:31 2 (const int)
0:20 Function Definition: main( (void)
0:20 Function Parameters:
0:22 Sequence
0:22 Constant:
0:22 0.000000
0:24 Sequence
0:24 move second child to first child (int)
0:24 'a' (int)
0:24 Constant:
0:24 1512 (const int)
0:32 Sequence
0:32 move second child to first child (4-component vector of float)
0:32 'p' (4-component vector of float)
0:32 gl_Position: direct index for structure (4-component vector of float)
0:32 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})
0:32 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})
0:32 Constant:
0:32 1 (const int)
0:32 Constant:
0:32 0 (const int)
0:33 Sequence
0:33 move second child to first child (int)
0:33 'pvi' (int)
0:33 'gl_PatchVerticesIn' (in int)
0:33 move second child to first child (float)
0:33 'ps' (float)
0:33 gl_PointSize: direct index for structure (float)
0:33 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})
0:33 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})
0:33 Constant:
0:33 1 (const int)
0:33 Constant:
0:33 1 (const int)
0:34 Sequence
0:34 move second child to first child (int)
0:34 'pid' (int)
0:34 'gl_PrimitiveID' (in int)
0:35 Sequence
0:35 move second child to first child (3-component vector of float)
0:35 'tc' (3-component vector of float)
0:35 'gl_TessCoord' (in 3-component vector of float)
0:34 move second child to first child (float)
0:34 'cd' (float)
0:34 direct index (float)
0:34 gl_ClipDistance: direct index for structure (unsized array of float)
0:34 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})
0:34 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})
0:34 Constant:
0:34 1 (const int)
0:34 Constant:
0:34 2 (const int)
0:34 Constant:
0:34 2 (const int)
0:36 Sequence
0:36 move second child to first child (float)
0:36 'tlo' (float)
0:36 direct index (patch float)
0:36 'gl_TessLevelOuter' (patch in 4-element array of float)
0:36 Constant:
0:36 3 (const int)
0:36 move second child to first child (int)
0:36 'pvi' (int)
0:36 'gl_PatchVerticesIn' (in int)
0:37 Sequence
0:37 move second child to first child (float)
0:37 'tli' (float)
0:37 direct index (patch float)
0:37 'gl_TessLevelInner' (patch in 2-element array of float)
0:37 Constant:
0:37 1 (const int)
0:39 move second child to first child (4-component vector of float)
0:39 gl_Position: direct index for structure (gl_Position 4-component vector of float)
0:39 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})
0:39 Constant:
0:39 0 (const uint)
0:39 'p' (4-component vector of float)
0:40 move second child to first child (float)
0:40 gl_PointSize: direct index for structure (gl_PointSize float)
0:40 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})
0:40 Constant:
0:40 1 (const uint)
0:40 'ps' (float)
0:41 move second child to first child (float)
0:41 direct index (float)
0:41 gl_ClipDistance: direct index for structure (unsized array of float)
0:41 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})
0:41 Constant:
0:41 2 (const uint)
0:41 Constant:
0:41 2 (const int)
0:41 'cd' (float)
0:37 move second child to first child (int)
0:37 'pid' (int)
0:37 'gl_PrimitiveID' (in int)
0:38 Sequence
0:38 move second child to first child (3-component vector of float)
0:38 'tc' (3-component vector of float)
0:38 'gl_TessCoord' (in 3-component vector of float)
0:39 Sequence
0:39 move second child to first child (float)
0:39 'tlo' (float)
0:39 direct index (patch float)
0:39 'gl_TessLevelOuter' (patch in 4-element array of float)
0:39 Constant:
0:39 3 (const int)
0:40 Sequence
0:40 move second child to first child (float)
0:40 'tli' (float)
0:40 direct index (patch float)
0:40 'gl_TessLevelInner' (patch in 2-element array of float)
0:40 Constant:
0:40 1 (const int)
0:42 move second child to first child (4-component vector of float)
0:42 gl_Position: direct index for structure (gl_Position 4-component vector of float)
0:42 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})
0:42 Constant:
0:42 0 (const uint)
0:42 'p' (4-component vector of float)
0:43 move second child to first child (float)
0:43 gl_PointSize: direct index for structure (gl_PointSize float)
0:43 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})
0:43 Constant:
0:43 1 (const uint)
0:43 'ps' (float)
0:44 move second child to first child (float)
0:44 direct index (float)
0:44 gl_ClipDistance: direct index for structure (unsized array of float)
0:44 '__anon__1' (out block{gl_Position,gl_PointSize,gl_ClipDistance})
0:44 Constant:
0:44 2 (const uint)
0:44 Constant:
0:44 2 (const int)
0:44 'cd' (float)
0:? Linker Objects
0:? 'patchIn' (patch in 4-component vector of float)
0:? 'patchOut' (patch out 4-component vector of float)
0:? 'badp1' (smooth patch in 4-component vector of float)
0:? 'badp2' (flat patch in 4-component vector of float)
0:? 'badp3' (noperspective patch in 4-component vector of float)
0:? 'badp4' (patch sample in 3-component vector of float)
Linked tessellation evaluation stage: