Issue you are seeing is not Windows related, but Direct3D one. Actually it's not an issue, but a "feature". By default after calling Direct3D.CreateDevice() FPU is switched to single precision. One could avoid this by adding D3DCREATE_FPU_PRESERVE flag while calling CreateDevice (MSDN link). A lot of additional information can be found just by searching for D3DCREATE_FPU_PRESERVE on Google.