// *** // invocation ID coming from input to entry point // *** struct VS_OUT { float3 cpoint : CPOINT; }; struct HS_CONSTANT_OUT { float edges[2] : SV_TessFactor; }; struct HS_OUT { float3 cpoint : CPOINT; }; [domain("isoline")] [partitioning("integer")] [outputtopology("line")] [outputcontrolpoints(4)] [patchconstantfunc("PCF")] HS_OUT main(InputPatch ip, uint m_cpid : SV_OutputControlPointID) { HS_OUT output; output.cpoint = ip[0].cpoint; return output; } HS_CONSTANT_OUT PCF(uint pid : SV_PrimitiveId) { HS_CONSTANT_OUT output; output.edges[0] = 2.0f; output.edges[1] = 8.0f; return output; }