Tests: Increase testing around incorrect use of block names and instances.

This commit is contained in:
John Kessenich 2015-07-20 12:03:04 -06:00
parent 78a5a0d7d8
commit e9022e1ffe
2 changed files with 51 additions and 1 deletions

View File

@ -43,4 +43,16 @@ void main()
{
texture(s.sampler, vec3(inst.ni, bv.y, insts[2].nbv.z));
insts[s.v.x]; // ERROR
fooBlock; // ERROR
mat4(s); // ERROR
int insts;
float barBlock;
mat4(barBlock);
mat4(unreferenced); // ERROR, bad type
++s; // ERROR
inst - 1; // ERROR
++barBlock;
2 * barBlockArray; // ERROR
}
int fooBlock; // ERROR, redef.

View File

@ -3,7 +3,19 @@ ERROR: 0:10: '' : cannot nest a structure definition inside a structure or block
ERROR: 0:21: '' : cannot nest a structure definition inside a structure or block
ERROR: 0:20: 'sampler' : member of block cannot be a sampler type
ERROR: 0:45: 'variable indexing uniform block array' : not supported for this version or the enabled extensions
ERROR: 4 compilation errors. No code generated.
ERROR: 0:46: 'fooBlock' : cannot be used (maybe an instance name is needed)
ERROR: 0:46: 'fooBlock' : undeclared identifier
ERROR: 0:47: 'constructor' : not enough data provided for construction
ERROR: 0:51: 'unreferenced' : cannot be used (maybe an instance name is needed)
ERROR: 0:51: 'unreferenced' : undeclared identifier
ERROR: 0:52: '++' : l-value required "s" (can't modify a uniform)
ERROR: 0:52: '++' : wrong operand type no operation '++' exists that takes an operand of type uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} (or there is no acceptable conversion)
ERROR: 0:53: '-' : wrong operand types: no operation '-' exists that takes a left-hand operand of type 'layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni}' and a right operand of type 'const int' (or there is no acceptable conversion)
ERROR: 0:55: 'barBlockArray' : cannot be used (maybe an instance name is needed)
ERROR: 0:55: 'barBlockArray' : undeclared identifier
ERROR: 0:55: '*' : wrong operand types: no operation '*' exists that takes a left-hand operand of type 'const int' and a right operand of type 'temp float' (or there is no acceptable conversion)
ERROR: 0:58: 'fooBlock' : redefinition
ERROR: 16 compilation errors. No code generated.
Shader version: 300
@ -50,6 +62,19 @@ ERROR: node is still EOpNull!
0:45 1 (const int)
0:45 Constant:
0:45 0 (const int)
0:46 'fooBlock' (temp float)
0:47 Constant:
0:47 0.000000
0:50 Construct mat4 (temp 4X4 matrix of float)
0:50 'barBlock' (temp mediump float)
0:51 Construct mat4 (temp 4X4 matrix of float)
0:51 'unreferenced' (temp float)
0:52 's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
0:53 'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
0:54 Pre-Increment (temp mediump float)
0:54 'barBlock' (temp mediump float)
0:55 Constant:
0:55 2 (const int)
0:? Linker Objects
0:? 's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})
@ -105,6 +130,19 @@ ERROR: node is still EOpNull!
0:45 1 (const int)
0:45 Constant:
0:45 0 (const int)
0:46 'fooBlock' (temp float)
0:47 Constant:
0:47 0.000000
0:50 Construct mat4 (temp 4X4 matrix of float)
0:50 'barBlock' (temp mediump float)
0:51 Construct mat4 (temp 4X4 matrix of float)
0:51 'unreferenced' (temp float)
0:52 's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
0:53 'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
0:54 Pre-Increment (temp mediump float)
0:54 'barBlock' (temp mediump float)
0:55 Constant:
0:55 2 (const int)
0:? Linker Objects
0:? 's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})