[require] shader model >= 5.0 float64 [pixel shader todo] uniform double2 d; uniform float2 f; float4 main() : sv_target { double2 n = d / f; return float4(d.x, d.y, n.x, n.y); } [test] uniform 0 double2 -4.5 8.5 uniform 4 float4 -2.25 4.25 0.0 0.0 todo(sm<6) draw quad probe all rgba (-4.5, 8.5, 2.0, 2.0) [pixel shader todo] uniform double2 d; uint4 main() : sv_target { uint4 result; asuint(d.x, result.x, result.y); asuint(d.y, result.z, result.w); return result; } [test] uniform 0 double2 -4.5 8.500003814697266 todo(sm<6) draw quad probe all rgbaui (0, 0xc0120000, 0x80000000, 0x40210000) [pixel shader todo] uniform uint4 u; float4 main() : sv_target { // Low bits, high bits double2 d = asdouble(u.xz, u.yw); return float4(d, 0, 0); } [test] uniform 0 uint4 0xc000000 0x40020000 0x80000000 0xc04be000 todo(sm<6) draw quad probe all rgba (2.25, -55.75001526, 0.0, 0.0) 1 [pixel shader todo] uniform uint2 u; float4 main() : sv_target { double d = asdouble(u.x, u.y); return float4(d, 0, 0, 0); } [test] uniform 0 uint4 0x80000000 0xc04be000 0 0 todo(sm<6) draw quad probe all rgba (-55.75001526, 0.0, 0.0, 0.0) 1 [require] shader model >= 6.0 int64 [pixel shader] uniform uint64_t2 l; uniform uint2 u; float4 main() : sv_target { uint64_t2 n = l / u; uint4 result = uint4(l.x, l.y, n.x, n.y); return result; } [test] uniform 0 uint64_t2 0x500000001 0x100000002 uniform 4 uint4 10 4 0 0 draw quad probe all rgba (1.0, 2.0, 2147483648.0, 1073741824.0) [pixel shader] uniform int64_t2 l; uniform int2 i; float4 main() : sv_target { int64_t2 n = l / i; int4 result = int4(l.x, l.y, n.x, n.y); return result; } [test] uniform 0 int64_t2 -21474836481 0x100000002 uniform 4 int4 -20 8 0 0 draw quad probe all rgba (-1.0, 2.0, 1073741824.0, 536870912.0)