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 or contain a sampler, image, or atomic_uint type 
ERROR: 0:24: 'fbs' : member of block cannot be or contain a sampler, image, or atomic_uint 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: 17 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      texture (global lowp 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 lowp 3-component vector of float)
0:44          Convert int to float (temp lowp 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 lowp 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 lowp 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      texture (global lowp 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 lowp 3-component vector of float)
0:44          Convert int to float (temp lowp 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 lowp 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 lowp 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})

