struct VSInput { float3 Pos; float3 Color; }; struct ShaderData { float4x4 mvp; }; struct VertexOutput { float3 Color; float4 sv_position : SV_Position; }; [shader("vertex")] VertexOutput vertMain(VSInput input, uniform ShaderData *data, uint vid : SV_VertexID) { VertexOutput output; output.Color = input.Color; output.sv_position = mul(data->mvp, float4(input.Pos, 1.0)); return output; } [shader("fragment")] float4 fragMain(VertexOutput inVert) : SV_Target { return float4(inVert.Color, 1.0); }