hlsl.domain.3.tese
Shader version: 500
input primitive = isolines
vertex spacing = none
triangle order = none
0:? Sequence
0:24  Function Definition: @main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:24    Function Parameters: 
0:24      'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:24      'tesscoord' ( in 2-component vector of float)
0:24      'pcf_data' ( in structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
0:?     Sequence
0:27      move second child to first child ( temp 4-component vector of float)
0:27        pos: direct index for structure ( temp 4-component vector of float)
0:27          'o' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:27          Constant:
0:27            0 (const int)
0:27        add ( temp 4-component vector of float)
0:27          pos: direct index for structure ( temp 4-component vector of float)
0:27            direct index ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:27              'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:27              Constant:
0:27                0 (const int)
0:27            Constant:
0:27              0 (const int)
0:27          direct index ( temp float)
0:27            'tesscoord' ( in 2-component vector of float)
0:27            Constant:
0:27              0 (const int)
0:28      move second child to first child ( temp 3-component vector of float)
0:28        norm: direct index for structure ( temp 3-component vector of float)
0:28          'o' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:28          Constant:
0:28            1 (const int)
0:28        add ( temp 3-component vector of float)
0:28          norm: direct index for structure ( temp 3-component vector of float)
0:28            direct index ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:28              'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:28              Constant:
0:28                0 (const int)
0:28            Constant:
0:28              1 (const int)
0:28          direct index ( temp float)
0:28            'tesscoord' ( in 2-component vector of float)
0:28            Constant:
0:28              1 (const int)
0:30      Branch: Return with expression
0:30        'o' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:24  Function Definition: main( ( temp void)
0:24    Function Parameters: 
0:?     Sequence
0:24      move second child to first child ( temp 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:?         'i' ( temp 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:?         'i' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:24      move second child to first child ( temp 2-component vector of float)
0:?         'tesscoord' ( temp 2-component vector of float)
0:?         Construct vec2 ( temp 2-component vector of float)
0:?           'tesscoord' ( patch in 3-component vector of float TessCoord)
0:24      Sequence
0:24        move second child to first child ( temp float)
0:24          direct index ( temp float)
0:24            flTessFactor: direct index for structure ( temp 3-element array of float)
0:?               'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
0:24              Constant:
0:24                0 (const int)
0:24            Constant:
0:24              0 (const int)
0:24          direct index ( patch in float TessLevelOuter)
0:?             'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter)
0:24            Constant:
0:24              0 (const int)
0:24        move second child to first child ( temp float)
0:24          direct index ( temp float)
0:24            flTessFactor: direct index for structure ( temp 3-element array of float)
0:?               'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
0:24              Constant:
0:24                0 (const int)
0:24            Constant:
0:24              1 (const int)
0:24          direct index ( patch in float TessLevelOuter)
0:?             'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter)
0:24            Constant:
0:24              1 (const int)
0:24        move second child to first child ( temp float)
0:24          direct index ( temp float)
0:24            flTessFactor: direct index for structure ( temp 3-element array of float)
0:?               'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
0:24              Constant:
0:24                0 (const int)
0:24            Constant:
0:24              2 (const int)
0:24          direct index ( patch in float TessLevelOuter)
0:?             'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter)
0:24            Constant:
0:24              2 (const int)
0:24        move second child to first child ( temp float)
0:24          flInsideTessFactor: direct index for structure ( temp float)
0:?             'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
0:24            Constant:
0:24              1 (const int)
0:24          direct index ( patch in float TessLevelInner)
0:?             'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
0:24            Constant:
0:24              0 (const int)
0:24      Sequence
0:24        move second child to first child ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:24          'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:24          Function Call: @main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:?             'i' ( temp 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:?             'tesscoord' ( temp 2-component vector of float)
0:?             'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
0:24        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:24          pos: direct index for structure ( temp 4-component vector of float)
0:24            'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:24            Constant:
0:24              0 (const int)
0:24        move second child to first child ( temp 3-component vector of float)
0:?           '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float)
0:24          norm: direct index for structure ( temp 3-component vector of float)
0:24            'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:24            Constant:
0:24              1 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float)
0:?     '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float)
0:?     'i' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:?     'tesscoord' ( patch in 3-component vector of float TessCoord)
0:?     'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter)
0:?     'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)


Linked tessellation evaluation stage:


Shader version: 500
input primitive = isolines
vertex spacing = none
triangle order = none
0:? Sequence
0:24  Function Definition: @main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:24    Function Parameters: 
0:24      'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:24      'tesscoord' ( in 2-component vector of float)
0:24      'pcf_data' ( in structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
0:?     Sequence
0:27      move second child to first child ( temp 4-component vector of float)
0:27        pos: direct index for structure ( temp 4-component vector of float)
0:27          'o' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:27          Constant:
0:27            0 (const int)
0:27        add ( temp 4-component vector of float)
0:27          pos: direct index for structure ( temp 4-component vector of float)
0:27            direct index ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:27              'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:27              Constant:
0:27                0 (const int)
0:27            Constant:
0:27              0 (const int)
0:27          direct index ( temp float)
0:27            'tesscoord' ( in 2-component vector of float)
0:27            Constant:
0:27              0 (const int)
0:28      move second child to first child ( temp 3-component vector of float)
0:28        norm: direct index for structure ( temp 3-component vector of float)
0:28          'o' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:28          Constant:
0:28            1 (const int)
0:28        add ( temp 3-component vector of float)
0:28          norm: direct index for structure ( temp 3-component vector of float)
0:28            direct index ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:28              'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:28              Constant:
0:28                0 (const int)
0:28            Constant:
0:28              1 (const int)
0:28          direct index ( temp float)
0:28            'tesscoord' ( in 2-component vector of float)
0:28            Constant:
0:28              1 (const int)
0:30      Branch: Return with expression
0:30        'o' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:24  Function Definition: main( ( temp void)
0:24    Function Parameters: 
0:?     Sequence
0:24      move second child to first child ( temp 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:?         'i' ( temp 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:?         'i' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:24      move second child to first child ( temp 2-component vector of float)
0:?         'tesscoord' ( temp 2-component vector of float)
0:?         Construct vec2 ( temp 2-component vector of float)
0:?           'tesscoord' ( patch in 3-component vector of float TessCoord)
0:24      Sequence
0:24        move second child to first child ( temp float)
0:24          direct index ( temp float)
0:24            flTessFactor: direct index for structure ( temp 3-element array of float)
0:?               'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
0:24              Constant:
0:24                0 (const int)
0:24            Constant:
0:24              0 (const int)
0:24          direct index ( patch in float TessLevelOuter)
0:?             'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter)
0:24            Constant:
0:24              0 (const int)
0:24        move second child to first child ( temp float)
0:24          direct index ( temp float)
0:24            flTessFactor: direct index for structure ( temp 3-element array of float)
0:?               'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
0:24              Constant:
0:24                0 (const int)
0:24            Constant:
0:24              1 (const int)
0:24          direct index ( patch in float TessLevelOuter)
0:?             'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter)
0:24            Constant:
0:24              1 (const int)
0:24        move second child to first child ( temp float)
0:24          direct index ( temp float)
0:24            flTessFactor: direct index for structure ( temp 3-element array of float)
0:?               'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
0:24              Constant:
0:24                0 (const int)
0:24            Constant:
0:24              2 (const int)
0:24          direct index ( patch in float TessLevelOuter)
0:?             'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter)
0:24            Constant:
0:24              2 (const int)
0:24        move second child to first child ( temp float)
0:24          flInsideTessFactor: direct index for structure ( temp float)
0:?             'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
0:24            Constant:
0:24              1 (const int)
0:24          direct index ( patch in float TessLevelInner)
0:?             'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
0:24            Constant:
0:24              0 (const int)
0:24      Sequence
0:24        move second child to first child ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:24          'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:24          Function Call: @main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:?             'i' ( temp 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:?             'tesscoord' ( temp 2-component vector of float)
0:?             'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
0:24        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:24          pos: direct index for structure ( temp 4-component vector of float)
0:24            'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:24            Constant:
0:24              0 (const int)
0:24        move second child to first child ( temp 3-component vector of float)
0:?           '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float)
0:24          norm: direct index for structure ( temp 3-component vector of float)
0:24            'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:24            Constant:
0:24              1 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float)
0:?     '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float)
0:?     'i' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
0:?     'tesscoord' ( patch in 3-component vector of float TessCoord)
0:?     'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter)
0:?     'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)

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

                              Capability Tessellation
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint TessellationEvaluation 4  "main" 54 58 67 81 93 97
                              ExecutionMode 4 Isolines
                              Source HLSL 500
                              Name 4  "main"
                              Name 9  "ds_in_t"
                              MemberName 9(ds_in_t) 0  "pos"
                              MemberName 9(ds_in_t) 1  "norm"
                              Name 17  "pcf_in_t"
                              MemberName 17(pcf_in_t) 0  "flTessFactor"
                              MemberName 17(pcf_in_t) 1  "flInsideTessFactor"
                              Name 19  "gs_in_t"
                              MemberName 19(gs_in_t) 0  "pos"
                              MemberName 19(gs_in_t) 1  "norm"
                              Name 24  "@main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11;"
                              Name 21  "i"
                              Name 22  "tesscoord"
                              Name 23  "pcf_data"
                              Name 27  "o"
                              Name 52  "i"
                              Name 54  "i"
                              Name 56  "tesscoord"
                              Name 58  "tesscoord"
                              Name 63  "pcf_data"
                              Name 67  "pcf_data.flTessFactor"
                              Name 81  "pcf_data.flInsideTessFactor"
                              Name 85  "flattenTemp"
                              Name 87  "param"
                              Name 89  "param"
                              Name 93  "@entryPointOutput.pos"
                              Name 97  "@entryPointOutput.norm"
                              Decorate 54(i) Location 0
                              Decorate 58(tesscoord) Patch
                              Decorate 58(tesscoord) BuiltIn TessCoord
                              Decorate 67(pcf_data.flTessFactor) Patch
                              Decorate 67(pcf_data.flTessFactor) BuiltIn TessLevelOuter
                              Decorate 81(pcf_data.flInsideTessFactor) Patch
                              Decorate 81(pcf_data.flInsideTessFactor) BuiltIn TessLevelInner
                              Decorate 93(@entryPointOutput.pos) Location 0
                              Decorate 97(@entryPointOutput.norm) Location 1
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeVector 6(float) 3
      9(ds_in_t):             TypeStruct 7(fvec4) 8(fvec3)
              10:             TypeInt 32 0
              11:     10(int) Constant 2
              12:             TypeArray 9(ds_in_t) 11
              13:             TypeVector 6(float) 2
              14:             TypePointer Function 13(fvec2)
              15:     10(int) Constant 3
              16:             TypeArray 6(float) 15
    17(pcf_in_t):             TypeStruct 16 6(float)
              18:             TypePointer Function 17(pcf_in_t)
     19(gs_in_t):             TypeStruct 7(fvec4) 8(fvec3)
              20:             TypeFunction 19(gs_in_t) 12 14(ptr) 18(ptr)
              26:             TypePointer Function 19(gs_in_t)
              28:             TypeInt 32 1
              29:     28(int) Constant 0
              31:     10(int) Constant 0
              32:             TypePointer Function 6(float)
              37:             TypePointer Function 7(fvec4)
              39:     28(int) Constant 1
              41:     10(int) Constant 1
              46:             TypePointer Function 8(fvec3)
              51:             TypePointer Function 12
              53:             TypePointer Input 12
           54(i):     53(ptr) Variable Input
              57:             TypePointer Input 8(fvec3)
   58(tesscoord):     57(ptr) Variable Input
              64:     10(int) Constant 4
              65:             TypeArray 6(float) 64
              66:             TypePointer Input 65
67(pcf_data.flTessFactor):     66(ptr) Variable Input
              68:             TypePointer Input 6(float)
              75:     28(int) Constant 2
              79:             TypeArray 6(float) 11
              80:             TypePointer Input 79
81(pcf_data.flInsideTessFactor):     80(ptr) Variable Input
              92:             TypePointer Output 7(fvec4)
93(@entryPointOutput.pos):     92(ptr) Variable Output
              96:             TypePointer Output 8(fvec3)
97(@entryPointOutput.norm):     96(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
           52(i):     51(ptr) Variable Function
   56(tesscoord):     14(ptr) Variable Function
    63(pcf_data):     18(ptr) Variable Function
 85(flattenTemp):     26(ptr) Variable Function
       87(param):     14(ptr) Variable Function
       89(param):     18(ptr) Variable Function
              55:          12 Load 54(i)
                              Store 52(i) 55
              59:    8(fvec3) Load 58(tesscoord)
              60:    6(float) CompositeExtract 59 0
              61:    6(float) CompositeExtract 59 1
              62:   13(fvec2) CompositeConstruct 60 61
                              Store 56(tesscoord) 62
              69:     68(ptr) AccessChain 67(pcf_data.flTessFactor) 29
              70:    6(float) Load 69
              71:     32(ptr) AccessChain 63(pcf_data) 29 29
                              Store 71 70
              72:     68(ptr) AccessChain 67(pcf_data.flTessFactor) 39
              73:    6(float) Load 72
              74:     32(ptr) AccessChain 63(pcf_data) 29 39
                              Store 74 73
              76:     68(ptr) AccessChain 67(pcf_data.flTessFactor) 75
              77:    6(float) Load 76
              78:     32(ptr) AccessChain 63(pcf_data) 29 75
                              Store 78 77
              82:     68(ptr) AccessChain 81(pcf_data.flInsideTessFactor) 29
              83:    6(float) Load 82
              84:     32(ptr) AccessChain 63(pcf_data) 39
                              Store 84 83
              86:          12 Load 52(i)
              88:   13(fvec2) Load 56(tesscoord)
                              Store 87(param) 88
              90:17(pcf_in_t) Load 63(pcf_data)
                              Store 89(param) 90
              91: 19(gs_in_t) FunctionCall 24(@main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11;) 86 87(param) 89(param)
                              Store 85(flattenTemp) 91
              94:     37(ptr) AccessChain 85(flattenTemp) 29
              95:    7(fvec4) Load 94
                              Store 93(@entryPointOutput.pos) 95
              98:     46(ptr) AccessChain 85(flattenTemp) 39
              99:    8(fvec3) Load 98
                              Store 97(@entryPointOutput.norm) 99
                              Return
                              FunctionEnd
24(@main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11;): 19(gs_in_t) Function None 20
           21(i):          12 FunctionParameter
   22(tesscoord):     14(ptr) FunctionParameter
    23(pcf_data):     18(ptr) FunctionParameter
              25:             Label
           27(o):     26(ptr) Variable Function
              30:    7(fvec4) CompositeExtract 21(i) 0 0
              33:     32(ptr) AccessChain 22(tesscoord) 31
              34:    6(float) Load 33
              35:    7(fvec4) CompositeConstruct 34 34 34 34
              36:    7(fvec4) FAdd 30 35
              38:     37(ptr) AccessChain 27(o) 29
                              Store 38 36
              40:    8(fvec3) CompositeExtract 21(i) 0 1
              42:     32(ptr) AccessChain 22(tesscoord) 41
              43:    6(float) Load 42
              44:    8(fvec3) CompositeConstruct 43 43 43
              45:    8(fvec3) FAdd 40 44
              47:     46(ptr) AccessChain 27(o) 39
                              Store 47 45
              48: 19(gs_in_t) Load 27(o)
                              ReturnValue 48
                              FunctionEnd
