GL_ARB_enhanced_layouts, part 2: Full implementation of location/component, plus the parsing for xfb* and align/offset (but not yet full semantics for align/offset).

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24692 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich
2014-01-08 23:25:18 +00:00
parent b76d6d6496
commit 68546c6ca4
22 changed files with 617 additions and 115 deletions

View File

@@ -9,6 +9,7 @@ ERROR: 0:44: 'stream' : can only be used on an output
ERROR: 0:45: 'stream' : can only be used on an output
ERROR: 0:46: 'stream' : can only be used on an output
ERROR: 0:47: 'stream' : can only be used on an output
ERROR: 0:47: 'stream' : can only be used on an output
ERROR: 0:60: 'stream' : member cannot contradict block
ERROR: 0:65: 'max_vertices' : can only apply to a standalone qualifier
ERROR: 0:70: 'points' : cannot change previously set output primitive
@@ -29,7 +30,8 @@ ERROR: 0:86: 'triangles_adjacency' : cannot change previously set input primitiv
ERROR: 0:87: 'invocations' : not supported for this version or the enabled extensions
ERROR: 0:88: 'max_vertices' : too large, must be less than gl_MaxGeometryOutputVertices
ERROR: 0:91: 'stream' : member cannot contradict block
ERROR: 29 compilation errors. No code generated.
ERROR: 0:91: 'stream' : can only be used on an output
ERROR: 31 compilation errors. No code generated.
invocations = 4

View File

@@ -221,8 +221,8 @@ ERROR: 0:40: 'vertices' : cannot change previously set layout value
ERROR: 0:44: '[' : array index out of range '4'
ERROR: 0:47: 'in' : type must be an array: ina
ERROR: 0:49: '[]' : tessellation input array size must be gl_MaxPatchVertices or unsized
ERROR: 0:56: 'location' : repeated use of location 4
ERROR: 0:60: 'location' : repeated use of location 4
ERROR: 0:56: 'location' : overlapping use of location 4
ERROR: 0:60: 'location' : overlapping use of location 4
ERROR: 11 compilation errors. No code generated.
@@ -381,8 +381,8 @@ ERROR: 0:73: 'in' : type must be an array: ina
ERROR: 0:75: '[]' : tessellation input array size must be gl_MaxPatchVertices or unsized
ERROR: 0:78: 'in' : type must be an array: bla
ERROR: 0:86: '[]' : tessellation input array size must be gl_MaxPatchVertices or unsized
ERROR: 0:96: 'location' : repeated use of location 24
ERROR: 0:99: 'location' : repeated use of location 24
ERROR: 0:96: 'location' : overlapping use of location 24
ERROR: 0:99: 'location' : overlapping use of location 24
ERROR: 29 compilation errors. No code generated.

View File

@@ -1,7 +1,7 @@
300layout.frag
ERROR: 0:4: 'location qualifier on input' : not supported in this stage: fragment
ERROR: 0:18: 'location' : repeated use of location 41
ERROR: 0:19: 'location' : repeated use of location 40
ERROR: 0:18: 'location' : overlapping use of location 41
ERROR: 0:19: 'location' : overlapping use of location 40
ERROR: 3 compilation errors. No code generated.

View File

@@ -2,9 +2,9 @@
ERROR: 0:7: 'vertex input arrays' : not supported with this profile: es
ERROR: 0:8: 'in' : cannot be a structure or array
ERROR: 0:8: 'vertex input arrays' : not supported with this profile: es
ERROR: 0:8: 'location' : repeated use of location 10
ERROR: 0:12: 'badm4' : cannot specify matrix layout on a variable declaration
ERROR: 0:12: 'badm4' : cannot specify packing on a variable declaration
ERROR: 0:8: 'location' : overlapping use of location 10
ERROR: 0:12: 'layout' : cannot specify matrix layout on a variable declaration
ERROR: 0:12: 'layout' : cannot specify packing on a variable declaration
ERROR: 0:19: 'badf' : member of uniform block cannot have an auxiliary or interpolation qualifier
ERROR: 0:20: 'badg' : member storage qualifier cannot contradict block storage qualifier
ERROR: 0:21: 'bad1' : member of block cannot have a packing layout qualifier
@@ -15,8 +15,8 @@ ERROR: 0:38: 'output block' : not supported with this profile: es
ERROR: 0:42: 'location qualifier on output' : not supported in this stage: vertex
ERROR: 0:50: 'shared' : not supported with this profile: es
ERROR: 0:50: 'shared' : not supported in this stage: vertex
ERROR: 0:54: 'aoeuntaoeu' : layout qualifiers for matrix layout and packing only apply to uniform or buffer blocks
ERROR: 0:57: 'location' : repeated use of location 40
ERROR: 0:54: 'layout' : qualifiers for matrix layout and block packing only apply to uniform or buffer blocks
ERROR: 0:57: 'location' : overlapping use of location 40
ERROR: 18 compilation errors. No code generated.

