struct VS_OUTPUT { float4 Position : SV_Position; float3 clip0 : SV_ClipDistance0; // multiple semantic IDs, vec3+float (pack) float clip1 : SV_ClipDistance1; // ... }; VS_OUTPUT main() { VS_OUTPUT Output; Output.Position = 0; Output.clip0.x = 0; Output.clip0.y = 1; Output.clip0.z = 2; // Position 3 is packed from clip1's float Output.clip1 = 3; return Output; }