[pixel shader todo(sm<4)] uniform float4 u; float4 main() : sv_target { return trunc(u); } [test] uniform 0 float4 -0.5 6.5 7.5 3.4 todo(sm<4) draw quad probe all rgba (0.0, 6.0, 7.0, 3.0) uniform 0 float4 -1.5 6.5 7.5 3.4 todo(sm<4) draw quad probe all rgba (-1.0, 6.0, 7.0, 3.0) [pixel shader todo(sm<4)] uniform float4 u; float4 main() : sv_target { float a = trunc(u.r); int2 b = trunc(u.gb); float4 res = float4(b, a, u.a); return trunc(res); } [test] uniform 0 float4 -0.5 6.5 7.5 3.4 todo(sm<4) draw quad probe all rgba (6.0, 7.0, 0.0, 3.0) [pixel shader todo(sm<4)] uniform int4 u; float4 main() : sv_target { float a = trunc(u.r); int2 b = trunc(u.gb); float4 res = float4(b, a, u.a); return trunc(res); } [test] if(sm<4) uniform 0 float4 -1 6 7 3 if(sm>=4) uniform 0 int4 -1 6 7 3 todo(sm<4) draw quad probe all rgba (6.0, 7.0, -1.0, 3.0)