1hlsl.structbuffer.byte.frag
2Shader version: 500
3gl_FragCoord origin is upper left
40:? Sequence
50:5  Function Definition: @main(u1; ( temp 4-component vector of float)
60:5    Function Parameters:
70:5      'pos' ( in uint)
80:?     Sequence
90:7      Sequence
100:7        move second child to first child ( temp uint)
110:7          'size' ( temp uint)
120:7          array length ( temp uint)
130:7            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
140:7              'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
150:7              Constant:
160:7                0 (const uint)
170:12      Branch: Return with expression
180:11        add ( temp 4-component vector of float)
190:10          add ( temp 4-component vector of float)
200:9            add ( temp 4-component vector of float)
210:9              Convert uint to float ( temp float)
220:9                indirect index (layout( row_major std430) buffer uint)
230:9                  @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
240:9                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
250:9                    Constant:
260:9                      0 (const uint)
270:9                  right-shift ( temp int)
280:9                    'pos' ( in uint)
290:9                    Constant:
300:9                      2 (const int)
310:?               Construct vec4 ( temp 4-component vector of float)
320:?                 Convert uint to float ( temp 2-component vector of float)
330:?                   Sequence
340:10                    move second child to first child ( temp int)
350:10                      'byteAddrTemp' ( temp int)
360:10                      right-shift ( temp int)
370:10                        add ( temp uint)
380:10                          'pos' ( in uint)
390:10                          Constant:
400:10                            4 (const uint)
410:10                        Constant:
420:10                          2 (const int)
430:?                     Construct vec2 ( temp 2-component vector of uint)
440:10                      indirect index ( temp uint)
450:10                        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
460:10                          'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
470:10                          Constant:
480:10                            0 (const uint)
490:10                        'byteAddrTemp' ( temp int)
500:10                      indirect index ( temp uint)
510:10                        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
520:10                          'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
530:10                          Constant:
540:10                            0 (const uint)
550:10                        add ( temp int)
560:10                          'byteAddrTemp' ( temp int)
570:10                          Constant:
580:10                            1 (const int)
590:10                Constant:
600:10                  0.000000
610:10                Constant:
620:10                  0.000000
630:?             Construct vec4 ( temp 4-component vector of float)
640:?               Convert uint to float ( temp 3-component vector of float)
650:?                 Sequence
660:11                  move second child to first child ( temp int)
670:11                    'byteAddrTemp' ( temp int)
680:11                    right-shift ( temp int)
690:11                      add ( temp uint)
700:11                        'pos' ( in uint)
710:11                        Constant:
720:11                          8 (const uint)
730:11                      Constant:
740:11                        2 (const int)
750:?                   Construct vec3 ( temp 3-component vector of uint)
760:11                    indirect index ( temp uint)
770:11                      @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
780:11                        'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
790:11                        Constant:
800:11                          0 (const uint)
810:11                      'byteAddrTemp' ( temp int)
820:11                    indirect index ( temp uint)
830:11                      @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
840:11                        'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
850:11                        Constant:
860:11                          0 (const uint)
870:11                      add ( temp int)
880:11                        'byteAddrTemp' ( temp int)
890:11                        Constant:
900:11                          1 (const int)
910:11                    indirect index ( temp uint)
920:11                      @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
930:11                        'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
940:11                        Constant:
950:11                          0 (const uint)
960:11                      add ( temp int)
970:11                        'byteAddrTemp' ( temp int)
980:11                        Constant:
990:11                          2 (const int)
1000:11              Constant:
1010:11                0.000000
1020:?           Convert uint to float ( temp 4-component vector of float)
1030:?             Sequence
1040:12              move second child to first child ( temp int)
1050:12                'byteAddrTemp' ( temp int)
1060:12                right-shift ( temp int)
1070:12                  add ( temp uint)
1080:12                    'pos' ( in uint)
1090:12                    Constant:
1100:12                      12 (const uint)
1110:12                  Constant:
1120:12                    2 (const int)
1130:?               Construct vec4 ( temp 4-component vector of uint)
1140:12                indirect index ( temp uint)
1150:12                  @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
1160:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1170:12                    Constant:
1180:12                      0 (const uint)
1190:12                  'byteAddrTemp' ( temp int)
1200:12                indirect index ( temp uint)
1210:12                  @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
1220:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1230:12                    Constant:
1240:12                      0 (const uint)
1250:12                  add ( temp int)
1260:12                    'byteAddrTemp' ( temp int)
1270:12                    Constant:
1280:12                      1 (const int)
1290:12                indirect index ( temp uint)
1300:12                  @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
1310:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1320:12                    Constant:
1330:12                      0 (const uint)
1340:12                  add ( temp int)
1350:12                    'byteAddrTemp' ( temp int)
1360:12                    Constant:
1370:12                      2 (const int)
1380:12                indirect index ( temp uint)
1390:12                  @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
1400:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1410:12                    Constant:
1420:12                      0 (const uint)
1430:12                  add ( temp int)
1440:12                    'byteAddrTemp' ( temp int)
1450:12                    Constant:
1460:12                      3 (const int)
1470:5  Function Definition: main( ( temp void)
1480:5    Function Parameters:
1490:?     Sequence
1500:5      move second child to first child ( temp uint)
1510:?         'pos' ( temp uint)
1520:?         'pos' (layout( location=0) flat in uint)
1530:5      move second child to first child ( temp 4-component vector of float)
1540:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
1550:5        Function Call: @main(u1; ( temp 4-component vector of float)
1560:?           'pos' ( temp uint)
1570:?   Linker Objects
1580:?     'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1590:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
1600:?     'pos' (layout( location=0) flat in uint)
161
162
163Linked fragment stage:
164
165
166Shader version: 500
167gl_FragCoord origin is upper left
1680:? Sequence
1690:5  Function Definition: @main(u1; ( temp 4-component vector of float)
1700:5    Function Parameters:
1710:5      'pos' ( in uint)
1720:?     Sequence
1730:7      Sequence
1740:7        move second child to first child ( temp uint)
1750:7          'size' ( temp uint)
1760:7          array length ( temp uint)
1770:7            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
1780:7              'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1790:7              Constant:
1800:7                0 (const uint)
1810:12      Branch: Return with expression
1820:11        add ( temp 4-component vector of float)
1830:10          add ( temp 4-component vector of float)
1840:9            add ( temp 4-component vector of float)
1850:9              Convert uint to float ( temp float)
1860:9                indirect index (layout( row_major std430) buffer uint)
1870:9                  @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
1880:9                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
1890:9                    Constant:
1900:9                      0 (const uint)
1910:9                  right-shift ( temp int)
1920:9                    'pos' ( in uint)
1930:9                    Constant:
1940:9                      2 (const int)
1950:?               Construct vec4 ( temp 4-component vector of float)
1960:?                 Convert uint to float ( temp 2-component vector of float)
1970:?                   Sequence
1980:10                    move second child to first child ( temp int)
1990:10                      'byteAddrTemp' ( temp int)
2000:10                      right-shift ( temp int)
2010:10                        add ( temp uint)
2020:10                          'pos' ( in uint)
2030:10                          Constant:
2040:10                            4 (const uint)
2050:10                        Constant:
2060:10                          2 (const int)
2070:?                     Construct vec2 ( temp 2-component vector of uint)
2080:10                      indirect index ( temp uint)
2090:10                        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
2100:10                          'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
2110:10                          Constant:
2120:10                            0 (const uint)
2130:10                        'byteAddrTemp' ( temp int)
2140:10                      indirect index ( temp uint)
2150:10                        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
2160:10                          'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
2170:10                          Constant:
2180:10                            0 (const uint)
2190:10                        add ( temp int)
2200:10                          'byteAddrTemp' ( temp int)
2210:10                          Constant:
2220:10                            1 (const int)
2230:10                Constant:
2240:10                  0.000000
2250:10                Constant:
2260:10                  0.000000
2270:?             Construct vec4 ( temp 4-component vector of float)
2280:?               Convert uint to float ( temp 3-component vector of float)
2290:?                 Sequence
2300:11                  move second child to first child ( temp int)
2310:11                    'byteAddrTemp' ( temp int)
2320:11                    right-shift ( temp int)
2330:11                      add ( temp uint)
2340:11                        'pos' ( in uint)
2350:11                        Constant:
2360:11                          8 (const uint)
2370:11                      Constant:
2380:11                        2 (const int)
2390:?                   Construct vec3 ( temp 3-component vector of uint)
2400:11                    indirect index ( temp uint)
2410:11                      @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
2420:11                        'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
2430:11                        Constant:
2440:11                          0 (const uint)
2450:11                      'byteAddrTemp' ( temp int)
2460:11                    indirect index ( temp uint)
2470:11                      @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
2480:11                        'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
2490:11                        Constant:
2500:11                          0 (const uint)
2510:11                      add ( temp int)
2520:11                        'byteAddrTemp' ( temp int)
2530:11                        Constant:
2540:11                          1 (const int)
2550:11                    indirect index ( temp uint)
2560:11                      @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
2570:11                        'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
2580:11                        Constant:
2590:11                          0 (const uint)
2600:11                      add ( temp int)
2610:11                        'byteAddrTemp' ( temp int)
2620:11                        Constant:
2630:11                          2 (const int)
2640:11              Constant:
2650:11                0.000000
2660:?           Convert uint to float ( temp 4-component vector of float)
2670:?             Sequence
2680:12              move second child to first child ( temp int)
2690:12                'byteAddrTemp' ( temp int)
2700:12                right-shift ( temp int)
2710:12                  add ( temp uint)
2720:12                    'pos' ( in uint)
2730:12                    Constant:
2740:12                      12 (const uint)
2750:12                  Constant:
2760:12                    2 (const int)
2770:?               Construct vec4 ( temp 4-component vector of uint)
2780:12                indirect index ( temp uint)
2790:12                  @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
2800:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
2810:12                    Constant:
2820:12                      0 (const uint)
2830:12                  'byteAddrTemp' ( temp int)
2840:12                indirect index ( temp uint)
2850:12                  @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
2860:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
2870:12                    Constant:
2880:12                      0 (const uint)
2890:12                  add ( temp int)
2900:12                    'byteAddrTemp' ( temp int)
2910:12                    Constant:
2920:12                      1 (const int)
2930:12                indirect index ( temp uint)
2940:12                  @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
2950:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
2960:12                    Constant:
2970:12                      0 (const uint)
2980:12                  add ( temp int)
2990:12                    'byteAddrTemp' ( temp int)
3000:12                    Constant:
3010:12                      2 (const int)
3020:12                indirect index ( temp uint)
3030:12                  @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
3040:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
3050:12                    Constant:
3060:12                      0 (const uint)
3070:12                  add ( temp int)
3080:12                    'byteAddrTemp' ( temp int)
3090:12                    Constant:
3100:12                      3 (const int)
3110:5  Function Definition: main( ( temp void)
3120:5    Function Parameters:
3130:?     Sequence
3140:5      move second child to first child ( temp uint)
3150:?         'pos' ( temp uint)
3160:?         'pos' (layout( location=0) flat in uint)
3170:5      move second child to first child ( temp 4-component vector of float)
3180:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
3190:5        Function Call: @main(u1; ( temp 4-component vector of float)
3200:?           'pos' ( temp uint)
3210:?   Linker Objects
3220:?     'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
3230:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
3240:?     'pos' (layout( location=0) flat in uint)
325
326// Module Version 10000
327// Generated by (magic number): 80007
328// Id's are bound by 114
329
330                              Capability Shader
331               1:             ExtInstImport  "GLSL.std.450"
332                              MemoryModel Logical GLSL450
333                              EntryPoint Fragment 4  "main" 107 110
334                              ExecutionMode 4 OriginUpperLeft
335                              Source HLSL 500
336                              Name 4  "main"
337                              Name 12  "@main(u1;"
338                              Name 11  "pos"
339                              Name 14  "size"
340                              Name 16  "sbuf"
341                              MemberName 16(sbuf) 0  "@data"
342                              Name 18  "sbuf"
343                              Name 30  "byteAddrTemp"
344                              Name 53  "byteAddrTemp"
345                              Name 78  "byteAddrTemp"
346                              Name 105  "pos"
347                              Name 107  "pos"
348                              Name 110  "@entryPointOutput"
349                              Name 111  "param"
350                              Decorate 15 ArrayStride 4
351                              MemberDecorate 16(sbuf) 0 NonWritable
352                              MemberDecorate 16(sbuf) 0 Offset 0
353                              Decorate 16(sbuf) BufferBlock
354                              Decorate 18(sbuf) DescriptorSet 0
355                              Decorate 107(pos) Flat
356                              Decorate 107(pos) Location 0
357                              Decorate 110(@entryPointOutput) Location 0
358               2:             TypeVoid
359               3:             TypeFunction 2
360               6:             TypeInt 32 0
361               7:             TypePointer Function 6(int)
362               8:             TypeFloat 32
363               9:             TypeVector 8(float) 4
364              10:             TypeFunction 9(fvec4) 7(ptr)
365              15:             TypeRuntimeArray 6(int)
366        16(sbuf):             TypeStruct 15
367              17:             TypePointer Uniform 16(sbuf)
368        18(sbuf):     17(ptr) Variable Uniform
369              19:             TypeInt 32 1
370              21:     19(int) Constant 0
371              23:     19(int) Constant 2
372              25:             TypePointer Uniform 6(int)
373              29:             TypePointer Function 19(int)
374              32:      6(int) Constant 4
375              39:     19(int) Constant 1
376              43:             TypeVector 6(int) 2
377              45:             TypeVector 8(float) 2
378              47:    8(float) Constant 0
379              55:      6(int) Constant 8
380              69:             TypeVector 6(int) 3
381              71:             TypeVector 8(float) 3
382              80:      6(int) Constant 12
383              95:     19(int) Constant 3
384              99:             TypeVector 6(int) 4
385             106:             TypePointer Input 6(int)
386        107(pos):    106(ptr) Variable Input
387             109:             TypePointer Output 9(fvec4)
388110(@entryPointOutput):    109(ptr) Variable Output
389         4(main):           2 Function None 3
390               5:             Label
391        105(pos):      7(ptr) Variable Function
392      111(param):      7(ptr) Variable Function
393             108:      6(int) Load 107(pos)
394                              Store 105(pos) 108
395             112:      6(int) Load 105(pos)
396                              Store 111(param) 112
397             113:    9(fvec4) FunctionCall 12(@main(u1;) 111(param)
398                              Store 110(@entryPointOutput) 113
399                              Return
400                              FunctionEnd
401   12(@main(u1;):    9(fvec4) Function None 10
402         11(pos):      7(ptr) FunctionParameter
403              13:             Label
404        14(size):      7(ptr) Variable Function
40530(byteAddrTemp):     29(ptr) Variable Function
40653(byteAddrTemp):     29(ptr) Variable Function
40778(byteAddrTemp):     29(ptr) Variable Function
408              20:     19(int) ArrayLength 18(sbuf) 0
409                              Store 14(size) 20
410              22:      6(int) Load 11(pos)
411              24:     19(int) ShiftRightLogical 22 23
412              26:     25(ptr) AccessChain 18(sbuf) 21 24
413              27:      6(int) Load 26
414              28:    8(float) ConvertUToF 27
415              31:      6(int) Load 11(pos)
416              33:      6(int) IAdd 31 32
417              34:     19(int) ShiftRightLogical 33 23
418                              Store 30(byteAddrTemp) 34
419              35:     19(int) Load 30(byteAddrTemp)
420              36:     25(ptr) AccessChain 18(sbuf) 21 35
421              37:      6(int) Load 36
422              38:     19(int) Load 30(byteAddrTemp)
423              40:     19(int) IAdd 38 39
424              41:     25(ptr) AccessChain 18(sbuf) 21 40
425              42:      6(int) Load 41
426              44:   43(ivec2) CompositeConstruct 37 42
427              46:   45(fvec2) ConvertUToF 44
428              48:    8(float) CompositeExtract 46 0
429              49:    8(float) CompositeExtract 46 1
430              50:    9(fvec4) CompositeConstruct 48 49 47 47
431              51:    9(fvec4) CompositeConstruct 28 28 28 28
432              52:    9(fvec4) FAdd 51 50
433              54:      6(int) Load 11(pos)
434              56:      6(int) IAdd 54 55
435              57:     19(int) ShiftRightLogical 56 23
436                              Store 53(byteAddrTemp) 57
437              58:     19(int) Load 53(byteAddrTemp)
438              59:     25(ptr) AccessChain 18(sbuf) 21 58
439              60:      6(int) Load 59
440              61:     19(int) Load 53(byteAddrTemp)
441              62:     19(int) IAdd 61 39
442              63:     25(ptr) AccessChain 18(sbuf) 21 62
443              64:      6(int) Load 63
444              65:     19(int) Load 53(byteAddrTemp)
445              66:     19(int) IAdd 65 23
446              67:     25(ptr) AccessChain 18(sbuf) 21 66
447              68:      6(int) Load 67
448              70:   69(ivec3) CompositeConstruct 60 64 68
449              72:   71(fvec3) ConvertUToF 70
450              73:    8(float) CompositeExtract 72 0
451              74:    8(float) CompositeExtract 72 1
452              75:    8(float) CompositeExtract 72 2
453              76:    9(fvec4) CompositeConstruct 73 74 75 47
454              77:    9(fvec4) FAdd 52 76
455              79:      6(int) Load 11(pos)
456              81:      6(int) IAdd 79 80
457              82:     19(int) ShiftRightLogical 81 23
458                              Store 78(byteAddrTemp) 82
459              83:     19(int) Load 78(byteAddrTemp)
460              84:     25(ptr) AccessChain 18(sbuf) 21 83
461              85:      6(int) Load 84
462              86:     19(int) Load 78(byteAddrTemp)
463              87:     19(int) IAdd 86 39
464              88:     25(ptr) AccessChain 18(sbuf) 21 87
465              89:      6(int) Load 88
466              90:     19(int) Load 78(byteAddrTemp)
467              91:     19(int) IAdd 90 23
468              92:     25(ptr) AccessChain 18(sbuf) 21 91
469              93:      6(int) Load 92
470              94:     19(int) Load 78(byteAddrTemp)
471              96:     19(int) IAdd 94 95
472              97:     25(ptr) AccessChain 18(sbuf) 21 96
473              98:      6(int) Load 97
474             100:   99(ivec4) CompositeConstruct 85 89 93 98
475             101:    9(fvec4) ConvertUToF 100
476             102:    9(fvec4) FAdd 77 101
477                              ReturnValue 102
478                              FunctionEnd
479