430.comp
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
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: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})

