430.comp
ERROR: 0:4: 'local_size' : cannot change previously set size 
ERROR: 0:5: 'local_size' : too large; see gl_MaxComputeWorkGroupSize 
ERROR: 0:43: 'in' : global storage input qualifier cannot be used in a compute shader 
ERROR: 0:43: 'location qualifier on input' : not supported in this stage: compute
ERROR: 0:44: 'in' : global storage input qualifier cannot be used in a compute shader 
ERROR: 0:45: 'out' : global storage output qualifier cannot be used in a compute shader 
ERROR: 0:48: 'shared' : cannot apply layout qualifiers to a shared variable 
ERROR: 0:48: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers 
ERROR: 0:49: 'shared' :  cannot initialize this type of qualifier  
ERROR: 0:51: 'local_size' : can only apply to 'in' 
ERROR: 0:51: 'local_size' : can only apply to 'in' 
ERROR: 0:51: 'local_size' : can only apply to 'in' 
ERROR: 0:65: 'assign' :  l-value required "ro" (can't modify a readonly buffer)
ERROR: 0:77: '=' :  cannot convert from ' temp double' to ' temp int'
ERROR: 0:81: 'input block' : not supported in this stage: compute
ERROR: 0:85: 'output block' : not supported in this stage: compute
ERROR: 16 compilation errors.  No code generated.


Shader version: 430
local_size = (2, 1, 4096)
ERROR: node is still EOpNull!
0:27  Function Definition: main( ( global void)
0:27    Function Parameters: 
0:29    Sequence
0:29      Barrier ( global void)
0:30      MemoryBarrier ( global void)
0:31      MemoryBarrierAtomicCounter ( global void)
0:32      MemoryBarrierBuffer ( global void)
0:33      MemoryBarrierShared ( global void)
0:34      MemoryBarrierImage ( global void)
0:35      GroupMemoryBarrier ( global void)
0:36      move second child to first child ( temp int)
0:36        value: direct index for structure (layout( column_major shared) buffer int)
0:36          'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer implicitly-sized array of float values})
0:36          Constant:
0:36            0 (const uint)
0:36        Convert float to int ( temp int)
0:36          indirect index (layout( column_major shared) temp float)
0:36            values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of float)
0:36              'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer implicitly-sized array of float values})
0:36              Constant:
0:36                1 (const uint)
0:36            'gl_LocalInvocationIndex' ( in uint LocalInvocationIndex)
0:39      Test condition and select ( temp void)
0:39        Condition
0:39        Compare Greater Than ( temp bool)
0:39          'a' ( temp int)
0:39          Constant:
0:39            10 (const int)
0:39        true case
0:40        Barrier ( global void)
0:63  Function Definition: foo( ( global void)
0:63    Function Parameters: 
0:65    Sequence
0:65      move second child to first child ( temp float)
0:65        direct index (layout( column_major shared) temp float)
0:65          values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of float)
0:65            'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer implicitly-sized array of float values})
0:65            Constant:
0:65              1 (const int)
0:65          Constant:
0:65            2 (const int)
0:65        Constant:
0:65          4.700000
0:66      array length ( temp int)
0:66        values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of float)
0:66          'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer implicitly-sized array of float values})
0:66          Constant:
0:66            1 (const int)
0:67      Barrier ( global void)
0:72  Function Definition: fooaoeu( ( global void)
0:72    Function Parameters: 
0:73    Sequence
0:73      Sequence
0:73        move second child to first child ( temp 2-component vector of int)
0:73          'storePos' ( temp 2-component vector of int)
0:73          Convert uint to int ( temp 2-component vector of int)
0:73            vector swizzle ( temp 2-component vector of uint)
0:73              'gl_GlobalInvocationID' ( in 3-component vector of uint GlobalInvocationID)
0:73              Sequence
0:73                Constant:
0:73                  0 (const int)
0:73                Constant:
0:73                  1 (const int)
0:74      Sequence
0:74        move second child to first child ( temp double)
0:74          'localCoef' ( temp double)
0:74          Convert float to double ( temp double)
0:74            length ( global float)
0:74              divide ( temp 2-component vector of float)
0:74                Convert int to float ( temp 2-component vector of float)
0:74                  subtract ( temp 2-component vector of int)
0:74                    Convert uint to int ( temp 2-component vector of int)
0:74                      vector swizzle ( temp 2-component vector of uint)
0:74                        'gl_LocalInvocationID' ( in 3-component vector of uint LocalInvocationID)
0:74                        Sequence
0:74                          Constant:
0:74                            0 (const int)
0:74                          Constant:
0:74                            1 (const int)
0:74                    Constant:
0:74                      8 (const int)
0:74                Constant:
0:74                  8.000000
0:75      Sequence
0:75        move second child to first child ( temp 4-component vector of double)
0:75          'aa' ( temp 4-component vector of double)
0:75          Constant:
0:75            0.400000
0:75            0.200000
0:75            0.300000
0:75            0.400000
0:76      Sequence
0:76        move second child to first child ( temp double)
0:76          'globalCoef' ( temp double)
0:76          Constant:
0:76            1.000000
0:78      Sequence
0:78        move second child to first child ( temp double)
0:78          'di' ( temp double)
0:78          Convert int to double ( temp double)
0:78            'i' ( temp int)
0:?   Linker Objects
0:?     'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
0:?       2 (const uint)
0:?       1 (const uint)
0:?       4096 (const uint)
0:?     'total' ( const int)
0:?       66592 (const int)
0:?     'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer implicitly-sized array of float values})
0:?     'invalid' (layout( column_major shared) buffer block{layout( column_major shared) buffer implicitly-sized array of float values, layout( column_major shared) buffer int value})
0:?     'v3' (layout( location=2) in 3-component vector of float)
0:?     'f' ( in float)
0:?     'fo' ( out float)
0:?     's' ( shared 4-component vector of float)
0:?     'sl' (layout( location=2) shared 4-component vector of float)
0:?     'fs' ( shared float)
0:?     'arrX' ( global 2-element array of int)
0:?     'arrY' ( global 1-element array of int)
0:?     'arrZ' ( global 4096-element array of int)
0:?     'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer implicitly-sized array of float values})
0:?     'roll' ( uniform double)
0:?     'destTex' ( writeonly uniform image2D)
0:?     'inbi' ( in block{ in int a})
0:?     'outbi' ( out block{ out int a})


Linked compute stage:


Shader version: 430
local_size = (2, 1, 4096)
ERROR: node is still EOpNull!
0:27  Function Definition: main( ( global void)
0:27    Function Parameters: 
0:29    Sequence
0:29      Barrier ( global void)
0:30      MemoryBarrier ( global void)
0:31      MemoryBarrierAtomicCounter ( global void)
0:32      MemoryBarrierBuffer ( global void)
0:33      MemoryBarrierShared ( global void)
0:34      MemoryBarrierImage ( global void)
0:35      GroupMemoryBarrier ( global void)
0:36      move second child to first child ( temp int)
0:36        value: direct index for structure (layout( column_major shared) buffer int)
0:36          'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer implicitly-sized array of float values})
0:36          Constant:
0:36            0 (const uint)
0:36        Convert float to int ( temp int)
0:36          indirect index (layout( column_major shared) temp float)
0:36            values: direct index for structure (layout( column_major shared) buffer implicitly-sized array of float)
0:36              'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer implicitly-sized array of float values})
0:36              Constant:
0:36                1 (const uint)
0:36            'gl_LocalInvocationIndex' ( in uint LocalInvocationIndex)
0:39      Test condition and select ( temp void)
0:39        Condition
0:39        Compare Greater Than ( temp bool)
0:39          'a' ( temp int)
0:39          Constant:
0:39            10 (const int)
0:39        true case
0:40        Barrier ( global void)
0:?   Linker Objects
0:?     'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
0:?       2 (const uint)
0:?       1 (const uint)
0:?       4096 (const uint)
0:?     'total' ( const int)
0:?       66592 (const int)
0:?     'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer implicitly-sized array of float values})
0:?     'invalid' (layout( column_major shared) buffer block{layout( column_major shared) buffer implicitly-sized array of float values, layout( column_major shared) buffer int value})
0:?     'v3' (layout( location=2) in 3-component vector of float)
0:?     'f' ( in float)
0:?     'fo' ( out float)
0:?     's' ( shared 4-component vector of float)
0:?     'sl' (layout( location=2) shared 4-component vector of float)
0:?     'fs' ( shared float)
0:?     'arrX' ( global 2-element array of int)
0:?     'arrY' ( global 1-element array of int)
0:?     'arrZ' ( global 4096-element array of int)
0:?     'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) buffer int value, layout( column_major shared) buffer implicitly-sized array of float values})
0:?     'roll' ( uniform double)
0:?     'destTex' ( writeonly uniform image2D)
0:?     'inbi' ( in block{ in int a})
0:?     'outbi' ( out block{ out int a})