View File

@@ -10,9 +10,22 @@ ERROR: 0:44: 'layout-id value' : cannot be negative
ERROR: 0:45: 'non-literal layout-id value' : not supported for this version or the enabled extensions
ERROR: 0:46: 'layout-id value' : scalar integer expression required
ERROR: 0:46: 'location' : location is too large
ERROR: 0:51: 'layout-id value' : cannot be negative
ERROR: 0:52: 'layout-id value' : cannot be negative
ERROR: 12 compilation errors. No code generated.
ERROR: 0:50: 'f2' : cannot use layout qualifiers on structure members
ERROR: 0:55: 'location on block member' : not supported for this version or the enabled extensions
ERROR: 0:60: 'location on block member' : can only use in an in/out block
ERROR: 0:60: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions
ERROR: 0:58: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions
ERROR: 0:66: 'layout-id value' : cannot be negative
ERROR: 0:67: 'layout-id value' : cannot be negative
ERROR: 0:72: 'f2' : cannot use layout qualifiers on structure members
ERROR: 0:87: 'location on block member' : can only use in an in/out block
ERROR: 0:87: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions
ERROR: 0:87: 'location' : overlapping use of location 3
ERROR: 0:85: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions
ERROR: 0:90: 'location' : either the block needs a location, or all members need a location, or no members have a location
ERROR: 0:104: 'A' : cannot use layout qualifiers on structure members
ERROR: 0:115: 'location' : overlapping use of location 44
ERROR: 25 compilation errors. No code generated.
ERROR: node is still EOpNull!
@@ -57,10 +70,18 @@ ERROR: node is still EOpNull!
0:? 'v1' (smooth in 4-component vector of float)
0:? 'v2' (layout(location=8 ) smooth in 4-component vector of float)
0:? 'v20' (smooth in 4-component vector of float)
0:? '__anon__1' (in block{layout(location=1 component=0 ) in float f1, layout(location=3 ) in float f2})
0:? 'uinst' (layout(location=1 column_major shared ) uniform block{layout(column_major shared ) uniform float f1, layout(location=3 column_major shared ) uniform float f2})
0:? 'v3' (layout(location=6 ) smooth in 4-component vector of float)
0:? 'v4' (smooth in 4-component vector of float)
0:? 'v5' (smooth in 4-component vector of float)
0:? 'v6' (layout(location=34 ) smooth in 4-component vector of float)
0:? 'v6' (layout(location=30 ) smooth in 4-component vector of float)
0:? 'ininst2' (in block{layout(location=28 component=0 ) in bool b1, layout(location=29 component=0 ) in float f1, layout(location=25 ) in float f2, layout(location=26 component=0 ) in 4-component vector of float f3, layout(location=21 ) in structure{float f1, float f2} s2, layout(location=23 component=0 ) in 4-component vector of float f4, layout(location=24 component=0 ) in 4-component vector of float f5})
0:? 'uinst2' (layout(location=13 column_major shared ) uniform block{layout(column_major shared ) uniform float f1, layout(location=3 column_major shared ) uniform float f2})
0:? 'in3' (in block{in float f1, layout(location=40 ) in float f2})
0:? 'in4' (in block{layout(location=50 ) in float f1, layout(location=51 ) in float f2})
0:? 's' (layout(location=33 ) smooth in structure{3-component vector of float a, 2X2 matrix of float b, 2-element array of 4-component vector of float c, 2-component vector of float A})
0:? '__anon__2' (in block{layout(location=44 component=0 ) in 4-component vector of float d, layout(location=45 component=0 ) in 4-component vector of float e, layout(location=47 ) in 4-component vector of float f, layout(location=48 component=0 ) in 4-component vector of float g, layout(location=41 ) in 4-component vector of float h, layout(location=42 component=0 ) in 4-component vector of float i, layout(location=43 component=0 ) in 4-component vector of float j, layout(location=44 component=0 ) in 4-component vector of float k})
Linked fragment stage:

