Another judder datapoint: sometimes DX9 is better than DX11
My standalone application (Direct HMD access) was suffering from very annoying judder in Windows 8.1 which I tried to fix by trying several different combinations of Nvidia drivers, 32/64-bit builds, and DX9/11. Finally I found out that switching to Windows 7 and using a Unity standalone DX9 build solved the judder. My Win7 install had GeForce 311.06 drivers (I didn't try other drivers in Win7). The computer is equipped with Geforce GTX 660.
What is alarming is that in Windows 8.1 I did not find any satisfying ways to fix the judder. The judder is gone if I disable vsync via OVRManager.capiHmd.SetEnabledCaps(), but that introduces a slightly noticeable motion-related rendering artifact when compared to the working Win7 DX9 solution that has vsync on. Disabling time warp in Win8.1 also fixes the judder but this is not an acceptable solution cyber-sickness wise.
Here are the different configurations that I tried in Win8.1 to no avail (different combinations included):
My application congruently reached the following FPS:
Standalone (deltaTime-based FPS calculation)
- Vsync on: 75 FPS, massive judder
- Vsync off: 200 FPS, no judder
Unity Editor (FPS reported by Unity stats)
- Vsync on: 60 FPS
- Vsync off: 280 FPS
It would be great if there was a way to make my application to work in Win8.1 without judder but with vsync enabled.
I'm using Unity 4.6.2, and for some of the DX11 builds I tried both enabling and disabling the "D3D11 Force Exclusive Mode" in Unity Player Settings.
What is alarming is that in Windows 8.1 I did not find any satisfying ways to fix the judder. The judder is gone if I disable vsync via OVRManager.capiHmd.SetEnabledCaps(), but that introduces a slightly noticeable motion-related rendering artifact when compared to the working Win7 DX9 solution that has vsync on. Disabling time warp in Win8.1 also fixes the judder but this is not an acceptable solution cyber-sickness wise.
Here are the different configurations that I tried in Win8.1 to no avail (different combinations included):
- DX9 and DX11 Unity standalone builds
32- and 64-bit Unity standalone builds
Nvidia 344.75 and 347.52 drivers
My application congruently reached the following FPS:
Standalone (deltaTime-based FPS calculation)
- Vsync on: 75 FPS, massive judder
- Vsync off: 200 FPS, no judder
Unity Editor (FPS reported by Unity stats)
- Vsync on: 60 FPS
- Vsync off: 280 FPS
It would be great if there was a way to make my application to work in Win8.1 without judder but with vsync enabled.
I'm using Unity 4.6.2, and for some of the DX11 builds I tried both enabling and disabling the "D3D11 Force Exclusive Mode" in Unity Player Settings.
