hlsl.structbuffer.append.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      move second child to first child ( temp 4-component vector of float)
0:8        indirect index (layout( row_major std430) buffer 4-component vector of float)
0:8          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
0:8            'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:8            Constant:
0:8              0 (const uint)
0:8          AtomicAdd ( temp uint)
0:8            @count: direct index for structure ( temp int)
0:8              'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:8              Constant:
0:8                0 (const int)
0:8            Constant:
0:8              1 (const int)
0:?         Constant:
0:?           1.000000
0:?           2.000000
0:?           3.000000
0:?           4.000000
0:10      Branch: Return with expression
0:10        indirect index (layout( row_major std430) buffer 4-component vector of float)
0:10          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
0:10            'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:10            Constant:
0:10              0 (const uint)
0:10          add ( temp uint)
0:10            AtomicAdd ( temp uint)
0:10              @count: direct index for structure ( temp int)
0:10                'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:10                Constant:
0:10                  0 (const int)
0:10              Constant:
0:10                -1 (const int)
0:10            Constant:
0:10              -1 (const int)
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_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:?     'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:?     'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:?     'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:?     'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @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      move second child to first child ( temp 4-component vector of float)
0:8        indirect index (layout( row_major std430) buffer 4-component vector of float)
0:8          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
0:8            'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:8            Constant:
0:8              0 (const uint)
0:8          AtomicAdd ( temp uint)
0:8            @count: direct index for structure ( temp int)
0:8              'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:8              Constant:
0:8                0 (const int)
0:8            Constant:
0:8              1 (const int)
0:?         Constant:
0:?           1.000000
0:?           2.000000
0:?           3.000000
0:?           4.000000
0:10      Branch: Return with expression
0:10        indirect index (layout( row_major std430) buffer 4-component vector of float)
0:10          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
0:10            'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:10            Constant:
0:10              0 (const uint)
0:10          add ( temp uint)
0:10            AtomicAdd ( temp uint)
0:10              @count: direct index for structure ( temp int)
0:10                'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:10                Constant:
0:10                  0 (const int)
0:10              Constant:
0:10                -1 (const int)
0:10            Constant:
0:10              -1 (const int)
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_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:?     'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:?     'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
0:?     'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
0:?     'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @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): 80001
// Id's are bound by 56

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 48 51
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 12  "@main(u1;"
                              Name 11  "pos"
                              Name 15  "sbuf_a"
                              MemberName 15(sbuf_a) 0  "@data"
                              Name 17  "sbuf_a"
                              Name 20  "sbuf_a@count"
                              MemberName 20(sbuf_a@count) 0  "@count"
                              Name 22  "sbuf_a@count"
                              Name 36  "sbuf_c"
                              Name 37  "sbuf_c@count"
                              Name 46  "pos"
                              Name 48  "pos"
                              Name 51  "@entryPointOutput"
                              Name 52  "param"
                              Name 55  "sbuf_unused"
                              Decorate 14 ArrayStride 16
                              MemberDecorate 15(sbuf_a) 0 Offset 0
                              Decorate 15(sbuf_a) BufferBlock
                              Decorate 17(sbuf_a) DescriptorSet 0
                              MemberDecorate 20(sbuf_a@count) 0 Offset 0
                              Decorate 20(sbuf_a@count) BufferBlock
                              Decorate 22(sbuf_a@count) DescriptorSet 0
                              Decorate 36(sbuf_c) DescriptorSet 0
                              Decorate 37(sbuf_c@count) DescriptorSet 0
                              Decorate 48(pos) Flat
                              Decorate 48(pos) Location 0
                              Decorate 51(@entryPointOutput) Location 0
                              Decorate 55(sbuf_unused) DescriptorSet 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:             TypeRuntimeArray 9(fvec4)
      15(sbuf_a):             TypeStruct 14
              16:             TypePointer Uniform 15(sbuf_a)
      17(sbuf_a):     16(ptr) Variable Uniform
              18:             TypeInt 32 1
              19:     18(int) Constant 0
20(sbuf_a@count):             TypeStruct 18(int)
              21:             TypePointer Uniform 20(sbuf_a@count)
22(sbuf_a@count):     21(ptr) Variable Uniform
              23:             TypePointer Uniform 18(int)
              25:     18(int) Constant 1
              26:      6(int) Constant 1
              27:      6(int) Constant 0
              29:    8(float) Constant 1065353216
              30:    8(float) Constant 1073741824
              31:    8(float) Constant 1077936128
              32:    8(float) Constant 1082130432
              33:    9(fvec4) ConstantComposite 29 30 31 32
              34:             TypePointer Uniform 9(fvec4)
      36(sbuf_c):     16(ptr) Variable Uniform
37(sbuf_c@count):     21(ptr) Variable Uniform
              39:     18(int) Constant 4294967295
              47:             TypePointer Input 6(int)
         48(pos):     47(ptr) Variable Input
              50:             TypePointer Output 9(fvec4)
51(@entryPointOutput):     50(ptr) Variable Output
 55(sbuf_unused):     16(ptr) Variable Uniform
         4(main):           2 Function None 3
               5:             Label
         46(pos):      7(ptr) Variable Function
       52(param):      7(ptr) Variable Function
              49:      6(int) Load 48(pos)
                              Store 46(pos) 49
              53:      6(int) Load 46(pos)
                              Store 52(param) 53
              54:    9(fvec4) FunctionCall 12(@main(u1;) 52(param)
                              Store 51(@entryPointOutput) 54
                              Return
                              FunctionEnd
   12(@main(u1;):    9(fvec4) Function None 10
         11(pos):      7(ptr) FunctionParameter
              13:             Label
              24:     23(ptr) AccessChain 22(sbuf_a@count) 19
              28:      6(int) AtomicIAdd 24 26 27 25
              35:     34(ptr) AccessChain 17(sbuf_a) 19 28
                              Store 35 33
              38:     23(ptr) AccessChain 37(sbuf_c@count) 19
              40:      6(int) AtomicIAdd 38 26 27 39
              41:      6(int) IAdd 40 39
              42:     34(ptr) AccessChain 36(sbuf_c) 19 41
              43:    9(fvec4) Load 42
                              ReturnValue 43
                              FunctionEnd
