struct VSIn { int idx : SV_VERTEXID; }; struct VSOut { float4 Pos : SV_POSITION; [[vk::location(0)]] float3 Color : COLOR0; }; VSOut main(VSIn input) { float3 points[] = { float3(-0.5f, -0.5f, 0.0f), float3(0.5f, -0.5f, 0.0f), float3(0.0f, 0.5f, 0.0f) }; float3 colors[] = { float3( 1.0f, 0.0f, 0.0f ), float3( 0.0f, 1.0f, 0.0f ), float3( 0.0f, 0.0f, 1.0f ), }; VSOut output; output.Pos = float4(points[input.idx], 1.0f); output.Color = colors[input.idx]; return output; }