atomic_uint.frag
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:10: 'atomic_uint' : samplers and atomic_uints cannot be output parameters 
ERROR: 0:12: 'return' : type does not match, or is not convertible to, the function's return type 
ERROR: 0:18: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: non_uniform_counter
ERROR: 0:18: 'atomic_uint' : layout(binding=X) is required 
ERROR: 0:23: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings 
ERROR: 0:28: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type 'layout(binding=0 offset=0 ) uniform atomic_uint' and a right operand of type 'layout(binding=0 offset=0 ) uniform atomic_uint' (or there is no acceptable conversion)
ERROR: 0:29: '-' :  wrong operand type no operation '-' exists that takes an operand of type layout(binding=0 offset=0 ) uniform atomic_uint (or there is no acceptable conversion)
ERROR: 0:31: '[]' : scalar integer expression required 
ERROR: 0:34: 'assign' :  l-value required "counter" (can't modify a uniform)
ERROR: 0:34: 'assign' :  cannot convert from 'const int' to 'layout(binding=0 offset=0 ) uniform atomic_uint'
ERROR: 0:37: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: acin
ERROR: 0:37: 'atomic_uint' : layout(binding=X) is required 
ERROR: 0:38: 'atomic_uint' : atomic_uints can only be used in uniform variables or function parameters: acg
ERROR: 0:38: 'atomic_uint' : layout(binding=X) is required 
ERROR: 0:40: 'atomic_uint' : layout(binding=X) is required 
ERROR: 0:46: 'atomic_uint' : layout(binding=X) is required 
ERROR: 0:47: 'offset' : atomic counters sharing the same offset: 12
ERROR: 0:48: 'binding' : atomic_uint binding is too large; see gl_MaxAtomicCounterBindings 
ERROR: 18 compilation errors.  No code generated.


Shader version: 420
ERROR: node is still EOpNull!
0:5  Function Definition: func(au1; (global uint)
0:5    Function Parameters: 
0:5      'c' (in atomic_uint)
0:7    Sequence
0:7      Branch: Return with expression
0:7        AtomicCounterIncrement (global uint)
0:7          'c' (in atomic_uint)
0:10  Function Definition: func2(au1; (global uint)
0:10    Function Parameters: 
0:10      'c' (out atomic_uint)
0:12    Sequence
0:12      Branch: Return with expression
0:12        'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:13      Branch: Return with expression
0:13        AtomicCounter (global uint)
0:13          'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:16  Function Definition: main( (global void)
0:16    Function Parameters: 
0:?     Sequence
0:19      Sequence
0:19        move second child to first child (temp uint)
0:19          'val' (temp uint)
0:19          AtomicCounter (global uint)
0:19            'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:20      AtomicCounterDecrement (global uint)
0:20        'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:26  Function Definition: opac( (global void)
0:26    Function Parameters: 
0:28    Sequence
0:28      'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:29      'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:31      indirect index (temp int)
0:31        'a' (temp 3-element array of int)
0:31        'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:32      direct index (layout(binding=1 offset=3 ) temp atomic_uint)
0:32        'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
0:32        Constant:
0:32          2 (const int)
0:33      indirect index (layout(binding=1 offset=3 ) temp atomic_uint)
0:33        'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
0:33        'i' (uniform int)
0:34      'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:?   Linker Objects
0:?     'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:?     'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
0:?     'i' (uniform int)
0:?     'acin' (smooth in atomic_uint)
0:?     'acg' (global atomic_uint)
0:?     'aNoBind' (uniform atomic_uint)
0:?     'aOffset' (layout(binding=0 offset=32 ) uniform atomic_uint)
0:?     'bar3' (layout(binding=0 offset=4 ) uniform atomic_uint)
0:?     'ac' (layout(binding=0 offset=8 ) uniform 3-element array of atomic_uint)
0:?     'ad' (layout(binding=0 offset=20 ) uniform atomic_uint)
0:?     'bar4' (layout(offset=8 ) uniform atomic_uint)
0:?     'overlap' (layout(binding=0 offset=12 ) uniform atomic_uint)
0:?     'bigBind' (layout(binding=20 ) uniform atomic_uint)


Linked fragment stage:


Shader version: 420
ERROR: node is still EOpNull!
0:5  Function Definition: func(au1; (global uint)
0:5    Function Parameters: 
0:5      'c' (in atomic_uint)
0:7    Sequence
0:7      Branch: Return with expression
0:7        AtomicCounterIncrement (global uint)
0:7          'c' (in atomic_uint)
0:10  Function Definition: func2(au1; (global uint)
0:10    Function Parameters: 
0:10      'c' (out atomic_uint)
0:12    Sequence
0:12      Branch: Return with expression
0:12        'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:13      Branch: Return with expression
0:13        AtomicCounter (global uint)
0:13          'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:16  Function Definition: main( (global void)
0:16    Function Parameters: 
0:?     Sequence
0:19      Sequence
0:19        move second child to first child (temp uint)
0:19          'val' (temp uint)
0:19          AtomicCounter (global uint)
0:19            'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:20      AtomicCounterDecrement (global uint)
0:20        'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:26  Function Definition: opac( (global void)
0:26    Function Parameters: 
0:28    Sequence
0:28      'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:29      'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:31      indirect index (temp int)
0:31        'a' (temp 3-element array of int)
0:31        'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:32      direct index (layout(binding=1 offset=3 ) temp atomic_uint)
0:32        'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
0:32        Constant:
0:32          2 (const int)
0:33      indirect index (layout(binding=1 offset=3 ) temp atomic_uint)
0:33        'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
0:33        'i' (uniform int)
0:34      'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:?   Linker Objects
0:?     'counter' (layout(binding=0 offset=0 ) uniform atomic_uint)
0:?     'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint)
0:?     'i' (uniform int)
0:?     'acin' (smooth in atomic_uint)
0:?     'acg' (global atomic_uint)
0:?     'aNoBind' (uniform atomic_uint)
0:?     'aOffset' (layout(binding=0 offset=32 ) uniform atomic_uint)
0:?     'bar3' (layout(binding=0 offset=4 ) uniform atomic_uint)
0:?     'ac' (layout(binding=0 offset=8 ) uniform 3-element array of atomic_uint)
0:?     'ad' (layout(binding=0 offset=20 ) uniform atomic_uint)
0:?     'bar4' (layout(offset=8 ) uniform atomic_uint)
0:?     'overlap' (layout(binding=0 offset=12 ) uniform atomic_uint)
0:?     'bigBind' (layout(binding=20 ) uniform atomic_uint)

