spv.atomic.comp Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. Linked compute stage: TBD functionality: Is atomic_uint an opaque handle in the uniform storage class, or an addresses in the atomic storage class? // Module Version 99 // Generated by (magic number): 51a00bb // Id's are bound by 75 Source ESSL 310 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 Name 4 "main" Name 11 "func(au1;" Name 10 "c" Name 13 "atoms(" Name 20 "counter" Name 21 "param" Name 24 "val" Name 28 "countArr" Name 38 "origi" Name 40 "atomi" Name 44 "origu" Name 46 "atomu" Name 48 "value" Name 72 "arrX" Name 73 "arrY" Name 74 "arrZ" Decorate 20(counter) PrecisionHigh Decorate 20(counter) Binding 0 Decorate 24(val) PrecisionHigh Decorate 28(countArr) PrecisionHigh Decorate 28(countArr) Binding 0 Decorate 38(origi) PrecisionHigh Decorate 40(atomi) PrecisionHigh Decorate 44(origu) PrecisionHigh Decorate 46(atomu) PrecisionHigh Decorate 48(value) PrecisionHigh Decorate 72(arrX) PrecisionHigh Decorate 72(arrX) NoStaticUse Decorate 73(arrY) PrecisionHigh Decorate 73(arrY) NoStaticUse Decorate 74(arrZ) PrecisionHigh Decorate 74(arrZ) NoStaticUse 2: TypeVoid 3: TypeFunction 2 7: TypeInt 32 0 8: TypePointer Function 7(int) 9: TypeFunction 7(int) 8(ptr) 19: TypePointer UniformConstant 7(int) 20(counter): 19(ptr) Variable UniformConstant 25: 7(int) Constant 4 26: TypeArray 7(int) 25 27: TypePointer UniformConstant 26 28(countArr): 27(ptr) Variable UniformConstant 29: TypeInt 32 1 30: 29(int) Constant 2 37: TypePointer Function 29(int) 39: TypePointer WorkgroupLocal 29(int) 40(atomi): 39(ptr) Variable WorkgroupLocal 42: 29(int) Constant 3 45: TypePointer WorkgroupLocal 7(int) 46(atomu): 45(ptr) Variable WorkgroupLocal 48(value): 19(ptr) Variable UniformConstant 52: 7(int) Constant 7 60: 29(int) Constant 7 66: 7(int) Constant 10 69: 7(int) Constant 1 70: TypeArray 29(int) 69 71: TypePointer PrivateGlobal 70 72(arrX): 71(ptr) Variable PrivateGlobal 73(arrY): 71(ptr) Variable PrivateGlobal 74(arrZ): 71(ptr) Variable PrivateGlobal 4(main): 2 Function None 3 5: Label 21(param): 8(ptr) Variable Function 24(val): 8(ptr) Variable Function MemoryBarrier Device AtomicCounterMemory 22: 7(int) Load 20(counter) Store 21(param) 22 23: 7(int) FunctionCall 11(func(au1;) 21(param) 31: 19(ptr) AccessChain 28(countArr) 30 32: 7(int) Load 31 33: 7(int) AtomicLoad 32 Device None 34: 7(int) Load 31 Store 24(val) 34 35: 7(int) Load 20(counter) 36: 7(int) AtomicIDecrement 35 Device None Branch 6 6: Label Return FunctionEnd 11(func(au1;): 7(int) Function None 9 10(c): 8(ptr) FunctionParameter 12: Label 15: 7(int) Load 10(c) 16: 7(int) AtomicIIncrement 15 Device None 17: 7(int) Load 10(c) ReturnValue 17 FunctionEnd 13(atoms(): 2 Function None 3 14: Label 38(origi): 37(ptr) Variable Function 44(origu): 8(ptr) Variable Function 41: 29(int) Load 40(atomi) 43: 29(int) AtomicIAdd 41 Device None 42 Store 38(origi) 43 47: 7(int) Load 46(atomu) 49: 7(int) Load 48(value) 50: 7(int) AtomicAnd 47 Device None 49 Store 44(origu) 50 51: 7(int) Load 46(atomu) 53: 7(int) AtomicOr 51 Device None 52 Store 44(origu) 53 54: 7(int) Load 46(atomu) 55: 7(int) AtomicXor 54 Device None 52 Store 44(origu) 55 56: 7(int) Load 46(atomu) 57: 7(int) Load 48(value) 58: 7(int) AtomicIMin 56 Device None 57 Store 44(origu) 58 59: 29(int) Load 40(atomi) 61: 29(int) AtomicIMax 59 Device None 60 Store 38(origi) 61 62: 29(int) Load 40(atomi) 63: 29(int) Load 38(origi) 64: 29(int) AtomicExchange 62 Device None 63 Store 38(origi) 64 65: 7(int) Load 46(atomu) 67: 7(int) Load 48(value) 68: 7(int) AtomicCompareExchange 65 Device None 66 67 Store 44(origu) 68 Return FunctionEnd