hlsl.gs-hs-mix.tesc
Shader version: 500
vertices = 3
input primitive = triangles
vertex spacing = fractional_odd_spacing
triangle order = ccw
0:? Sequence
0:31  Function Definition: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:31    Function Parameters: 
0:31      'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:?     Sequence
0:32      Sequence
0:32        move second child to first child ( temp 3-component vector of float)
0:32          'roundedEdgeTessFactor' ( temp 3-component vector of float)
0:32          tess_factor: direct index for structure (layout( row_major std140) uniform 3-component vector of float)
0:32            'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
0:32            Constant:
0:32              6 (const uint)
0:33      Sequence
0:33        move second child to first child ( temp float)
0:33          'roundedInsideTessFactor' ( temp float)
0:33          Constant:
0:33            3.000000
0:34      Sequence
0:34        move second child to first child ( temp float)
0:34          'insideTessFactor' ( temp float)
0:34          Constant:
0:34            1.000000
0:39      move second child to first child ( temp float)
0:39        direct index ( temp float)
0:39          EdgeTessFactor: direct index for structure ( temp 3-element array of float)
0:39            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:39            Constant:
0:39              0 (const int)
0:39          Constant:
0:39            0 (const int)
0:39        direct index ( temp float)
0:39          'roundedEdgeTessFactor' ( temp 3-component vector of float)
0:39          Constant:
0:39            0 (const int)
0:40      move second child to first child ( temp float)
0:40        direct index ( temp float)
0:40          EdgeTessFactor: direct index for structure ( temp 3-element array of float)
0:40            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:40            Constant:
0:40              0 (const int)
0:40          Constant:
0:40            1 (const int)
0:40        direct index ( temp float)
0:40          'roundedEdgeTessFactor' ( temp 3-component vector of float)
0:40          Constant:
0:40            1 (const int)
0:41      move second child to first child ( temp float)
0:41        direct index ( temp float)
0:41          EdgeTessFactor: direct index for structure ( temp 3-element array of float)
0:41            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:41            Constant:
0:41              0 (const int)
0:41          Constant:
0:41            2 (const int)
0:41        direct index ( temp float)
0:41          'roundedEdgeTessFactor' ( temp 3-component vector of float)
0:41          Constant:
0:41            2 (const int)
0:42      move second child to first child ( temp float)
0:42        InsideTessFactor: direct index for structure ( temp float)
0:42          'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:42          Constant:
0:42            1 (const int)
0:42        'roundedInsideTessFactor' ( temp float)
0:45      move second child to first child ( temp 3-component vector of float)
0:45        direct index ( temp 3-component vector of float)
0:45          NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
0:45            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:45            Constant:
0:45              2 (const int)
0:45          Constant:
0:45            0 (const int)
0:45        NormalWS: direct index for structure ( temp 3-component vector of float)
0:45          direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:45            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:45            Constant:
0:45              0 (const int)
0:45          Constant:
0:45            1 (const int)
0:46      move second child to first child ( temp 3-component vector of float)
0:46        direct index ( temp 3-component vector of float)
0:46          NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
0:46            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:46            Constant:
0:46              2 (const int)
0:46          Constant:
0:46            1 (const int)
0:46        NormalWS: direct index for structure ( temp 3-component vector of float)
0:46          direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:46            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:46            Constant:
0:46              1 (const int)
0:46          Constant:
0:46            1 (const int)
0:47      move second child to first child ( temp 3-component vector of float)
0:47        direct index ( temp 3-component vector of float)
0:47          NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
0:47            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:47            Constant:
0:47              2 (const int)
0:47          Constant:
0:47            2 (const int)
0:47        NormalWS: direct index for structure ( temp 3-component vector of float)
0:47          direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:47            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:47            Constant:
0:47              2 (const int)
0:47          Constant:
0:47            1 (const int)
0:49      Branch: Return with expression
0:49        'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:61  Function Definition: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS})
0:61    Function Parameters: 
0:61      'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:61      'id' ( in uint)
0:?     Sequence
0:63      move second child to first child ( temp 3-component vector of float)
0:63        PositionWS: direct index for structure ( temp 3-component vector of float)
0:63          'output' ( temp structure{ temp 3-component vector of float PositionWS})
0:63          Constant:
0:63            0 (const int)
0:63        PositionWS: direct index for structure ( temp 3-component vector of float)
0:63          indirect index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:63            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:63            'id' ( in uint)
0:63          Constant:
0:63            0 (const int)
0:64      Branch: Return with expression
0:64        'output' ( temp structure{ temp 3-component vector of float PositionWS})
0:61  Function Definition: HSMain( ( temp void)
0:61    Function Parameters: 
0:?     Sequence
0:61      move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:?         'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:?         'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:61      move second child to first child ( temp uint)
0:?         'id' ( temp uint)
0:?         'id' ( in uint InvocationID)
0:61      move second child to first child ( temp structure{ temp 3-component vector of float PositionWS})
0:61        indirect index (layout( location=0) out structure{ temp 3-component vector of float PositionWS})
0:?           '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float PositionWS})
0:?           'id' ( in uint InvocationID)
0:61        Function Call: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS})
0:?           'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:?           'id' ( temp uint)
0:?       Barrier ( temp void)
0:?       Test condition and select ( temp void)
0:?         Condition
0:?         Compare Equal ( temp bool)
0:?           'id' ( in uint InvocationID)
0:?           Constant:
0:?             0 (const int)
0:?         true case
0:?         Sequence
0:?           move second child to first child ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:?             '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:?             Function Call: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:?           Sequence
0:?             move second child to first child ( temp float)
0:?               direct index ( patch out float TessLevelOuter)
0:?                 '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
0:?                 Constant:
0:?                   0 (const int)
0:?               direct index ( temp float)
0:?                 EdgeTessFactor: direct index for structure ( temp 3-element array of float)
0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:?                   Constant:
0:?                     0 (const int)
0:?                 Constant:
0:?                   0 (const int)
0:?             move second child to first child ( temp float)
0:?               direct index ( patch out float TessLevelOuter)
0:?                 '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
0:?                 Constant:
0:?                   1 (const int)
0:?               direct index ( temp float)
0:?                 EdgeTessFactor: direct index for structure ( temp 3-element array of float)
0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:?                   Constant:
0:?                     0 (const int)
0:?                 Constant:
0:?                   1 (const int)
0:?             move second child to first child ( temp float)
0:?               direct index ( patch out float TessLevelOuter)
0:?                 '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
0:?                 Constant:
0:?                   2 (const int)
0:?               direct index ( temp float)
0:?                 EdgeTessFactor: direct index for structure ( temp 3-element array of float)
0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:?                   Constant:
0:?                     0 (const int)
0:?                 Constant:
0:?                   2 (const int)
0:?             move second child to first child ( temp float)
0:?               direct index ( patch out float TessLevelInner)
0:?                 '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner)
0:?                 Constant:
0:?                   0 (const int)
0:?               InsideTessFactor: direct index for structure ( temp float)
0:?                 '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:?                 Constant:
0:?                   1 (const int)
0:?             move second child to first child ( temp 3-element array of 3-component vector of float)
0:?               NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
0:?                 '@patchConstantOutput' (layout( location=1) patch out structure{ temp 3-element array of 3-component vector of float NormalWS})
0:?                 Constant:
0:?                   0 (const int)
0:?               NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
0:?                 '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:?                 Constant:
0:?                   2 (const int)
0:84  Function Definition: GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41; ( temp void)
0:84    Function Parameters: 
0:84      'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:84      'output' ( out structure{ temp 4-component vector of float PositionCS})
0:?     Sequence
0:86      Sequence
0:86        move second child to first child ( temp 3-component vector of float)
0:86          'P0' ( temp 3-component vector of float)
0:86          vector swizzle ( temp 3-component vector of float)
0:86            PositionWS: direct index for structure ( temp 3-component vector of float)
0:86              direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:86                'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:86                Constant:
0:86                  0 (const int)
0:86              Constant:
0:86                0 (const int)
0:86            Sequence
0:86              Constant:
0:86                0 (const int)
0:86              Constant:
0:86                1 (const int)
0:86              Constant:
0:86                2 (const int)
0:87      Sequence
0:87        move second child to first child ( temp 3-component vector of float)
0:87          'P1' ( temp 3-component vector of float)
0:87          vector swizzle ( temp 3-component vector of float)
0:87            PositionWS: direct index for structure ( temp 3-component vector of float)
0:87              direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:87                'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:87                Constant:
0:87                  1 (const int)
0:87              Constant:
0:87                0 (const int)
0:87            Sequence
0:87              Constant:
0:87                0 (const int)
0:87              Constant:
0:87                1 (const int)
0:87              Constant:
0:87                2 (const int)
0:88      Sequence
0:88        move second child to first child ( temp 3-component vector of float)
0:88          'P2' ( temp 3-component vector of float)
0:88          vector swizzle ( temp 3-component vector of float)
0:88            PositionWS: direct index for structure ( temp 3-component vector of float)
0:88              direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:88                'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:88                Constant:
0:88                  2 (const int)
0:88              Constant:
0:88                0 (const int)
0:88            Sequence
0:88              Constant:
0:88                0 (const int)
0:88              Constant:
0:88                1 (const int)
0:88              Constant:
0:88                2 (const int)
0:92      add second child into first child ( temp float)
0:92        direct index ( temp float)
0:92          'P0' ( temp 3-component vector of float)
0:92          Constant:
0:92            2 (const int)
0:92        Constant:
0:92          0.001000
0:93      add second child into first child ( temp float)
0:93        direct index ( temp float)
0:93          'P1' ( temp 3-component vector of float)
0:93          Constant:
0:93            2 (const int)
0:93        Constant:
0:93          0.001000
0:94      add second child into first child ( temp float)
0:94        direct index ( temp float)
0:94          'P2' ( temp 3-component vector of float)
0:94          Constant:
0:94            2 (const int)
0:94        Constant:
0:94          0.001000
0:95      Sequence
0:95        move second child to first child ( temp 4-component vector of float)
0:95          'Q0' ( temp 4-component vector of float)
0:95          vector-times-matrix ( temp 4-component vector of float)
0:?             Construct vec4 ( temp 4-component vector of float)
0:95              'P0' ( temp 3-component vector of float)
0:95              Constant:
0:95                1.000000
0:95            proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:95              'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
0:95              Constant:
0:95                1 (const uint)
0:96      Sequence
0:96        move second child to first child ( temp 4-component vector of float)
0:96          'Q1' ( temp 4-component vector of float)
0:96          vector-times-matrix ( temp 4-component vector of float)
0:?             Construct vec4 ( temp 4-component vector of float)
0:96              'P1' ( temp 3-component vector of float)
0:96              Constant:
0:96                1.000000
0:96            proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:96              'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
0:96              Constant:
0:96                1 (const uint)
0:97      Sequence
0:97        move second child to first child ( temp 4-component vector of float)
0:97          'Q2' ( temp 4-component vector of float)
0:97          vector-times-matrix ( temp 4-component vector of float)
0:?             Construct vec4 ( temp 4-component vector of float)
0:97              'P2' ( temp 3-component vector of float)
0:97              Constant:
0:97                1.000000
0:97            proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:97              'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
0:97              Constant:
0:97                1 (const uint)
0:100      move second child to first child ( temp 4-component vector of float)
0:100        PositionCS: direct index for structure ( temp 4-component vector of float)
0:100          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
0:100          Constant:
0:100            0 (const int)
0:100        'Q0' ( temp 4-component vector of float)
0:101      Constant:
0:101        0.000000
0:102      move second child to first child ( temp 4-component vector of float)
0:102        PositionCS: direct index for structure ( temp 4-component vector of float)
0:102          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
0:102          Constant:
0:102            0 (const int)
0:102        'Q1' ( temp 4-component vector of float)
0:103      Constant:
0:103        0.000000
0:104      Constant:
0:104        0.000000
0:107      move second child to first child ( temp 4-component vector of float)
0:107        PositionCS: direct index for structure ( temp 4-component vector of float)
0:107          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
0:107          Constant:
0:107            0 (const int)
0:107        'Q1' ( temp 4-component vector of float)
0:108      Constant:
0:108        0.000000
0:109      move second child to first child ( temp 4-component vector of float)
0:109        PositionCS: direct index for structure ( temp 4-component vector of float)
0:109          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
0:109          Constant:
0:109            0 (const int)
0:109        'Q2' ( temp 4-component vector of float)
0:110      Constant:
0:110        0.000000
0:111      Constant:
0:111        0.000000
0:114      move second child to first child ( temp 4-component vector of float)
0:114        PositionCS: direct index for structure ( temp 4-component vector of float)
0:114          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
0:114          Constant:
0:114            0 (const int)
0:114        'Q2' ( temp 4-component vector of float)
0:115      Constant:
0:115        0.000000
0:116      move second child to first child ( temp 4-component vector of float)
0:116        PositionCS: direct index for structure ( temp 4-component vector of float)
0:116          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
0:116          Constant:
0:116            0 (const int)
0:116        'Q0' ( temp 4-component vector of float)
0:117      Constant:
0:117        0.000000
0:118      Constant:
0:118        0.000000
0:?   Linker Objects
0:?     'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
0:?     '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float PositionWS})
0:?     'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:?     'id' ( in uint InvocationID)
0:?     '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
0:?     '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner)
0:?     '@patchConstantOutput' (layout( location=1) patch out structure{ temp 3-element array of 3-component vector of float NormalWS})


