1hlsl.structbuffer.incdec.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      Sequence
100:8        move second child to first child ( temp 4-component vector of uint)
110:8          'result' ( temp 4-component vector of uint)
120:8          Constant:
130:8            0 (const uint)
140:8            0 (const uint)
150:8            0 (const uint)
160:8            0 (const uint)
170:10      direct index (layout( row_major std430) buffer 4-component vector of uint)
180:10        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
190: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})
200:10          Constant:
210:10            0 (const uint)
220:10        Constant:
230:10          7 (const int)
240:11      direct index (layout( row_major std430) buffer 4-component vector of uint)
250:11        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
260: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})
270:11          Constant:
280:11            0 (const uint)
290:11        Constant:
300:11          7 (const int)
310:13      move second child to first child ( temp 4-component vector of uint)
320:13        direct index (layout( row_major std430) buffer 4-component vector of uint)
330:13          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
340: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})
350:13            Constant:
360:13              0 (const uint)
370:13          Constant:
380:13            5 (const int)
390:13        Constant:
400:13          2 (const uint)
410:13          2 (const uint)
420:13          2 (const uint)
430:13          2 (const uint)
440:15      Sequence
450:15        move second child to first child ( temp uint)
460:15          'c1' ( temp uint)
470:15          AtomicAdd ( temp uint)
480:15            @count: direct index for structure ( temp uint)
490:15              'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
500:15              Constant:
510:15                0 (const int)
520:15            Constant:
530:15              1 (const uint)
540:16      Sequence
550:16        move second child to first child ( temp uint)
560:16          'c2' ( temp uint)
570:16          add ( temp uint)
580:16            AtomicAdd ( temp uint)
590:16              @count: direct index for structure ( temp uint)
600:16                'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
610:16                Constant:
620:16                  0 (const int)
630:16              Constant:
640:16                4294967295 (const uint)
650:16            Constant:
660:16              -1 (const int)
670:18      Branch: Return with expression
680:?         Construct vec4 ( temp 4-component vector of float)
690:18          Convert uint to float ( temp float)
700:18            direct index ( temp uint)
710:18              'result' ( temp 4-component vector of uint)
720:18              Constant:
730:18                0 (const int)
740:18          Convert uint to float ( temp float)
750:18            direct index ( temp uint)
760:18              'result' ( temp 4-component vector of uint)
770:18              Constant:
780:18                1 (const int)
790:18          Convert uint to float ( temp float)
800:18            'c1' ( temp uint)
810:18          Convert uint to float ( temp float)
820:18            'c2' ( temp uint)
830:7  Function Definition: main( ( temp void)
840:7    Function Parameters:
850:?     Sequence
860:7      move second child to first child ( temp uint)
870:?         'pos' ( temp uint)
880:?         'pos' (layout( location=0) flat in uint)
890:7      move second child to first child ( temp 4-component vector of float)
900:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
910:7        Function Call: @main(u1; ( temp 4-component vector of float)
920:?           'pos' ( temp uint)
930:?   Linker Objects
940:?     '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})
950:?     'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
960:?     '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})
970:?     'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
980:?     '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})
990:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
1000:?     'pos' (layout( location=0) flat in uint)
101
102
103Linked fragment stage:
104
105
106Shader version: 500
107gl_FragCoord origin is upper left
1080:? Sequence
1090:7  Function Definition: @main(u1; ( temp 4-component vector of float)
1100:7    Function Parameters:
1110:7      'pos' ( in uint)
1120:?     Sequence
1130:8      Sequence
1140:8        move second child to first child ( temp 4-component vector of uint)
1150:8          'result' ( temp 4-component vector of uint)
1160:8          Constant:
1170:8            0 (const uint)
1180:8            0 (const uint)
1190:8            0 (const uint)
1200:8            0 (const uint)
1210:10      direct index (layout( row_major std430) buffer 4-component vector of uint)
1220:10        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
1230: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})
1240:10          Constant:
1250:10            0 (const uint)
1260:10        Constant:
1270:10          7 (const int)
1280:11      direct index (layout( row_major std430) buffer 4-component vector of uint)
1290:11        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
1300: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})
1310:11          Constant:
1320:11            0 (const uint)
1330:11        Constant:
1340:11          7 (const int)
1350:13      move second child to first child ( temp 4-component vector of uint)
1360:13        direct index (layout( row_major std430) buffer 4-component vector of uint)
1370:13          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
1380: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})
1390:13            Constant:
1400:13              0 (const uint)
1410:13          Constant:
1420:13            5 (const int)
1430:13        Constant:
1440:13          2 (const uint)
1450:13          2 (const uint)
1460:13          2 (const uint)
1470:13          2 (const uint)
1480:15      Sequence
1490:15        move second child to first child ( temp uint)
1500:15          'c1' ( temp uint)
1510:15          AtomicAdd ( temp uint)
1520:15            @count: direct index for structure ( temp uint)
1530:15              'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
1540:15              Constant:
1550:15                0 (const int)
1560:15            Constant:
1570:15              1 (const uint)
1580:16      Sequence
1590:16        move second child to first child ( temp uint)
1600:16          'c2' ( temp uint)
1610:16          add ( temp uint)
1620:16            AtomicAdd ( temp uint)
1630:16              @count: direct index for structure ( temp uint)
1640:16                'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
1650:16                Constant:
1660:16                  0 (const int)
1670:16              Constant:
1680:16                4294967295 (const uint)
1690:16            Constant:
1700:16              -1 (const int)
1710:18      Branch: Return with expression
1720:?         Construct vec4 ( temp 4-component vector of float)
1730:18          Convert uint to float ( temp float)
1740:18            direct index ( temp uint)
1750:18              'result' ( temp 4-component vector of uint)
1760:18              Constant:
1770:18                0 (const int)
1780:18          Convert uint to float ( temp float)
1790:18            direct index ( temp uint)
1800:18              'result' ( temp 4-component vector of uint)
1810:18              Constant:
1820:18                1 (const int)
1830:18          Convert uint to float ( temp float)
1840:18            'c1' ( temp uint)
1850:18          Convert uint to float ( temp float)
1860:18            'c2' ( temp uint)
1870:7  Function Definition: main( ( temp void)
1880:7    Function Parameters:
1890:?     Sequence
1900:7      move second child to first child ( temp uint)
1910:?         'pos' ( temp uint)
1920:?         'pos' (layout( location=0) flat in uint)
1930:7      move second child to first child ( temp 4-component vector of float)
1940:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
1950:7        Function Call: @main(u1; ( temp 4-component vector of float)
1960:?           'pos' ( temp uint)
1970:?   Linker Objects
1980:?     '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})
1990:?     'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
2000:?     '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})
2010:?     'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
2020:?     '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})
2030:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
2040:?     'pos' (layout( location=0) flat in uint)
205
206// Module Version 10000
207// Generated by (magic number): 80007
208// Id's are bound by 70
209
210                              Capability Shader
211               1:             ExtInstImport  "GLSL.std.450"
212                              MemoryModel Logical GLSL450
213                              EntryPoint Fragment 4  "main" 63 66
214                              ExecutionMode 4 OriginUpperLeft
215                              Source HLSL 500
216                              Name 4  "main"
217                              Name 12  "@main(u1;"
218                              Name 11  "pos"
219                              Name 16  "result"
220                              Name 20  "sbuf_rw_i"
221                              MemberName 20(sbuf_rw_i) 0  "@data"
222                              Name 22  "sbuf_rw_i"
223                              Name 26  "sbuf_rw_d"
224                              Name 27  "sbuf_rw_nocounter"
225                              Name 33  "c1"
226                              Name 34  "sbuf_rw_i@count"
227                              MemberName 34(sbuf_rw_i@count) 0  "@count"
228                              Name 36  "sbuf_rw_i@count"
229                              Name 41  "c2"
230                              Name 42  "sbuf_rw_d@count"
231                              Name 61  "pos"
232                              Name 63  "pos"
233                              Name 66  "@entryPointOutput"
234                              Name 67  "param"
235                              Decorate 19 ArrayStride 16
236                              MemberDecorate 20(sbuf_rw_i) 0 Offset 0
237                              Decorate 20(sbuf_rw_i) BufferBlock
238                              Decorate 22(sbuf_rw_i) DescriptorSet 0
239                              Decorate 22(sbuf_rw_i) Binding 0
240                              Decorate 26(sbuf_rw_d) DescriptorSet 0
241                              Decorate 26(sbuf_rw_d) Binding 0
242                              Decorate 27(sbuf_rw_nocounter) DescriptorSet 0
243                              Decorate 27(sbuf_rw_nocounter) Binding 0
244                              MemberDecorate 34(sbuf_rw_i@count) 0 Offset 0
245                              Decorate 34(sbuf_rw_i@count) BufferBlock
246                              Decorate 36(sbuf_rw_i@count) DescriptorSet 0
247                              Decorate 36(sbuf_rw_i@count) Binding 0
248                              Decorate 42(sbuf_rw_d@count) DescriptorSet 0
249                              Decorate 42(sbuf_rw_d@count) Binding 0
250                              Decorate 63(pos) Flat
251                              Decorate 63(pos) Location 0
252                              Decorate 66(@entryPointOutput) Location 0
253               2:             TypeVoid
254               3:             TypeFunction 2
255               6:             TypeInt 32 0
256               7:             TypePointer Function 6(int)
257               8:             TypeFloat 32
258               9:             TypeVector 8(float) 4
259              10:             TypeFunction 9(fvec4) 7(ptr)
260              14:             TypeVector 6(int) 4
261              15:             TypePointer Function 14(ivec4)
262              17:      6(int) Constant 0
263              18:   14(ivec4) ConstantComposite 17 17 17 17
264              19:             TypeRuntimeArray 14(ivec4)
265   20(sbuf_rw_i):             TypeStruct 19
266              21:             TypePointer Uniform 20(sbuf_rw_i)
267   22(sbuf_rw_i):     21(ptr) Variable Uniform
268              23:             TypeInt 32 1
269              24:     23(int) Constant 0
270              25:     23(int) Constant 7
271   26(sbuf_rw_d):     21(ptr) Variable Uniform
27227(sbuf_rw_nocounter):     21(ptr) Variable Uniform
273              28:     23(int) Constant 5
274              29:      6(int) Constant 2
275              30:   14(ivec4) ConstantComposite 29 29 29 29
276              31:             TypePointer Uniform 14(ivec4)
27734(sbuf_rw_i@count):             TypeStruct 6(int)
278              35:             TypePointer Uniform 34(sbuf_rw_i@count)
27936(sbuf_rw_i@count):     35(ptr) Variable Uniform
280              37:             TypePointer Uniform 6(int)
281              39:      6(int) Constant 1
28242(sbuf_rw_d@count):     35(ptr) Variable Uniform
283              44:      6(int) Constant 4294967295
284              46:     23(int) Constant 4294967295
285              62:             TypePointer Input 6(int)
286         63(pos):     62(ptr) Variable Input
287              65:             TypePointer Output 9(fvec4)
28866(@entryPointOutput):     65(ptr) Variable Output
289         4(main):           2 Function None 3
290               5:             Label
291         61(pos):      7(ptr) Variable Function
292       67(param):      7(ptr) Variable Function
293              64:      6(int) Load 63(pos)
294                              Store 61(pos) 64
295              68:      6(int) Load 61(pos)
296                              Store 67(param) 68
297              69:    9(fvec4) FunctionCall 12(@main(u1;) 67(param)
298                              Store 66(@entryPointOutput) 69
299                              Return
300                              FunctionEnd
301   12(@main(u1;):    9(fvec4) Function None 10
302         11(pos):      7(ptr) FunctionParameter
303              13:             Label
304      16(result):     15(ptr) Variable Function
305          33(c1):      7(ptr) Variable Function
306          41(c2):      7(ptr) Variable Function
307                              Store 16(result) 18
308              32:     31(ptr) AccessChain 27(sbuf_rw_nocounter) 24 28
309                              Store 32 30
310              38:     37(ptr) AccessChain 36(sbuf_rw_i@count) 24
311              40:      6(int) AtomicIAdd 38 39 17 39
312                              Store 33(c1) 40
313              43:     37(ptr) AccessChain 42(sbuf_rw_d@count) 24
314              45:      6(int) AtomicIAdd 43 39 17 44
315              47:      6(int) IAdd 45 46
316                              Store 41(c2) 47
317              48:      7(ptr) AccessChain 16(result) 17
318              49:      6(int) Load 48
319              50:    8(float) ConvertUToF 49
320              51:      7(ptr) AccessChain 16(result) 39
321              52:      6(int) Load 51
322              53:    8(float) ConvertUToF 52
323              54:      6(int) Load 33(c1)
324              55:    8(float) ConvertUToF 54
325              56:      6(int) Load 41(c2)
326              57:    8(float) ConvertUToF 56
327              58:    9(fvec4) CompositeConstruct 50 53 55 57
328                              ReturnValue 58
329                              FunctionEnd
330