View File

@@ -8,7 +8,7 @@ ERROR: 0:25: 'length' : array must first be sized by a redeclaration or layout
ERROR: 0:36: 'length' : array must first be sized by a redeclaration or layout qualifier
ERROR: 0:40: 'triangles' : inconsistent input primitive for array size of colorBad
ERROR: 0:44: 'triangles' : inconsistent input primitive for array size of colorbad2
ERROR: 0:56: 'location' : repeated use of location 4
ERROR: 0:56: 'location' : overlapping use of location 4
ERROR: 0:58: 'patch' : not supported in this stage: geometry
ERROR: 0:59: 'patch' : not supported in this stage: geometry
ERROR: 0:61: 'in' : type must be an array: scalar

View File

@@ -1,6 +1,6 @@
430.vert
Warning, version 430 is not yet complete; some version-specific features are present, but many are missing.
ERROR: 0:3: 'v4' : location qualifiers only appy to uniform, buffer, in, or out storage qualifiers
ERROR: 0:3: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers
ERROR: 0:7: 'location qualifier on in/out block' : not supported for this version or the enabled extensions
ERROR: 0:8: 'location qualifier on in/out block' : not supported for this version or the enabled extensions
ERROR: 0:21: 'g' : cannot use storage or interpolation qualifiers on structure members
@@ -11,7 +11,7 @@ ERROR: 0:25: 'm3' : cannot use layout qualifiers on structure members
ERROR: 0:28: '' : cannot use invariant qualifier on a function parameter
ERROR: 0:30: '' : cannot use layout qualifiers on a function parameter
ERROR: 0:31: '' : cannot use auxiliary or interpolation qualifiers on a function parameter
ERROR: 0:42: 'location' : repeated use of location 53
ERROR: 0:42: 'location' : overlapping use of location 53
ERROR: 0:47: 'gl_ClipDistance array size' : must be less than gl_MaxClipDistances (8)
ERROR: 13 compilation errors. No code generated.

View File

@@ -0,0 +1,25 @@
440.frag
Warning, version 440 is not yet complete; some version-specific features are present, but many are missing.
ERROR: 0:11: 'location' : overlapping use of location 4
ERROR: 0:13: 'component' : type overflows the available 4 components
ERROR: 0:22: 'location' : fragment outputs sharing the same location must be the same basic type 30
ERROR: 3 compilation errors. No code generated.
ERROR: node is still EOpNull!
0:? Linker Objects
0:? 'a' (layout(location=4 component=2 ) smooth in 2-component vector of float)
0:? 'b' (layout(location=4 component=1 ) smooth in float)
0:? 'h' (layout(location=4 component=2 ) smooth in 2-component vector of float)
0:? 'c' (layout(location=3 component=2 ) smooth in 3-component vector of float)
0:? 'e' (layout(location=20 component=0 ) smooth in 6-element array of 3-component vector of float)
0:? 'f' (layout(location=20 component=3 ) smooth in 6-element array of float)
0:? 'be' (layout(location=30 component=3 ) out int)
0:? 'bf' (layout(location=30 component=0 ) out 3-component vector of float)
Linked fragment stage:
ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point

View File

