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