hlsl.load.buffer.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 4-component vector of float)
0:28          'r00' ( temp 4-component vector of float)
0:28          textureFetch ( temp 4-component vector of float)
0:28            'g_tTexbf4' (layout( rgba32f) 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 4-component vector of int)
0:29          'r01' ( temp 4-component vector of int)
0:29          textureFetch ( temp 4-component vector of int)
0:29            'g_tTexbi4' (layout( rgba32i) 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 4-component vector of uint)
0:30          'r02' ( temp 4-component vector of uint)
0:30          textureFetch ( temp 4-component vector of uint)
0:30            'g_tTexbu4' (layout( rgba32ui) 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_tTexbf4_test' (layout( binding=0 rgba32f) uniform textureBuffer)
0:?     'g_tTexbf4' (layout( rgba32f) uniform textureBuffer)
0:?     'g_tTexbi4' (layout( rgba32i) uniform itextureBuffer)
0:?     'g_tTexbu4' (layout( rgba32ui) 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 4-component vector of float)
0:28          'r00' ( temp 4-component vector of float)
0:28          textureFetch ( temp 4-component vector of float)
0:28            'g_tTexbf4' (layout( rgba32f) 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 4-component vector of int)
0:29          'r01' ( temp 4-component vector of int)
0:29          textureFetch ( temp 4-component vector of int)
0:29            'g_tTexbi4' (layout( rgba32i) 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 4-component vector of uint)
0:30          'r02' ( temp 4-component vector of uint)
0:30          textureFetch ( temp 4-component vector of uint)
0:30            'g_tTexbu4' (layout( rgba32ui) 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_tTexbf4_test' (layout( binding=0 rgba32f) uniform textureBuffer)
0:?     'g_tTexbf4' (layout( rgba32f) uniform textureBuffer)
0:?     'g_tTexbi4' (layout( rgba32i) uniform itextureBuffer)
0:?     'g_tTexbu4' (layout( rgba32ui) 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 72

                              Capability Shader
                              Capability SampledBuffer
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 64 68
                              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_tTexbf4"
                              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 31  "r01"
                              Name 34  "g_tTexbi4"
                              Name 42  "r02"
                              Name 45  "g_tTexbu4"
                              Name 51  "psout"
                              Name 61  "flattenTemp"
                              Name 64  "@entryPointOutput.Color"
                              Name 68  "@entryPointOutput.Depth"
                              Name 71  "g_tTexbf4_test"
                              Decorate 16(g_tTexbf4) 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 34(g_tTexbi4) DescriptorSet 0
                              Decorate 45(g_tTexbu4) DescriptorSet 0
                              Decorate 64(@entryPointOutput.Color) Location 0
                              Decorate 68(@entryPointOutput.Depth) BuiltIn FragDepth
                              Decorate 71(g_tTexbf4_test) DescriptorSet 0
                              Decorate 71(g_tTexbf4_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 7(fvec4)
              14:             TypeImage 6(float) Buffer sampled format:Rgba32f
              15:             TypePointer UniformConstant 14
   16(g_tTexbf4):     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)
              30:             TypePointer Function 21(ivec4)
              32:             TypeImage 18(int) Buffer sampled format:Rgba32i
              33:             TypePointer UniformConstant 32
   34(g_tTexbi4):     33(ptr) Variable UniformConstant
              39:             TypeInt 32 0
              40:             TypeVector 39(int) 4
              41:             TypePointer Function 40(ivec4)
              43:             TypeImage 39(int) Buffer sampled format:Rgba32ui
              44:             TypePointer UniformConstant 43
   45(g_tTexbu4):     44(ptr) Variable UniformConstant
              50:             TypePointer Function 8(PS_OUTPUT)
              52:    6(float) Constant 1065353216
              53:    7(fvec4) ConstantComposite 52 52 52 52
              55:     18(int) Constant 1
              56:             TypePointer Function 6(float)
              63:             TypePointer Output 7(fvec4)
64(@entryPointOutput.Color):     63(ptr) Variable Output
              67:             TypePointer Output 6(float)
68(@entryPointOutput.Depth):     67(ptr) Variable Output
71(g_tTexbf4_test):     15(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
 61(flattenTemp):     50(ptr) Variable Function
              62:8(PS_OUTPUT) FunctionCall 10(@main()
                              Store 61(flattenTemp) 62
              65:     12(ptr) AccessChain 61(flattenTemp) 25
              66:    7(fvec4) Load 65
                              Store 64(@entryPointOutput.Color) 66
              69:     56(ptr) AccessChain 61(flattenTemp) 55
              70:    6(float) Load 69
                              Store 68(@entryPointOutput.Depth) 70
                              Return
                              FunctionEnd
      10(@main():8(PS_OUTPUT) Function None 9
              11:             Label
         13(r00):     12(ptr) Variable Function
         31(r01):     30(ptr) Variable Function
         42(r02):     41(ptr) Variable Function
       51(psout):     50(ptr) Variable Function
              17:          14 Load 16(g_tTexbf4)
              27:     26(ptr) AccessChain 24 25
              28:     18(int) Load 27
              29:    7(fvec4) ImageFetch 17 28
                              Store 13(r00) 29
              35:          32 Load 34(g_tTexbi4)
              36:     26(ptr) AccessChain 24 25
              37:     18(int) Load 36
              38:   21(ivec4) ImageFetch 35 37
                              Store 31(r01) 38
              46:          43 Load 45(g_tTexbu4)
              47:     26(ptr) AccessChain 24 25
              48:     18(int) Load 47
              49:   40(ivec4) ImageFetch 46 48
                              Store 42(r02) 49
              54:     12(ptr) AccessChain 51(psout) 25
                              Store 54 53
              57:     56(ptr) AccessChain 51(psout) 55
                              Store 57 52
              58:8(PS_OUTPUT) Load 51(psout)
                              ReturnValue 58
                              FunctionEnd
