hlsl.load.buffer.float.dx10.frag
Shader version: 500
gl_FragCoord origin is upper left
using depth_any
0:? Sequence
0:24  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24    Function Parameters: 
0:?     Sequence
0:28      Sequence
0:28        move second child to first child ( temp float)
0:28          'r00' ( temp float)
0:28          Construct float ( temp float)
0:?             textureFetch ( temp 4-component vector of float)
0:28              'g_tTexbfs' (layout( r32f) uniform textureBuffer)
0:28              c1: direct index for structure ( uniform int)
0:28                '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:28                Constant:
0:28                  0 (const uint)
0:29      Sequence
0:29        move second child to first child ( temp int)
0:29          'r01' ( temp int)
0:29          Construct int ( temp int)
0:?             textureFetch ( temp 4-component vector of int)
0:29              'g_tTexbis' (layout( r32i) uniform itextureBuffer)
0:29              c1: direct index for structure ( uniform int)
0:29                '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:29                Constant:
0:29                  0 (const uint)
0:30      Sequence
0:30        move second child to first child ( temp uint)
0:30          'r02' ( temp uint)
0:30          Construct uint ( temp uint)
0:?             textureFetch ( temp 4-component vector of uint)
0:30              'g_tTexbus' (layout( r32ui) uniform utextureBuffer)
0:30              c1: direct index for structure ( uniform int)
0:30                '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:30                Constant:
0:30                  0 (const uint)
0:34      move second child to first child ( temp 4-component vector of float)
0:34        Color: direct index for structure ( temp 4-component vector of float)
0:34          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:34          Constant:
0:34            0 (const int)
0:34        Constant:
0:34          1.000000
0:34          1.000000
0:34          1.000000
0:34          1.000000
0:35      move second child to first child ( temp float)
0:35        Depth: direct index for structure ( temp float)
0:35          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:35          Constant:
0:35            1 (const int)
0:35        Constant:
0:35          1.000000
0:37      Branch: Return with expression
0:37        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24  Function Definition: main( ( temp void)
0:24    Function Parameters: 
0:?     Sequence
0:24      Sequence
0:24        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24        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:24          Color: direct index for structure ( temp 4-component vector of float)
0:24            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24            Constant:
0:24              0 (const int)
0:24        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:24          Depth: direct index for structure ( temp float)
0:24            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24            Constant:
0:24              1 (const int)
0:?   Linker Objects
0:?     'g_tTexbfs_test' (layout( binding=0 r32f) uniform textureBuffer)
0:?     'g_tTexbfs' (layout( r32f) uniform textureBuffer)
0:?     'g_tTexbis' (layout( r32i) uniform itextureBuffer)
0:?     'g_tTexbus' (layout( r32ui) uniform utextureBuffer)
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.Depth' ( out float FragDepth)
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
using depth_any
0:? Sequence
0:24  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24    Function Parameters: 
0:?     Sequence
0:28      Sequence
0:28        move second child to first child ( temp float)
0:28          'r00' ( temp float)
0:28          Construct float ( temp float)
0:?             textureFetch ( temp 4-component vector of float)
0:28              'g_tTexbfs' (layout( r32f) uniform textureBuffer)
0:28              c1: direct index for structure ( uniform int)
0:28                '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:28                Constant:
0:28                  0 (const uint)
0:29      Sequence
0:29        move second child to first child ( temp int)
0:29          'r01' ( temp int)
0:29          Construct int ( temp int)
0:?             textureFetch ( temp 4-component vector of int)
0:29              'g_tTexbis' (layout( r32i) uniform itextureBuffer)
0:29              c1: direct index for structure ( uniform int)
0:29                '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:29                Constant:
0:29                  0 (const uint)
0:30      Sequence
0:30        move second child to first child ( temp uint)
0:30          'r02' ( temp uint)
0:30          Construct uint ( temp uint)
0:?             textureFetch ( temp 4-component vector of uint)
0:30              'g_tTexbus' (layout( r32ui) uniform utextureBuffer)
0:30              c1: direct index for structure ( uniform int)
0:30                '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:30                Constant:
0:30                  0 (const uint)
0:34      move second child to first child ( temp 4-component vector of float)
0:34        Color: direct index for structure ( temp 4-component vector of float)
0:34          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:34          Constant:
0:34            0 (const int)
0:34        Constant:
0:34          1.000000
0:34          1.000000
0:34          1.000000
0:34          1.000000
0:35      move second child to first child ( temp float)
0:35        Depth: direct index for structure ( temp float)
0:35          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:35          Constant:
0:35            1 (const int)
0:35        Constant:
0:35          1.000000
0:37      Branch: Return with expression
0:37        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24  Function Definition: main( ( temp void)
0:24    Function Parameters: 
0:?     Sequence
0:24      Sequence
0:24        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24        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:24          Color: direct index for structure ( temp 4-component vector of float)
0:24            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24            Constant:
0:24              0 (const int)
0:24        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:24          Depth: direct index for structure ( temp float)
0:24            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:24            Constant:
0:24              1 (const int)
0:?   Linker Objects
0:?     'g_tTexbfs_test' (layout( binding=0 r32f) uniform textureBuffer)
0:?     'g_tTexbfs' (layout( r32f) uniform textureBuffer)
0:?     'g_tTexbis' (layout( r32i) uniform itextureBuffer)
0:?     'g_tTexbus' (layout( r32ui) uniform utextureBuffer)
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.Depth' ( out float FragDepth)
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)

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

                              Capability Shader
                              Capability SampledBuffer
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 67 71
                              ExecutionMode 4 OriginUpperLeft
                              ExecutionMode 4 DepthReplacing
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "PS_OUTPUT"
                              MemberName 8(PS_OUTPUT) 0  "Color"
                              MemberName 8(PS_OUTPUT) 1  "Depth"
                              Name 10  "@main("
                              Name 13  "r00"
                              Name 16  "g_tTexbfs"
                              Name 22  "$Global"
                              MemberName 22($Global) 0  "c1"
                              MemberName 22($Global) 1  "c2"
                              MemberName 22($Global) 2  "c3"
                              MemberName 22($Global) 3  "c4"
                              MemberName 22($Global) 4  "o1"
                              MemberName 22($Global) 5  "o2"
                              MemberName 22($Global) 6  "o3"
                              MemberName 22($Global) 7  "o4"
                              Name 24  ""
                              Name 32  "r01"
                              Name 35  "g_tTexbis"
                              Name 43  "r02"
                              Name 46  "g_tTexbus"
                              Name 54  "psout"
                              Name 64  "flattenTemp"
                              Name 67  "@entryPointOutput.Color"
                              Name 71  "@entryPointOutput.Depth"
                              Name 74  "g_tTexbfs_test"
                              Decorate 16(g_tTexbfs) DescriptorSet 0
                              MemberDecorate 22($Global) 0 Offset 0
                              MemberDecorate 22($Global) 1 Offset 8
                              MemberDecorate 22($Global) 2 Offset 16
                              MemberDecorate 22($Global) 3 Offset 32
                              MemberDecorate 22($Global) 4 Offset 48
                              MemberDecorate 22($Global) 5 Offset 56
                              MemberDecorate 22($Global) 6 Offset 64
                              MemberDecorate 22($Global) 7 Offset 80
                              Decorate 22($Global) Block
                              Decorate 24 DescriptorSet 0
                              Decorate 35(g_tTexbis) DescriptorSet 0
                              Decorate 46(g_tTexbus) DescriptorSet 0
                              Decorate 67(@entryPointOutput.Color) Location 0
                              Decorate 71(@entryPointOutput.Depth) BuiltIn FragDepth
                              Decorate 74(g_tTexbfs_test) DescriptorSet 0
                              Decorate 74(g_tTexbfs_test) Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
    8(PS_OUTPUT):             TypeStruct 7(fvec4) 6(float)
               9:             TypeFunction 8(PS_OUTPUT)
              12:             TypePointer Function 6(float)
              14:             TypeImage 6(float) Buffer sampled format:R32f
              15:             TypePointer UniformConstant 14
   16(g_tTexbfs):     15(ptr) Variable UniformConstant
              18:             TypeInt 32 1
              19:             TypeVector 18(int) 2
              20:             TypeVector 18(int) 3
              21:             TypeVector 18(int) 4
     22($Global):             TypeStruct 18(int) 19(ivec2) 20(ivec3) 21(ivec4) 18(int) 19(ivec2) 20(ivec3) 21(ivec4)
              23:             TypePointer Uniform 22($Global)
              24:     23(ptr) Variable Uniform
              25:     18(int) Constant 0
              26:             TypePointer Uniform 18(int)
              31:             TypePointer Function 18(int)
              33:             TypeImage 18(int) Buffer sampled format:R32i
              34:             TypePointer UniformConstant 33
   35(g_tTexbis):     34(ptr) Variable UniformConstant
              41:             TypeInt 32 0
              42:             TypePointer Function 41(int)
              44:             TypeImage 41(int) Buffer sampled format:R32ui
              45:             TypePointer UniformConstant 44
   46(g_tTexbus):     45(ptr) Variable UniformConstant
              50:             TypeVector 41(int) 4
              53:             TypePointer Function 8(PS_OUTPUT)
              55:    6(float) Constant 1065353216
              56:    7(fvec4) ConstantComposite 55 55 55 55
              57:             TypePointer Function 7(fvec4)
              59:     18(int) Constant 1
              66:             TypePointer Output 7(fvec4)
67(@entryPointOutput.Color):     66(ptr) Variable Output
              70:             TypePointer Output 6(float)
71(@entryPointOutput.Depth):     70(ptr) Variable Output
74(g_tTexbfs_test):     15(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
 64(flattenTemp):     53(ptr) Variable Function
              65:8(PS_OUTPUT) FunctionCall 10(@main()
                              Store 64(flattenTemp) 65
              68:     57(ptr) AccessChain 64(flattenTemp) 25
              69:    7(fvec4) Load 68
                              Store 67(@entryPointOutput.Color) 69
              72:     12(ptr) AccessChain 64(flattenTemp) 59
              73:    6(float) Load 72
                              Store 71(@entryPointOutput.Depth) 73
                              Return
                              FunctionEnd
      10(@main():8(PS_OUTPUT) Function None 9
              11:             Label
         13(r00):     12(ptr) Variable Function
         32(r01):     31(ptr) Variable Function
         43(r02):     42(ptr) Variable Function
       54(psout):     53(ptr) Variable Function
              17:          14 Load 16(g_tTexbfs)
              27:     26(ptr) AccessChain 24 25
              28:     18(int) Load 27
              29:    7(fvec4) ImageFetch 17 28
              30:    6(float) CompositeExtract 29 0
                              Store 13(r00) 30
              36:          33 Load 35(g_tTexbis)
              37:     26(ptr) AccessChain 24 25
              38:     18(int) Load 37
              39:   21(ivec4) ImageFetch 36 38
              40:     18(int) CompositeExtract 39 0
                              Store 32(r01) 40
              47:          44 Load 46(g_tTexbus)
              48:     26(ptr) AccessChain 24 25
              49:     18(int) Load 48
              51:   50(ivec4) ImageFetch 47 49
              52:     41(int) CompositeExtract 51 0
                              Store 43(r02) 52
              58:     57(ptr) AccessChain 54(psout) 25
                              Store 58 56
              60:     12(ptr) AccessChain 54(psout) 59
                              Store 60 55
              61:8(PS_OUTPUT) Load 54(psout)
                              ReturnValue 61
                              FunctionEnd
