Semantics: Geometry stage can support max_vertices = 0.

To do this, more generally use a named -1 as a not set value.
This commit is contained in:
John Kessenich
2015-12-11 15:44:12 -07:00
parent 3c24a06c8c
commit 494a02a2b0
18 changed files with 93 additions and 36 deletions

View File

@@ -586,7 +586,7 @@ ERROR: 1 compilation errors. No code generated.
Shader version: 400
vertices = 0
vertices = -1
ERROR: node is still EOpNull!
0:8 Function Definition: main( (global void)
0:8 Function Parameters:
@@ -603,7 +603,8 @@ ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size
ERROR: 0:26: 'gl_PointSize' : no such field in structure
ERROR: 0:26: 'assign' : cannot convert from 'temp float' to 'temp block{out 4-component vector of float Position gl_Position}'
ERROR: 0:29: 'out' : type must be an array: outf
ERROR: 6 compilation errors. No code generated.
ERROR: 0:43: 'vertices' : must be greater than 0
ERROR: 7 compilation errors. No code generated.
Shader version: 420

View File

@@ -13,7 +13,7 @@ ERROR: 7 compilation errors. No code generated.
Shader version: 410
invocations = 0
max_vertices = 0
max_vertices = -1
input primitive = none
output primitive = none
ERROR: node is still EOpNull!
@@ -66,7 +66,7 @@ ERROR: Linking geometry stage: At least one shader must specify a layout(max_ver
Shader version: 410
invocations = 0
max_vertices = 0
max_vertices = -1
input primitive = none
output primitive = none
ERROR: node is still EOpNull!

View File

@@ -5,7 +5,7 @@ ERROR: 1 compilation errors. No code generated.
Shader version: 400
vertices = 0
vertices = -1
ERROR: node is still EOpNull!
0:8 Function Definition: main( (global void)
0:8 Function Parameters:
@@ -20,7 +20,7 @@ Linked tessellation control stage:
ERROR: Linking tessellation control stage: At least one shader must specify an output layout(vertices=...)
Shader version: 400
vertices = 0
vertices = -1
ERROR: node is still EOpNull!
0:8 Function Definition: main( (global void)
0:8 Function Parameters:

View File

@@ -11,7 +11,7 @@ ERROR: 6 compilation errors. No code generated.
Shader version: 420
invocations = 0
max_vertices = 0
max_vertices = -1
input primitive = triangles
output primitive = none
ERROR: node is still EOpNull!
@@ -138,7 +138,7 @@ ERROR: Linking geometry stage: At least one shader must specify a layout(max_ver
Shader version: 420
invocations = 0
max_vertices = 0
max_vertices = -1
input primitive = triangles
output primitive = none
ERROR: node is still EOpNull!

View File

@@ -6,7 +6,8 @@ ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size
ERROR: 0:26: 'gl_PointSize' : no such field in structure
ERROR: 0:26: 'assign' : cannot convert from 'temp float' to 'temp block{out 4-component vector of float Position gl_Position}'
ERROR: 0:29: 'out' : type must be an array: outf
ERROR: 6 compilation errors. No code generated.
ERROR: 0:43: 'vertices' : must be greater than 0
ERROR: 7 compilation errors. No code generated.
Shader version: 420

View File

@@ -6,7 +6,7 @@ ERROR: 1 compilation errors. No code generated.
Shader version: 420
invocations = 0
max_vertices = 0
max_vertices = -1
input primitive = triangles
output primitive = none
ERROR: node is still EOpNull!
@@ -45,7 +45,7 @@ ERROR: Linking geometry stage: At least one shader must specify a layout(max_ver
Shader version: 420
invocations = 0
max_vertices = 0
max_vertices = -1
input primitive = triangles
output primitive = none
ERROR: node is still EOpNull!

View File

@@ -3,7 +3,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
Shader version: 450
invocations = 0
max_vertices = 0
max_vertices = -1
input primitive = none
output primitive = none
0:? Sequence
@@ -41,7 +41,7 @@ ERROR: Linking geometry stage: At least one shader must specify a layout(max_ver
Shader version: 450
invocations = 0
max_vertices = 0
max_vertices = -1
input primitive = none
output primitive = none
0:? Sequence

View File

@@ -2,7 +2,7 @@
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
Shader version: 450
vertices = 0
vertices = -1
0:? Sequence
0:11 Function Definition: main( (global void)
0:11 Function Parameters:
@@ -37,7 +37,7 @@ Linked tessellation control stage:
ERROR: Linking tessellation control stage: At least one shader must specify an output layout(vertices=...)
Shader version: 450
vertices = 0
vertices = -1
0:? Sequence
0:11 Function Definition: main( (global void)
0:11 Function Parameters:

View File

@@ -19,7 +19,7 @@ ERROR: 1 compilation errors. No code generated.
Shader version: 150
invocations = 0
max_vertices = 0
max_vertices = -1
input primitive = none
output primitive = points
ERROR: node is still EOpNull!
@@ -30,7 +30,7 @@ ERROR: node is still EOpNull!
noMain2.geom
Shader version: 150
invocations = 0
max_vertices = 0
max_vertices = -1
input primitive = none
output primitive = line_strip
0:? Sequence
@@ -53,7 +53,7 @@ ERROR: Linking fragment stage: Multiple function bodies in multiple compilation
Shader version: 150
invocations = 0
max_vertices = 0
max_vertices = -1
input primitive = none
output primitive = points
ERROR: node is still EOpNull!

View File

@@ -0,0 +1,35 @@
max_vertices_0.geom
Shader version: 330
invocations = 0
max_vertices = 0
input primitive = points
output primitive = triangle_strip
0:? Sequence
0:8 Function Definition: main( (global void)
0:8 Function Parameters:
0:10 Sequence
0:10 EndPrimitive (global void)
0:11 EndPrimitive (global void)
0:? Linker Objects
0:? 'v_geom_FragColor' (in 1-element array of 4-component vector of float)
0:? 'v_frag_FragColor' (layout(stream=0 ) out 4-component vector of float)
Linked geometry stage:
Shader version: 330
invocations = 0
max_vertices = 0
input primitive = points
output primitive = triangle_strip
0:? Sequence
0:8 Function Definition: main( (global void)
0:8 Function Parameters:
0:10 Sequence
0:10 EndPrimitive (global void)
0:11 EndPrimitive (global void)
0:? Linker Objects
0:? 'v_geom_FragColor' (in 1-element array of 4-component vector of float)
0:? 'v_frag_FragColor' (layout(stream=0 ) out 4-component vector of float)