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): 80005
// 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
