1cbuffer ClearColorF32 : register(b0) { float4 ClearF32; }; 2cbuffer ClearColorU32 : register(b0) { uint4 ClearU32; }; 3cbuffer ClearColorI32 : register(b0) { int4 ClearI32; }; 4cbuffer ClearColorDepth : register(b0) { float ClearDepth; }; 5 6// fullscreen triangle 7float4 vs_partial_clear(uint id : SV_VertexID) : SV_Position 8{ 9 return float4( 10 float(id / 2) * 4.0 - 1.0, 11 float(id % 2) * 4.0 - 1.0, 12 0.0, 13 1.0 14 ); 15} 16 17// TODO: send constants through VS as flat attributes 18float4 ps_partial_clear_float() : SV_Target0 { return ClearF32; } 19uint4 ps_partial_clear_uint() : SV_Target0 { return ClearU32; } 20int4 ps_partial_clear_int() : SV_Target0 { return ClearI32; } 21float ps_partial_clear_depth() : SV_Depth { return ClearDepth; } 22void ps_partial_clear_stencil() { } 23