spv.atomic.comp
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.


Linked compute stage:


// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 73

                              Capability Shader
                              Capability AtomicStorage
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "main"
                              ExecutionMode 4 LocalSize 1 1 1
                              Source GLSL 450
                              Name 4  "main"
                              Name 10  "func(au1;"
                              Name 9  "c"
                              Name 12  "atoms("
                              Name 20  "counter"
                              Name 23  "val"
                              Name 27  "countArr"
                              Name 35  "origi"
                              Name 37  "atomi"
                              Name 40  "origu"
                              Name 42  "atomu"
                              Name 43  "value"
                              Name 60  "dataSSB"
                              MemberName 60(dataSSB) 0  "f"
                              MemberName 60(dataSSB) 1  "n_frames_rendered"
                              Name 62  "result"
                              Name 70  "arrX"
                              Name 71  "arrY"
                              Name 72  "arrZ"
                              Decorate 20(counter) Offset 0
                              Decorate 20(counter) Binding 0
                              Decorate 27(countArr) Offset 4
                              Decorate 27(countArr) Binding 0
                              MemberDecorate 60(dataSSB) 0 Restrict
                              MemberDecorate 60(dataSSB) 0 Offset 0
                              MemberDecorate 60(dataSSB) 1 Restrict
                              MemberDecorate 60(dataSSB) 1 Offset 16
                              Decorate 60(dataSSB) BufferBlock
                              Decorate 62(result) DescriptorSet 0
                              Decorate 62(result) Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypePointer AtomicCounter 6(int)
               8:             TypeFunction 6(int) 7(ptr)
              14:      6(int) Constant 1
              15:      6(int) Constant 0
              19:      6(int) Constant 1024
     20(counter):      7(ptr) Variable AtomicCounter
              22:             TypePointer Function 6(int)
              24:      6(int) Constant 4
              25:             TypeArray 6(int) 24
              26:             TypePointer AtomicCounter 25
    27(countArr):     26(ptr) Variable AtomicCounter
              28:             TypeInt 32 1
              29:     28(int) Constant 2
              34:             TypePointer Function 28(int)
              36:             TypePointer Workgroup 28(int)
       37(atomi):     36(ptr) Variable Workgroup
              38:     28(int) Constant 3
              41:             TypePointer Workgroup 6(int)
       42(atomu):     41(ptr) Variable Workgroup
       43(value):     41(ptr) Variable Workgroup
              46:      6(int) Constant 7
              51:     28(int) Constant 7
              55:      6(int) Constant 10
              58:             TypeFloat 32
              59:             TypeVector 28(int) 4
     60(dataSSB):             TypeStruct 58(float) 59(ivec4)
              61:             TypePointer Uniform 60(dataSSB)
      62(result):     61(ptr) Variable Uniform
              63:     28(int) Constant 1
              64:      6(int) Constant 2
              65:             TypePointer Uniform 28(int)
              68:             TypeArray 28(int) 14
              69:             TypePointer Private 68
        70(arrX):     69(ptr) Variable Private
        71(arrY):     69(ptr) Variable Private
        72(arrZ):     69(ptr) Variable Private
         4(main):           2 Function None 3
               5:             Label
         23(val):     22(ptr) Variable Function
                              MemoryBarrier 14 19
              21:      6(int) FunctionCall 10(func(au1;) 20(counter)
              30:      7(ptr) AccessChain 27(countArr) 29
              31:      6(int) AtomicLoad 30 14 15
                              Store 23(val) 31
              32:      6(int) AtomicIDecrement 20(counter) 14 15
              33:      6(int) AtomicIIncrement 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):     22(ptr) Variable Function
              39:     28(int) AtomicIAdd 37(atomi) 14 15 38
                              Store 35(origi) 39
              44:      6(int) Load 43(value)
              45:      6(int) AtomicAnd 42(atomu) 14 15 44
                              Store 40(origu) 45
              47:      6(int) AtomicOr 42(atomu) 14 15 46
                              Store 40(origu) 47
              48:      6(int) AtomicXor 42(atomu) 14 15 46
                              Store 40(origu) 48
              49:      6(int) Load 43(value)
              50:      6(int) AtomicUMin 42(atomu) 14 15 49
                              Store 40(origu) 50
              52:     28(int) AtomicSMax 37(atomi) 14 15 51
                              Store 35(origi) 52
              53:     28(int) Load 35(origi)
              54:     28(int) AtomicExchange 37(atomi) 14 15 53
                              Store 35(origi) 54
              56:      6(int) Load 43(value)
              57:      6(int) AtomicCompareExchange 42(atomu) 14 15 15 56 55
                              Store 40(origu) 57
              66:     65(ptr) AccessChain 62(result) 63 64
              67:     28(int) AtomicIAdd 66 14 15 63
                              Return
                              FunctionEnd
