1617a3babSopenharmony_cistruct VS_OUTPUT { 2617a3babSopenharmony_ci float4 Position : SV_Position; 3617a3babSopenharmony_ci float3 clip0 : SV_ClipDistance0; // multiple semantic IDs, vec3+float (pack) 4617a3babSopenharmony_ci float clip1 : SV_ClipDistance1; // ... 5617a3babSopenharmony_ci}; 6617a3babSopenharmony_ci 7617a3babSopenharmony_ciVS_OUTPUT main() 8617a3babSopenharmony_ci{ 9617a3babSopenharmony_ci VS_OUTPUT Output; 10617a3babSopenharmony_ci Output.Position = 0; 11617a3babSopenharmony_ci 12617a3babSopenharmony_ci Output.clip0.x = 0; 13617a3babSopenharmony_ci Output.clip0.y = 1; 14617a3babSopenharmony_ci Output.clip0.z = 2; 15617a3babSopenharmony_ci 16617a3babSopenharmony_ci // Position 3 is packed from clip1's float 17617a3babSopenharmony_ci Output.clip1 = 3; 18617a3babSopenharmony_ci 19617a3babSopenharmony_ci return Output; 20617a3babSopenharmony_ci} 21