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 unsized 1-element array of uint)
0:7              'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element 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 unsized 1-element array of uint)
0:9                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element 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:10              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 uint)
0:10                        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10                          'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10                          Constant:
0:10                            0 (const uint)
0:10                        'byteAddrTemp' ( temp int)
0:10                      indirect index ( temp uint)
0:10                        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10                          'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element 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:11            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 uint)
0:11                      @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11                        'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11                        Constant:
0:11                          0 (const uint)
0:11                      'byteAddrTemp' ( temp int)
0:11                    indirect index ( temp uint)
0:11                      @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11                        'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element 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 uint)
0:11                      @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11                        'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element 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 uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  'byteAddrTemp' ( temp int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element 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 uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element 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 uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element 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 unsized 1-element 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 unsized 1-element array of uint)
0:7              'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element 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 unsized 1-element array of uint)
0:9                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element 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:10              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 uint)
0:10                        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10                          'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:10                          Constant:
0:10                            0 (const uint)
0:10                        'byteAddrTemp' ( temp int)
0:10                      indirect index ( temp uint)
0:10                        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:10                          'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element 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:11            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 uint)
0:11                      @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11                        'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:11                        Constant:
0:11                          0 (const uint)
0:11                      'byteAddrTemp' ( temp int)
0:11                    indirect index ( temp uint)
0:11                      @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11                        'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element 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 uint)
0:11                      @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:11                        'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element 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 uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
0:12                    Constant:
0:12                      0 (const uint)
0:12                  'byteAddrTemp' ( temp int)
0:12                indirect index ( temp uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element 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 uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element 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 uint)
0:12                  @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
0:12                    'sbuf' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element 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 unsized 1-element 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): 8000b
// 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 18(sbuf) Binding 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
              20:             TypeInt 32 1
              21:     20(int) Constant 0
              23:     20(int) Constant 2
              25:             TypePointer Uniform 6(int)
              29:             TypePointer Function 20(int)
              32:      6(int) Constant 4
              39:     20(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:     20(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
              19:      6(int) ArrayLength 18(sbuf) 0
                              Store 14(size) 19
              22:      6(int) Load 11(pos)
              24:     20(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:     20(int) ShiftRightLogical 33 23
                              Store 30(byteAddrTemp) 34
              35:     20(int) Load 30(byteAddrTemp)
              36:     25(ptr) AccessChain 18(sbuf) 21 35
              37:      6(int) Load 36
              38:     20(int) Load 30(byteAddrTemp)
              40:     20(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:     20(int) ShiftRightLogical 56 23
                              Store 53(byteAddrTemp) 57
              58:     20(int) Load 53(byteAddrTemp)
              59:     25(ptr) AccessChain 18(sbuf) 21 58
              60:      6(int) Load 59
              61:     20(int) Load 53(byteAddrTemp)
              62:     20(int) IAdd 61 39
              63:     25(ptr) AccessChain 18(sbuf) 21 62
              64:      6(int) Load 63
              65:     20(int) Load 53(byteAddrTemp)
              66:     20(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:     20(int) ShiftRightLogical 81 23
                              Store 78(byteAddrTemp) 82
              83:     20(int) Load 78(byteAddrTemp)
              84:     25(ptr) AccessChain 18(sbuf) 21 83
              85:      6(int) Load 84
              86:     20(int) Load 78(byteAddrTemp)
              87:     20(int) IAdd 86 39
              88:     25(ptr) AccessChain 18(sbuf) 21 87
              89:      6(int) Load 88
              90:     20(int) Load 78(byteAddrTemp)
              91:     20(int) IAdd 90 23
              92:     25(ptr) AccessChain 18(sbuf) 21 91
              93:      6(int) Load 92
              94:     20(int) Load 78(byteAddrTemp)
              96:     20(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
