hlsl.entry-out.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:7  Function Definition: fun(struct-OutParam-vf2-vi21; ( temp void)
0:7    Function Parameters: 
0:7      'op' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:?     Sequence
0:8      move second child to first child ( temp 2-component vector of float)
0:8        v: direct index for structure ( temp 2-component vector of float)
0:8          'op' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:8          Constant:
0:8            0 (const int)
0:8        Constant:
0:8          0.400000
0:8          0.400000
0:9      move second child to first child ( temp 2-component vector of int)
0:9        i: direct index for structure ( temp 2-component vector of int)
0:9          'op' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:9          Constant:
0:9            1 (const int)
0:9        Constant:
0:9          7 (const int)
0:9          7 (const int)
0:13  Function Definition: @PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; ( temp 4-component vector of float)
0:13    Function Parameters: 
0:13      'input' ( in 4-component vector of float)
0:13      'out1' ( out 4-component vector of float)
0:13      'out2' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:13      'out3' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:?     Sequence
0:14      move second child to first child ( temp 4-component vector of float)
0:14        'out1' ( out 4-component vector of float)
0:14        'input' ( in 4-component vector of float)
0:15      move second child to first child ( temp 2-component vector of float)
0:15        v: direct index for structure ( temp 2-component vector of float)
0:15          'out2' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:15          Constant:
0:15            0 (const int)
0:15        Constant:
0:15          2.000000
0:15          2.000000
0:16      move second child to first child ( temp 2-component vector of int)
0:16        i: direct index for structure ( temp 2-component vector of int)
0:16          'out2' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:16          Constant:
0:16            1 (const int)
0:16        Constant:
0:16          3 (const int)
0:16          3 (const int)
0:18      move second child to first child ( temp 2-component vector of float)
0:18        v: direct index for structure ( temp 2-component vector of float)
0:18          'local' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:18          Constant:
0:18            0 (const int)
0:18        Constant:
0:18          12.000000
0:18          12.000000
0:19      move second child to first child ( temp 2-component vector of int)
0:19        i: direct index for structure ( temp 2-component vector of int)
0:19          'local' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:19          Constant:
0:19            1 (const int)
0:19        Constant:
0:19          13 (const int)
0:19          13 (const int)
0:20      Function Call: fun(struct-OutParam-vf2-vi21; ( temp void)
0:20        'out3' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:22      Branch: Return with expression
0:22        'out1' ( out 4-component vector of float)
0:13  Function Definition: PixelShaderFunction( ( temp void)
0:13    Function Parameters: 
0:?     Sequence
0:13      move second child to first child ( temp 4-component vector of float)
0:?         'input' ( temp 4-component vector of float)
0:?         'input' (layout( location=0) in 4-component vector of float)
0:13      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:13        Function Call: @PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; ( temp 4-component vector of float)
0:?           'input' ( temp 4-component vector of float)
0:?           'out1' ( temp 4-component vector of float)
0:?           'out2' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:?           'out3' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:13      move second child to first child ( temp 4-component vector of float)
0:?         'out1' (layout( location=1) out 4-component vector of float)
0:?         'out1' ( temp 4-component vector of float)
0:13      Sequence
0:13        move second child to first child ( temp 2-component vector of float)
0:?           'out2.v' (layout( location=2) out 2-component vector of float)
0:13          v: direct index for structure ( temp 2-component vector of float)
0:?             'out2' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:13            Constant:
0:13              0 (const int)
0:13        move second child to first child ( temp 2-component vector of int)
0:?           'out2.i' (layout( location=3) out 2-component vector of int)
0:13          i: direct index for structure ( temp 2-component vector of int)
0:?             'out2' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:13            Constant:
0:13              1 (const int)
0:13      Sequence
0:13        move second child to first child ( temp 2-component vector of float)
0:?           'out3.v' (layout( location=4) out 2-component vector of float)
0:13          v: direct index for structure ( temp 2-component vector of float)
0:?             'out3' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:13            Constant:
0:13              0 (const int)
0:13        move second child to first child ( temp 2-component vector of int)
0:?           'out3.i' (layout( location=5) out 2-component vector of int)
0:13          i: direct index for structure ( temp 2-component vector of int)
0:?             'out3' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:13            Constant:
0:13              1 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'input' (layout( location=0) in 4-component vector of float)
0:?     'out1' (layout( location=1) out 4-component vector of float)
0:?     'out2.v' (layout( location=2) out 2-component vector of float)
0:?     'out2.i' (layout( location=3) out 2-component vector of int)
0:?     'out3.v' (layout( location=4) out 2-component vector of float)
0:?     'out3.i' (layout( location=5) out 2-component vector of int)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:7  Function Definition: fun(struct-OutParam-vf2-vi21; ( temp void)
0:7    Function Parameters: 
0:7      'op' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:?     Sequence
0:8      move second child to first child ( temp 2-component vector of float)
0:8        v: direct index for structure ( temp 2-component vector of float)
0:8          'op' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:8          Constant:
0:8            0 (const int)
0:8        Constant:
0:8          0.400000
0:8          0.400000
0:9      move second child to first child ( temp 2-component vector of int)
0:9        i: direct index for structure ( temp 2-component vector of int)
0:9          'op' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:9          Constant:
0:9            1 (const int)
0:9        Constant:
0:9          7 (const int)
0:9          7 (const int)
0:13  Function Definition: @PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; ( temp 4-component vector of float)
0:13    Function Parameters: 
0:13      'input' ( in 4-component vector of float)
0:13      'out1' ( out 4-component vector of float)
0:13      'out2' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:13      'out3' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:?     Sequence
0:14      move second child to first child ( temp 4-component vector of float)
0:14        'out1' ( out 4-component vector of float)
0:14        'input' ( in 4-component vector of float)
0:15      move second child to first child ( temp 2-component vector of float)
0:15        v: direct index for structure ( temp 2-component vector of float)
0:15          'out2' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:15          Constant:
0:15            0 (const int)
0:15        Constant:
0:15          2.000000
0:15          2.000000
0:16      move second child to first child ( temp 2-component vector of int)
0:16        i: direct index for structure ( temp 2-component vector of int)
0:16          'out2' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:16          Constant:
0:16            1 (const int)
0:16        Constant:
0:16          3 (const int)
0:16          3 (const int)
0:18      move second child to first child ( temp 2-component vector of float)
0:18        v: direct index for structure ( temp 2-component vector of float)
0:18          'local' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:18          Constant:
0:18            0 (const int)
0:18        Constant:
0:18          12.000000
0:18          12.000000
0:19      move second child to first child ( temp 2-component vector of int)
0:19        i: direct index for structure ( temp 2-component vector of int)
0:19          'local' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:19          Constant:
0:19            1 (const int)
0:19        Constant:
0:19          13 (const int)
0:19          13 (const int)
0:20      Function Call: fun(struct-OutParam-vf2-vi21; ( temp void)
0:20        'out3' ( out structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:22      Branch: Return with expression
0:22        'out1' ( out 4-component vector of float)
0:13  Function Definition: PixelShaderFunction( ( temp void)
0:13    Function Parameters: 
0:?     Sequence
0:13      move second child to first child ( temp 4-component vector of float)
0:?         'input' ( temp 4-component vector of float)
0:?         'input' (layout( location=0) in 4-component vector of float)
0:13      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:13        Function Call: @PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; ( temp 4-component vector of float)
0:?           'input' ( temp 4-component vector of float)
0:?           'out1' ( temp 4-component vector of float)
0:?           'out2' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:?           'out3' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:13      move second child to first child ( temp 4-component vector of float)
0:?         'out1' (layout( location=1) out 4-component vector of float)
0:?         'out1' ( temp 4-component vector of float)
0:13      Sequence
0:13        move second child to first child ( temp 2-component vector of float)
0:?           'out2.v' (layout( location=2) out 2-component vector of float)
0:13          v: direct index for structure ( temp 2-component vector of float)
0:?             'out2' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:13            Constant:
0:13              0 (const int)
0:13        move second child to first child ( temp 2-component vector of int)
0:?           'out2.i' (layout( location=3) out 2-component vector of int)
0:13          i: direct index for structure ( temp 2-component vector of int)
0:?             'out2' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:13            Constant:
0:13              1 (const int)
0:13      Sequence
0:13        move second child to first child ( temp 2-component vector of float)
0:?           'out3.v' (layout( location=4) out 2-component vector of float)
0:13          v: direct index for structure ( temp 2-component vector of float)
0:?             'out3' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:13            Constant:
0:13              0 (const int)
0:13        move second child to first child ( temp 2-component vector of int)
0:?           'out3.i' (layout( location=5) out 2-component vector of int)
0:13          i: direct index for structure ( temp 2-component vector of int)
0:?             'out3' ( temp structure{ temp 2-component vector of float v,  temp 2-component vector of int i})
0:13            Constant:
0:13              1 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'input' (layout( location=0) in 4-component vector of float)
0:?     'out1' (layout( location=1) out 4-component vector of float)
0:?     'out2.v' (layout( location=2) out 2-component vector of float)
0:?     'out2.i' (layout( location=3) out 2-component vector of int)
0:?     'out3.v' (layout( location=4) out 2-component vector of float)
0:?     'out3.i' (layout( location=5) out 2-component vector of int)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction" 57 60 73 76 80 83 86
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "PixelShaderFunction"
                              Name 10  "OutParam"
                              MemberName 10(OutParam) 0  "v"
                              MemberName 10(OutParam) 1  "i"
                              Name 14  "fun(struct-OutParam-vf2-vi21;"
                              Name 13  "op"
                              Name 23  "@PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21;"
                              Name 19  "input"
                              Name 20  "out1"
                              Name 21  "out2"
                              Name 22  "out3"
                              Name 42  "local"
                              Name 49  "param"
                              Name 55  "input"
                              Name 57  "input"
                              Name 60  "@entryPointOutput"
                              Name 61  "out1"
                              Name 62  "out2"
                              Name 63  "out3"
                              Name 64  "param"
                              Name 66  "param"
                              Name 67  "param"
                              Name 68  "param"
                              Name 73  "out1"
                              Name 76  "out2.v"
                              Name 80  "out2.i"
                              Name 83  "out3.v"
                              Name 86  "out3.i"
                              Decorate 57(input) Location 0
                              Decorate 60(@entryPointOutput) Location 0
                              Decorate 73(out1) Location 1
                              Decorate 76(out2.v) Location 2
                              Decorate 80(out2.i) Location 3
                              Decorate 83(out3.v) Location 4
                              Decorate 86(out3.i) Location 5
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 2
               8:             TypeInt 32 1
               9:             TypeVector 8(int) 2
    10(OutParam):             TypeStruct 7(fvec2) 9(ivec2)
              11:             TypePointer Function 10(OutParam)
              12:             TypeFunction 2 11(ptr)
              16:             TypeVector 6(float) 4
              17:             TypePointer Function 16(fvec4)
              18:             TypeFunction 16(fvec4) 17(ptr) 17(ptr) 11(ptr) 11(ptr)
              25:      8(int) Constant 0
              26:    6(float) Constant 1053609165
              27:    7(fvec2) ConstantComposite 26 26
              28:             TypePointer Function 7(fvec2)
              30:      8(int) Constant 1
              31:      8(int) Constant 7
              32:    9(ivec2) ConstantComposite 31 31
              33:             TypePointer Function 9(ivec2)
              36:    6(float) Constant 1073741824
              37:    7(fvec2) ConstantComposite 36 36
              39:      8(int) Constant 3
              40:    9(ivec2) ConstantComposite 39 39
              43:    6(float) Constant 1094713344
              44:    7(fvec2) ConstantComposite 43 43
              46:      8(int) Constant 13
              47:    9(ivec2) ConstantComposite 46 46
              56:             TypePointer Input 16(fvec4)
       57(input):     56(ptr) Variable Input
              59:             TypePointer Output 16(fvec4)
60(@entryPointOutput):     59(ptr) Variable Output
        73(out1):     59(ptr) Variable Output
              75:             TypePointer Output 7(fvec2)
      76(out2.v):     75(ptr) Variable Output
              79:             TypePointer Output 9(ivec2)
      80(out2.i):     79(ptr) Variable Output
      83(out3.v):     75(ptr) Variable Output
      86(out3.i):     79(ptr) Variable Output
4(PixelShaderFunction):           2 Function None 3
               5:             Label
       55(input):     17(ptr) Variable Function
        61(out1):     17(ptr) Variable Function
        62(out2):     11(ptr) Variable Function
        63(out3):     11(ptr) Variable Function
       64(param):     17(ptr) Variable Function
       66(param):     17(ptr) Variable Function
       67(param):     11(ptr) Variable Function
       68(param):     11(ptr) Variable Function
              58:   16(fvec4) Load 57(input)
                              Store 55(input) 58
              65:   16(fvec4) Load 55(input)
                              Store 64(param) 65
              69:   16(fvec4) FunctionCall 23(@PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21;) 64(param) 66(param) 67(param) 68(param)
              70:   16(fvec4) Load 66(param)
                              Store 61(out1) 70
              71:10(OutParam) Load 67(param)
                              Store 62(out2) 71
              72:10(OutParam) Load 68(param)
                              Store 63(out3) 72
                              Store 60(@entryPointOutput) 69
              74:   16(fvec4) Load 61(out1)
                              Store 73(out1) 74
              77:     28(ptr) AccessChain 62(out2) 25
              78:    7(fvec2) Load 77
                              Store 76(out2.v) 78
              81:     33(ptr) AccessChain 62(out2) 30
              82:    9(ivec2) Load 81
                              Store 80(out2.i) 82
              84:     28(ptr) AccessChain 63(out3) 25
              85:    7(fvec2) Load 84
                              Store 83(out3.v) 85
              87:     33(ptr) AccessChain 63(out3) 30
              88:    9(ivec2) Load 87
                              Store 86(out3.i) 88
                              Return
                              FunctionEnd
14(fun(struct-OutParam-vf2-vi21;):           2 Function None 12
          13(op):     11(ptr) FunctionParameter
              15:             Label
              29:     28(ptr) AccessChain 13(op) 25
                              Store 29 27
              34:     33(ptr) AccessChain 13(op) 30
                              Store 34 32
                              Return
                              FunctionEnd
23(@PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21;):   16(fvec4) Function None 18
       19(input):     17(ptr) FunctionParameter
        20(out1):     17(ptr) FunctionParameter
        21(out2):     11(ptr) FunctionParameter
        22(out3):     11(ptr) FunctionParameter
              24:             Label
       42(local):     11(ptr) Variable Function
       49(param):     11(ptr) Variable Function
              35:   16(fvec4) Load 19(input)
                              Store 20(out1) 35
              38:     28(ptr) AccessChain 21(out2) 25
                              Store 38 37
              41:     33(ptr) AccessChain 21(out2) 30
                              Store 41 40
              45:     28(ptr) AccessChain 42(local) 25
                              Store 45 44
              48:     33(ptr) AccessChain 42(local) 30
                              Store 48 47
              50:           2 FunctionCall 14(fun(struct-OutParam-vf2-vi21;) 49(param)
              51:10(OutParam) Load 49(param)
                              Store 22(out3) 51
              52:   16(fvec4) Load 20(out1)
                              ReturnValue 52
                              FunctionEnd
