300block.frag
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: 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
ERROR: node is still EOpNull!
0:42  Function Definition: main( (global void)
0:42    Function Parameters: 
0:44    Sequence
0:44      Function Call: texture(is31;vf3; (global mediump 4-component vector of int)
0:44        sampler: direct index for structure (global lowp isampler3D)
0:44          '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:44          Constant:
0:44            2 (const int)
0:44        Construct vec3 (temp 3-component vector of float)
0:44          Convert int to float (temp float)
0:44            ni: direct index for structure (layout(column_major shared ) uniform mediump int)
0:44              '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:44              Constant:
0:44                1 (const int)
0:44          Convert uint to float (temp float)
0:44            direct index (temp mediump uint)
0:44              bv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
0:44                '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})
0:44                Constant:
0:44                  0 (const uint)
0:44              Constant:
0:44                1 (const int)
0:44          Convert uint to float (temp float)
0:44            direct index (temp mediump uint)
0:44              nbv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
0:44                direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
0:44                  'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
0:44                  Constant:
0:44                    2 (const int)
0:44                Constant:
0:44                  0 (const int)
0:44              Constant:
0:44                2 (const int)
0:45      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
0:45        'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
0:45        direct index (temp mediump uint)
0:45          v: direct index for structure (global mediump 4-component vector of uint)
0:45            '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:45            Constant:
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})
0:?     '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:?     'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
0:?     'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f, layout(column_major shared ) uniform mediump uint u})


Linked fragment stage:


Shader version: 300
ERROR: node is still EOpNull!
0:42  Function Definition: main( (global void)
0:42    Function Parameters: 
0:44    Sequence
0:44      Function Call: texture(is31;vf3; (global mediump 4-component vector of int)
0:44        sampler: direct index for structure (global lowp isampler3D)
0:44          '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:44          Constant:
0:44            2 (const int)
0:44        Construct vec3 (temp 3-component vector of float)
0:44          Convert int to float (temp float)
0:44            ni: direct index for structure (layout(column_major shared ) uniform mediump int)
0:44              '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:44              Constant:
0:44                1 (const int)
0:44          Convert uint to float (temp float)
0:44            direct index (temp mediump uint)
0:44              bv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
0:44                '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})
0:44                Constant:
0:44                  0 (const uint)
0:44              Constant:
0:44                1 (const int)
0:44          Convert uint to float (temp float)
0:44            direct index (temp mediump uint)
0:44              nbv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
0:44                direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
0:44                  'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
0:44                  Constant:
0:44                    2 (const int)
0:44                Constant:
0:44                  0 (const int)
0:44              Constant:
0:44                2 (const int)
0:45      indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
0:45        'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
0:45        direct index (temp mediump uint)
0:45          v: direct index for structure (global mediump 4-component vector of uint)
0:45            '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:45            Constant:
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})
0:?     '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:?     'insts' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
0:?     'anon@1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump float f, layout(column_major shared ) uniform mediump uint u})

