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): 8000b
// 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
