Oculus Rift Driver Update 0.4.0 Beta



New Features

  • Added DK2 Positional Tracking support.
  • Introduced Oculus Runtime that is installed separately from the SDK. Runtime package includes the Oculus Config Utility, service and drivers.
  • Oculus SDK now relies on OVRService resident process that communicates to hardware, handling tracking and sensor fusion. The service allows multiple processes to access headset tracking data simultaneously.
  • Added Health and Safety Warning screen that should be displayed on application startup. SDK Rendering mode automatically displays the screen, providing APIs to dismiss it. In Application Rendering mode, developers are responsible for implementing their own warning based on Oculus bitmap.
  • Added ovrHmdGetHSWDisplayState and ovrHmdDismissHSWDisplay APIs for controlling rendering and timing of the safety warning.
  • Introduced Oculus Display Driver under Windows that routes rendering output directly to the Rift. Driver settings can be changed in the Oculus Config Utility.
  • Added the ovrHmdCapExtendDesktop flag that indicates that headset is operating in extend desktop (backwards compatible) mode. If this flag is set, Oculus display driver is disabled.
  • Added ovrHmdAttachToWindow function used to direct window swap chain output to the Rift through the display driver.
  • Added ovrHmdCapNoMirrorToWindow option, which disabled mirroring of headset output to a window (enabled by default). Disabling mirroring improves performance.
  • Added display luminance overdrive option that reduces screen ghosting effect on DK2. This is implemented as an extra pass in SDK Rendered mode, enabled by the ovrDistortionCapOverdrive flag.
  • Added CameraPose and LeveledCameraPose data to ovrTrackingState, allowing users to identify location of the external camera. This data can be used to detect when players approach the edge of the tracking volume.
  • Added ovrHmdRecenterPose function, used to re-initialize positional tracking origin based on the current location.
  • Added RawSensorData to ovrTrackingState, giving access to the raw IMU and magnetometer readings.

API Changes

Oculus SDK

  • Various "Sensor" functions and structures were renamed to "Tracking" equivalents. For example, ovrSensorState is now ovrTrackingState, returned by ovrHmdGetTrackingState.
  • ovrHmd is now a pointer to ovrHmdDesc, with relevant members being accessible directly. ovrHmdGetHmdDesc function was removed.
  • ovrHmdStartSensor and ovrHmdStopSensor functions were removed; please use ovrHmdConfigureTracking instead.
  • ovrHmdBeginEyeRender and ovrHmdEndEyeRender have been removed; texture data is for both eyes is now passed in ovrHmdEndFrame.


  • Exposed all CAPI functionality through OVRHmd.cs wrapper.
  • Added TimeWarp to minimize latency.
  • Switched to SDK distortion rendering for better quality/performance.
  • Added direct-to-Rift rendering support. Just launch "DirectToRift.exe".
  • Switched to asymmetric frusta to improve pixel density.
  • Fixed issues with viewport management, deferred rendering, and linear lighting.

Known Issues

Oculus SDK and Runtime

  • Monitors in multiple display configurations will blink when activating the Rift.
  • Intel hardware as a single GPU configuration is generally too slow to run VR scenes with DK2. The most obvious effect will be judder.
  • Using duplicated displays in Windows will lead to display driver restart when activating the Rift. The work around is use to use Extend Desktop mode.
  • Nvidia Optimus GPU configurations are not universally supported. Some Windows 7 and 8 configurations were tested successfully. Windows 8.1 is more likely to have issues.
  • Use of both DK1 and DK2 at the same time is not supported.
  • DK2 display may fail to work if plugged in after DK1 was unplugged and used in Direct Mode. When this happens, status LED will blink with alternating yellow-blue pattern. The work around is to switch to Extended Desktop mode and back.
  • OpenGL is presently not functional on AMD hardware in Direct Mode. Extended desktop mode may be used as a work-around.
  • Open GL rendering can have vsync tear with Nvidida cards in Extended Desktop mode. Try direct Display Mode.
  • On some Radeon graphics cards, multisampling may cause scene judder. The work wound is to turn-off multi-sampling for the back buffer.
  • Updates on another monitor may interfere with vsync timing on the Rift and this can manifest as visible tearing in the Rift. This can be eliminated in Windows 7 by disabling Windows composition.
  • Locking the screen in Windows will cause Oculus Rift applications to lose tracking.
  • It is necessary to restart the Config Util after updating the Headset firmware.
  • Camera bound menu option is shown in Config Util Demo Scene for DK1. It has no effect when a DK1 is connected.
  • Sample renderer doesn't and OWD sample does not honor Multisampling setting in OpenGL.


  • Direct Mode Unity apps may judder on multi-monitor configurations. Please try disconnecting one monitor as a work-around.
  • Unity applications built with DX11 support may crash at exit or on startup the first time they are run. Use DX9 where possible.
  • OpenGL in Direct mode is not functional in Unity.



Steven Paterson

Based in California. I am Scottish, I like Scotch and, oh yeah, a little VR too.