1hlsl.structbuffer.append.frag
2Shader version: 500
3gl_FragCoord origin is upper left
40:? Sequence
50:7  Function Definition: @main(u1; ( temp 4-component vector of float)
60:7    Function Parameters:
70:7      'pos' ( in uint)
80:?     Sequence
90:8      move second child to first child ( temp 4-component vector of float)
100:8        indirect index (layout( row_major std430) buffer 4-component vector of float)
110:8          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
120:8            'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
130:8            Constant:
140:8              0 (const uint)
150:8          AtomicAdd ( temp uint)
160:8            @count: direct index for structure ( temp uint)
170:8              'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
180:8              Constant:
190:8                0 (const int)
200:8            Constant:
210:8              1 (const uint)
220:?         Constant:
230:?           1.000000
240:?           2.000000
250:?           3.000000
260:?           4.000000
270:10      Branch: Return with expression
280:10        indirect index (layout( row_major std430) buffer 4-component vector of float)
290:10          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
300:10            'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
310:10            Constant:
320:10              0 (const uint)
330:10          add ( temp uint)
340:10            AtomicAdd ( temp uint)
350:10              @count: direct index for structure ( temp uint)
360:10                'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
370:10                Constant:
380:10                  0 (const int)
390:10              Constant:
400:10                4294967295 (const uint)
410:10            Constant:
420:10              -1 (const int)
430:7  Function Definition: main( ( temp void)
440:7    Function Parameters:
450:?     Sequence
460:7      move second child to first child ( temp uint)
470:?         'pos' ( temp uint)
480:?         'pos' (layout( location=0) flat in uint)
490:7      move second child to first child ( temp 4-component vector of float)
500:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
510:7        Function Call: @main(u1; ( temp 4-component vector of float)
520:?           'pos' ( temp uint)
530:?   Linker Objects
540:?     'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
550:?     'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
560:?     'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
570:?     'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
580:?     'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
590:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
600:?     'pos' (layout( location=0) flat in uint)
61
62
63Linked fragment stage:
64
65
66Shader version: 500
67gl_FragCoord origin is upper left
680:? Sequence
690:7  Function Definition: @main(u1; ( temp 4-component vector of float)
700:7    Function Parameters:
710:7      'pos' ( in uint)
720:?     Sequence
730:8      move second child to first child ( temp 4-component vector of float)
740:8        indirect index (layout( row_major std430) buffer 4-component vector of float)
750:8          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
760:8            'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
770:8            Constant:
780:8              0 (const uint)
790:8          AtomicAdd ( temp uint)
800:8            @count: direct index for structure ( temp uint)
810:8              'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
820:8              Constant:
830:8                0 (const int)
840:8            Constant:
850:8              1 (const uint)
860:?         Constant:
870:?           1.000000
880:?           2.000000
890:?           3.000000
900:?           4.000000
910:10      Branch: Return with expression
920:10        indirect index (layout( row_major std430) buffer 4-component vector of float)
930:10          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
940:10            'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
950:10            Constant:
960:10              0 (const uint)
970:10          add ( temp uint)
980:10            AtomicAdd ( temp uint)
990:10              @count: direct index for structure ( temp uint)
1000:10                'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
1010:10                Constant:
1020:10                  0 (const int)
1030:10              Constant:
1040:10                4294967295 (const uint)
1050:10            Constant:
1060:10              -1 (const int)
1070:7  Function Definition: main( ( temp void)
1080:7    Function Parameters:
1090:?     Sequence
1100:7      move second child to first child ( temp uint)
1110:?         'pos' ( temp uint)
1120:?         'pos' (layout( location=0) flat in uint)
1130:7      move second child to first child ( temp 4-component vector of float)
1140:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
1150:7        Function Call: @main(u1; ( temp 4-component vector of float)
1160:?           'pos' ( temp uint)
1170:?   Linker Objects
1180:?     'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
1190:?     'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
1200:?     'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
1210:?     'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
1220:?     'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
1230:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
1240:?     'pos' (layout( location=0) flat in uint)
125
126// Module Version 10000
127// Generated by (magic number): 80007
128// Id's are bound by 56
129
130                              Capability Shader
131               1:             ExtInstImport  "GLSL.std.450"
132                              MemoryModel Logical GLSL450
133                              EntryPoint Fragment 4  "main" 48 51
134                              ExecutionMode 4 OriginUpperLeft
135                              Source HLSL 500
136                              Name 4  "main"
137                              Name 12  "@main(u1;"
138                              Name 11  "pos"
139                              Name 15  "sbuf_a"
140                              MemberName 15(sbuf_a) 0  "@data"
141                              Name 17  "sbuf_a"
142                              Name 20  "sbuf_a@count"
143                              MemberName 20(sbuf_a@count) 0  "@count"
144                              Name 22  "sbuf_a@count"
145                              Name 35  "sbuf_c"
146                              Name 36  "sbuf_c@count"
147                              Name 46  "pos"
148                              Name 48  "pos"
149                              Name 51  "@entryPointOutput"
150                              Name 52  "param"
151                              Name 55  "sbuf_unused"
152                              Decorate 14 ArrayStride 16
153                              MemberDecorate 15(sbuf_a) 0 Offset 0
154                              Decorate 15(sbuf_a) BufferBlock
155                              Decorate 17(sbuf_a) DescriptorSet 0
156                              MemberDecorate 20(sbuf_a@count) 0 Offset 0
157                              Decorate 20(sbuf_a@count) BufferBlock
158                              Decorate 22(sbuf_a@count) DescriptorSet 0
159                              Decorate 35(sbuf_c) DescriptorSet 0
160                              Decorate 36(sbuf_c@count) DescriptorSet 0
161                              Decorate 48(pos) Flat
162                              Decorate 48(pos) Location 0
163                              Decorate 51(@entryPointOutput) Location 0
164                              Decorate 55(sbuf_unused) DescriptorSet 0
165               2:             TypeVoid
166               3:             TypeFunction 2
167               6:             TypeInt 32 0
168               7:             TypePointer Function 6(int)
169               8:             TypeFloat 32
170               9:             TypeVector 8(float) 4
171              10:             TypeFunction 9(fvec4) 7(ptr)
172              14:             TypeRuntimeArray 9(fvec4)
173      15(sbuf_a):             TypeStruct 14
174              16:             TypePointer Uniform 15(sbuf_a)
175      17(sbuf_a):     16(ptr) Variable Uniform
176              18:             TypeInt 32 1
177              19:     18(int) Constant 0
17820(sbuf_a@count):             TypeStruct 6(int)
179              21:             TypePointer Uniform 20(sbuf_a@count)
18022(sbuf_a@count):     21(ptr) Variable Uniform
181              23:             TypePointer Uniform 6(int)
182              25:      6(int) Constant 1
183              26:      6(int) Constant 0
184              28:    8(float) Constant 1065353216
185              29:    8(float) Constant 1073741824
186              30:    8(float) Constant 1077936128
187              31:    8(float) Constant 1082130432
188              32:    9(fvec4) ConstantComposite 28 29 30 31
189              33:             TypePointer Uniform 9(fvec4)
190      35(sbuf_c):     16(ptr) Variable Uniform
19136(sbuf_c@count):     21(ptr) Variable Uniform
192              38:      6(int) Constant 4294967295
193              40:     18(int) Constant 4294967295
194              47:             TypePointer Input 6(int)
195         48(pos):     47(ptr) Variable Input
196              50:             TypePointer Output 9(fvec4)
19751(@entryPointOutput):     50(ptr) Variable Output
198 55(sbuf_unused):     16(ptr) Variable Uniform
199         4(main):           2 Function None 3
200               5:             Label
201         46(pos):      7(ptr) Variable Function
202       52(param):      7(ptr) Variable Function
203              49:      6(int) Load 48(pos)
204                              Store 46(pos) 49
205              53:      6(int) Load 46(pos)
206                              Store 52(param) 53
207              54:    9(fvec4) FunctionCall 12(@main(u1;) 52(param)
208                              Store 51(@entryPointOutput) 54
209                              Return
210                              FunctionEnd
211   12(@main(u1;):    9(fvec4) Function None 10
212         11(pos):      7(ptr) FunctionParameter
213              13:             Label
214              24:     23(ptr) AccessChain 22(sbuf_a@count) 19
215              27:      6(int) AtomicIAdd 24 25 26 25
216              34:     33(ptr) AccessChain 17(sbuf_a) 19 27
217                              Store 34 32
218              37:     23(ptr) AccessChain 36(sbuf_c@count) 19
219              39:      6(int) AtomicIAdd 37 25 26 38
220              41:      6(int) IAdd 39 40
221              42:     33(ptr) AccessChain 35(sbuf_c) 19 41
222              43:    9(fvec4) Load 42
223                              ReturnValue 43
224                              FunctionEnd
225