@@ -0,0 +1,66 @@
440.vert
Warning, version 440 is not yet complete; some version-specific features are present, but many are missing.
ERROR: 0:8: 'component' : type overflows the available 4 components
ERROR: 0:15: 'component' : component is too large
ERROR: 0:23: 'location' : overlapping use of location 4
ERROR: 0:26: 'location' : overlapping use of location 2
ERROR: 0:31: 'location' : overlapping use of location 15
ERROR: 0:32: 'location' : overlapping use of location 10
ERROR: 0:37: 'location' : overlapping use of location 20
ERROR: 0:39: 'component' : type overflows the available 4 components
ERROR: 0:40: 'component' : type overflows the available 4 components
ERROR: 0:42: 'component' : cannot apply to a matrix, structure, or block
ERROR: 0:43: 'component' : cannot apply to a matrix, structure, or block
ERROR: 0:44: 'component' : cannot apply to a matrix, structure, or block
ERROR: 0:46: 'component' : must specify 'location' to use 'component'
ERROR: 0:52: 'location' : overlapping use of location 40
ERROR: 0:54: 'component' : type overflows the available 4 components
ERROR: 0:55: 'component' : type overflows the available 4 components
ERROR: 0:57: 'component' : cannot apply to a matrix, structure, or block
ERROR: 0:58: 'component' : cannot apply to a matrix, structure, or block
ERROR: 0:61: 'location' : cannot declare a default, use a full declaration
ERROR: 19 compilation errors. No code generated.
ERROR: node is still EOpNull!
0:? Linker Objects
0:? 'a' (layout(location=2 component=2 ) in 2-component vector of float)
0:? 'b' (layout(location=2 component=1 ) in float)
0:? 'c' (layout(location=3 component=2 ) in 3-component vector of float)
0:? 'd' (layout(location=0 component=3 ) in 4-element array of float)
0:? 'e' (layout(location=4 component=0 ) in 5-element array of 3-component vector of float)
0:? 'f' (layout(location=4 component=3 ) in 5-element array of float)
0:? 'g' (layout(location=9 ) in 6-element array of float)
0:? 'h' (layout(location=4 component=2 ) in 2-component vector of float)
0:? 'i' (layout(location=3 component=2 ) smooth out 2-component vector of float)
0:? 'j' (layout(location=3 component=0 ) smooth out 2-component vector of float)
0:? 'k' (layout(location=4 component=2 ) smooth out 2-component vector of float)
0:? 'm' (layout(location=4 component=2 ) smooth out 2-component vector of float)
0:? 'n' (layout(location=2 component=2 ) smooth out 2-component vector of float)
0:? 'p' (layout(location=2 component=0 ) smooth out 3-component vector of float)
0:? 'q' (layout(location=10 component=3 ) smooth out 6-element array of float)
0:? 'r' (layout(location=10 component=0 ) smooth out 6-element array of 3-component vector of float)
0:? 's' (layout(location=15 component=3 ) smooth out float)
0:? 't' (layout(location=10 component=1 ) smooth out float)
0:? 'u' (layout(location=20 component=2 ) smooth out float)
0:? 'v' (layout(location=20 component=0 ) smooth out float)
0:? 'w' (layout(location=20 component=3 ) smooth out float)
0:? 'x' (layout(location=20 component=1 ) smooth out 2-component vector of float)
0:? 'y' (layout(location=30 component=3 ) smooth out 2-component vector of float)
0:? 'z' (layout(location=31 component=1 ) smooth out 4-component vector of float)
0:? 'ba' (layout(location=32 component=1 ) smooth out 4X4 matrix of float)
0:? 'Ss' (layout(location=33 component=1 ) smooth out structure{int a})
0:? 'bb' (layout(location=34 component=1 ) out block{out int a})
0:? 'bc' (layout(location=63 component=1 ) smooth out float)
0:? 'bd' (out block{layout(location=40 component=2 ) out float u, layout(location=40 component=0 ) out float v, layout(location=40 component=3 ) out float w, layout(location=40 component=1 ) out 2-component vector of float x, layout(location=41 component=3 ) out 2-component vector of float y, layout(location=42 component=1 ) out 4-component vector of float z, layout(location=42 component=1 ) out 4X4 matrix of float ba, layout(location=43 component=1 ) out structure{int a} Ss})
0:? 'be' (layout(location=50 component=3 ) smooth out int)
0:? 'bf' (layout(location=50 component=0 ) smooth out 3-component vector of float)
0:? 'gl_VertexID' (gl_VertexId int)
0:? 'gl_InstanceID' (gl_InstanceId int)
Linked vertex stage:
ERROR: Linking vertex stage: Missing entry point: Each stage requires one "void main()" entry point

View File

