[pixel shader] uniform int i; uniform uint u; uniform bool b; uniform float f; float4 main() : sv_target { return float4(((half)i) + 1.5, ((half)u) - 2.5, ((half)b) / 2, f); } [test] if(sm<4) uniform 0 float -1 if(sm<4) uniform 4 float 3 if(sm<4) uniform 8 float 1 if(sm<4) uniform 12 float 0.5 if(sm>=4) uniform 0 int -1 if(sm>=4) uniform 1 uint 3 if(sm>=4) uniform 2 int -2 if(sm>=4) uniform 3 float 0.5 draw quad probe (0, 0) rgba (0.5, 0.5, 0.5, 0.5) [pixel shader] float4 main() : sv_target { int i = -1; uint u = 3; bool b = true; float f = 0.5; return float4(((half)i) + 1.5, ((half)u) - 2.5, ((half)b) / 2, f); } [test] draw quad probe (0, 0) rgba (0.5, 0.5, 0.5, 0.5) [require] shader model >= 6.2 native-16-bit [pixel shader] uniform float4 f; float4 main() : sv_target { half4 h = f; return h * half4(2.0, 2.0, 0.5, 0.5); } [test] uniform 0 float4 65536.0 32768.0 65536.0 32768.0 draw quad % The shader runner doesn't support floating-point special literals like "inf", % but numbers beyond FLOAT_MAX consistently result in inf. probe (0, 0) rgba(1.0e39, 1.0e39, 1.0e39, 16384.0) uniform 0 float4 -65536.0 -32768.0 -65536.0 -32768.0 draw quad probe (0, 0) rgba(-1.0e39, -1.0e39, -1.0e39, -16384.0) uniform 0 float4 0.000062 5.0e-8 0.000062 5.0e-8 draw quad probe (0, 0) rgba(0.00012397766, 1.1920929e-7, 0.000030994415, 0.0) 1 uniform 0 float4 -0.000062 -5.0e-8 -0.000062 -5.0e-8 draw quad probe (0, 0) rgba(-0.00012397766, -1.1920929e-7, -0.000030994415, 0.0) 1