hlsl.semantic-1.vert
Shader version: 500
0:? Sequence
0:16  Function Definition: @main(vf4; ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:16    Function Parameters: 
0:16      'v' ( in 4-component vector of float)
0:?     Sequence
0:18      move second child to first child ( temp 4-component vector of float)
0:18        pos: direct index for structure ( temp 4-component vector of float)
0:18          's' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:18          Constant:
0:18            0 (const int)
0:18        'v' ( in 4-component vector of float)
0:19      move second child to first child ( temp 2-component vector of float)
0:19        UV0: direct index for structure ( temp 2-component vector of float)
0:19          's' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:19          Constant:
0:19            1 (const int)
0:19        Construct vec2 ( temp 2-component vector of float)
0:19          direct index ( temp float)
0:19            'v' ( in 4-component vector of float)
0:19            Constant:
0:19              0 (const int)
0:19          direct index ( temp float)
0:19            'v' ( in 4-component vector of float)
0:19            Constant:
0:19              0 (const int)
0:20      move second child to first child ( temp 2-component vector of float)
0:20        UV1: direct index for structure ( temp 2-component vector of float)
0:20          's' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:20          Constant:
0:20            2 (const int)
0:20        Construct vec2 ( temp 2-component vector of float)
0:20          direct index ( temp float)
0:20            'v' ( in 4-component vector of float)
0:20            Constant:
0:20              1 (const int)
0:20          direct index ( temp float)
0:20            'v' ( in 4-component vector of float)
0:20            Constant:
0:20              1 (const int)
0:21      move second child to first child ( temp 2-component vector of float)
0:21        UV2: direct index for structure ( temp 2-component vector of float)
0:21          's' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:21          Constant:
0:21            3 (const int)
0:21        Construct vec2 ( temp 2-component vector of float)
0:21          direct index ( temp float)
0:21            'v' ( in 4-component vector of float)
0:21            Constant:
0:21              2 (const int)
0:21          direct index ( temp float)
0:21            'v' ( in 4-component vector of float)
0:21            Constant:
0:21              2 (const int)
0:22      move second child to first child ( temp 2-component vector of float)
0:22        UV3: direct index for structure ( temp 2-component vector of float)
0:22          's' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:22          Constant:
0:22            4 (const int)
0:22        Construct vec2 ( temp 2-component vector of float)
0:22          direct index ( temp float)
0:22            'v' ( in 4-component vector of float)
0:22            Constant:
0:22              3 (const int)
0:22          direct index ( temp float)
0:22            'v' ( in 4-component vector of float)
0:22            Constant:
0:22              3 (const int)
0:23      Branch: Return with expression
0:23        's' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:16  Function Definition: main( ( temp void)
0:16    Function Parameters: 
0:?     Sequence
0:16      move second child to first child ( temp 4-component vector of float)
0:?         'v' ( temp 4-component vector of float)
0:?         'v' (layout( location=0) in 4-component vector of float)
0:16      Sequence
0:16        move second child to first child ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:16          'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:16          Function Call: @main(vf4; ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:?             'v' ( temp 4-component vector of float)
0:16        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float)
0:16          pos: direct index for structure ( temp 4-component vector of float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:16            Constant:
0:16              0 (const int)
0:16        move second child to first child ( temp 2-component vector of float)
0:?           '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float)
0:16          UV0: direct index for structure ( temp 2-component vector of float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:16            Constant:
0:16              1 (const int)
0:16        move second child to first child ( temp 2-component vector of float)
0:?           '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float)
0:16          UV1: direct index for structure ( temp 2-component vector of float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:16            Constant:
0:16              2 (const int)
0:16        move second child to first child ( temp 2-component vector of float)
0:?           '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float)
0:16          UV2: direct index for structure ( temp 2-component vector of float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:16            Constant:
0:16              3 (const int)
0:16        move second child to first child ( temp 2-component vector of float)
0:?           '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float)
0:16          UV3: direct index for structure ( temp 2-component vector of float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:16            Constant:
0:16              4 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float)
0:?     '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float)
0:?     '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float)
0:?     '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float)
0:?     '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float)
0:?     'v' (layout( location=0) in 4-component vector of float)


Linked vertex stage:


Shader version: 500
0:? Sequence
0:16  Function Definition: @main(vf4; ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:16    Function Parameters: 
0:16      'v' ( in 4-component vector of float)
0:?     Sequence
0:18      move second child to first child ( temp 4-component vector of float)
0:18        pos: direct index for structure ( temp 4-component vector of float)
0:18          's' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:18          Constant:
0:18            0 (const int)
0:18        'v' ( in 4-component vector of float)
0:19      move second child to first child ( temp 2-component vector of float)
0:19        UV0: direct index for structure ( temp 2-component vector of float)
0:19          's' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:19          Constant:
0:19            1 (const int)
0:19        Construct vec2 ( temp 2-component vector of float)
0:19          direct index ( temp float)
0:19            'v' ( in 4-component vector of float)
0:19            Constant:
0:19              0 (const int)
0:19          direct index ( temp float)
0:19            'v' ( in 4-component vector of float)
0:19            Constant:
0:19              0 (const int)
0:20      move second child to first child ( temp 2-component vector of float)
0:20        UV1: direct index for structure ( temp 2-component vector of float)
0:20          's' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:20          Constant:
0:20            2 (const int)
0:20        Construct vec2 ( temp 2-component vector of float)
0:20          direct index ( temp float)
0:20            'v' ( in 4-component vector of float)
0:20            Constant:
0:20              1 (const int)
0:20          direct index ( temp float)
0:20            'v' ( in 4-component vector of float)
0:20            Constant:
0:20              1 (const int)
0:21      move second child to first child ( temp 2-component vector of float)
0:21        UV2: direct index for structure ( temp 2-component vector of float)
0:21          's' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:21          Constant:
0:21            3 (const int)
0:21        Construct vec2 ( temp 2-component vector of float)
0:21          direct index ( temp float)
0:21            'v' ( in 4-component vector of float)
0:21            Constant:
0:21              2 (const int)
0:21          direct index ( temp float)
0:21            'v' ( in 4-component vector of float)
0:21            Constant:
0:21              2 (const int)
0:22      move second child to first child ( temp 2-component vector of float)
0:22        UV3: direct index for structure ( temp 2-component vector of float)
0:22          's' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:22          Constant:
0:22            4 (const int)
0:22        Construct vec2 ( temp 2-component vector of float)
0:22          direct index ( temp float)
0:22            'v' ( in 4-component vector of float)
0:22            Constant:
0:22              3 (const int)
0:22          direct index ( temp float)
0:22            'v' ( in 4-component vector of float)
0:22            Constant:
0:22              3 (const int)
0:23      Branch: Return with expression
0:23        's' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:16  Function Definition: main( ( temp void)
0:16    Function Parameters: 
0:?     Sequence
0:16      move second child to first child ( temp 4-component vector of float)
0:?         'v' ( temp 4-component vector of float)
0:?         'v' (layout( location=0) in 4-component vector of float)
0:16      Sequence
0:16        move second child to first child ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:16          'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:16          Function Call: @main(vf4; ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:?             'v' ( temp 4-component vector of float)
0:16        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float)
0:16          pos: direct index for structure ( temp 4-component vector of float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:16            Constant:
0:16              0 (const int)
0:16        move second child to first child ( temp 2-component vector of float)
0:?           '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float)
0:16          UV0: direct index for structure ( temp 2-component vector of float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:16            Constant:
0:16              1 (const int)
0:16        move second child to first child ( temp 2-component vector of float)
0:?           '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float)
0:16          UV1: direct index for structure ( temp 2-component vector of float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:16            Constant:
0:16              2 (const int)
0:16        move second child to first child ( temp 2-component vector of float)
0:?           '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float)
0:16          UV2: direct index for structure ( temp 2-component vector of float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:16            Constant:
0:16              3 (const int)
0:16        move second child to first child ( temp 2-component vector of float)
0:?           '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float)
0:16          UV3: direct index for structure ( temp 2-component vector of float)
0:16            'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp 2-component vector of float UV0,  temp 2-component vector of float UV1,  temp 2-component vector of float UV2,  temp 2-component vector of float UV3})
0:16            Constant:
0:16              4 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float)
0:?     '@entryPointOutput.UV0' (layout( location=1) out 2-component vector of float)
0:?     '@entryPointOutput.UV1' (layout( location=2) out 2-component vector of float)
0:?     '@entryPointOutput.UV2' (layout( location=3) out 2-component vector of float)
0:?     '@entryPointOutput.UV3' (layout( location=4) out 2-component vector of float)
0:?     'v' (layout( location=0) in 4-component vector of float)

// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 84

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 61 68 72 75 78 81
                              Source HLSL 500
                              Name 4  "main"
                              Name 10  "S"
                              MemberName 10(S) 0  "pos"
                              MemberName 10(S) 1  "UV0"
                              MemberName 10(S) 2  "UV1"
                              MemberName 10(S) 3  "UV2"
                              MemberName 10(S) 4  "UV3"
                              Name 13  "@main(vf4;"
                              Name 12  "v"
                              Name 16  "s"
                              Name 59  "v"
                              Name 61  "v"
                              Name 63  "flattenTemp"
                              Name 64  "param"
                              Name 68  "@entryPointOutput.pos"
                              Name 72  "@entryPointOutput.UV0"
                              Name 75  "@entryPointOutput.UV1"
                              Name 78  "@entryPointOutput.UV2"
                              Name 81  "@entryPointOutput.UV3"
                              Decorate 61(v) Location 0
                              Decorate 68(@entryPointOutput.pos) Location 0
                              Decorate 72(@entryPointOutput.UV0) Location 1
                              Decorate 75(@entryPointOutput.UV1) Location 2
                              Decorate 78(@entryPointOutput.UV2) Location 3
                              Decorate 81(@entryPointOutput.UV3) Location 4
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
               9:             TypeVector 6(float) 2
           10(S):             TypeStruct 7(fvec4) 9(fvec2) 9(fvec2) 9(fvec2) 9(fvec2)
              11:             TypeFunction 10(S) 8(ptr)
              15:             TypePointer Function 10(S)
              17:             TypeInt 32 1
              18:     17(int) Constant 0
              21:     17(int) Constant 1
              22:             TypeInt 32 0
              23:     22(int) Constant 0
              24:             TypePointer Function 6(float)
              30:             TypePointer Function 9(fvec2)
              32:     17(int) Constant 2
              33:     22(int) Constant 1
              40:     17(int) Constant 3
              41:     22(int) Constant 2
              48:     17(int) Constant 4
              49:     22(int) Constant 3
              60:             TypePointer Input 7(fvec4)
           61(v):     60(ptr) Variable Input
              67:             TypePointer Output 7(fvec4)
68(@entryPointOutput.pos):     67(ptr) Variable Output
              71:             TypePointer Output 9(fvec2)
72(@entryPointOutput.UV0):     71(ptr) Variable Output
75(@entryPointOutput.UV1):     71(ptr) Variable Output
78(@entryPointOutput.UV2):     71(ptr) Variable Output
81(@entryPointOutput.UV3):     71(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
           59(v):      8(ptr) Variable Function
 63(flattenTemp):     15(ptr) Variable Function
       64(param):      8(ptr) Variable Function
              62:    7(fvec4) Load 61(v)
                              Store 59(v) 62
              65:    7(fvec4) Load 59(v)
                              Store 64(param) 65
              66:       10(S) FunctionCall 13(@main(vf4;) 64(param)
                              Store 63(flattenTemp) 66
              69:      8(ptr) AccessChain 63(flattenTemp) 18
              70:    7(fvec4) Load 69
                              Store 68(@entryPointOutput.pos) 70
              73:     30(ptr) AccessChain 63(flattenTemp) 21
              74:    9(fvec2) Load 73
                              Store 72(@entryPointOutput.UV0) 74
              76:     30(ptr) AccessChain 63(flattenTemp) 32
              77:    9(fvec2) Load 76
                              Store 75(@entryPointOutput.UV1) 77
              79:     30(ptr) AccessChain 63(flattenTemp) 40
              80:    9(fvec2) Load 79
                              Store 78(@entryPointOutput.UV2) 80
              82:     30(ptr) AccessChain 63(flattenTemp) 48
              83:    9(fvec2) Load 82
                              Store 81(@entryPointOutput.UV3) 83
                              Return
                              FunctionEnd
  13(@main(vf4;):       10(S) Function None 11
           12(v):      8(ptr) FunctionParameter
              14:             Label
           16(s):     15(ptr) Variable Function
              19:    7(fvec4) Load 12(v)
              20:      8(ptr) AccessChain 16(s) 18
                              Store 20 19
              25:     24(ptr) AccessChain 12(v) 23
              26:    6(float) Load 25
              27:     24(ptr) AccessChain 12(v) 23
              28:    6(float) Load 27
              29:    9(fvec2) CompositeConstruct 26 28
              31:     30(ptr) AccessChain 16(s) 21
                              Store 31 29
              34:     24(ptr) AccessChain 12(v) 33
              35:    6(float) Load 34
              36:     24(ptr) AccessChain 12(v) 33
              37:    6(float) Load 36
              38:    9(fvec2) CompositeConstruct 35 37
              39:     30(ptr) AccessChain 16(s) 32
                              Store 39 38
              42:     24(ptr) AccessChain 12(v) 41
              43:    6(float) Load 42
              44:     24(ptr) AccessChain 12(v) 41
              45:    6(float) Load 44
              46:    9(fvec2) CompositeConstruct 43 45
              47:     30(ptr) AccessChain 16(s) 40
                              Store 47 46
              50:     24(ptr) AccessChain 12(v) 49
              51:    6(float) Load 50
              52:     24(ptr) AccessChain 12(v) 49
              53:    6(float) Load 52
              54:    9(fvec2) CompositeConstruct 51 53
              55:     30(ptr) AccessChain 16(s) 48
                              Store 55 54
              56:       10(S) Load 16(s)
                              ReturnValue 56
                              FunctionEnd
