Tessellation partial implementation (not ready for use yet), including:
- the built-in constants - built-in variable declarations, some dependent on gl_MaxPatchVertices - layout qualifier for vertices (shared with geometry shader max_vertices) - layout qualifiers for vertex spacing, vertex order, point mode, and primitive type - link semantics for layout qualifiers Still TBD: - patch qualifier and arrayed input handling - sizing of gl_out[] - additional semantic checking - supporting the extension on version 150 git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24468 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
@@ -27,4 +27,6 @@ ERROR: node is still EOpNull!
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
gl_FragCoord pixel center is integer
|
||||
gl_FragCoord origin is upper left
|
||||
|
||||
|
||||
@@ -146,4 +146,8 @@ ERROR: node is still EOpNull!
|
||||
Linked geometry stage:
|
||||
|
||||
|
||||
invocations = 4
|
||||
max_vertices = 300
|
||||
input primitive = lines_adjancency
|
||||
output primitive = triangle_strip
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ ERROR: node is still EOpNull!
|
||||
0:36 move second child to first child (highp int)
|
||||
0:36 'c5' (highp int)
|
||||
0:36 Constant:
|
||||
0:36 32 (const int)
|
||||
0:36 80 (const int)
|
||||
0:37 Sequence
|
||||
0:37 move second child to first child (highp int)
|
||||
0:37 'c6' (highp int)
|
||||
|
||||
@@ -209,4 +209,6 @@ ERROR: node is still EOpNull!
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
gl_FragCoord pixel center is integer
|
||||
gl_FragCoord origin is upper left
|
||||
|
||||
|
||||
@@ -78,4 +78,8 @@ Linked geometry stage:
|
||||
|
||||
ERROR: Linking geometry stage: At least one geometry shader must specify an output layout primitive
|
||||
|
||||
invocations = 4
|
||||
max_vertices = 127
|
||||
input primitive = triangles
|
||||
output primitive = none
|
||||
|
||||
|
||||
@@ -1,15 +1,119 @@
|
||||
400.tesc
|
||||
Warning, version 400 is not yet complete; some version-specific features are present, but many are missing.
|
||||
ERROR: 0:4: 'length' : array must be declared with a size before using this method
|
||||
ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignemnt (e.g., binding = 4)
|
||||
ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignemnt (e.g., binding = 4)
|
||||
ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignemnt (e.g., binding = 4)
|
||||
ERROR: 4 compilation errors. No code generated.
|
||||
|
||||
0:? Sequence
|
||||
0:3 Function Definition: main( (void)
|
||||
0:3 Function Parameters:
|
||||
0:5 Sequence
|
||||
0:5 Barrier (void)
|
||||
|
||||
vertices = 4
|
||||
ERROR: node is still EOpNull!
|
||||
0:11 Function Definition: main( (void)
|
||||
0:11 Function Parameters:
|
||||
0:13 Sequence
|
||||
0:13 Barrier (void)
|
||||
0:15 Sequence
|
||||
0:15 move second child to first child (int)
|
||||
0:15 'a' (int)
|
||||
0:15 Constant:
|
||||
0:15 5392 (const int)
|
||||
0:21 Sequence
|
||||
0:21 move second child to first child (4-component vector of float)
|
||||
0:21 'p' (4-component vector of float)
|
||||
0:21 gl_Position: direct index for structure (4-component vector of float)
|
||||
0:21 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})
|
||||
0:21 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})
|
||||
0:21 Constant:
|
||||
0:21 1 (const int)
|
||||
0:21 Constant:
|
||||
0:21 0 (const int)
|
||||
0:22 Sequence
|
||||
0:22 move second child to first child (float)
|
||||
0:22 'ps' (float)
|
||||
0:22 gl_PointSize: direct index for structure (float)
|
||||
0:22 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})
|
||||
0:22 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})
|
||||
0:22 Constant:
|
||||
0:22 1 (const int)
|
||||
0:22 Constant:
|
||||
0:22 1 (const int)
|
||||
0:23 Sequence
|
||||
0:23 move second child to first child (float)
|
||||
0:23 'cd' (float)
|
||||
0:23 direct index (float)
|
||||
0:23 gl_ClipDistance: direct index for structure (unsized array of float)
|
||||
0:23 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})
|
||||
0:23 'gl_in' (in 32-element array of block{gl_Position,gl_PointSize,gl_ClipDistance})
|
||||
0:23 Constant:
|
||||
0:23 1 (const int)
|
||||
0:23 Constant:
|
||||
0:23 2 (const int)
|
||||
0:23 Constant:
|
||||
0:23 2 (const int)
|
||||
0:25 Sequence
|
||||
0:25 move second child to first child (int)
|
||||
0:25 'pvi' (int)
|
||||
0:25 'gl_PatchVerticesIn' (in int)
|
||||
0:26 Sequence
|
||||
0:26 move second child to first child (int)
|
||||
0:26 'pid' (int)
|
||||
0:26 'gl_PrimitiveID' (in int)
|
||||
0:27 Sequence
|
||||
0:27 move second child to first child (int)
|
||||
0:27 'iid' (int)
|
||||
0:27 'gl_InvocationID' (in int)
|
||||
0:29 move second child to first child (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_out' (out unsized 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:29 'p' (4-component vector of float)
|
||||
0:30 move second child to first child (float)
|
||||
0:30 gl_PointSize: direct index for structure (float)
|
||||
0:30 direct index (block{gl_Position,gl_PointSize,gl_ClipDistance})
|
||||
0:30 'gl_out' (out unsized 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:30 'ps' (float)
|
||||
0:31 move second child to first child (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_out' (out unsized 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 1 (const int)
|
||||
0:31 'cd' (float)
|
||||
0:33 move second child to first child (float)
|
||||
0:33 direct index (patch float)
|
||||
0:33 'gl_TessLevelOuter' (patch out 4-element array of float)
|
||||
0:33 Constant:
|
||||
0:33 3 (const int)
|
||||
0:33 Constant:
|
||||
0:33 3.200000
|
||||
0:34 move second child to first child (float)
|
||||
0:34 direct index (patch float)
|
||||
0:34 'gl_TessLevelInner' (patch out 2-element array of float)
|
||||
0:34 Constant:
|
||||
0:34 1 (const int)
|
||||
0:34 Constant:
|
||||
0:34 1.300000
|
||||
0:? Linker Objects
|
||||
0:? 'outa' (1-element array of int)
|
||||
0:? 'gl_out' (out unsized array of block{gl_Position,gl_PointSize,gl_ClipDistance})
|
||||
|
||||
|
||||
Linked tessellation control stage:
|
||||
|
||||
|
||||
vertices = 4
|
||||
|
||||
|
||||
@@ -1,19 +1,118 @@
|
||||
400.tese
|
||||
Warning, version 400 is not yet complete; some version-specific features are present, but many are missing.
|
||||
ERROR: 0:5: 'barrier' : no matching overloaded function found
|
||||
ERROR: 1 compilation errors. No code generated.
|
||||
ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value
|
||||
ERROR: 0:5: 'triangles' : cannot change previously set input primitive
|
||||
ERROR: 0:6: 'isolines' : cannot change previously set input primitive
|
||||
ERROR: 0: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.
|
||||
|
||||
|
||||
input primitive = quads
|
||||
vertex spacing = fractional_odd_spacing
|
||||
triangle order = cw
|
||||
using point mode
|
||||
ERROR: node is still EOpNull!
|
||||
0:3 Function Definition: main( (void)
|
||||
0:3 Function Parameters:
|
||||
0:5 Sequence
|
||||
0:5 Constant:
|
||||
0:5 0.000000
|
||||
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:33 Sequence
|
||||
0:33 move second child to first child (int)
|
||||
0:33 'pvi' (int)
|
||||
0:33 'gl_PatchVerticesIn' (in 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: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: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:? Linker Objects
|
||||
|
||||
|
||||
Linked tessellation evaluation stage:
|
||||
|
||||
|
||||
input primitive = quads
|
||||
vertex spacing = fractional_odd_spacing
|
||||
triangle order = cw
|
||||
using point mode
|
||||
|
||||
|
||||
@@ -56,4 +56,8 @@ ERROR: Linking geometry stage: At least one geometry shader must specify an inpu
|
||||
ERROR: Linking geometry stage: At least one geometry shader must specify an output layout primitive
|
||||
ERROR: Linking geometry stage: At least one geometry shader must specify a layout(max_vertices = value)
|
||||
|
||||
invocations = 0
|
||||
max_vertices = 0
|
||||
input primitive = none
|
||||
output primitive = none
|
||||
|
||||
|
||||
@@ -126,4 +126,8 @@ ERROR: Linking geometry stage: Missing entry point: Each stage requires one "voi
|
||||
ERROR: Linking geometry stage: At least one geometry shader must specify an output layout primitive
|
||||
ERROR: Linking geometry stage: At least one geometry shader must specify a layout(max_vertices = value)
|
||||
|
||||
invocations = 0
|
||||
max_vertices = 0
|
||||
input primitive = triangles
|
||||
output primitive = none
|
||||
|
||||
|
||||
@@ -16,6 +16,9 @@ ERROR: 0:58: 'initializer list' : wrong number of structure members
|
||||
ERROR: 13 compilation errors. No code generated.
|
||||
|
||||
|
||||
input primitive = none
|
||||
vertex spacing = none
|
||||
triangle order = none
|
||||
ERROR: node is still EOpNull!
|
||||
0:4 Sequence
|
||||
0:4 move second child to first child (2X2 matrix of float)
|
||||
@@ -160,5 +163,9 @@ ERROR: node is still EOpNull!
|
||||
|
||||
Linked tessellation evaluation stage:
|
||||
|
||||
ERROR: Linking tessellation evaluation stage: At least one tessellation shader must specify an input layout primitive
|
||||
|
||||
input primitive = none
|
||||
vertex spacing = equal_spacing
|
||||
triangle order = ccw
|
||||
|
||||
|
||||
@@ -127,9 +127,9 @@ ERROR: node is still EOpNull!
|
||||
0:? '__anon__2' (layout(column_major shared ) uniform block{aooeu})
|
||||
0:? 'sampb1' (layout(binding=4 ) uniform sampler2D)
|
||||
0:? 'sampb2' (layout(binding=5 ) uniform 10-element array of sampler2D)
|
||||
0:? 'sampb3' (layout(binding=32 ) uniform sampler2D)
|
||||
0:? 'sampb3' (layout(binding=80 ) uniform sampler2D)
|
||||
0:? 'sampb4' (layout(binding=31 ) uniform sampler2D)
|
||||
0:? 'sampb5' (layout(binding=31 ) uniform 2-element array of sampler2D)
|
||||
0:? 'sampb5' (layout(binding=79 ) uniform 2-element array of sampler2D)
|
||||
0:? '__anon__3' (out block{gl_ClipDistance,})
|
||||
0:? 'gl_VertexID' (gl_VertexId int)
|
||||
0:? 'gl_InstanceID' (gl_InstanceId int)
|
||||
|
||||
@@ -302,4 +302,6 @@ ERROR: node is still EOpNull!
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
gl_FragCoord pixel center is integer
|
||||
gl_FragCoord origin is upper left
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ MaxVertexAttribs 64
|
||||
MaxVertexUniformComponents 4096
|
||||
MaxVaryingFloats 64
|
||||
MaxVertexTextureImageUnits 32
|
||||
MaxCombinedTextureImageUnits 32
|
||||
MaxCombinedTextureImageUnits 80
|
||||
MaxTextureImageUnits 32
|
||||
MaxFragmentUniformComponents 4096
|
||||
MaxDrawBuffers 32
|
||||
|
||||
Reference in New Issue
Block a user