hlsl.structbuffer.incdec.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:7  Function Definition: @main(u1; ( temp 4-component vector of float)
0:7    Function Parameters: 
0:7      'pos' ( in uint)
0:?     Sequence
0:8      Sequence
0:8        move second child to first child ( temp 4-component vector of uint)
0:8          'result' ( temp 4-component vector of uint)
0:8          Constant:
0:8            0 (const uint)
0:8            0 (const uint)
0:8            0 (const uint)
0:8            0 (const uint)
0:10      direct index (layout( row_major std430) buffer 4-component vector of uint)
0:10        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
0:10          'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:10          Constant:
0:10            0 (const uint)
0:10        Constant:
0:10          7 (const int)
0:11      direct index (layout( row_major std430) buffer 4-component vector of uint)
0:11        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
0:11          'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:11          Constant:
0:11            0 (const uint)
0:11        Constant:
0:11          7 (const int)
0:13      move second child to first child ( temp 4-component vector of uint)
0:13        direct index (layout( row_major std430) buffer 4-component vector of uint)
0:13          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
0:13            'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:13            Constant:
0:13              0 (const uint)
0:13          Constant:
0:13            5 (const int)
0:13        Constant:
0:13          2 (const uint)
0:13          2 (const uint)
0:13          2 (const uint)
0:13          2 (const uint)
0:15      Sequence
0:15        move second child to first child ( temp uint)
0:15          'c1' ( temp uint)
0:15          AtomicAdd ( temp uint)
0:15            @count: direct index for structure ( temp uint)
0:15              'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
0:15              Constant:
0:15                0 (const int)
0:15            Constant:
0:15              1 (const uint)
0:16      Sequence
0:16        move second child to first child ( temp uint)
0:16          'c2' ( temp uint)
0:16          add ( temp uint)
0:16            AtomicAdd ( temp uint)
0:16              @count: direct index for structure ( temp uint)
0:16                'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
0:16                Constant:
0:16                  0 (const int)
0:16              Constant:
0:16                4294967295 (const uint)
0:16            Constant:
0:16              -1 (const int)
0:18      Branch: Return with expression
0:?         Construct vec4 ( temp 4-component vector of float)
0:18          Convert uint to float ( temp float)
0:18            direct index ( temp uint)
0:18              'result' ( temp 4-component vector of uint)
0:18              Constant:
0:18                0 (const int)
0:18          Convert uint to float ( temp float)
0:18            direct index ( temp uint)
0:18              'result' ( temp 4-component vector of uint)
0:18              Constant:
0:18                1 (const int)
0:18          Convert uint to float ( temp float)
0:18            'c1' ( temp uint)
0:18          Convert uint to float ( temp float)
0:18            'c2' ( temp uint)
0:7  Function Definition: main( ( temp void)
0:7    Function Parameters: 
0:?     Sequence
0:7      move second child to first child ( temp uint)
0:?         'pos' ( temp uint)
0:?         'pos' (layout( location=0) flat in uint)
0:7      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:7        Function Call: @main(u1; ( temp 4-component vector of float)
0:?           'pos' ( temp uint)
0:?   Linker Objects
0:?     'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:?     'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
0:?     'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:?     'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
0:?     'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'pos' (layout( location=0) flat in uint)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:7  Function Definition: @main(u1; ( temp 4-component vector of float)
0:7    Function Parameters: 
0:7      'pos' ( in uint)
0:?     Sequence
0:8      Sequence
0:8        move second child to first child ( temp 4-component vector of uint)
0:8          'result' ( temp 4-component vector of uint)
0:8          Constant:
0:8            0 (const uint)
0:8            0 (const uint)
0:8            0 (const uint)
0:8            0 (const uint)
0:10      direct index (layout( row_major std430) buffer 4-component vector of uint)
0:10        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
0:10          'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:10          Constant:
0:10            0 (const uint)
0:10        Constant:
0:10          7 (const int)
0:11      direct index (layout( row_major std430) buffer 4-component vector of uint)
0:11        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
0:11          'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:11          Constant:
0:11            0 (const uint)
0:11        Constant:
0:11          7 (const int)
0:13      move second child to first child ( temp 4-component vector of uint)
0:13        direct index (layout( row_major std430) buffer 4-component vector of uint)
0:13          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
0:13            'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:13            Constant:
0:13              0 (const uint)
0:13          Constant:
0:13            5 (const int)
0:13        Constant:
0:13          2 (const uint)
0:13          2 (const uint)
0:13          2 (const uint)
0:13          2 (const uint)
0:15      Sequence
0:15        move second child to first child ( temp uint)
0:15          'c1' ( temp uint)
0:15          AtomicAdd ( temp uint)
0:15            @count: direct index for structure ( temp uint)
0:15              'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
0:15              Constant:
0:15                0 (const int)
0:15            Constant:
0:15              1 (const uint)
0:16      Sequence
0:16        move second child to first child ( temp uint)
0:16          'c2' ( temp uint)
0:16          add ( temp uint)
0:16            AtomicAdd ( temp uint)
0:16              @count: direct index for structure ( temp uint)
0:16                'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
0:16                Constant:
0:16                  0 (const int)
0:16              Constant:
0:16                4294967295 (const uint)
0:16            Constant:
0:16              -1 (const int)
0:18      Branch: Return with expression
0:?         Construct vec4 ( temp 4-component vector of float)
0:18          Convert uint to float ( temp float)
0:18            direct index ( temp uint)
0:18              'result' ( temp 4-component vector of uint)
0:18              Constant:
0:18                0 (const int)
0:18          Convert uint to float ( temp float)
0:18            direct index ( temp uint)
0:18              'result' ( temp 4-component vector of uint)
0:18              Constant:
0:18                1 (const int)
0:18          Convert uint to float ( temp float)
0:18            'c1' ( temp uint)
0:18          Convert uint to float ( temp float)
0:18            'c2' ( temp uint)
0:7  Function Definition: main( ( temp void)
0:7    Function Parameters: 
0:?     Sequence
0:7      move second child to first child ( temp uint)
0:?         'pos' ( temp uint)
0:?         'pos' (layout( location=0) flat in uint)
0:7      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:7        Function Call: @main(u1; ( temp 4-component vector of float)
0:?           'pos' ( temp uint)
0:?   Linker Objects
0:?     'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:?     'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
0:?     'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:?     'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
0:?     'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'pos' (layout( location=0) flat in uint)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 63 66
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 12  "@main(u1;"
                              Name 11  "pos"
                              Name 16  "result"
                              Name 20  "sbuf_rw_i"
                              MemberName 20(sbuf_rw_i) 0  "@data"
                              Name 22  "sbuf_rw_i"
                              Name 26  "sbuf_rw_d"
                              Name 27  "sbuf_rw_nocounter"
                              Name 33  "c1"
                              Name 34  "sbuf_rw_i@count"
                              MemberName 34(sbuf_rw_i@count) 0  "@count"
                              Name 36  "sbuf_rw_i@count"
                              Name 41  "c2"
                              Name 42  "sbuf_rw_d@count"
                              Name 61  "pos"
                              Name 63  "pos"
                              Name 66  "@entryPointOutput"
                              Name 67  "param"
                              Decorate 19 ArrayStride 16
                              MemberDecorate 20(sbuf_rw_i) 0 Offset 0
                              Decorate 20(sbuf_rw_i) BufferBlock
                              Decorate 22(sbuf_rw_i) DescriptorSet 0
                              Decorate 22(sbuf_rw_i) Binding 0
                              Decorate 26(sbuf_rw_d) DescriptorSet 0
                              Decorate 26(sbuf_rw_d) Binding 0
                              Decorate 27(sbuf_rw_nocounter) DescriptorSet 0
                              Decorate 27(sbuf_rw_nocounter) Binding 0
                              MemberDecorate 34(sbuf_rw_i@count) 0 Offset 0
                              Decorate 34(sbuf_rw_i@count) BufferBlock
                              Decorate 36(sbuf_rw_i@count) DescriptorSet 0
                              Decorate 36(sbuf_rw_i@count) Binding 0
                              Decorate 42(sbuf_rw_d@count) DescriptorSet 0
                              Decorate 42(sbuf_rw_d@count) Binding 0
                              Decorate 63(pos) Flat
                              Decorate 63(pos) Location 0
                              Decorate 66(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypePointer Function 6(int)
               8:             TypeFloat 32
               9:             TypeVector 8(float) 4
              10:             TypeFunction 9(fvec4) 7(ptr)
              14:             TypeVector 6(int) 4
              15:             TypePointer Function 14(ivec4)
              17:      6(int) Constant 0
              18:   14(ivec4) ConstantComposite 17 17 17 17
              19:             TypeRuntimeArray 14(ivec4)
   20(sbuf_rw_i):             TypeStruct 19
              21:             TypePointer Uniform 20(sbuf_rw_i)
   22(sbuf_rw_i):     21(ptr) Variable Uniform
              23:             TypeInt 32 1
              24:     23(int) Constant 0
              25:     23(int) Constant 7
   26(sbuf_rw_d):     21(ptr) Variable Uniform
27(sbuf_rw_nocounter):     21(ptr) Variable Uniform
              28:     23(int) Constant 5
              29:      6(int) Constant 2
              30:   14(ivec4) ConstantComposite 29 29 29 29
              31:             TypePointer Uniform 14(ivec4)
34(sbuf_rw_i@count):             TypeStruct 6(int)
              35:             TypePointer Uniform 34(sbuf_rw_i@count)
36(sbuf_rw_i@count):     35(ptr) Variable Uniform
              37:             TypePointer Uniform 6(int)
              39:      6(int) Constant 1
42(sbuf_rw_d@count):     35(ptr) Variable Uniform
              44:      6(int) Constant 4294967295
              46:     23(int) Constant 4294967295
              62:             TypePointer Input 6(int)
         63(pos):     62(ptr) Variable Input
              65:             TypePointer Output 9(fvec4)
66(@entryPointOutput):     65(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
         61(pos):      7(ptr) Variable Function
       67(param):      7(ptr) Variable Function
              64:      6(int) Load 63(pos)
                              Store 61(pos) 64
              68:      6(int) Load 61(pos)
                              Store 67(param) 68
              69:    9(fvec4) FunctionCall 12(@main(u1;) 67(param)
                              Store 66(@entryPointOutput) 69
                              Return
                              FunctionEnd
   12(@main(u1;):    9(fvec4) Function None 10
         11(pos):      7(ptr) FunctionParameter
              13:             Label
      16(result):     15(ptr) Variable Function
          33(c1):      7(ptr) Variable Function
          41(c2):      7(ptr) Variable Function
                              Store 16(result) 18
              32:     31(ptr) AccessChain 27(sbuf_rw_nocounter) 24 28
                              Store 32 30
              38:     37(ptr) AccessChain 36(sbuf_rw_i@count) 24
              40:      6(int) AtomicIAdd 38 39 17 39
                              Store 33(c1) 40
              43:     37(ptr) AccessChain 42(sbuf_rw_d@count) 24
              45:      6(int) AtomicIAdd 43 39 17 44
              47:      6(int) IAdd 45 46
                              Store 41(c2) 47
              48:      7(ptr) AccessChain 16(result) 17
              49:      6(int) Load 48
              50:    8(float) ConvertUToF 49
              51:      7(ptr) AccessChain 16(result) 39
              52:      6(int) Load 51
              53:    8(float) ConvertUToF 52
              54:      6(int) Load 33(c1)
              55:    8(float) ConvertUToF 54
              56:      6(int) Load 41(c2)
              57:    8(float) ConvertUToF 56
              58:    9(fvec4) CompositeConstruct 50 53 55 57
                              ReturnValue 58
                              FunctionEnd