hlsl.gs-hs-mix.tesc
Shader version: 500
vertices = 3
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      Sequence
0:61        move second child to first child ( temp 3-component vector of float)
0:61          PositionWS: direct index for structure ( temp 3-component vector of float)
0:61            direct index ( temp 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:61              Constant:
0:61                0 (const int)
0:61            Constant:
0:61              0 (const int)
0:61          direct index (layout( location=0) in 3-component vector of float)
0:?             'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float)
0:61            Constant:
0:61              0 (const int)
0:61        move second child to first child ( temp 3-component vector of float)
0:61          NormalWS: direct index for structure ( temp 3-component vector of float)
0:61            direct index ( temp 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:61              Constant:
0:61                0 (const int)
0:61            Constant:
0:61              1 (const int)
0:61          direct index (layout( location=1) in 3-component vector of float)
0:?             'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float)
0:61            Constant:
0:61              0 (const int)
0:61        move second child to first child ( temp 3-component vector of float)
0:61          PositionWS: direct index for structure ( temp 3-component vector of float)
0:61            direct index ( temp 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:61              Constant:
0:61                1 (const int)
0:61            Constant:
0:61              0 (const int)
0:61          direct index (layout( location=0) in 3-component vector of float)
0:?             'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float)
0:61            Constant:
0:61              1 (const int)
0:61        move second child to first child ( temp 3-component vector of float)
0:61          NormalWS: direct index for structure ( temp 3-component vector of float)
0:61            direct index ( temp 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:61              Constant:
0:61                1 (const int)
0:61            Constant:
0:61              1 (const int)
0:61          direct index (layout( location=1) in 3-component vector of float)
0:?             'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float)
0:61            Constant:
0:61              1 (const int)
0:61        move second child to first child ( temp 3-component vector of float)
0:61          PositionWS: direct index for structure ( temp 3-component vector of float)
0:61            direct index ( temp 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:61              Constant:
0:61                2 (const int)
0:61            Constant:
0:61              0 (const int)
0:61          direct index (layout( location=0) in 3-component vector of float)
0:?             'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float)
0:61            Constant:
0:61              2 (const int)
0:61        move second child to first child ( temp 3-component vector of float)
0:61          NormalWS: direct index for structure ( temp 3-component vector of float)
0:61            direct index ( temp 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:61              Constant:
0:61                2 (const int)
0:61            Constant:
0:61              1 (const int)
0:61          direct index (layout( location=1) in 3-component vector of float)
0:?             'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float)
0:61            Constant:
0:61              2 (const int)
0:61      move second child to first child ( temp uint)
0:?         'id' ( temp uint)
0:?         'id' ( in uint InvocationID)
0:61      Sequence
0:61        move second child to first child ( temp 3-component vector of float)
0:61          indirect index (layout( location=0) out 3-component vector of float)
0:?             '@entryPointOutput.PositionWS' (layout( location=0) out 3-element array of 3-component vector of float)
0:?             'id' ( in uint InvocationID)
0:61          PositionWS: direct index for structure ( temp 3-component vector of float)
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:61            Constant:
0:61              0 (const int)
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-component vector of float)
0:?               '@patchConstantOutput.NormalWS[0]' (layout( location=1) patch out 3-component vector of float)
0:?               direct index ( temp 3-component vector of float)
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:?                 Constant:
0:?                   0 (const int)
0:?             move second child to first child ( temp 3-component vector of float)
0:?               '@patchConstantOutput.NormalWS[1]' (layout( location=2) patch out 3-component vector of float)
0:?               direct index ( temp 3-component vector of float)
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:?                 Constant:
0:?                   1 (const int)
0:?             move second child to first child ( temp 3-component vector of float)
0:?               '@patchConstantOutput.NormalWS[2]' (layout( location=3) patch out 3-component vector of float)
0:?               direct index ( temp 3-component vector of float)
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:?                 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:95            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:96            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:97            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.PositionWS' (layout( location=0) out 3-element array of 3-component vector of float)
0:?     'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float)
0:?     'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float)
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.NormalWS[0]' (layout( location=1) patch out 3-component vector of float)
0:?     '@patchConstantOutput.NormalWS[1]' (layout( location=2) patch out 3-component vector of float)
0:?     '@patchConstantOutput.NormalWS[2]' (layout( location=3) patch out 3-component vector of float)


Linked tessellation control stage:


Shader version: 500
vertices = 3
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      Sequence
0:61        move second child to first child ( temp 3-component vector of float)
0:61          PositionWS: direct index for structure ( temp 3-component vector of float)
0:61            direct index ( temp 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:61              Constant:
0:61                0 (const int)
0:61            Constant:
0:61              0 (const int)
0:61          direct index (layout( location=0) in 3-component vector of float)
0:?             'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float)
0:61            Constant:
0:61              0 (const int)
0:61        move second child to first child ( temp 3-component vector of float)
0:61          NormalWS: direct index for structure ( temp 3-component vector of float)
0:61            direct index ( temp 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:61              Constant:
0:61                0 (const int)
0:61            Constant:
0:61              1 (const int)
0:61          direct index (layout( location=1) in 3-component vector of float)
0:?             'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float)
0:61            Constant:
0:61              0 (const int)
0:61        move second child to first child ( temp 3-component vector of float)
0:61          PositionWS: direct index for structure ( temp 3-component vector of float)
0:61            direct index ( temp 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:61              Constant:
0:61                1 (const int)
0:61            Constant:
0:61              0 (const int)
0:61          direct index (layout( location=0) in 3-component vector of float)
0:?             'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float)
0:61            Constant:
0:61              1 (const int)
0:61        move second child to first child ( temp 3-component vector of float)
0:61          NormalWS: direct index for structure ( temp 3-component vector of float)
0:61            direct index ( temp 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:61              Constant:
0:61                1 (const int)
0:61            Constant:
0:61              1 (const int)
0:61          direct index (layout( location=1) in 3-component vector of float)
0:?             'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float)
0:61            Constant:
0:61              1 (const int)
0:61        move second child to first child ( temp 3-component vector of float)
0:61          PositionWS: direct index for structure ( temp 3-component vector of float)
0:61            direct index ( temp 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:61              Constant:
0:61                2 (const int)
0:61            Constant:
0:61              0 (const int)
0:61          direct index (layout( location=0) in 3-component vector of float)
0:?             'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float)
0:61            Constant:
0:61              2 (const int)
0:61        move second child to first child ( temp 3-component vector of float)
0:61          NormalWS: direct index for structure ( temp 3-component vector of float)
0:61            direct index ( temp 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:61              Constant:
0:61                2 (const int)
0:61            Constant:
0:61              1 (const int)
0:61          direct index (layout( location=1) in 3-component vector of float)
0:?             'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float)
0:61            Constant:
0:61              2 (const int)
0:61      move second child to first child ( temp uint)
0:?         'id' ( temp uint)
0:?         'id' ( in uint InvocationID)
0:61      Sequence
0:61        move second child to first child ( temp 3-component vector of float)
0:61          indirect index (layout( location=0) out 3-component vector of float)
0:?             '@entryPointOutput.PositionWS' (layout( location=0) out 3-element array of 3-component vector of float)
0:?             'id' ( in uint InvocationID)
0:61          PositionWS: direct index for structure ( temp 3-component vector of float)
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:61            Constant:
0:61              0 (const int)
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-component vector of float)
0:?               '@patchConstantOutput.NormalWS[0]' (layout( location=1) patch out 3-component vector of float)
0:?               direct index ( temp 3-component vector of float)
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:?                 Constant:
0:?                   0 (const int)
0:?             move second child to first child ( temp 3-component vector of float)
0:?               '@patchConstantOutput.NormalWS[1]' (layout( location=2) patch out 3-component vector of float)
0:?               direct index ( temp 3-component vector of float)
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:?                 Constant:
0:?                   1 (const int)
0:?             move second child to first child ( temp 3-component vector of float)
0:?               '@patchConstantOutput.NormalWS[2]' (layout( location=3) patch out 3-component vector of float)
0:?               direct index ( temp 3-component vector of float)
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:?                 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:95            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:96            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:97            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.PositionWS' (layout( location=0) out 3-element array of 3-component vector of float)
0:?     'patch.PositionWS' (layout( location=0) in 3-element array of 3-component vector of float)
0:?     'patch.NormalWS' (layout( location=1) in 3-element array of 3-component vector of float)
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.NormalWS[0]' (layout( location=1) patch out 3-component vector of float)
0:?     '@patchConstantOutput.NormalWS[1]' (layout( location=2) patch out 3-component vector of float)
0:?     '@patchConstantOutput.NormalWS[2]' (layout( location=3) patch out 3-component vector of float)

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

                              Capability Tessellation
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint TessellationControl 4  "HSMain" 97 102 120 123 145 158 162 165 168
                              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.PositionWS"
                              Name 102  "patch.NormalWS"
                              Name 118  "id"
                              Name 120  "id"
                              Name 123  "@entryPointOutput.PositionWS"
                              Name 125  "param"
                              Name 127  "param"
                              Name 139  "@patchConstantResult"
                              Name 140  "param"
                              Name 145  "@patchConstantOutput.EdgeTessFactor"
                              Name 158  "@patchConstantOutput.InsideTessFactor"
                              Name 162  "@patchConstantOutput.NormalWS[0]"
                              Name 165  "@patchConstantOutput.NormalWS[1]"
                              Name 168  "@patchConstantOutput.NormalWS[2]"
                              Name 171  "P0"
                              Name 174  "P1"
                              Name 177  "P2"
                              Name 194  "Q0"
                              Name 204  "Q1"
                              Name 213  "Q2"
                              Name 222  "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.PositionWS) Location 0
                              Decorate 102(patch.NormalWS) Location 1
                              Decorate 120(id) BuiltIn InvocationId
                              Decorate 123(@entryPointOutput.PositionWS) Location 0
                              Decorate 145(@patchConstantOutput.EdgeTessFactor) Patch
                              Decorate 145(@patchConstantOutput.EdgeTessFactor) BuiltIn TessLevelOuter
                              Decorate 158(@patchConstantOutput.InsideTessFactor) Patch
                              Decorate 158(@patchConstantOutput.InsideTessFactor) BuiltIn TessLevelInner
                              Decorate 162(@patchConstantOutput.NormalWS[0]) Patch
                              Decorate 162(@patchConstantOutput.NormalWS[0]) Location 1
                              Decorate 165(@patchConstantOutput.NormalWS[1]) Patch
                              Decorate 165(@patchConstantOutput.NormalWS[1]) Location 2
                              Decorate 168(@patchConstantOutput.NormalWS[2]) Patch
                              Decorate 168(@patchConstantOutput.NormalWS[2]) Location 3
               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 14
97(patch.PositionWS):     96(ptr) Variable Input
              98:             TypePointer Input 7(fvec3)
102(patch.NormalWS):     96(ptr) Variable Input
             119:             TypePointer Input 9(int)
         120(id):    119(ptr) Variable Input
             122:             TypePointer Output 14
123(@entryPointOutput.PositionWS):    122(ptr) Variable Output
             131:             TypePointer Output 7(fvec3)
             133:      9(int) Constant 4
             135:             TypeBool
             143:             TypeArray 6(float) 133
             144:             TypePointer Output 143
145(@patchConstantOutput.EdgeTessFactor):    144(ptr) Variable Output
             148:             TypePointer Output 6(float)
             156:             TypeArray 6(float) 68
             157:             TypePointer Output 156
158(@patchConstantOutput.InsideTessFactor):    157(ptr) Variable Output
162(@patchConstantOutput.NormalWS[0]):    131(ptr) Variable Output
165(@patchConstantOutput.NormalWS[1]):    131(ptr) Variable Output
168(@patchConstantOutput.NormalWS[2]):    131(ptr) Variable Output
             180:    6(float) Constant 981668463
             193:             TypePointer Function 30(fvec4)
             200:             TypePointer Uniform 40
             225:    6(float) Constant 0
       4(HSMain):           2 Function None 3
               5:             Label
       95(patch):     12(ptr) Variable Function
         118(id):     20(ptr) Variable Function
      125(param):     12(ptr) Variable Function
      127(param):     20(ptr) Variable Function
139(@patchConstantResult):     55(ptr) Variable Function
      140(param):     12(ptr) Variable Function
              99:     98(ptr) AccessChain 97(patch.PositionWS) 57
             100:    7(fvec3) Load 99
             101:     38(ptr) AccessChain 95(patch) 57 57
                              Store 101 100
             103:     98(ptr) AccessChain 102(patch.NormalWS) 57
             104:    7(fvec3) Load 103
             105:     38(ptr) AccessChain 95(patch) 57 62
                              Store 105 104
             106:     98(ptr) AccessChain 97(patch.PositionWS) 62
             107:    7(fvec3) Load 106
             108:     38(ptr) AccessChain 95(patch) 62 57
                              Store 108 107
             109:     98(ptr) AccessChain 102(patch.NormalWS) 62
             110:    7(fvec3) Load 109
             111:     38(ptr) AccessChain 95(patch) 62 62
                              Store 111 110
             112:     98(ptr) AccessChain 97(patch.PositionWS) 67
             113:    7(fvec3) Load 112
             114:     38(ptr) AccessChain 95(patch) 67 57
                              Store 114 113
             115:     98(ptr) AccessChain 102(patch.NormalWS) 67
             116:    7(fvec3) Load 115
             117:     38(ptr) AccessChain 95(patch) 67 62
                              Store 117 116
             121:      9(int) Load 120(id)
                              Store 118(id) 121
             124:      9(int) Load 120(id)
             126:          11 Load 95(patch)
                              Store 125(param) 126
             128:      9(int) Load 118(id)
                              Store 127(param) 128
             129:21(HSOutput) FunctionCall 25(@HSMain(struct-HSInput-vf3-vf31[3];u1;) 125(param) 127(param)
             130:    7(fvec3) CompositeExtract 129 0
             132:    131(ptr) AccessChain 123(@entryPointOutput.PositionWS) 124
                              Store 132 130
                              ControlBarrier 68 133 58
             134:      9(int) Load 120(id)
             136:   135(bool) IEqual 134 57
                              SelectionMerge 138 None
                              BranchConditional 136 137 138
             137:               Label
             141:          11   Load 95(patch)
                                Store 140(param) 141
             142:15(HSTrianglePatchConstant)   FunctionCall 18(HSPatchConstant(struct-HSInput-vf3-vf31[3];) 140(param)
                                Store 139(@patchConstantResult) 142
             146:     50(ptr)   AccessChain 139(@patchConstantResult) 57 57
             147:    6(float)   Load 146
             149:    148(ptr)   AccessChain 145(@patchConstantOutput.EdgeTessFactor) 57
                                Store 149 147
             150:     50(ptr)   AccessChain 139(@patchConstantResult) 57 62
             151:    6(float)   Load 150
             152:    148(ptr)   AccessChain 145(@patchConstantOutput.EdgeTessFactor) 62
                                Store 152 151
             153:     50(ptr)   AccessChain 139(@patchConstantResult) 57 67
             154:    6(float)   Load 153
             155:    148(ptr)   AccessChain 145(@patchConstantOutput.EdgeTessFactor) 67
                                Store 155 154
             159:     50(ptr)   AccessChain 139(@patchConstantResult) 62
             160:    6(float)   Load 159
             161:    148(ptr)   AccessChain 158(@patchConstantOutput.InsideTessFactor) 57
                                Store 161 160
             163:     38(ptr)   AccessChain 139(@patchConstantResult) 67 57
             164:    7(fvec3)   Load 163
                                Store 162(@patchConstantOutput.NormalWS[0]) 164
             166:     38(ptr)   AccessChain 139(@patchConstantResult) 67 62
             167:    7(fvec3)   Load 166
                                Store 165(@patchConstantOutput.NormalWS[1]) 167
             169:     38(ptr)   AccessChain 139(@patchConstantResult) 67 67
             170:    7(fvec3)   Load 169
                                Store 168(@patchConstantOutput.NormalWS[2]) 170
                                Branch 138
             138:             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
         171(P0):     38(ptr) Variable Function
         174(P1):     38(ptr) Variable Function
         177(P2):     38(ptr) Variable Function
         194(Q0):    193(ptr) Variable Function
         204(Q1):    193(ptr) Variable Function
         213(Q2):    193(ptr) Variable Function
     222(vertex):     32(ptr) Variable Function
             172:     38(ptr) AccessChain 34(input) 57 57
             173:    7(fvec3) Load 172
                              Store 171(P0) 173
             175:     38(ptr) AccessChain 34(input) 62 57
             176:    7(fvec3) Load 175
                              Store 174(P1) 176
             178:     38(ptr) AccessChain 34(input) 67 57
             179:    7(fvec3) Load 178
                              Store 177(P2) 179
             181:     50(ptr) AccessChain 171(P0) 68
             182:    6(float) Load 181
             183:    6(float) FAdd 182 180
             184:     50(ptr) AccessChain 171(P0) 68
                              Store 184 183
             185:     50(ptr) AccessChain 174(P1) 68
             186:    6(float) Load 185
             187:    6(float) FAdd 186 180
             188:     50(ptr) AccessChain 174(P1) 68
                              Store 188 187
             189:     50(ptr) AccessChain 177(P2) 68
             190:    6(float) Load 189
             191:    6(float) FAdd 190 180
             192:     50(ptr) AccessChain 177(P2) 68
                              Store 192 191
             195:    7(fvec3) Load 171(P0)
             196:    6(float) CompositeExtract 195 0
             197:    6(float) CompositeExtract 195 1
             198:    6(float) CompositeExtract 195 2
             199:   30(fvec4) CompositeConstruct 196 197 198 54
             201:    200(ptr) AccessChain 44 62
             202:          40 Load 201
             203:   30(fvec4) VectorTimesMatrix 199 202
                              Store 194(Q0) 203
             205:    7(fvec3) Load 174(P1)
             206:    6(float) CompositeExtract 205 0
             207:    6(float) CompositeExtract 205 1
             208:    6(float) CompositeExtract 205 2
             209:   30(fvec4) CompositeConstruct 206 207 208 54
             210:    200(ptr) AccessChain 44 62
             211:          40 Load 210
             212:   30(fvec4) VectorTimesMatrix 209 211
                              Store 204(Q1) 212
             214:    7(fvec3) Load 177(P2)
             215:    6(float) CompositeExtract 214 0
             216:    6(float) CompositeExtract 214 1
             217:    6(float) CompositeExtract 214 2
             218:   30(fvec4) CompositeConstruct 215 216 217 54
             219:    200(ptr) AccessChain 44 62
             220:          40 Load 219
             221:   30(fvec4) VectorTimesMatrix 218 220
                              Store 213(Q2) 221
             223:   30(fvec4) Load 194(Q0)
             224:    193(ptr) AccessChain 222(vertex) 57
                              Store 224 223
             226:   30(fvec4) Load 204(Q1)
             227:    193(ptr) AccessChain 222(vertex) 57
                              Store 227 226
             228:   30(fvec4) Load 204(Q1)
             229:    193(ptr) AccessChain 222(vertex) 57
                              Store 229 228
             230:   30(fvec4) Load 213(Q2)
             231:    193(ptr) AccessChain 222(vertex) 57
                              Store 231 230
             232:   30(fvec4) Load 213(Q2)
             233:    193(ptr) AccessChain 222(vertex) 57
                              Store 233 232
             234:   30(fvec4) Load 194(Q0)
             235:    193(ptr) AccessChain 222(vertex) 57
                              Store 235 234
                              Return
                              FunctionEnd