Linked tessellation control stage:


Shader version: 500
vertices = 3
input primitive = triangles
vertex spacing = fractional_odd_spacing
triangle order = ccw
0:? Sequence
0:31  Function Definition: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:31    Function Parameters: 
0:31      'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:?     Sequence
0:32      Sequence
0:32        move second child to first child ( temp 3-component vector of float)
0:32          'roundedEdgeTessFactor' ( temp 3-component vector of float)
0:32          tess_factor: direct index for structure (layout( row_major std140) uniform 3-component vector of float)
0:32            'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
0:32            Constant:
0:32              6 (const uint)
0:33      Sequence
0:33        move second child to first child ( temp float)
0:33          'roundedInsideTessFactor' ( temp float)
0:33          Constant:
0:33            3.000000
0:34      Sequence
0:34        move second child to first child ( temp float)
0:34          'insideTessFactor' ( temp float)
0:34          Constant:
0:34            1.000000
0:39      move second child to first child ( temp float)
0:39        direct index ( temp float)
0:39          EdgeTessFactor: direct index for structure ( temp 3-element array of float)
0:39            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:39            Constant:
0:39              0 (const int)
0:39          Constant:
0:39            0 (const int)
0:39        direct index ( temp float)
0:39          'roundedEdgeTessFactor' ( temp 3-component vector of float)
0:39          Constant:
0:39            0 (const int)
0:40      move second child to first child ( temp float)
0:40        direct index ( temp float)
0:40          EdgeTessFactor: direct index for structure ( temp 3-element array of float)
0:40            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:40            Constant:
0:40              0 (const int)
0:40          Constant:
0:40            1 (const int)
0:40        direct index ( temp float)
0:40          'roundedEdgeTessFactor' ( temp 3-component vector of float)
0:40          Constant:
0:40            1 (const int)
0:41      move second child to first child ( temp float)
0:41        direct index ( temp float)
0:41          EdgeTessFactor: direct index for structure ( temp 3-element array of float)
0:41            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:41            Constant:
0:41              0 (const int)
0:41          Constant:
0:41            2 (const int)
0:41        direct index ( temp float)
0:41          'roundedEdgeTessFactor' ( temp 3-component vector of float)
0:41          Constant:
0:41            2 (const int)
0:42      move second child to first child ( temp float)
0:42        InsideTessFactor: direct index for structure ( temp float)
0:42          'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:42          Constant:
0:42            1 (const int)
0:42        'roundedInsideTessFactor' ( temp float)
0:45      move second child to first child ( temp 3-component vector of float)
0:45        direct index ( temp 3-component vector of float)
0:45          NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
0:45            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:45            Constant:
0:45              2 (const int)
0:45          Constant:
0:45            0 (const int)
0:45        NormalWS: direct index for structure ( temp 3-component vector of float)
0:45          direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:45            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:45            Constant:
0:45              0 (const int)
0:45          Constant:
0:45            1 (const int)
0:46      move second child to first child ( temp 3-component vector of float)
0:46        direct index ( temp 3-component vector of float)
0:46          NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
0:46            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:46            Constant:
0:46              2 (const int)
0:46          Constant:
0:46            1 (const int)
0:46        NormalWS: direct index for structure ( temp 3-component vector of float)
0:46          direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:46            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:46            Constant:
0:46              1 (const int)
0:46          Constant:
0:46            1 (const int)
0:47      move second child to first child ( temp 3-component vector of float)
0:47        direct index ( temp 3-component vector of float)
0:47          NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
0:47            'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:47            Constant:
0:47              2 (const int)
0:47          Constant:
0:47            2 (const int)
0:47        NormalWS: direct index for structure ( temp 3-component vector of float)
0:47          direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:47            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:47            Constant:
0:47              2 (const int)
0:47          Constant:
0:47            1 (const int)
0:49      Branch: Return with expression
0:49        'result' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:61  Function Definition: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS})
0:61    Function Parameters: 
0:61      'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:61      'id' ( in uint)
0:?     Sequence
0:63      move second child to first child ( temp 3-component vector of float)
0:63        PositionWS: direct index for structure ( temp 3-component vector of float)
0:63          'output' ( temp structure{ temp 3-component vector of float PositionWS})
0:63          Constant:
0:63            0 (const int)
0:63        PositionWS: direct index for structure ( temp 3-component vector of float)
0:63          indirect index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:63            'patch' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:63            'id' ( in uint)
0:63          Constant:
0:63            0 (const int)
0:64      Branch: Return with expression
0:64        'output' ( temp structure{ temp 3-component vector of float PositionWS})
0:61  Function Definition: HSMain( ( temp void)
0:61    Function Parameters: 
0:?     Sequence
0:61      move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:?         'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:?         'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:61      move second child to first child ( temp uint)
0:?         'id' ( temp uint)
0:?         'id' ( in uint InvocationID)
0:61      move second child to first child ( temp structure{ temp 3-component vector of float PositionWS})
0:61        indirect index (layout( location=0) out structure{ temp 3-component vector of float PositionWS})
0:?           '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float PositionWS})
0:?           'id' ( in uint InvocationID)
0:61        Function Call: @HSMain(struct-HSInput-vf3-vf31[3];u1; ( temp structure{ temp 3-component vector of float PositionWS})
0:?           'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:?           'id' ( temp uint)
0:?       Barrier ( temp void)
0:?       Test condition and select ( temp void)
0:?         Condition
0:?         Compare Equal ( temp bool)
0:?           'id' ( in uint InvocationID)
0:?           Constant:
0:?             0 (const int)
0:?         true case
0:?         Sequence
0:?           move second child to first child ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:?             '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:?             Function Call: HSPatchConstant(struct-HSInput-vf3-vf31[3]; ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:?               'patch' ( temp 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:?           Sequence
0:?             move second child to first child ( temp float)
0:?               direct index ( patch out float TessLevelOuter)
0:?                 '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
0:?                 Constant:
0:?                   0 (const int)
0:?               direct index ( temp float)
0:?                 EdgeTessFactor: direct index for structure ( temp 3-element array of float)
0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:?                   Constant:
0:?                     0 (const int)
0:?                 Constant:
0:?                   0 (const int)
0:?             move second child to first child ( temp float)
0:?               direct index ( patch out float TessLevelOuter)
0:?                 '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
0:?                 Constant:
0:?                   1 (const int)
0:?               direct index ( temp float)
0:?                 EdgeTessFactor: direct index for structure ( temp 3-element array of float)
0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:?                   Constant:
0:?                     0 (const int)
0:?                 Constant:
0:?                   1 (const int)
0:?             move second child to first child ( temp float)
0:?               direct index ( patch out float TessLevelOuter)
0:?                 '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
0:?                 Constant:
0:?                   2 (const int)
0:?               direct index ( temp float)
0:?                 EdgeTessFactor: direct index for structure ( temp 3-element array of float)
0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:?                   Constant:
0:?                     0 (const int)
0:?                 Constant:
0:?                   2 (const int)
0:?             move second child to first child ( temp float)
0:?               direct index ( patch out float TessLevelInner)
0:?                 '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner)
0:?                 Constant:
0:?                   0 (const int)
0:?               InsideTessFactor: direct index for structure ( temp float)
0:?                 '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:?                 Constant:
0:?                   1 (const int)
0:?             move second child to first child ( temp 3-element array of 3-component vector of float)
0:?               NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
0:?                 '@patchConstantOutput' (layout( location=1) patch out structure{ temp 3-element array of 3-component vector of float NormalWS})
0:?                 Constant:
0:?                   0 (const int)
0:?               NormalWS: direct index for structure ( temp 3-element array of 3-component vector of float)
0:?                 '@patchConstantResult' ( temp structure{ temp 3-element array of float EdgeTessFactor,  temp float InsideTessFactor,  temp 3-element array of 3-component vector of float NormalWS})
0:?                 Constant:
0:?                   2 (const int)
0:84  Function Definition: GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41; ( temp void)
0:84    Function Parameters: 
0:84      'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:84      'output' ( out structure{ temp 4-component vector of float PositionCS})
0:?     Sequence
0:86      Sequence
0:86        move second child to first child ( temp 3-component vector of float)
0:86          'P0' ( temp 3-component vector of float)
0:86          vector swizzle ( temp 3-component vector of float)
0:86            PositionWS: direct index for structure ( temp 3-component vector of float)
0:86              direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:86                'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:86                Constant:
0:86                  0 (const int)
0:86              Constant:
0:86                0 (const int)
0:86            Sequence
0:86              Constant:
0:86                0 (const int)
0:86              Constant:
0:86                1 (const int)
0:86              Constant:
0:86                2 (const int)
0:87      Sequence
0:87        move second child to first child ( temp 3-component vector of float)
0:87          'P1' ( temp 3-component vector of float)
0:87          vector swizzle ( temp 3-component vector of float)
0:87            PositionWS: direct index for structure ( temp 3-component vector of float)
0:87              direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:87                'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:87                Constant:
0:87                  1 (const int)
0:87              Constant:
0:87                0 (const int)
0:87            Sequence
0:87              Constant:
0:87                0 (const int)
0:87              Constant:
0:87                1 (const int)
0:87              Constant:
0:87                2 (const int)
0:88      Sequence
0:88        move second child to first child ( temp 3-component vector of float)
0:88          'P2' ( temp 3-component vector of float)
0:88          vector swizzle ( temp 3-component vector of float)
0:88            PositionWS: direct index for structure ( temp 3-component vector of float)
0:88              direct index ( temp structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:88                'input' ( in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:88                Constant:
0:88                  2 (const int)
0:88              Constant:
0:88                0 (const int)
0:88            Sequence
0:88              Constant:
0:88                0 (const int)
0:88              Constant:
0:88                1 (const int)
0:88              Constant:
0:88                2 (const int)
0:92      add second child into first child ( temp float)
0:92        direct index ( temp float)
0:92          'P0' ( temp 3-component vector of float)
0:92          Constant:
0:92            2 (const int)
0:92        Constant:
0:92          0.001000
0:93      add second child into first child ( temp float)
0:93        direct index ( temp float)
0:93          'P1' ( temp 3-component vector of float)
0:93          Constant:
0:93            2 (const int)
0:93        Constant:
0:93          0.001000
0:94      add second child into first child ( temp float)
0:94        direct index ( temp float)
0:94          'P2' ( temp 3-component vector of float)
0:94          Constant:
0:94            2 (const int)
0:94        Constant:
0:94          0.001000
0:95      Sequence
0:95        move second child to first child ( temp 4-component vector of float)
0:95          'Q0' ( temp 4-component vector of float)
0:95          vector-times-matrix ( temp 4-component vector of float)
0:?             Construct vec4 ( temp 4-component vector of float)
0:95              'P0' ( temp 3-component vector of float)
0:95              Constant:
0:95                1.000000
0:95            proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:95              'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
0:95              Constant:
0:95                1 (const uint)
0:96      Sequence
0:96        move second child to first child ( temp 4-component vector of float)
0:96          'Q1' ( temp 4-component vector of float)
0:96          vector-times-matrix ( temp 4-component vector of float)
0:?             Construct vec4 ( temp 4-component vector of float)
0:96              'P1' ( temp 3-component vector of float)
0:96              Constant:
0:96                1.000000
0:96            proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:96              'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
0:96              Constant:
0:96                1 (const uint)
0:97      Sequence
0:97        move second child to first child ( temp 4-component vector of float)
0:97          'Q2' ( temp 4-component vector of float)
0:97          vector-times-matrix ( temp 4-component vector of float)
0:?             Construct vec4 ( temp 4-component vector of float)
0:97              'P2' ( temp 3-component vector of float)
0:97              Constant:
0:97                1.000000
0:97            proj_matrix: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:97              'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
0:97              Constant:
0:97                1 (const uint)
0:100      move second child to first child ( temp 4-component vector of float)
0:100        PositionCS: direct index for structure ( temp 4-component vector of float)
0:100          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
0:100          Constant:
0:100            0 (const int)
0:100        'Q0' ( temp 4-component vector of float)
0:101      Constant:
0:101        0.000000
0:102      move second child to first child ( temp 4-component vector of float)
0:102        PositionCS: direct index for structure ( temp 4-component vector of float)
0:102          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
0:102          Constant:
0:102            0 (const int)
0:102        'Q1' ( temp 4-component vector of float)
0:103      Constant:
0:103        0.000000
0:104      Constant:
0:104        0.000000
0:107      move second child to first child ( temp 4-component vector of float)
0:107        PositionCS: direct index for structure ( temp 4-component vector of float)
0:107          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
0:107          Constant:
0:107            0 (const int)
0:107        'Q1' ( temp 4-component vector of float)
0:108      Constant:
0:108        0.000000
0:109      move second child to first child ( temp 4-component vector of float)
0:109        PositionCS: direct index for structure ( temp 4-component vector of float)
0:109          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
0:109          Constant:
0:109            0 (const int)
0:109        'Q2' ( temp 4-component vector of float)
0:110      Constant:
0:110        0.000000
0:111      Constant:
0:111        0.000000
0:114      move second child to first child ( temp 4-component vector of float)
0:114        PositionCS: direct index for structure ( temp 4-component vector of float)
0:114          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
0:114          Constant:
0:114            0 (const int)
0:114        'Q2' ( temp 4-component vector of float)
0:115      Constant:
0:115        0.000000
0:116      move second child to first child ( temp 4-component vector of float)
0:116        PositionCS: direct index for structure ( temp 4-component vector of float)
0:116          'vertex' ( temp structure{ temp 4-component vector of float PositionCS})
0:116          Constant:
0:116            0 (const int)
0:116        'Q0' ( temp 4-component vector of float)
0:117      Constant:
0:117        0.000000
0:118      Constant:
0:118        0.000000
0:?   Linker Objects
0:?     'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float model_view_matrix, layout( row_major std140) uniform 4X4 matrix of float proj_matrix, layout( row_major std140) uniform 4X4 matrix of float model_view_proj_matrix, layout( row_major std140) uniform 3X3 matrix of float normal_matrix, layout( row_major std140) uniform 3-component vector of float color, layout( row_major std140) uniform 3-component vector of float view_dir, layout( row_major std140) uniform 3-component vector of float tess_factor})
0:?     '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float PositionWS})
0:?     'patch' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float PositionWS,  temp 3-component vector of float NormalWS})
0:?     'id' ( in uint InvocationID)
0:?     '@patchConstantOutput.EdgeTessFactor' ( patch out 4-element array of float TessLevelOuter)
0:?     '@patchConstantOutput.InsideTessFactor' ( patch out 2-element array of float TessLevelInner)
0:?     '@patchConstantOutput' (layout( location=1) patch out structure{ temp 3-element array of 3-component vector of float NormalWS})

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

                              Capability Tessellation
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint TessellationControl 4  "HSMain" 97 101 105 126 139 145
                              ExecutionMode 4 OutputVertices 3
                              ExecutionMode 4 Triangles
                              ExecutionMode 4 SpacingFractionalOdd
                              ExecutionMode 4 VertexOrderCcw
                              Source HLSL 500
                              Name 4  "HSMain"
                              Name 8  "HSInput"
                              MemberName 8(HSInput) 0  "PositionWS"
                              MemberName 8(HSInput) 1  "NormalWS"
                              Name 15  "HSTrianglePatchConstant"
                              MemberName 15(HSTrianglePatchConstant) 0  "EdgeTessFactor"
                              MemberName 15(HSTrianglePatchConstant) 1  "InsideTessFactor"
                              MemberName 15(HSTrianglePatchConstant) 2  "NormalWS"
                              Name 18  "HSPatchConstant(struct-HSInput-vf3-vf31[3];"
                              Name 17  "patch"
                              Name 21  "HSOutput"
                              MemberName 21(HSOutput) 0  "PositionWS"
                              Name 25  "@HSMain(struct-HSInput-vf3-vf31[3];u1;"
                              Name 23  "patch"
                              Name 24  "id"
                              Name 27  "GSVertexInput"
                              MemberName 27(GSVertexInput) 0  "PositionWS"
                              MemberName 27(GSVertexInput) 1  "NormalWS"
                              Name 31  "GSVertexOutput"
                              MemberName 31(GSVertexOutput) 0  "PositionCS"
                              Name 36  "GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41;"
                              Name 34  "input"
                              Name 35  "output"
                              Name 39  "roundedEdgeTessFactor"
                              Name 42  "UniformBlock0"
                              MemberName 42(UniformBlock0) 0  "model_view_matrix"
                              MemberName 42(UniformBlock0) 1  "proj_matrix"
                              MemberName 42(UniformBlock0) 2  "model_view_proj_matrix"
                              MemberName 42(UniformBlock0) 3  "normal_matrix"
                              MemberName 42(UniformBlock0) 4  "color"
                              MemberName 42(UniformBlock0) 5  "view_dir"
                              MemberName 42(UniformBlock0) 6  "tess_factor"
                              Name 44  ""
                              Name 51  "roundedInsideTessFactor"
                              Name 53  "insideTessFactor"
                              Name 56  "result"
                              Name 87  "output"
                              Name 95  "patch"
                              Name 97  "patch"
                              Name 99  "id"
                              Name 101  "id"
                              Name 105  "@entryPointOutput"
                              Name 107  "param"
                              Name 109  "param"
                              Name 120  "@patchConstantResult"
                              Name 121  "param"
                              Name 126  "@patchConstantOutput.EdgeTessFactor"
                              Name 139  "@patchConstantOutput.InsideTessFactor"
                              Name 143  "HSTrianglePatchConstant"
                              MemberName 143(HSTrianglePatchConstant) 0  "NormalWS"
                              Name 145  "@patchConstantOutput"
                              Name 151  "P0"
                              Name 154  "P1"
                              Name 157  "P2"
                              Name 174  "Q0"
                              Name 184  "Q1"
                              Name 193  "Q2"
                              Name 202  "vertex"
                              MemberDecorate 42(UniformBlock0) 0 RowMajor
                              MemberDecorate 42(UniformBlock0) 0 Offset 0
                              MemberDecorate 42(UniformBlock0) 0 MatrixStride 16
                              MemberDecorate 42(UniformBlock0) 1 RowMajor
                              MemberDecorate 42(UniformBlock0) 1 Offset 64
                              MemberDecorate 42(UniformBlock0) 1 MatrixStride 16
                              MemberDecorate 42(UniformBlock0) 2 RowMajor
                              MemberDecorate 42(UniformBlock0) 2 Offset 128
                              MemberDecorate 42(UniformBlock0) 2 MatrixStride 16
                              MemberDecorate 42(UniformBlock0) 3 RowMajor
                              MemberDecorate 42(UniformBlock0) 3 Offset 192
                              MemberDecorate 42(UniformBlock0) 3 MatrixStride 16
                              MemberDecorate 42(UniformBlock0) 4 Offset 240
                              MemberDecorate 42(UniformBlock0) 5 Offset 256
                              MemberDecorate 42(UniformBlock0) 6 Offset 272
                              Decorate 42(UniformBlock0) Block
                              Decorate 44 DescriptorSet 0
                              Decorate 44 Binding 0
                              Decorate 97(patch) Location 0
                              Decorate 101(id) BuiltIn InvocationId
                              Decorate 105(@entryPointOutput) Location 0
                              Decorate 126(@patchConstantOutput.EdgeTessFactor) Patch
                              Decorate 126(@patchConstantOutput.EdgeTessFactor) BuiltIn TessLevelOuter
                              Decorate 139(@patchConstantOutput.InsideTessFactor) Patch
                              Decorate 139(@patchConstantOutput.InsideTessFactor) BuiltIn TessLevelInner
                              MemberDecorate 143(HSTrianglePatchConstant) 0 Patch
                              Decorate 145(@patchConstantOutput) Patch
                              Decorate 145(@patchConstantOutput) Location 1
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 3
      8(HSInput):             TypeStruct 7(fvec3) 7(fvec3)
               9:             TypeInt 32 0
              10:      9(int) Constant 3
              11:             TypeArray 8(HSInput) 10
              12:             TypePointer Function 11
              13:             TypeArray 6(float) 10
              14:             TypeArray 7(fvec3) 10
15(HSTrianglePatchConstant):             TypeStruct 13 6(float) 14
              16:             TypeFunction 15(HSTrianglePatchConstant) 12(ptr)
              20:             TypePointer Function 9(int)
    21(HSOutput):             TypeStruct 7(fvec3)
              22:             TypeFunction 21(HSOutput) 12(ptr) 20(ptr)
27(GSVertexInput):             TypeStruct 7(fvec3) 7(fvec3)
              28:             TypeArray 27(GSVertexInput) 10
              29:             TypePointer Function 28
              30:             TypeVector 6(float) 4
31(GSVertexOutput):             TypeStruct 30(fvec4)
              32:             TypePointer Function 31(GSVertexOutput)
              33:             TypeFunction 2 29(ptr) 32(ptr)
              38:             TypePointer Function 7(fvec3)
              40:             TypeMatrix 30(fvec4) 4
              41:             TypeMatrix 7(fvec3) 3
42(UniformBlock0):             TypeStruct 40 40 40 41 7(fvec3) 7(fvec3) 7(fvec3)
              43:             TypePointer Uniform 42(UniformBlock0)
              44:     43(ptr) Variable Uniform
              45:             TypeInt 32 1
              46:     45(int) Constant 6
              47:             TypePointer Uniform 7(fvec3)
              50:             TypePointer Function 6(float)
              52:    6(float) Constant 1077936128
              54:    6(float) Constant 1065353216
              55:             TypePointer Function 15(HSTrianglePatchConstant)
              57:     45(int) Constant 0
              58:      9(int) Constant 0
              62:     45(int) Constant 1
              63:      9(int) Constant 1
              67:     45(int) Constant 2
              68:      9(int) Constant 2
              86:             TypePointer Function 21(HSOutput)
              96:             TypePointer Input 11
       97(patch):     96(ptr) Variable Input
             100:             TypePointer Input 9(int)
         101(id):    100(ptr) Variable Input
             103:             TypeArray 21(HSOutput) 10
             104:             TypePointer Output 103
105(@entryPointOutput):    104(ptr) Variable Output
             112:             TypePointer Output 21(HSOutput)
             114:      9(int) Constant 4
             116:             TypeBool
             124:             TypeArray 6(float) 114
             125:             TypePointer Output 124
126(@patchConstantOutput.EdgeTessFactor):    125(ptr) Variable Output
             129:             TypePointer Output 6(float)
             137:             TypeArray 6(float) 68
             138:             TypePointer Output 137
139(@patchConstantOutput.InsideTessFactor):    138(ptr) Variable Output
143(HSTrianglePatchConstant):             TypeStruct 14
             144:             TypePointer Output 143(HSTrianglePatchConstant)
145(@patchConstantOutput):    144(ptr) Variable Output
             146:             TypePointer Function 14
             149:             TypePointer Output 14
             160:    6(float) Constant 981668463
             173:             TypePointer Function 30(fvec4)
             180:             TypePointer Uniform 40
             205:    6(float) Constant 0
       4(HSMain):           2 Function None 3
               5:             Label
       95(patch):     12(ptr) Variable Function
          99(id):     20(ptr) Variable Function
      107(param):     12(ptr) Variable Function
      109(param):     20(ptr) Variable Function
120(@patchConstantResult):     55(ptr) Variable Function
      121(param):     12(ptr) Variable Function
              98:          11 Load 97(patch)
                              Store 95(patch) 98
             102:      9(int) Load 101(id)
                              Store 99(id) 102
             106:      9(int) Load 101(id)
             108:          11 Load 95(patch)
                              Store 107(param) 108
             110:      9(int) Load 99(id)
                              Store 109(param) 110
             111:21(HSOutput) FunctionCall 25(@HSMain(struct-HSInput-vf3-vf31[3];u1;) 107(param) 109(param)
             113:    112(ptr) AccessChain 105(@entryPointOutput) 106
                              Store 113 111
                              ControlBarrier 68 114 58
             115:      9(int) Load 101(id)
             117:   116(bool) IEqual 115 57
                              SelectionMerge 119 None
                              BranchConditional 117 118 119
             118:               Label
             122:          11   Load 95(patch)
                                Store 121(param) 122
             123:15(HSTrianglePatchConstant)   FunctionCall 18(HSPatchConstant(struct-HSInput-vf3-vf31[3];) 121(param)
                                Store 120(@patchConstantResult) 123
             127:     50(ptr)   AccessChain 120(@patchConstantResult) 57 57
             128:    6(float)   Load 127
             130:    129(ptr)   AccessChain 126(@patchConstantOutput.EdgeTessFactor) 57
                                Store 130 128
             131:     50(ptr)   AccessChain 120(@patchConstantResult) 57 62
             132:    6(float)   Load 131
             133:    129(ptr)   AccessChain 126(@patchConstantOutput.EdgeTessFactor) 62
                                Store 133 132
             134:     50(ptr)   AccessChain 120(@patchConstantResult) 57 67
             135:    6(float)   Load 134
             136:    129(ptr)   AccessChain 126(@patchConstantOutput.EdgeTessFactor) 67
                                Store 136 135
             140:     50(ptr)   AccessChain 120(@patchConstantResult) 62
             141:    6(float)   Load 140
             142:    129(ptr)   AccessChain 139(@patchConstantOutput.InsideTessFactor) 57
                                Store 142 141
             147:    146(ptr)   AccessChain 120(@patchConstantResult) 67
             148:          14   Load 147
             150:    149(ptr)   AccessChain 145(@patchConstantOutput) 57
                                Store 150 148
                                Branch 119
             119:             Label
                              Return
                              FunctionEnd
18(HSPatchConstant(struct-HSInput-vf3-vf31[3];):15(HSTrianglePatchConstant) Function None 16
       17(patch):     12(ptr) FunctionParameter
              19:             Label
39(roundedEdgeTessFactor):     38(ptr) Variable Function
51(roundedInsideTessFactor):     50(ptr) Variable Function
53(insideTessFactor):     50(ptr) Variable Function
      56(result):     55(ptr) Variable Function
              48:     47(ptr) AccessChain 44 46
              49:    7(fvec3) Load 48
                              Store 39(roundedEdgeTessFactor) 49
                              Store 51(roundedInsideTessFactor) 52
                              Store 53(insideTessFactor) 54
              59:     50(ptr) AccessChain 39(roundedEdgeTessFactor) 58
              60:    6(float) Load 59
              61:     50(ptr) AccessChain 56(result) 57 57
                              Store 61 60
              64:     50(ptr) AccessChain 39(roundedEdgeTessFactor) 63
              65:    6(float) Load 64
              66:     50(ptr) AccessChain 56(result) 57 62
                              Store 66 65
              69:     50(ptr) AccessChain 39(roundedEdgeTessFactor) 68
              70:    6(float) Load 69
              71:     50(ptr) AccessChain 56(result) 57 67
                              Store 71 70
              72:    6(float) Load 51(roundedInsideTessFactor)
              73:     50(ptr) AccessChain 56(result) 62
                              Store 73 72
              74:     38(ptr) AccessChain 17(patch) 57 62
              75:    7(fvec3) Load 74
              76:     38(ptr) AccessChain 56(result) 67 57
                              Store 76 75
              77:     38(ptr) AccessChain 17(patch) 62 62
              78:    7(fvec3) Load 77
              79:     38(ptr) AccessChain 56(result) 67 62
                              Store 79 78
              80:     38(ptr) AccessChain 17(patch) 67 62
              81:    7(fvec3) Load 80
              82:     38(ptr) AccessChain 56(result) 67 67
                              Store 82 81
              83:15(HSTrianglePatchConstant) Load 56(result)
                              ReturnValue 83
                              FunctionEnd
25(@HSMain(struct-HSInput-vf3-vf31[3];u1;):21(HSOutput) Function None 22
       23(patch):     12(ptr) FunctionParameter
          24(id):     20(ptr) FunctionParameter
              26:             Label
      87(output):     86(ptr) Variable Function
              88:      9(int) Load 24(id)
              89:     38(ptr) AccessChain 23(patch) 88 57
              90:    7(fvec3) Load 89
              91:     38(ptr) AccessChain 87(output) 57
                              Store 91 90
              92:21(HSOutput) Load 87(output)
                              ReturnValue 92
                              FunctionEnd
36(GSMain(struct-GSVertexInput-vf3-vf31[3];struct-GSVertexOutput-vf41;):           2 Function None 33
       34(input):     29(ptr) FunctionParameter
      35(output):     32(ptr) FunctionParameter
              37:             Label
         151(P0):     38(ptr) Variable Function
         154(P1):     38(ptr) Variable Function
         157(P2):     38(ptr) Variable Function
         174(Q0):    173(ptr) Variable Function
         184(Q1):    173(ptr) Variable Function
         193(Q2):    173(ptr) Variable Function
     202(vertex):     32(ptr) Variable Function
             152:     38(ptr) AccessChain 34(input) 57 57
             153:    7(fvec3) Load 152
                              Store 151(P0) 153
             155:     38(ptr) AccessChain 34(input) 62 57
             156:    7(fvec3) Load 155
                              Store 154(P1) 156
             158:     38(ptr) AccessChain 34(input) 67 57
             159:    7(fvec3) Load 158
                              Store 157(P2) 159
             161:     50(ptr) AccessChain 151(P0) 68
             162:    6(float) Load 161
             163:    6(float) FAdd 162 160
             164:     50(ptr) AccessChain 151(P0) 68
                              Store 164 163
             165:     50(ptr) AccessChain 154(P1) 68
             166:    6(float) Load 165
             167:    6(float) FAdd 166 160
             168:     50(ptr) AccessChain 154(P1) 68
                              Store 168 167
             169:     50(ptr) AccessChain 157(P2) 68
             170:    6(float) Load 169
             171:    6(float) FAdd 170 160
             172:     50(ptr) AccessChain 157(P2) 68
                              Store 172 171
             175:    7(fvec3) Load 151(P0)
             176:    6(float) CompositeExtract 175 0
             177:    6(float) CompositeExtract 175 1
             178:    6(float) CompositeExtract 175 2
             179:   30(fvec4) CompositeConstruct 176 177 178 54
             181:    180(ptr) AccessChain 44 62
             182:          40 Load 181
             183:   30(fvec4) VectorTimesMatrix 179 182
                              Store 174(Q0) 183
             185:    7(fvec3) Load 154(P1)
             186:    6(float) CompositeExtract 185 0
             187:    6(float) CompositeExtract 185 1
             188:    6(float) CompositeExtract 185 2
             189:   30(fvec4) CompositeConstruct 186 187 188 54
             190:    180(ptr) AccessChain 44 62
             191:          40 Load 190
             192:   30(fvec4) VectorTimesMatrix 189 191
                              Store 184(Q1) 192
             194:    7(fvec3) Load 157(P2)
             195:    6(float) CompositeExtract 194 0
             196:    6(float) CompositeExtract 194 1
             197:    6(float) CompositeExtract 194 2
             198:   30(fvec4) CompositeConstruct 195 196 197 54
             199:    180(ptr) AccessChain 44 62
             200:          40 Load 199
             201:   30(fvec4) VectorTimesMatrix 198 200
                              Store 193(Q2) 201
             203:   30(fvec4) Load 174(Q0)
             204:    173(ptr) AccessChain 202(vertex) 57
                              Store 204 203
             206:   30(fvec4) Load 184(Q1)
             207:    173(ptr) AccessChain 202(vertex) 57
                              Store 207 206
             208:   30(fvec4) Load 184(Q1)
             209:    173(ptr) AccessChain 202(vertex) 57
                              Store 209 208
             210:   30(fvec4) Load 193(Q2)
             211:    173(ptr) AccessChain 202(vertex) 57
                              Store 211 210
             212:   30(fvec4) Load 193(Q2)
             213:    173(ptr) AccessChain 202(vertex) 57
                              Store 213 212
             214:   30(fvec4) Load 174(Q0)
             215:    173(ptr) AccessChain 202(vertex) 57
                              Store 215 214
                              Return
                              FunctionEnd