From e9022e1ffec431e8b6f002a79041bf5b6ffaed46 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 20 Jul 2015 12:03:04 -0600 Subject: [PATCH] Tests: Increase testing around incorrect use of block names and instances. --- Test/300block.frag | 12 +++++++++ Test/baseResults/300block.frag.out | 40 +++++++++++++++++++++++++++++- 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/Test/300block.frag b/Test/300block.frag index 9556a7cc0..e665b5e76 100644 --- a/Test/300block.frag +++ b/Test/300block.frag @@ -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. diff --git a/Test/baseResults/300block.frag.out b/Test/baseResults/300block.frag.out index b787964c1..4756e662b 100644 --- a/Test/baseResults/300block.frag.out +++ b/Test/baseResults/300block.frag.out @@ -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})