struct S { float clip0 : SV_Position; float clip0 : SV_ClipDistance0; float cull0 : SV_CullDistance0; uint vpai : SV_ViewportArrayIndex; uint rtai : SV_RenderTargetArrayIndex; int ii : SV_InstanceID; }; [maxvertexcount(4)] void main(triangle in uint VertexID[3] : VertexID, inout LineStream OutputStream) { S s; OutputStream.Append(s); } [maxvertexcount(4)] void notmain(line in uint VertexID[2] : VertexID, inout LineStream OutputStream) { S s; OutputStream.Append(s); }