struct Constants { float time; }; Constants k : register(b0); struct VSOutput { float4 pos : SV_POSITION; float2 uv : TEXCOORD; }; VSOutput vs(uint id : SV_VertexID) { VSOutput output; float2 uv = float2((id << 1) & 2, id & 2); output.pos = float4(uv - 1, 0, 1); output.uv = uv; return output; } float4 ps(VSOutput input) : SV_Target { float4 color = float4(0.5, 0, frac(k.time), 0.5); return color; }