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): 80007
// 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 DepthGreater
                              ExecutionMode 4 DepthReplacing
                              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
                              MemberDecorate 62(buff) 0 Offset 96
                              Decorate 62(buff) Block
                              Decorate 64 DescriptorSet 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
