hlsl.structIoFourWay.frag
Shader version: 500
gl_FragCoord origin is upper left
using depth_greater
0:? Sequence
0:15  Function Definition: @main(struct-T-f1-f1-f1-vf41; ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15    Function Parameters: 
0:15      't' ( in structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:?     Sequence
0:17      Branch: Return with expression
0:17        'local' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15  Function Definition: main( ( temp void)
0:15    Function Parameters: 
0:?     Sequence
0:15      Sequence
0:15        move second child to first child ( temp float)
0:15          f: direct index for structure ( temp float)
0:?             't' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15            Constant:
0:15              0 (const int)
0:?           't.f' (layout( location=0) in float)
0:15        move second child to first child ( temp float)
0:15          g: direct index for structure ( temp float)
0:?             't' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15            Constant:
0:15              1 (const int)
0:?           't.g' (layout( location=1) centroid in float)
0:15        move second child to first child ( temp float)
0:15          d: direct index for structure ( temp float)
0:?             't' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15            Constant:
0:15              2 (const int)
0:?           't.d' (layout( location=2) in float)
0:15        move second child to first child ( temp 4-component vector of float)
0:15          normal: direct index for structure ( temp 4-component vector of float)
0:?             't' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15            Constant:
0:15              3 (const int)
0:?           't.normal' (layout( location=3) in 4-component vector of float)
0:15      Sequence
0:15        move second child to first child ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15          'flattenTemp' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15          Function Call: @main(struct-T-f1-f1-f1-vf41; ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:?             't' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15        move second child to first child ( temp float)
0:?           '@entryPointOutput.f' (layout( location=0) out float)
0:15          f: direct index for structure ( temp float)
0:15            'flattenTemp' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15            Constant:
0:15              0 (const int)
0:15        move second child to first child ( temp float)
0:?           '@entryPointOutput.g' (layout( location=1) out float)
0:15          g: direct index for structure ( temp float)
0:15            'flattenTemp' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15            Constant:
0:15              1 (const int)
0:15        move second child to first child ( temp float)
0:?           '@entryPointOutput.d' ( out float FragDepth)
0:15          d: direct index for structure ( temp float)
0:15            'flattenTemp' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15            Constant:
0:15              2 (const int)
0:15        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.normal' (layout( location=2) out 4-component vector of float)
0:15          normal: direct index for structure ( temp 4-component vector of float)
0:15            'flattenTemp' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15            Constant:
0:15              3 (const int)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform structure{layout( offset=68) temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal} s})
0:?     'anon@1' (layout( row_major std140) uniform block{layout( row_major std140 offset=88) uniform structure{layout( offset=68) temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal} t})
0:?     '@entryPointOutput.d' ( out float FragDepth)
0:?     '@entryPointOutput.f' (layout( location=0) out float)
0:?     '@entryPointOutput.g' (layout( location=1) out float)
0:?     '@entryPointOutput.normal' (layout( location=2) out 4-component vector of float)
0:?     't.f' (layout( location=0) in float)
0:?     't.g' (layout( location=1) centroid in float)
0:?     't.d' (layout( location=2) in float)
0:?     't.normal' (layout( location=3) in 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
using depth_greater
0:? Sequence
0:15  Function Definition: @main(struct-T-f1-f1-f1-vf41; ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15    Function Parameters: 
0:15      't' ( in structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:?     Sequence
0:17      Branch: Return with expression
0:17        'local' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15  Function Definition: main( ( temp void)
0:15    Function Parameters: 
0:?     Sequence
0:15      Sequence
0:15        move second child to first child ( temp float)
0:15          f: direct index for structure ( temp float)
0:?             't' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15            Constant:
0:15              0 (const int)
0:?           't.f' (layout( location=0) in float)
0:15        move second child to first child ( temp float)
0:15          g: direct index for structure ( temp float)
0:?             't' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15            Constant:
0:15              1 (const int)
0:?           't.g' (layout( location=1) centroid in float)
0:15        move second child to first child ( temp float)
0:15          d: direct index for structure ( temp float)
0:?             't' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15            Constant:
0:15              2 (const int)
0:?           't.d' (layout( location=2) in float)
0:15        move second child to first child ( temp 4-component vector of float)
0:15          normal: direct index for structure ( temp 4-component vector of float)
0:?             't' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15            Constant:
0:15              3 (const int)
0:?           't.normal' (layout( location=3) in 4-component vector of float)
0:15      Sequence
0:15        move second child to first child ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15          'flattenTemp' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15          Function Call: @main(struct-T-f1-f1-f1-vf41; ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:?             't' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15        move second child to first child ( temp float)
0:?           '@entryPointOutput.f' (layout( location=0) out float)
0:15          f: direct index for structure ( temp float)
0:15            'flattenTemp' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15            Constant:
0:15              0 (const int)
0:15        move second child to first child ( temp float)
0:?           '@entryPointOutput.g' (layout( location=1) out float)
0:15          g: direct index for structure ( temp float)
0:15            'flattenTemp' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15            Constant:
0:15              1 (const int)
0:15        move second child to first child ( temp float)
0:?           '@entryPointOutput.d' ( out float FragDepth)
0:15          d: direct index for structure ( temp float)
0:15            'flattenTemp' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15            Constant:
0:15              2 (const int)
0:15        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.normal' (layout( location=2) out 4-component vector of float)
0:15          normal: direct index for structure ( temp 4-component vector of float)
0:15            'flattenTemp' ( temp structure{ temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal})
0:15            Constant:
0:15              3 (const int)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform structure{layout( offset=68) temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal} s})
0:?     'anon@1' (layout( row_major std140) uniform block{layout( row_major std140 offset=88) uniform structure{layout( offset=68) temp float f,  temp float g,  temp float d,  temp 4-component vector of float normal} t})
0:?     '@entryPointOutput.d' ( out float FragDepth)
0:?     '@entryPointOutput.f' (layout( location=0) out float)
0:?     '@entryPointOutput.g' (layout( location=1) out float)
0:?     '@entryPointOutput.normal' (layout( location=2) out 4-component vector of float)
0:?     't.f' (layout( location=0) in float)
0:?     't.g' (layout( location=1) centroid in float)
0:?     't.d' (layout( location=2) in float)
0:?     't.normal' (layout( location=3) in 4-component vector of float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 22 27 31 36 45 48 51 55
                              ExecutionMode 4 OriginUpperLeft
                              ExecutionMode 4 DepthReplacing
                              ExecutionMode 4 DepthGreater
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "T"
                              MemberName 8(T) 0  "f"
                              MemberName 8(T) 1  "g"
                              MemberName 8(T) 2  "d"
                              MemberName 8(T) 3  "normal"
                              Name 12  "@main(struct-T-f1-f1-f1-vf41;"
                              Name 11  "t"
                              Name 14  "local"
                              Name 18  "t"
                              Name 22  "t.f"
                              Name 27  "t.g"
                              Name 31  "t.d"
                              Name 36  "t.normal"
                              Name 40  "flattenTemp"
                              Name 41  "param"
                              Name 45  "@entryPointOutput.f"
                              Name 48  "@entryPointOutput.g"
                              Name 51  "@entryPointOutput.d"
                              Name 55  "@entryPointOutput.normal"
                              Name 58  "T"
                              MemberName 58(T) 0  "f"
                              MemberName 58(T) 1  "g"
                              MemberName 58(T) 2  "d"
                              MemberName 58(T) 3  "normal"
                              Name 59  "$Global"
                              MemberName 59($Global) 0  "s"
                              Name 61  ""
                              Name 62  "buff"
                              MemberName 62(buff) 0  "t"
                              Name 64  ""
                              Decorate 22(t.f) Location 0
                              Decorate 27(t.g) Centroid
                              Decorate 27(t.g) Location 1
                              Decorate 31(t.d) Location 2
                              Decorate 36(t.normal) Location 3
                              Decorate 45(@entryPointOutput.f) Location 0
                              Decorate 48(@entryPointOutput.g) Location 1
                              Decorate 51(@entryPointOutput.d) BuiltIn FragDepth
                              Decorate 55(@entryPointOutput.normal) Location 2
                              MemberDecorate 58(T) 0 Offset 68
                              MemberDecorate 58(T) 1 Offset 72
                              MemberDecorate 58(T) 2 Offset 76
                              MemberDecorate 58(T) 3 Offset 80
                              MemberDecorate 59($Global) 0 Offset 0
                              Decorate 59($Global) Block
                              Decorate 61 DescriptorSet 0
                              Decorate 61 Binding 0
                              MemberDecorate 62(buff) 0 Offset 96
                              Decorate 62(buff) Block
                              Decorate 64 DescriptorSet 0
                              Decorate 64 Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
            8(T):             TypeStruct 6(float) 6(float) 6(float) 7(fvec4)
               9:             TypePointer Function 8(T)
              10:             TypeFunction 8(T) 9(ptr)
              19:             TypeInt 32 1
              20:     19(int) Constant 0
              21:             TypePointer Input 6(float)
         22(t.f):     21(ptr) Variable Input
              24:             TypePointer Function 6(float)
              26:     19(int) Constant 1
         27(t.g):     21(ptr) Variable Input
              30:     19(int) Constant 2
         31(t.d):     21(ptr) Variable Input
              34:     19(int) Constant 3
              35:             TypePointer Input 7(fvec4)
    36(t.normal):     35(ptr) Variable Input
              38:             TypePointer Function 7(fvec4)
              44:             TypePointer Output 6(float)
45(@entryPointOutput.f):     44(ptr) Variable Output
48(@entryPointOutput.g):     44(ptr) Variable Output
51(@entryPointOutput.d):     44(ptr) Variable Output
              54:             TypePointer Output 7(fvec4)
55(@entryPointOutput.normal):     54(ptr) Variable Output
           58(T):             TypeStruct 6(float) 6(float) 6(float) 7(fvec4)
     59($Global):             TypeStruct 58(T)
              60:             TypePointer Uniform 59($Global)
              61:     60(ptr) Variable Uniform
        62(buff):             TypeStruct 58(T)
              63:             TypePointer Uniform 62(buff)
              64:     63(ptr) Variable Uniform
         4(main):           2 Function None 3
               5:             Label
           18(t):      9(ptr) Variable Function
 40(flattenTemp):      9(ptr) Variable Function
       41(param):      9(ptr) Variable Function
              23:    6(float) Load 22(t.f)
              25:     24(ptr) AccessChain 18(t) 20
                              Store 25 23
              28:    6(float) Load 27(t.g)
              29:     24(ptr) AccessChain 18(t) 26
                              Store 29 28
              32:    6(float) Load 31(t.d)
              33:     24(ptr) AccessChain 18(t) 30
                              Store 33 32
              37:    7(fvec4) Load 36(t.normal)
              39:     38(ptr) AccessChain 18(t) 34
                              Store 39 37
              42:        8(T) Load 18(t)
                              Store 41(param) 42
              43:        8(T) FunctionCall 12(@main(struct-T-f1-f1-f1-vf41;) 41(param)
                              Store 40(flattenTemp) 43
              46:     24(ptr) AccessChain 40(flattenTemp) 20
              47:    6(float) Load 46
                              Store 45(@entryPointOutput.f) 47
              49:     24(ptr) AccessChain 40(flattenTemp) 26
              50:    6(float) Load 49
                              Store 48(@entryPointOutput.g) 50
              52:     24(ptr) AccessChain 40(flattenTemp) 30
              53:    6(float) Load 52
                              Store 51(@entryPointOutput.d) 53
              56:     38(ptr) AccessChain 40(flattenTemp) 34
              57:    7(fvec4) Load 56
                              Store 55(@entryPointOutput.normal) 57
                              Return
                              FunctionEnd
12(@main(struct-T-f1-f1-f1-vf41;):        8(T) Function None 10
           11(t):      9(ptr) FunctionParameter
              13:             Label
       14(local):      9(ptr) Variable Function
              15:        8(T) Load 14(local)
                              ReturnValue 15
                              FunctionEnd
