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 74 Source ESSL 310 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "main" Name 4 "main" Name 10 "func(au1;" Name 9 "c" Name 12 "atoms(" Name 21 "counter" Name 22 "param" Name 25 "val" Name 29 "countArr" Name 38 "origi" Name 40 "atomi" Name 44 "origu" Name 46 "atomu" Name 48 "value" Name 71 "arrX" Name 72 "arrY" Name 73 "arrZ" Decorate 21(counter) Binding 0 Decorate 29(countArr) Binding 0 Decorate 71(arrX) NoStaticUse Decorate 72(arrY) NoStaticUse Decorate 73(arrZ) NoStaticUse 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypePointer Function 6(int) 8: TypeFunction 6(int) 7(ptr) 15: 6(int) Constant 1 16: 6(int) Constant 0 19: 6(int) Constant 256 20: TypePointer UniformConstant 6(int) 21(counter): 20(ptr) Variable UniformConstant 26: 6(int) Constant 4 27: TypeArray 6(int) 26 28: TypePointer UniformConstant 27 29(countArr): 28(ptr) Variable UniformConstant 30: TypeInt 32 1 31: 30(int) Constant 2 37: TypePointer Function 30(int) 39: TypePointer WorkgroupLocal 30(int) 40(atomi): 39(ptr) Variable WorkgroupLocal 42: 30(int) Constant 3 45: TypePointer WorkgroupLocal 6(int) 46(atomu): 45(ptr) Variable WorkgroupLocal 48(value): 20(ptr) Variable UniformConstant 52: 6(int) Constant 7 60: 30(int) Constant 7 66: 6(int) Constant 10 69: TypeArray 30(int) 15 70: TypePointer PrivateGlobal 69 71(arrX): 70(ptr) Variable PrivateGlobal 72(arrY): 70(ptr) Variable PrivateGlobal 73(arrZ): 70(ptr) Variable PrivateGlobal 4(main): 2 Function None 3 5: Label 22(param): 7(ptr) Variable Function 25(val): 7(ptr) Variable Function MemoryBarrier 15 19 23: 6(int) Load 21(counter) Store 22(param) 23 24: 6(int) FunctionCall 10(func(au1;) 22(param) 32: 20(ptr) AccessChain 29(countArr) 31 33: 6(int) Load 32 34: 6(int) AtomicLoad 33 15 16 Store 25(val) 34 35: 6(int) Load 21(counter) 36: 6(int) AtomicIDecrement 35 15 16 Return FunctionEnd 10(func(au1;): 6(int) Function None 8 9(c): 7(ptr) FunctionParameter 11: Label 14: 6(int) Load 9(c) 17: 6(int) AtomicIIncrement 14 15 16 ReturnValue 17 FunctionEnd 12(atoms(): 2 Function None 3 13: Label 38(origi): 37(ptr) Variable Function 44(origu): 7(ptr) Variable Function 41: 30(int) Load 40(atomi) 43: 30(int) AtomicIAdd 41 15 16 42 Store 38(origi) 43 47: 6(int) Load 46(atomu) 49: 6(int) Load 48(value) 50: 6(int) AtomicAnd 47 15 16 49 Store 44(origu) 50 51: 6(int) Load 46(atomu) 53: 6(int) AtomicOr 51 15 16 52 Store 44(origu) 53 54: 6(int) Load 46(atomu) 55: 6(int) AtomicXor 54 15 16 52 Store 44(origu) 55 56: 6(int) Load 46(atomu) 57: 6(int) Load 48(value) 58: 6(int) AtomicSMin 56 15 16 57 Store 44(origu) 58 59: 30(int) Load 40(atomi) 61: 30(int) AtomicSMax 59 15 16 60 Store 38(origi) 61 62: 30(int) Load 40(atomi) 63: 30(int) Load 38(origi) 64: 30(int) AtomicExchange 62 15 16 63 Store 38(origi) 64 65: 6(int) Load 46(atomu) 67: 6(int) Load 48(value) 68: 6(int) AtomicCompareExchange 65 15 16 16 67 66 Store 44(origu) 68 Return FunctionEnd