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

@@ -45,9 +45,72 @@ layout(location = -2) in vec4 v1; // ERROR
layout(location = start + 2) in vec4 v2; // ERROR
layout(location = 4.7e10) in vec4 v20; // ERROR
struct S {
float f1;
layout(location = 3) float f2; // ERROR
};
layout(location = 1) in inblock { // ERROR
float f1;
layout(location = 3) float f2; // ERROR
};
layout(location = 1) uniform ublock { // ERROR
float f1;
layout(location = 3) float f2; // ERROR
} uinst;
#extension GL_ARB_enhanced_layouts : enable
layout(location = start) in vec4 v3;
layout(location = -2) in vec4 v4; // ERROR
layout(location = -start) in vec4 v5; // ERROR
layout(location = start*start - 2) in vec4 v6;
layout(location = start*start - 2 - 4) in vec4 v6;
struct S2 {
float f1;
layout(location = 3) float f2; // ERROR
};
layout(location = 28) in inblock2 {
bool b1;
float f1;
layout(location = 25) float f2;
vec4 f3;
layout(location = 21) S2 s2;
vec4 f4;
vec4 f5;
} ininst2;
layout(location = 13) uniform ublock2 { // ERROR
float f1;
layout(location = 3) float f2; // ERROR
} uinst2;
in inblock3 { // ERROR, mix of location internal with no location external
float f1;
layout(location = 40) float f2;
} in3;
in ublock4 {
layout(location = 50) float f1;
layout(location = 51) float f2;
} in4;
layout(location = 33) in struct SS {
vec3 a; // gets location 33
mat2 b; // gets locations 34 and 35
vec4 c[2]; // gets locations 36 and 37
layout (location = 38) vec2 A; // ERROR, can't use on struct member
} s;
layout(location = 44) in block {
vec4 d; // gets location 44
vec4 e; // gets location 45
layout(location = 47) vec4 f; // gets location 47
vec4 g; // gets location 48
layout (location = 41) vec4 h; // gets location 41
vec4 i; // gets location 42
vec4 j; // gets location 43
vec4 k; // ERROR, location 44 already used
};

22
Test/440.frag Normal file
View File

@@ -0,0 +1,22 @@
#version 440
// Note 'location'-only tests for enhanced layouts are in 330.frag
// Generic 'component' tests are in 440.vert
// a consumes components 2 and 3 of location 4
layout(location = 4, component = 2) in vec2 a;
// b consumes component 1 of location 4
layout(location = 4, component = 1) in float b;
layout(location = 4, component = 2) in vec2 h; // ERROR, component overlap not okay for fragment in
layout(location = 3, component = 2) in vec3 c; // ERROR: c overflows components 2 and 3
// e consumes beginning (components 0, 1 and 2) of each of 6 slots
layout(location = 20, component = 0) in vec3 e[6];
// f consumes last component of the same 6 slots
layout(location = 20, component = 3) in float f[6];
layout(location = 30, component = 3) out int be;
layout(location = 30, component = 0) out vec3 bf; // ERROR, not the same basic type

64
Test/440.vert Normal file
View File

@@ -0,0 +1,64 @@
#version 440
// Note 'location' tests for enhanced layouts are in 330.frag
layout(location = 2, component = 2) in vec2 a;
layout(location = 2, component = 1) in float b;
layout(location = 3, component = 2) in vec3 c; // ERROR: c overflows components 2 and 3
layout(location = 0, component = 3) in float d[4];
layout(location = 4, component = 0) in vec3 e[5];
layout(location = 4, component = 3) in float f[5];
layout(location = 9, component = 4) in float g[6]; // ERROR, component too big
layout(location = 4, component = 2) in vec2 h; // component overlap okay for vertex in
layout(location = 3, component = 2) out vec2 i;
layout(location = 3, component = 0) out vec2 j;
layout(location = 4, component = 2) out vec2 k;
layout(location = 4, component = 2) out vec2 m; // ERROR, component overlap
layout(location = 2, component = 2) out vec2 n;
layout(location = 2, component = 0) out vec3 p; // ERROR, component overlap
layout(location = 10, component = 3) out float q[6];
layout(location = 10, component = 0) out vec3 r[6];
layout(location = 15, component = 3) out float s; // ERROR, overlap
layout(location = 10, component = 1) out float t; // ERROR, overlap
layout(location = 20, component = 2) out float u;
layout(location = 20, component = 0) out float v;
layout(location = 20, component = 3) out float w;
layout(location = 20, component = 1) out vec2 x; // ERROR, overlap
layout(location = 30, component = 3) out vec2 y; // ERROR, goes to component 4
layout(location = 31, component = 1) out vec4 z; // ERROR, goes to component 4
layout(location = 32, component = 1) out mat4 ba; // ERROR
layout(location = 33, component = 1) out struct S {int a;} Ss; // ERROR
layout(location = 34, component = 1) out bn { int a;} bb; // ERROR
layout(component = 1) out float bc; // ERROR, no location
out blockname {
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 vec2 x; // ERROR, overlap
layout(location = 41, component = 3) out vec2 y; // ERROR, goes to component 4
layout(location = 42, component = 1) out vec4 z; // ERROR, goes to component 4
layout(location = 42, component = 1) out mat4 ba; // ERROR
layout(location = 43, component = 1) out S Ss; // ERROR
} bd;
layout(location = 1, component = 1) out; // ERROR, no global setting
layout(location = 50, component = 3) out int be;
layout(location = 50, component = 0) out vec3 bf;

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)

View File

@@ -59,6 +59,8 @@ numeral.frag
410.geom
430.vert
430.comp
440.vert
440.frag
dce.frag
../../LunarGLASS/test/aggOps.frag
../../LunarGLASS/test/always-discard.frag