1hlsl.structbuffer.floatidx.comp
2Shader version: 500
3local_size = (1, 1, 1)
40:? Sequence
50:13  Function Definition: @main(vu3; ( temp void)
60:13    Function Parameters:
70:13      'nThreadId' ( in 3-component vector of uint)
80:?     Sequence
90:14      Sequence
100:14        move second child to first child ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
110:14          'data' ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
120:14          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
130:14            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
140:14              'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId} @data})
150:14              Constant:
160:14                0 (const uint)
170:14            add ( temp uint)
180:14              AtomicAdd ( temp uint)
190:14                @count: direct index for structure ( temp uint)
200:14                  'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
210:14                  Constant:
220:14                    0 (const int)
230:14                Constant:
240:14                  4294967295 (const uint)
250:14              Constant:
260:14                -1 (const int)
270:15      Sequence
280:15        move second child to first child ( temp 2-component vector of float)
290:15          'coord' ( temp 2-component vector of float)
300:15          Convert uint to float ( temp 2-component vector of float)
310:15            vector swizzle ( temp 2-component vector of uint)
320:15              threadId: direct index for structure ( temp 2-component vector of uint)
330:15                'data' ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
340:15                Constant:
350:15                  1 (const int)
360:15              Sequence
370:15                Constant:
380:15                  0 (const int)
390:15                Constant:
400:15                  1 (const int)
410:16      Sequence
420:16        move second child to first child ( temp 4-component vector of float)
430:16          'storeTemp' ( temp 4-component vector of float)
440:16          color: direct index for structure ( temp 4-component vector of float)
450:16            'data' ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
460:16            Constant:
470:16              0 (const int)
480:16        imageStore ( temp void)
490:16          'outtx' (layout( rgba32f) uniform image2D)
500:16          Convert float to uint ( temp 2-component vector of uint)
510:16            'coord' ( temp 2-component vector of float)
520:16          'storeTemp' ( temp 4-component vector of float)
530:16        'storeTemp' ( temp 4-component vector of float)
540:18      move second child to first child ( temp 4-component vector of float)
550:18        indirect index (layout( row_major std430) buffer 4-component vector of float)
560:18          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
570:18            'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
580:18            Constant:
590:18              0 (const uint)
600:18          Convert float to uint ( temp uint)
610:18            direct index ( temp float)
620:18              'coord' ( temp 2-component vector of float)
630:18              Constant:
640:18                0 (const int)
650:18        indirect index (layout( row_major std430) buffer 4-component vector of float)
660:18          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
670:18            'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
680:18            Constant:
690:18              0 (const uint)
700:18          Convert float to uint ( temp uint)
710:18            direct index ( temp float)
720:18              'coord' ( temp 2-component vector of float)
730:18              Constant:
740:18                1 (const int)
750:13  Function Definition: main( ( temp void)
760:13    Function Parameters:
770:?     Sequence
780:13      move second child to first child ( temp 3-component vector of uint)
790:?         'nThreadId' ( temp 3-component vector of uint)
800:?         'nThreadId' ( in 3-component vector of uint GlobalInvocationID)
810:13      Function Call: @main(vu3; ( temp void)
820:?         'nThreadId' ( temp 3-component vector of uint)
830:?   Linker Objects
840:?     'outtx' (layout( rgba32f) uniform image2D)
850:?     'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId} @data})
860:?     'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
870:?     'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
880:?     'nThreadId' ( in 3-component vector of uint GlobalInvocationID)
89
90
91Linked compute stage:
92
93
94Shader version: 500
95local_size = (1, 1, 1)
960:? Sequence
970:13  Function Definition: @main(vu3; ( temp void)
980:13    Function Parameters:
990:13      'nThreadId' ( in 3-component vector of uint)
1000:?     Sequence
1010:14      Sequence
1020:14        move second child to first child ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
1030:14          'data' ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
1040:14          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
1050:14            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
1060:14              'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId} @data})
1070:14              Constant:
1080:14                0 (const uint)
1090:14            add ( temp uint)
1100:14              AtomicAdd ( temp uint)
1110:14                @count: direct index for structure ( temp uint)
1120:14                  'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
1130:14                  Constant:
1140:14                    0 (const int)
1150:14                Constant:
1160:14                  4294967295 (const uint)
1170:14              Constant:
1180:14                -1 (const int)
1190:15      Sequence
1200:15        move second child to first child ( temp 2-component vector of float)
1210:15          'coord' ( temp 2-component vector of float)
1220:15          Convert uint to float ( temp 2-component vector of float)
1230:15            vector swizzle ( temp 2-component vector of uint)
1240:15              threadId: direct index for structure ( temp 2-component vector of uint)
1250:15                'data' ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
1260:15                Constant:
1270:15                  1 (const int)
1280:15              Sequence
1290:15                Constant:
1300:15                  0 (const int)
1310:15                Constant:
1320:15                  1 (const int)
1330:16      Sequence
1340:16        move second child to first child ( temp 4-component vector of float)
1350:16          'storeTemp' ( temp 4-component vector of float)
1360:16          color: direct index for structure ( temp 4-component vector of float)
1370:16            'data' ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
1380:16            Constant:
1390:16              0 (const int)
1400:16        imageStore ( temp void)
1410:16          'outtx' (layout( rgba32f) uniform image2D)
1420:16          Convert float to uint ( temp 2-component vector of uint)
1430:16            'coord' ( temp 2-component vector of float)
1440:16          'storeTemp' ( temp 4-component vector of float)
1450:16        'storeTemp' ( temp 4-component vector of float)
1460:18      move second child to first child ( temp 4-component vector of float)
1470:18        indirect index (layout( row_major std430) buffer 4-component vector of float)
1480:18          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
1490:18            'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
1500:18            Constant:
1510:18              0 (const uint)
1520:18          Convert float to uint ( temp uint)
1530:18            direct index ( temp float)
1540:18              'coord' ( temp 2-component vector of float)
1550:18              Constant:
1560:18                0 (const int)
1570:18        indirect index (layout( row_major std430) buffer 4-component vector of float)
1580:18          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float)
1590:18            'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
1600:18            Constant:
1610:18              0 (const uint)
1620:18          Convert float to uint ( temp uint)
1630:18            direct index ( temp float)
1640:18              'coord' ( temp 2-component vector of float)
1650:18              Constant:
1660:18                1 (const int)
1670:13  Function Definition: main( ( temp void)
1680:13    Function Parameters:
1690:?     Sequence
1700:13      move second child to first child ( temp 3-component vector of uint)
1710:?         'nThreadId' ( temp 3-component vector of uint)
1720:?         'nThreadId' ( in 3-component vector of uint GlobalInvocationID)
1730:13      Function Call: @main(vu3; ( temp void)
1740:?         'nThreadId' ( temp 3-component vector of uint)
1750:?   Linker Objects
1760:?     'outtx' (layout( rgba32f) uniform image2D)
1770:?     'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId} @data})
1780:?     'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
1790:?     'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data})
1800:?     'nThreadId' ( in 3-component vector of uint GlobalInvocationID)
181
182// Module Version 10000
183// Generated by (magic number): 80007
184// Id's are bound by 85
185
186                              Capability Shader
187               1:             ExtInstImport  "GLSL.std.450"
188                              MemoryModel Logical GLSL450
189                              EntryPoint GLCompute 4  "main" 80
190                              ExecutionMode 4 LocalSize 1 1 1
191                              Source HLSL 500
192                              Name 4  "main"
193                              Name 11  "@main(vu3;"
194                              Name 10  "nThreadId"
195                              Name 16  "sb_t"
196                              MemberName 16(sb_t) 0  "color"
197                              MemberName 16(sb_t) 1  "threadId"
198                              Name 18  "data"
199                              Name 19  "sb_t"
200                              MemberName 19(sb_t) 0  "color"
201                              MemberName 19(sb_t) 1  "threadId"
202                              Name 21  "csb"
203                              MemberName 21(csb) 0  "@data"
204                              Name 23  "csb"
205                              Name 26  "csb@count"
206                              MemberName 26(csb@count) 0  "@count"
207                              Name 28  "csb@count"
208                              Name 49  "coord"
209                              Name 53  "storeTemp"
210                              Name 58  "outtx"
211                              Name 64  "rwsb"
212                              MemberName 64(rwsb) 0  "@data"
213                              Name 66  "rwsb"
214                              Name 78  "nThreadId"
215                              Name 80  "nThreadId"
216                              Name 82  "param"
217                              MemberDecorate 19(sb_t) 0 Offset 0
218                              MemberDecorate 19(sb_t) 1 Offset 16
219                              Decorate 20 ArrayStride 32
220                              MemberDecorate 21(csb) 0 Offset 0
221                              Decorate 21(csb) BufferBlock
222                              Decorate 23(csb) DescriptorSet 0
223                              Decorate 23(csb) Binding 1
224                              MemberDecorate 26(csb@count) 0 Offset 0
225                              Decorate 26(csb@count) BufferBlock
226                              Decorate 28(csb@count) DescriptorSet 0
227                              Decorate 58(outtx) DescriptorSet 0
228                              Decorate 63 ArrayStride 16
229                              MemberDecorate 64(rwsb) 0 Offset 0
230                              Decorate 64(rwsb) BufferBlock
231                              Decorate 66(rwsb) DescriptorSet 0
232                              Decorate 80(nThreadId) BuiltIn GlobalInvocationId
233               2:             TypeVoid
234               3:             TypeFunction 2
235               6:             TypeInt 32 0
236               7:             TypeVector 6(int) 3
237               8:             TypePointer Function 7(ivec3)
238               9:             TypeFunction 2 8(ptr)
239              13:             TypeFloat 32
240              14:             TypeVector 13(float) 4
241              15:             TypeVector 6(int) 2
242        16(sb_t):             TypeStruct 14(fvec4) 15(ivec2)
243              17:             TypePointer Function 16(sb_t)
244        19(sb_t):             TypeStruct 14(fvec4) 15(ivec2)
245              20:             TypeRuntimeArray 19(sb_t)
246         21(csb):             TypeStruct 20
247              22:             TypePointer Uniform 21(csb)
248         23(csb):     22(ptr) Variable Uniform
249              24:             TypeInt 32 1
250              25:     24(int) Constant 0
251   26(csb@count):             TypeStruct 6(int)
252              27:             TypePointer Uniform 26(csb@count)
253   28(csb@count):     27(ptr) Variable Uniform
254              29:             TypePointer Uniform 6(int)
255              31:      6(int) Constant 4294967295
256              32:      6(int) Constant 1
257              33:      6(int) Constant 0
258              35:     24(int) Constant 4294967295
259              37:             TypePointer Uniform 19(sb_t)
260              41:             TypePointer Function 14(fvec4)
261              44:     24(int) Constant 1
262              45:             TypePointer Function 15(ivec2)
263              47:             TypeVector 13(float) 2
264              48:             TypePointer Function 47(fvec2)
265              56:             TypeImage 13(float) 2D nonsampled format:Rgba32f
266              57:             TypePointer UniformConstant 56
267       58(outtx):     57(ptr) Variable UniformConstant
268              63:             TypeRuntimeArray 14(fvec4)
269        64(rwsb):             TypeStruct 63
270              65:             TypePointer Uniform 64(rwsb)
271        66(rwsb):     65(ptr) Variable Uniform
272              67:             TypePointer Function 13(float)
273              74:             TypePointer Uniform 14(fvec4)
274              79:             TypePointer Input 7(ivec3)
275   80(nThreadId):     79(ptr) Variable Input
276         4(main):           2 Function None 3
277               5:             Label
278   78(nThreadId):      8(ptr) Variable Function
279       82(param):      8(ptr) Variable Function
280              81:    7(ivec3) Load 80(nThreadId)
281                              Store 78(nThreadId) 81
282              83:    7(ivec3) Load 78(nThreadId)
283                              Store 82(param) 83
284              84:           2 FunctionCall 11(@main(vu3;) 82(param)
285                              Return
286                              FunctionEnd
287  11(@main(vu3;):           2 Function None 9
288   10(nThreadId):      8(ptr) FunctionParameter
289              12:             Label
290        18(data):     17(ptr) Variable Function
291       49(coord):     48(ptr) Variable Function
292   53(storeTemp):     41(ptr) Variable Function
293              30:     29(ptr) AccessChain 28(csb@count) 25
294              34:      6(int) AtomicIAdd 30 32 33 31
295              36:      6(int) IAdd 34 35
296              38:     37(ptr) AccessChain 23(csb) 25 36
297              39:    19(sb_t) Load 38
298              40:   14(fvec4) CompositeExtract 39 0
299              42:     41(ptr) AccessChain 18(data) 25
300                              Store 42 40
301              43:   15(ivec2) CompositeExtract 39 1
302              46:     45(ptr) AccessChain 18(data) 44
303                              Store 46 43
304              50:     45(ptr) AccessChain 18(data) 44
305              51:   15(ivec2) Load 50
306              52:   47(fvec2) ConvertUToF 51
307                              Store 49(coord) 52
308              54:     41(ptr) AccessChain 18(data) 25
309              55:   14(fvec4) Load 54
310                              Store 53(storeTemp) 55
311              59:          56 Load 58(outtx)
312              60:   47(fvec2) Load 49(coord)
313              61:   15(ivec2) ConvertFToU 60
314              62:   14(fvec4) Load 53(storeTemp)
315                              ImageWrite 59 61 62
316              68:     67(ptr) AccessChain 49(coord) 33
317              69:   13(float) Load 68
318              70:      6(int) ConvertFToU 69
319              71:     67(ptr) AccessChain 49(coord) 32
320              72:   13(float) Load 71
321              73:      6(int) ConvertFToU 72
322              75:     74(ptr) AccessChain 66(rwsb) 25 73
323              76:   14(fvec4) Load 75
324              77:     74(ptr) AccessChain 66(rwsb) 25 70
325                              Store 77 76
326                              Return
327                              FunctionEnd
328