1hlsl.buffer_ref_parameter.comp
2Shader version: 500
3local_size = (64, 1, 1)
40:? Sequence
50:4  Function Definition: pull_position(block--u1[0]1;u1; ( temp 3-component vector of float)
60:4    Function Parameters:
70:4      'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
80:4      'vertex_id' ( in uint)
90:?     Sequence
100:5      Branch: Return with expression
110:?         intBitsToFloat ( temp 3-component vector of float)
120:?           Sequence
130:5            move second child to first child ( temp int)
140:5              'byteAddrTemp' ( temp int)
150:5              right-shift ( temp int)
160:5                component-wise multiply ( temp uint)
170:5                  component-wise multiply ( temp uint)
180:5                    'vertex_id' ( in uint)
190:5                    Constant:
200:5                      3 (const uint)
210:5                  Constant:
220:5                    4 (const uint)
230:5                Constant:
240:5                  2 (const int)
250:?             Construct vec3 ( temp 3-component vector of uint)
260:5              indirect index ( temp uint)
270:5                @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
280:5                  'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
290:5                  Constant:
300:5                    0 (const uint)
310:5                'byteAddrTemp' ( temp int)
320:5              indirect index ( temp uint)
330:5                @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
340:5                  'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
350:5                  Constant:
360:5                    0 (const uint)
370:5                add ( temp int)
380:5                  'byteAddrTemp' ( temp int)
390:5                  Constant:
400:5                    1 (const int)
410:5              indirect index ( temp uint)
420:5                @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
430:5                  'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
440:5                  Constant:
450:5                    0 (const uint)
460:5                add ( temp int)
470:5                  'byteAddrTemp' ( temp int)
480:5                  Constant:
490:5                    2 (const int)
500:9  Function Definition: @main(u1; ( temp void)
510:9    Function Parameters:
520:9      'gi' ( in uint)
530:?     Sequence
540:10      Sequence
550:10        move second child to first child ( temp 3-component vector of float)
560:10          'position_ms' ( temp 3-component vector of float)
570:10          Function Call: pull_position(block--u1[0]1;u1; ( temp 3-component vector of float)
580:10            'buffer_position_ms' (layout( set=0 binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
590:10            'gi' ( in uint)
600:?       Sequence
610:12        move second child to first child ( temp int)
620:12          'byteAddrTemp' ( temp int)
630:12          right-shift ( temp int)
640:12            Constant:
650:12              0 (const int)
660:12            Constant:
670:12              2 (const int)
680:12        move second child to first child ( temp uint)
690:12          indirect index (layout( row_major std430) buffer uint)
700:12            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
710:12              'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
720:12              Constant:
730:12                0 (const uint)
740:12            'byteAddrTemp' ( temp int)
750:12          direct index ( temp uint)
760:12            floatBitsToUint ( temp 3-component vector of uint)
770:12              'position_ms' ( temp 3-component vector of float)
780:12            Constant:
790:12              0 (const int)
800:12        move second child to first child ( temp uint)
810:12          indirect index (layout( row_major std430) buffer uint)
820:12            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
830:12              'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
840:12              Constant:
850:12                0 (const uint)
860:12            add ( temp int)
870:12              'byteAddrTemp' ( temp int)
880:12              Constant:
890:12                1 (const int)
900:12          direct index ( temp uint)
910:12            floatBitsToUint ( temp 3-component vector of uint)
920:12              'position_ms' ( temp 3-component vector of float)
930:12            Constant:
940:12              1 (const int)
950:12        move second child to first child ( temp uint)
960:12          indirect index (layout( row_major std430) buffer uint)
970:12            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
980:12              'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
990:12              Constant:
1000:12                0 (const uint)
1010:12            add ( temp int)
1020:12              'byteAddrTemp' ( temp int)
1030:12              Constant:
1040:12                2 (const int)
1050:12          direct index ( temp uint)
1060:12            floatBitsToUint ( temp 3-component vector of uint)
1070:12              'position_ms' ( temp 3-component vector of float)
1080:12            Constant:
1090:12              2 (const int)
1100:9  Function Definition: main( ( temp void)
1110:9    Function Parameters:
1120:?     Sequence
1130:9      move second child to first child ( temp uint)
1140:?         'gi' ( temp uint)
1150:?         'gi' ( in uint LocalInvocationIndex)
1160:9      Function Call: @main(u1; ( temp void)
1170:?         'gi' ( temp uint)
1180:?   Linker Objects
1190:?     'buffer_position_ms' (layout( set=0 binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1200:?     'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1210:?     'gi' ( in uint LocalInvocationIndex)
122
123
124Linked compute stage:
125
126
127Shader version: 500
128local_size = (64, 1, 1)
1290:? Sequence
1300:4  Function Definition: pull_position(block--u1[0]1;u1; ( temp 3-component vector of float)
1310:4    Function Parameters:
1320:4      'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1330:4      'vertex_id' ( in uint)
1340:?     Sequence
1350:5      Branch: Return with expression
1360:?         intBitsToFloat ( temp 3-component vector of float)
1370:?           Sequence
1380:5            move second child to first child ( temp int)
1390:5              'byteAddrTemp' ( temp int)
1400:5              right-shift ( temp int)
1410:5                component-wise multiply ( temp uint)
1420:5                  component-wise multiply ( temp uint)
1430:5                    'vertex_id' ( in uint)
1440:5                    Constant:
1450:5                      3 (const uint)
1460:5                  Constant:
1470:5                    4 (const uint)
1480:5                Constant:
1490:5                  2 (const int)
1500:?             Construct vec3 ( temp 3-component vector of uint)
1510:5              indirect index ( temp uint)
1520:5                @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
1530:5                  'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1540:5                  Constant:
1550:5                    0 (const uint)
1560:5                'byteAddrTemp' ( temp int)
1570:5              indirect index ( temp uint)
1580:5                @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
1590:5                  'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1600:5                  Constant:
1610:5                    0 (const uint)
1620:5                add ( temp int)
1630:5                  'byteAddrTemp' ( temp int)
1640:5                  Constant:
1650:5                    1 (const int)
1660:5              indirect index ( temp uint)
1670:5                @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
1680:5                  'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1690:5                  Constant:
1700:5                    0 (const uint)
1710:5                add ( temp int)
1720:5                  'byteAddrTemp' ( temp int)
1730:5                  Constant:
1740:5                    2 (const int)
1750:9  Function Definition: @main(u1; ( temp void)
1760:9    Function Parameters:
1770:9      'gi' ( in uint)
1780:?     Sequence
1790:10      Sequence
1800:10        move second child to first child ( temp 3-component vector of float)
1810:10          'position_ms' ( temp 3-component vector of float)
1820:10          Function Call: pull_position(block--u1[0]1;u1; ( temp 3-component vector of float)
1830:10            'buffer_position_ms' (layout( set=0 binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1840:10            'gi' ( in uint)
1850:?       Sequence
1860:12        move second child to first child ( temp int)
1870:12          'byteAddrTemp' ( temp int)
1880:12          right-shift ( temp int)
1890:12            Constant:
1900:12              0 (const int)
1910:12            Constant:
1920:12              2 (const int)
1930:12        move second child to first child ( temp uint)
1940:12          indirect index (layout( row_major std430) buffer uint)
1950:12            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
1960:12              'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1970:12              Constant:
1980:12                0 (const uint)
1990:12            'byteAddrTemp' ( temp int)
2000:12          direct index ( temp uint)
2010:12            floatBitsToUint ( temp 3-component vector of uint)
2020:12              'position_ms' ( temp 3-component vector of float)
2030:12            Constant:
2040:12              0 (const int)
2050:12        move second child to first child ( temp uint)
2060:12          indirect index (layout( row_major std430) buffer uint)
2070:12            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
2080:12              'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
2090:12              Constant:
2100:12                0 (const uint)
2110:12            add ( temp int)
2120:12              'byteAddrTemp' ( temp int)
2130:12              Constant:
2140:12                1 (const int)
2150:12          direct index ( temp uint)
2160:12            floatBitsToUint ( temp 3-component vector of uint)
2170:12              'position_ms' ( temp 3-component vector of float)
2180:12            Constant:
2190:12              1 (const int)
2200:12        move second child to first child ( temp uint)
2210:12          indirect index (layout( row_major std430) buffer uint)
2220:12            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
2230:12              'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
2240:12              Constant:
2250:12                0 (const uint)
2260:12            add ( temp int)
2270:12              'byteAddrTemp' ( temp int)
2280:12              Constant:
2290:12                2 (const int)
2300:12          direct index ( temp uint)
2310:12            floatBitsToUint ( temp 3-component vector of uint)
2320:12              'position_ms' ( temp 3-component vector of float)
2330:12            Constant:
2340:12              2 (const int)
2350:9  Function Definition: main( ( temp void)
2360:9    Function Parameters:
2370:?     Sequence
2380:9      move second child to first child ( temp uint)
2390:?         'gi' ( temp uint)
2400:?         'gi' ( in uint LocalInvocationIndex)
2410:9      Function Call: @main(u1; ( temp void)
2420:?         'gi' ( temp uint)
2430:?   Linker Objects
2440:?     'buffer_position_ms' (layout( set=0 binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
2450:?     'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
2460:?     'gi' ( in uint LocalInvocationIndex)
247
248// Module Version 10400
249// Generated by (magic number): 8000b
250// Id's are bound by 90
251
252                              Capability Shader
253               1:             ExtInstImport  "GLSL.std.450"
254                              MemoryModel Logical GLSL450
255                              EntryPoint GLCompute 4  "main" 53 62 85
256                              ExecutionMode 4 LocalSize 64 1 1
257                              Source HLSL 500
258                              Name 4  "main"
259                              Name 8  ""
260                              MemberName 8 0  "@data"
261                              Name 16  "pull_position(block--u1[0]1;u1;"
262                              Name 14  "buffer_position"
263                              Name 15  "vertex_id"
264                              Name 20  "@main(u1;"
265                              Name 19  "gi"
266                              Name 24  "byteAddrTemp"
267                              Name 52  "position_ms"
268                              Name 53  "buffer_position_ms"
269                              Name 54  "param"
270                              Name 57  "byteAddrTemp"
271                              Name 60  "r"
272                              MemberName 60(r) 0  "@data"
273                              Name 62  "r"
274                              Name 83  "gi"
275                              Name 85  "gi"
276                              Name 87  "param"
277                              Decorate 7 ArrayStride 4
278                              MemberDecorate 8 0 NonWritable
279                              MemberDecorate 8 0 Offset 0
280                              Decorate 8 Block
281                              Decorate 14(buffer_position) NonWritable
282                              Decorate 53(buffer_position_ms) DescriptorSet 0
283                              Decorate 53(buffer_position_ms) Binding 0
284                              Decorate 59 ArrayStride 4
285                              MemberDecorate 60(r) 0 Offset 0
286                              Decorate 60(r) Block
287                              Decorate 62(r) DescriptorSet 0
288                              Decorate 62(r) Binding 1
289                              Decorate 85(gi) BuiltIn LocalInvocationIndex
290               2:             TypeVoid
291               3:             TypeFunction 2
292               6:             TypeInt 32 0
293               7:             TypeRuntimeArray 6(int)
294               8:             TypeStruct 7
295               9:             TypePointer StorageBuffer 8(struct)
296              10:             TypePointer Function 6(int)
297              11:             TypeFloat 32
298              12:             TypeVector 11(float) 3
299              13:             TypeFunction 12(fvec3) 9(ptr) 10(ptr)
300              18:             TypeFunction 2 10(ptr)
301              22:             TypeInt 32 1
302              23:             TypePointer Function 22(int)
303              26:      6(int) Constant 3
304              28:      6(int) Constant 4
305              30:     22(int) Constant 2
306              32:     22(int) Constant 0
307              34:             TypePointer StorageBuffer 6(int)
308              38:     22(int) Constant 1
309              46:             TypeVector 6(int) 3
310              51:             TypePointer Function 12(fvec3)
31153(buffer_position_ms):      9(ptr) Variable StorageBuffer
312              59:             TypeRuntimeArray 6(int)
313           60(r):             TypeStruct 59
314              61:             TypePointer StorageBuffer 60(r)
315           62(r):     61(ptr) Variable StorageBuffer
316              66:      6(int) Constant 0
317              73:      6(int) Constant 1
318              80:      6(int) Constant 2
319              84:             TypePointer Input 6(int)
320          85(gi):     84(ptr) Variable Input
321         4(main):           2 Function None 3
322               5:             Label
323          83(gi):     10(ptr) Variable Function
324       87(param):     10(ptr) Variable Function
325              86:      6(int) Load 85(gi)
326                              Store 83(gi) 86
327              88:      6(int) Load 83(gi)
328                              Store 87(param) 88
329              89:           2 FunctionCall 20(@main(u1;) 87(param)
330                              Return
331                              FunctionEnd
33216(pull_position(block--u1[0]1;u1;):   12(fvec3) Function None 13
33314(buffer_position):      9(ptr) FunctionParameter
334   15(vertex_id):     10(ptr) FunctionParameter
335              17:             Label
33624(byteAddrTemp):     23(ptr) Variable Function
337              25:      6(int) Load 15(vertex_id)
338              27:      6(int) IMul 25 26
339              29:      6(int) IMul 27 28
340              31:     22(int) ShiftRightLogical 29 30
341                              Store 24(byteAddrTemp) 31
342              33:     22(int) Load 24(byteAddrTemp)
343              35:     34(ptr) AccessChain 14(buffer_position) 32 33
344              36:      6(int) Load 35
345              37:     22(int) Load 24(byteAddrTemp)
346              39:     22(int) IAdd 37 38
347              40:     34(ptr) AccessChain 14(buffer_position) 32 39
348              41:      6(int) Load 40
349              42:     22(int) Load 24(byteAddrTemp)
350              43:     22(int) IAdd 42 30
351              44:     34(ptr) AccessChain 14(buffer_position) 32 43
352              45:      6(int) Load 44
353              47:   46(ivec3) CompositeConstruct 36 41 45
354              48:   12(fvec3) Bitcast 47
355                              ReturnValue 48
356                              FunctionEnd
357   20(@main(u1;):           2 Function None 18
358          19(gi):     10(ptr) FunctionParameter
359              21:             Label
360 52(position_ms):     51(ptr) Variable Function
361       54(param):     10(ptr) Variable Function
36257(byteAddrTemp):     23(ptr) Variable Function
363              55:      6(int) Load 19(gi)
364                              Store 54(param) 55
365              56:   12(fvec3) FunctionCall 16(pull_position(block--u1[0]1;u1;) 53(buffer_position_ms) 54(param)
366                              Store 52(position_ms) 56
367              58:     22(int) ShiftRightArithmetic 32 30
368                              Store 57(byteAddrTemp) 58
369              63:     22(int) Load 57(byteAddrTemp)
370              64:   12(fvec3) Load 52(position_ms)
371              65:   46(ivec3) Bitcast 64
372              67:      6(int) CompositeExtract 65 0
373              68:     34(ptr) AccessChain 62(r) 32 63
374                              Store 68 67
375              69:     22(int) Load 57(byteAddrTemp)
376              70:     22(int) IAdd 69 38
377              71:   12(fvec3) Load 52(position_ms)
378              72:   46(ivec3) Bitcast 71
379              74:      6(int) CompositeExtract 72 1
380              75:     34(ptr) AccessChain 62(r) 32 70
381                              Store 75 74
382              76:     22(int) Load 57(byteAddrTemp)
383              77:     22(int) IAdd 76 30
384              78:   12(fvec3) Load 52(position_ms)
385              79:   46(ivec3) Bitcast 78
386              81:      6(int) CompositeExtract 79 2
387              82:     34(ptr) AccessChain 62(r) 32 77
388                              Store 82 81
389                              Return
390                              FunctionEnd
391