hlsl.structbuffer.byte.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:5  Function Definition: @main(u1; ( temp 4-component vector of float)
0:5    Function Parameters: 
0:5      'pos' ( in uint)
0:?     Sequence
0:7      Sequence
0:7        move second child to first child ( temp uint)
0:7          'size' ( temp uint)
0:7          array length ( temp uint)
0:7            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:7              'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:7              Constant:
0:7                0 (const uint)
0:12      Branch: Return with expression
0:11        add ( temp 4-component vector of float)
0:10          add ( temp 4-component vector of float)
0:9            add ( temp 4-component vector of float)
0:9              Convert uint to float ( temp float)
0:9                indirect index (layout( row_major std430) buffer uint)
0:9                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:9                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:9                    Constant:
0:9                      0 (const uint)
0:9                  right-shift ( temp int)
0:9                    'pos' ( in uint)
0:9                    Constant:
0:9                      2 (const int)
0:?               Construct vec4 ( temp 4-component vector of float)
0:?                 Convert uint to float ( temp 2-component vector of float)
0:?                   Sequence
0:10                    move second child to first child ( temp int)
0:10                      'byteAddrTemp' ( temp int)
0:10                      right-shift ( temp int)
0:10                        add ( temp uint)
0:10                          'pos' ( in uint)
0:10                          Constant:
0:10                            4 (const uint)
0:10                        Constant:
0:10                          2 (const int)
0:?                     Construct vec2 ( temp 2-component vector of uint)
0:10                      indirect index ( temp float)
0:10                        @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10                          'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10                          Constant:
0:10                            0 (const uint)
0:10                        'byteAddrTemp' ( temp int)
0:10                      indirect index ( temp float)
0:10                        @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10                          'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10                          Constant:
0:10                            0 (const uint)
0:10                        add ( temp int)
0:10                          'byteAddrTemp' ( temp int)
0:10                          Constant:
0:10                            1 (const int)
0:10                Constant:
0:10                  0.000000
0:10                Constant:
0:10                  0.000000
0:?             Construct vec4 ( temp 4-component vector of float)
0:?               Convert uint to float ( temp 3-component vector of float)
0:?                 Sequence
0:11                  move second child to first child ( temp int)
0:11                    'byteAddrTemp' ( temp int)
0:11                    right-shift ( temp int)
0:11                      add ( temp uint)
0:11                        'pos' ( in uint)
0:11                        Constant:
0:11                          8 (const uint)
0:11                      Constant:
0:11                        2 (const int)
0:?                   Construct vec3 ( temp 3-component vector of uint)
0:11                    indirect index ( temp float)
0:11                      @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                        'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                        Constant:
0:11                          0 (const uint)
0:11                      'byteAddrTemp' ( temp int)
0:11                    indirect index ( temp float)
0:11                      @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                        'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                        Constant:
0:11                          0 (const uint)
0:11                      add ( temp int)
0:11                        'byteAddrTemp' ( temp int)
0:11                        Constant:
0:11                          1 (const int)
0:11                    indirect index ( temp float)
0:11                      @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                        'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                        Constant:
0:11                          0 (const uint)
0:11                      add ( temp int)
0:11                        'byteAddrTemp' ( temp int)
0:11                        Constant:
0:11                          2 (const int)
0:11              Constant:
0:11                0.000000
0:?           Convert uint to float ( temp 4-component vector of float)
0:?             Sequence
0:12              move second child to first child ( temp int)
0:12                'byteAddrTemp' ( temp int)
0:12                right-shift ( temp int)
0:12                  add ( temp uint)
0:12                    'pos' ( in uint)
0:12                    Constant:
0:12                      12 (const uint)
0:12                  Constant:
0:12                    2 (const int)
0:?               Construct vec4 ( temp 4-component vector of uint)
0:12                indirect index ( temp float)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  'byteAddrTemp' ( temp int)
0:12                indirect index ( temp float)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      1 (const int)
0:12                indirect index ( temp float)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      2 (const int)
0:12                indirect index ( temp float)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      3 (const int)
0:5  Function Definition: main( ( temp void)
0:5    Function Parameters: 
0:?     Sequence
0:5      move second child to first child ( temp uint)
0:?         'pos' ( temp uint)
0:?         'pos' (layout( location=0) flat in uint)
0:5      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:5        Function Call: @main(u1; ( temp 4-component vector of float)
0:?           'pos' ( temp uint)
0:?   Linker Objects
0:?     'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'pos' (layout( location=0) flat in uint)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:5  Function Definition: @main(u1; ( temp 4-component vector of float)
0:5    Function Parameters: 
0:5      'pos' ( in uint)
0:?     Sequence
0:7      Sequence
0:7        move second child to first child ( temp uint)
0:7          'size' ( temp uint)
0:7          array length ( temp uint)
0:7            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:7              'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:7              Constant:
0:7                0 (const uint)
0:12      Branch: Return with expression
0:11        add ( temp 4-component vector of float)
0:10          add ( temp 4-component vector of float)
0:9            add ( temp 4-component vector of float)
0:9              Convert uint to float ( temp float)
0:9                indirect index (layout( row_major std430) buffer uint)
0:9                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:9                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:9                    Constant:
0:9                      0 (const uint)
0:9                  right-shift ( temp int)
0:9                    'pos' ( in uint)
0:9                    Constant:
0:9                      2 (const int)
0:?               Construct vec4 ( temp 4-component vector of float)
0:?                 Convert uint to float ( temp 2-component vector of float)
0:?                   Sequence
0:10                    move second child to first child ( temp int)
0:10                      'byteAddrTemp' ( temp int)
0:10                      right-shift ( temp int)
0:10                        add ( temp uint)
0:10                          'pos' ( in uint)
0:10                          Constant:
0:10                            4 (const uint)
0:10                        Constant:
0:10                          2 (const int)
0:?                     Construct vec2 ( temp 2-component vector of uint)
0:10                      indirect index ( temp float)
0:10                        @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10                          'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10                          Constant:
0:10                            0 (const uint)
0:10                        'byteAddrTemp' ( temp int)
0:10                      indirect index ( temp float)
0:10                        @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:10                          'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:10                          Constant:
0:10                            0 (const uint)
0:10                        add ( temp int)
0:10                          'byteAddrTemp' ( temp int)
0:10                          Constant:
0:10                            1 (const int)
0:10                Constant:
0:10                  0.000000
0:10                Constant:
0:10                  0.000000
0:?             Construct vec4 ( temp 4-component vector of float)
0:?               Convert uint to float ( temp 3-component vector of float)
0:?                 Sequence
0:11                  move second child to first child ( temp int)
0:11                    'byteAddrTemp' ( temp int)
0:11                    right-shift ( temp int)
0:11                      add ( temp uint)
0:11                        'pos' ( in uint)
0:11                        Constant:
0:11                          8 (const uint)
0:11                      Constant:
0:11                        2 (const int)
0:?                   Construct vec3 ( temp 3-component vector of uint)
0:11                    indirect index ( temp float)
0:11                      @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                        'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                        Constant:
0:11                          0 (const uint)
0:11                      'byteAddrTemp' ( temp int)
0:11                    indirect index ( temp float)
0:11                      @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                        'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                        Constant:
0:11                          0 (const uint)
0:11                      add ( temp int)
0:11                        'byteAddrTemp' ( temp int)
0:11                        Constant:
0:11                          1 (const int)
0:11                    indirect index ( temp float)
0:11                      @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:11                        'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:11                        Constant:
0:11                          0 (const uint)
0:11                      add ( temp int)
0:11                        'byteAddrTemp' ( temp int)
0:11                        Constant:
0:11                          2 (const int)
0:11              Constant:
0:11                0.000000
0:?           Convert uint to float ( temp 4-component vector of float)
0:?             Sequence
0:12              move second child to first child ( temp int)
0:12                'byteAddrTemp' ( temp int)
0:12                right-shift ( temp int)
0:12                  add ( temp uint)
0:12                    'pos' ( in uint)
0:12                    Constant:
0:12                      12 (const uint)
0:12                  Constant:
0:12                    2 (const int)
0:?               Construct vec4 ( temp 4-component vector of uint)
0:12                indirect index ( temp float)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  'byteAddrTemp' ( temp int)
0:12                indirect index ( temp float)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      1 (const int)
0:12                indirect index ( temp float)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      2 (const int)
0:12                indirect index ( temp float)
0:12                  @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  add ( temp int)
0:12                    'byteAddrTemp' ( temp int)
0:12                    Constant:
0:12                      3 (const int)
0:5  Function Definition: main( ( temp void)
0:5    Function Parameters: 
0:?     Sequence
0:5      move second child to first child ( temp uint)
0:?         'pos' ( temp uint)
0:?         'pos' (layout( location=0) flat in uint)
0:5      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:5        Function Call: @main(u1; ( temp 4-component vector of float)
0:?           'pos' ( temp uint)
0:?   Linker Objects
0:?     'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'pos' (layout( location=0) flat in uint)

// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 114

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 107 110
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 12  "@main(u1;"
                              Name 11  "pos"
                              Name 14  "size"
                              Name 16  "sbuf"
                              MemberName 16(sbuf) 0  "@data"
                              Name 18  "sbuf"
                              Name 30  "byteAddrTemp"
                              Name 53  "byteAddrTemp"
                              Name 78  "byteAddrTemp"
                              Name 105  "pos"
                              Name 107  "pos"
                              Name 110  "@entryPointOutput"
                              Name 111  "param"
                              Decorate 15 ArrayStride 4
                              MemberDecorate 16(sbuf) 0 NonWritable
                              MemberDecorate 16(sbuf) 0 Offset 0
                              Decorate 16(sbuf) BufferBlock
                              Decorate 18(sbuf) DescriptorSet 0
                              Decorate 107(pos) Flat
                              Decorate 107(pos) Location 0
                              Decorate 110(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypePointer Function 6(int)
               8:             TypeFloat 32
               9:             TypeVector 8(float) 4
              10:             TypeFunction 9(fvec4) 7(ptr)
              15:             TypeRuntimeArray 6(int)
        16(sbuf):             TypeStruct 15
              17:             TypePointer Uniform 16(sbuf)
        18(sbuf):     17(ptr) Variable Uniform
              19:             TypeInt 32 1
              21:     19(int) Constant 0
              23:     19(int) Constant 2
              25:             TypePointer Uniform 6(int)
              29:             TypePointer Function 19(int)
              32:      6(int) Constant 4
              39:     19(int) Constant 1
              43:             TypeVector 6(int) 2
              45:             TypeVector 8(float) 2
              47:    8(float) Constant 0
              55:      6(int) Constant 8
              69:             TypeVector 6(int) 3
              71:             TypeVector 8(float) 3
              80:      6(int) Constant 12
              95:     19(int) Constant 3
              99:             TypeVector 6(int) 4
             106:             TypePointer Input 6(int)
        107(pos):    106(ptr) Variable Input
             109:             TypePointer Output 9(fvec4)
110(@entryPointOutput):    109(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
        105(pos):      7(ptr) Variable Function
      111(param):      7(ptr) Variable Function
             108:      6(int) Load 107(pos)
                              Store 105(pos) 108
             112:      6(int) Load 105(pos)
                              Store 111(param) 112
             113:    9(fvec4) FunctionCall 12(@main(u1;) 111(param)
                              Store 110(@entryPointOutput) 113
                              Return
                              FunctionEnd
   12(@main(u1;):    9(fvec4) Function None 10
         11(pos):      7(ptr) FunctionParameter
              13:             Label
        14(size):      7(ptr) Variable Function
30(byteAddrTemp):     29(ptr) Variable Function
53(byteAddrTemp):     29(ptr) Variable Function
78(byteAddrTemp):     29(ptr) Variable Function
              20:     19(int) ArrayLength 18(sbuf) 0
                              Store 14(size) 20
              22:      6(int) Load 11(pos)
              24:     19(int) ShiftRightLogical 22 23
              26:     25(ptr) AccessChain 18(sbuf) 21 24
              27:      6(int) Load 26
              28:    8(float) ConvertUToF 27
              31:      6(int) Load 11(pos)
              33:      6(int) IAdd 31 32
              34:     19(int) ShiftRightLogical 33 23
                              Store 30(byteAddrTemp) 34
              35:     19(int) Load 30(byteAddrTemp)
              36:     25(ptr) AccessChain 18(sbuf) 21 35
              37:      6(int) Load 36
              38:     19(int) Load 30(byteAddrTemp)
              40:     19(int) IAdd 38 39
              41:     25(ptr) AccessChain 18(sbuf) 21 40
              42:      6(int) Load 41
              44:   43(ivec2) CompositeConstruct 37 42
              46:   45(fvec2) ConvertUToF 44
              48:    8(float) CompositeExtract 46 0
              49:    8(float) CompositeExtract 46 1
              50:    9(fvec4) CompositeConstruct 48 49 47 47
              51:    9(fvec4) CompositeConstruct 28 28 28 28
              52:    9(fvec4) FAdd 51 50
              54:      6(int) Load 11(pos)
              56:      6(int) IAdd 54 55
              57:     19(int) ShiftRightLogical 56 23
                              Store 53(byteAddrTemp) 57
              58:     19(int) Load 53(byteAddrTemp)
              59:     25(ptr) AccessChain 18(sbuf) 21 58
              60:      6(int) Load 59
              61:     19(int) Load 53(byteAddrTemp)
              62:     19(int) IAdd 61 39
              63:     25(ptr) AccessChain 18(sbuf) 21 62
              64:      6(int) Load 63
              65:     19(int) Load 53(byteAddrTemp)
              66:     19(int) IAdd 65 23
              67:     25(ptr) AccessChain 18(sbuf) 21 66
              68:      6(int) Load 67
              70:   69(ivec3) CompositeConstruct 60 64 68
              72:   71(fvec3) ConvertUToF 70
              73:    8(float) CompositeExtract 72 0
              74:    8(float) CompositeExtract 72 1
              75:    8(float) CompositeExtract 72 2
              76:    9(fvec4) CompositeConstruct 73 74 75 47
              77:    9(fvec4) FAdd 52 76
              79:      6(int) Load 11(pos)
              81:      6(int) IAdd 79 80
              82:     19(int) ShiftRightLogical 81 23
                              Store 78(byteAddrTemp) 82
              83:     19(int) Load 78(byteAddrTemp)
              84:     25(ptr) AccessChain 18(sbuf) 21 83
              85:      6(int) Load 84
              86:     19(int) Load 78(byteAddrTemp)
              87:     19(int) IAdd 86 39
              88:     25(ptr) AccessChain 18(sbuf) 21 87
              89:      6(int) Load 88
              90:     19(int) Load 78(byteAddrTemp)
              91:     19(int) IAdd 90 23
              92:     25(ptr) AccessChain 18(sbuf) 21 91
              93:      6(int) Load 92
              94:     19(int) Load 78(byteAddrTemp)
              96:     19(int) IAdd 94 95
              97:     25(ptr) AccessChain 18(sbuf) 21 96
              98:      6(int) Load 97
             100:   99(ivec4) CompositeConstruct 85 89 93 98
             101:    9(fvec4) ConvertUToF 100
             102:    9(fvec4) FAdd 77 101
                              ReturnValue 102
                              FunctionEnd
