1// ***
2// invocation ID coming from synthesized variable
3// ***
4
5struct VS_OUT
6{
7    float3 cpoint : CPOINT;
8};
9
10struct HS_CONSTANT_OUT
11{
12    float edges[2] : SV_TessFactor;
13};
14
15struct HS_OUT
16{
17    float3 cpoint : CPOINT;
18};
19
20[domain("tri")]
21[partitioning("integer")]
22[outputtopology("point")]
23[outputcontrolpoints(4)]
24[patchconstantfunc("PCF")]
25HS_OUT main(InputPatch<VS_OUT, 4> ip)
26{
27    HS_OUT output;
28    output.cpoint = ip[0].cpoint;
29    return output;
30}
31
32HS_CONSTANT_OUT PCF(uint pid : SV_PrimitiveId, float4 pos : SV_Position)
33{
34    HS_CONSTANT_OUT output;
35
36    output.edges[0] = 2.0f;
37    output.edges[1] = 8.0f;
38    return output;
39}
40