hlsl.load.rwbuffer.dx10.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:22  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color})
0:22    Function Parameters: 
0:?     Sequence
0:25      imageLoad ( temp 4-component vector of float)
0:25        'g_tBuffF' (layout( rgba32f) uniform imageBuffer)
0:25        c1: direct index for structure ( uniform int)
0:25          'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:25          Constant:
0:25            0 (const uint)
0:26      imageLoad ( temp 4-component vector of uint)
0:26        'g_tBuffU' (layout( rgba32ui) uniform uimageBuffer)
0:26        c1: direct index for structure ( uniform int)
0:26          'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:26          Constant:
0:26            0 (const uint)
0:27      imageLoad ( temp 4-component vector of int)
0:27        'g_tBuffI' (layout( rgba32i) uniform iimageBuffer)
0:27        c1: direct index for structure ( uniform int)
0:27          'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:27          Constant:
0:27            0 (const uint)
0:29      move second child to first child ( temp 4-component vector of float)
0:29        Color: direct index for structure ( temp 4-component vector of float)
0:29          'psout' ( temp structure{ temp 4-component vector of float Color})
0:29          Constant:
0:29            0 (const int)
0:29        Constant:
0:29          1.000000
0:29          1.000000
0:29          1.000000
0:29          1.000000
0:31      Branch: Return with expression
0:31        'psout' ( temp structure{ temp 4-component vector of float Color})
0:22  Function Definition: main( ( temp void)
0:22    Function Parameters: 
0:?     Sequence
0:22      Sequence
0:22        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:22          Color: direct index for structure ( temp 4-component vector of float)
0:22            Function Call: @main( ( temp structure{ temp 4-component vector of float Color})
0:22            Constant:
0:22              0 (const int)
0:?   Linker Objects
0:?     'g_tBuffF' (layout( rgba32f) uniform imageBuffer)
0:?     'g_tBuffI' (layout( rgba32i) uniform iimageBuffer)
0:?     'g_tBuffU' (layout( rgba32ui) uniform uimageBuffer)
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:22  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color})
0:22    Function Parameters: 
0:?     Sequence
0:25      imageLoad ( temp 4-component vector of float)
0:25        'g_tBuffF' (layout( rgba32f) uniform imageBuffer)
0:25        c1: direct index for structure ( uniform int)
0:25          'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:25          Constant:
0:25            0 (const uint)
0:26      imageLoad ( temp 4-component vector of uint)
0:26        'g_tBuffU' (layout( rgba32ui) uniform uimageBuffer)
0:26        c1: direct index for structure ( uniform int)
0:26          'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:26          Constant:
0:26            0 (const uint)
0:27      imageLoad ( temp 4-component vector of int)
0:27        'g_tBuffI' (layout( rgba32i) uniform iimageBuffer)
0:27        c1: direct index for structure ( uniform int)
0:27          'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:27          Constant:
0:27            0 (const uint)
0:29      move second child to first child ( temp 4-component vector of float)
0:29        Color: direct index for structure ( temp 4-component vector of float)
0:29          'psout' ( temp structure{ temp 4-component vector of float Color})
0:29          Constant:
0:29            0 (const int)
0:29        Constant:
0:29          1.000000
0:29          1.000000
0:29          1.000000
0:29          1.000000
0:31      Branch: Return with expression
0:31        'psout' ( temp structure{ temp 4-component vector of float Color})
0:22  Function Definition: main( ( temp void)
0:22    Function Parameters: 
0:?     Sequence
0:22      Sequence
0:22        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:22          Color: direct index for structure ( temp 4-component vector of float)
0:22            Function Call: @main( ( temp structure{ temp 4-component vector of float Color})
0:22            Constant:
0:22              0 (const int)
0:?   Linker Objects
0:?     'g_tBuffF' (layout( rgba32f) uniform imageBuffer)
0:?     'g_tBuffI' (layout( rgba32i) uniform iimageBuffer)
0:?     'g_tBuffU' (layout( rgba32ui) uniform uimageBuffer)
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)

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

                              Capability Shader
                              Capability ImageBuffer
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 54
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "PS_OUTPUT"
                              MemberName 8(PS_OUTPUT) 0  "Color"
                              Name 10  "@main("
                              Name 14  "g_tBuffF"
                              Name 20  "$Global"
                              MemberName 20($Global) 0  "c1"
                              MemberName 20($Global) 1  "c2"
                              MemberName 20($Global) 2  "c3"
                              MemberName 20($Global) 3  "c4"
                              MemberName 20($Global) 4  "o1"
                              MemberName 20($Global) 5  "o2"
                              MemberName 20($Global) 6  "o3"
                              MemberName 20($Global) 7  "o4"
                              Name 22  ""
                              Name 31  "g_tBuffU"
                              Name 39  "g_tBuffI"
                              Name 45  "psout"
                              Name 54  "@entryPointOutput.Color"
                              Decorate 14(g_tBuffF) DescriptorSet 0
                              Decorate 14(g_tBuffF) Binding 0
                              MemberDecorate 20($Global) 0 Offset 0
                              MemberDecorate 20($Global) 1 Offset 8
                              MemberDecorate 20($Global) 2 Offset 16
                              MemberDecorate 20($Global) 3 Offset 32
                              MemberDecorate 20($Global) 4 Offset 48
                              MemberDecorate 20($Global) 5 Offset 56
                              MemberDecorate 20($Global) 6 Offset 64
                              MemberDecorate 20($Global) 7 Offset 80
                              Decorate 20($Global) Block
                              Decorate 22 DescriptorSet 0
                              Decorate 22 Binding 0
                              Decorate 31(g_tBuffU) DescriptorSet 0
                              Decorate 31(g_tBuffU) Binding 0
                              Decorate 39(g_tBuffI) DescriptorSet 0
                              Decorate 39(g_tBuffI) Binding 0
                              Decorate 54(@entryPointOutput.Color) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
    8(PS_OUTPUT):             TypeStruct 7(fvec4)
               9:             TypeFunction 8(PS_OUTPUT)
              12:             TypeImage 6(float) Buffer nonsampled format:Rgba32f
              13:             TypePointer UniformConstant 12
    14(g_tBuffF):     13(ptr) Variable UniformConstant
              16:             TypeInt 32 1
              17:             TypeVector 16(int) 2
              18:             TypeVector 16(int) 3
              19:             TypeVector 16(int) 4
     20($Global):             TypeStruct 16(int) 17(ivec2) 18(ivec3) 19(ivec4) 16(int) 17(ivec2) 18(ivec3) 19(ivec4)
              21:             TypePointer Uniform 20($Global)
              22:     21(ptr) Variable Uniform
              23:     16(int) Constant 0
              24:             TypePointer Uniform 16(int)
              28:             TypeInt 32 0
              29:             TypeImage 28(int) Buffer nonsampled format:Rgba32ui
              30:             TypePointer UniformConstant 29
    31(g_tBuffU):     30(ptr) Variable UniformConstant
              35:             TypeVector 28(int) 4
              37:             TypeImage 16(int) Buffer nonsampled format:Rgba32i
              38:             TypePointer UniformConstant 37
    39(g_tBuffI):     38(ptr) Variable UniformConstant
              44:             TypePointer Function 8(PS_OUTPUT)
              46:    6(float) Constant 1065353216
              47:    7(fvec4) ConstantComposite 46 46 46 46
              48:             TypePointer Function 7(fvec4)
              53:             TypePointer Output 7(fvec4)
54(@entryPointOutput.Color):     53(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              55:8(PS_OUTPUT) FunctionCall 10(@main()
              56:    7(fvec4) CompositeExtract 55 0
                              Store 54(@entryPointOutput.Color) 56
                              Return
                              FunctionEnd
      10(@main():8(PS_OUTPUT) Function None 9
              11:             Label
       45(psout):     44(ptr) Variable Function
              15:          12 Load 14(g_tBuffF)
              25:     24(ptr) AccessChain 22 23
              26:     16(int) Load 25
              27:    7(fvec4) ImageRead 15 26
              32:          29 Load 31(g_tBuffU)
              33:     24(ptr) AccessChain 22 23
              34:     16(int) Load 33
              36:   35(ivec4) ImageRead 32 34
              40:          37 Load 39(g_tBuffI)
              41:     24(ptr) AccessChain 22 23
              42:     16(int) Load 41
              43:   19(ivec4) ImageRead 40 42
              49:     48(ptr) AccessChain 45(psout) 23
                              Store 49 47
              50:8(PS_OUTPUT) Load 45(psout)
                              ReturnValue 50
                              FunctionEnd
