[pixel shader] uniform float3 f; float4 main() : sv_target { int3 r = f; return float4(r, 0); } [test] uniform 0 float4 10.3 -11.6 12.8 13.1 draw quad probe (0, 0) rgba(10, -11, 12, 0) [vertex shader] uniform float4 f; void main(float4 pos : position, out float4 t1 : TEXCOORD1, out float4 out_pos : sv_position) { out_pos = pos; t1 = (int4)f; } [pixel shader] float4 main(float4 t1 : TEXCOORD1) : sv_target { return t1; } [test] uniform 0 float4 -0.4 -0.7 -12.8 14.8 draw quad probe (0, 0) rgba(0, 0, -12, 14) [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) draw quad probe (0, 0) 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] draw quad if(sm<4) todo probe (0,0) rgba (0.5, 4.2949673e+009, 0.5, 0.5) if(sm>=4) probe (0,0) rgba (0.5, 0.5, 0.5, 0.5)