[pixel shader] uniform float3 f; float4 main() : sv_target { int3 r = f; return float4(r, 0); } [test] uniform 0 float4 10.3 11.5 12.8 13.1 todo(glsl) draw quad probe all rgba (10, 11, 12, 0) [pixel shader todo(sm<4)] uniform float f; uniform uint u; uniform bool b; uniform float h; float4 main() : sv_target { float4 ret; ret.x = ((float)(int)f) - 1.5; ret.y = ((float)(int)u) + 2.5; ret.z = ((float)(int)b) / 2; ret.w = ((float)(int)(half)h) + 3.5; return ret; } [test] if(sm<4) uniform 0 float 2.6 if(sm<4) uniform 4 float -2 if(sm<4) uniform 8 float 1.0 if(sm<4) uniform 12 float -3.6 if(sm>=4) uniform 0 float 2.6 if(sm>=4) uniform 1 int -2 if(sm>=4) uniform 2 int -2 if(sm>=4) uniform 3 float -3.6 todo(sm<4 | glsl) draw quad probe all rgba (0.5, 0.5, 0.5, 0.5) [pixel shader] float4 main() : sv_target { float f = 2.6; uint u = 0xfffffffe; bool b = true; half h = -3.6; float4 ret; ret.x = ((float)(int)f) - 1.5; ret.y = ((float)(int)u) + 2.5; ret.z = ((float)(int)b) / 2; ret.w = ((float)(int)h) + 3.5; return ret; } [test] todo(glsl) draw quad if(sm<4) todo probe all rgba (0.5, 4.2949673e+009, 0.5, 0.5) if(sm>=4) probe all rgba (0.5, 0.5, 0.5, 0.5)