@@ -16,7 +16,7 @@ ERROR: 0:99: 'local_size_y' : there is no such layout identifier for this stage
ERROR: 0:100: 'local_size_x' : there is no such layout identifier for this stage taking an assigned value
ERROR: 0:102: 'color' : redefinition
ERROR: 0:103: 'index' : there is no such layout identifier for this stage taking an assigned value
ERROR: 0:104: 'location' : repeated use of location 3
ERROR: 0:104: 'location' : overlapping use of location 3
ERROR: 0:106: 'depth_greater' : unrecognized layout identifier, or qualifier requires assignemnt (e.g., binding = 4)
ERROR: 0:112: 'depth_any' : unrecognized layout identifier, or qualifier requires assignemnt (e.g., binding = 4)
ERROR: 0:115: 'depth_greater' : unrecognized layout identifier, or qualifier requires assignemnt (e.g., binding = 4)

View File

@@ -1,7 +1,7 @@
specExamples.vert
Warning, version 430 is not yet complete; some version-specific features are present, but many are missing.
ERROR: 0:23: 'transforms' : redeclaration of array with size
ERROR: 0:29: 's' : location qualifiers only appy to uniform, buffer, in, or out storage qualifiers
ERROR: 0:29: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers
ERROR: 0:31: 'triangles' : unrecognized layout identifier, or qualifier requires assignemnt (e.g., binding = 4)
ERROR: 0:31: 'invocations' : there is no such layout identifier for this stage taking an assigned value
ERROR: 0:33: 'lines' : unrecognized layout identifier, or qualifier requires assignemnt (e.g., binding = 4)
@@ -17,15 +17,15 @@ ERROR: 0:47: 'stream' : there is no such layout identifier for this stage taking
ERROR: 0:50: 'stream' : there is no such layout identifier for this stage taking an assigned value
ERROR: 0:55: 'stream' : there is no such layout identifier for this stage taking an assigned value
ERROR: 0:80: 's17' : redefinition
ERROR: 0:85: 'offset' : there is no such layout identifier for this stage taking an assigned value
ERROR: 0:85: 'uniform buffer-member offset' : not supported for this version or the enabled extensions
ERROR: 0:85: 'binding' : requires block, or sampler/image, or atomic-counter type
ERROR: 0:87: 'binding' : requires block, or sampler/image, or atomic-counter type
ERROR: 0:89: 'offset' : there is no such layout identifier for this stage taking an assigned value
ERROR: 0:89: 'uniform buffer-member offset' : not supported for this version or the enabled extensions
WARNING: 0:89: 'layout' : useless application of layout qualifier
ERROR: 0:91: 'bar' : redefinition
ERROR: 0:92: 'offset' : there is no such layout identifier for this stage taking an assigned value
ERROR: 0:92: 'uniform buffer-member offset' : not supported for this version or the enabled extensions
ERROR: 0:92: 'bar' : redefinition
ERROR: 0:94: 'offset' : there is no such layout identifier for this stage taking an assigned value
ERROR: 0:94: 'uniform buffer-member offset' : not supported for this version or the enabled extensions
ERROR: 0:94: 'a2' : redefinition
ERROR: 0:95: 'binding' : requires block, or sampler/image, or atomic-counter type
ERROR: 0:96: 'binding' : requires block, or sampler/image, or atomic-counter type
@@ -291,7 +291,7 @@ ERROR: node is still EOpNull!
0:? '__anon__3' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4X4 matrix of float M1, layout(column_major std140 ) uniform 4X4 matrix of float M2, layout(row_major std140 ) uniform 3X3 matrix of float N1})
0:? '__anon__4' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform 4X4 matrix of float M13, layout(row_major shared ) uniform 4X4 matrix of float m14, layout(column_major shared ) uniform 3X3 matrix of float N12})
0:? 's17' (layout(binding=3 ) uniform sampler2D)
0:? 'a2' (layout(binding=2 ) uniform int)
0:? 'a2' (layout(binding=2 offset=4 ) uniform int)
0:? 'bar' (layout(binding=2 ) uniform int)
0:? 'b2' (layout(binding=2 ) uniform int)
0:? 'c2' (layout(binding=3 ) uniform int)