Changes For Release 0.8.0

The Oculus SDK 0.8 release changes the SDK from an HMD-based model to a session-based model and adds several new features.

New Features

The following are new features for the Oculus SDK and runtime:

  • Improved support for Windows 10.
  • Added ovr_GetSessionStatus, which returns whether the headset is present and whether it has VR focus and can render to the headset.
  • Added ovr_Detect to OVR_CAPI_Util.h, which enables you to detect the presence of a headset without initializing LibOVR. This can be useful when a game has VR and non-VR modes.
  • Added HandStatusFlags to ovrTrackingState, which specifies whether the the Oculus Touch controllers are being tracked. Status includes orientation and position.
  • Added SensorSampleTime to ovrLayerEyeFov, which specifies when the render pose was calculated. This is useful for measuring application tracking latency.
  • Added ovr_GetTrackingCaps to get the tracking capabilities of the device.
  • Usage of ovr_ConfigureTracking is no longer needed unless you want to disable tracking features. By default, ovr_Create enables the full tracking capabilities supported by any given device.
  • Added ovrLayerHudMode, which enables the headset user to see information about a layer.
  • Added ovrControllerType_None and ovrControllerType_XBox to ovrControllerType.
  • The Oculus Debug Tool was added to simplify troubleshooting. For more information see Oculus Debug Tool.

Runtime Changes

Changes include:

API Changes

This release represents a major revision of the API. Changes to the API include:

  • Applications no longer need to call ovr_ConfigureTracking. ovr_Create automatically enables the full tracking capabilities supported by any given device.
  • Replaced ovr_GetFrameTiming with ovr_GetPredictedDisplayTime.
  • Added latencyMarker to ovrTrackingState. When set to ovrTrue, this indicates that it will be used in the rendering loop and will be used to calculate latency.
  • To emphasize the session model, renamed ovrHmd to ovrSession and hmd to session.
  • ovrLayerType_QuadInWorld and ovrLayerType_QuadHeadLocked were renamed to ovrLayerType_Quad and are now differentiated by the ovrLayerFlag_HeadLocked flag.
  • Added ovrMaxLayerCount, which sets the maximum number of layers to 32.
  • Removed ovrInit_ServerOptional. If you use this to detect whether the OVRService is available, periodically call ovr_Initialize or poll ovr_Detect instead.
  • Removed ovrTrackingCap_Idle from ovrTrackingCaps.

Known Issues

The following are known issues:

  • The Oculus service might crash when gathering diagnostic logs from the Oculus Config Util. If this happens, the service will automatically restart and the logs will be retained.
  • The Oculus service and Config Util might hang when running the demo scene and another VR app at the same time"

Migrating from SDK 0.7.x to SDK 0.8

To migrate:

  1. Update calls to ovr_GetFrameTiming with ovr_GetPredictedDisplayTime using the new syntax.
  2. Update instances of ovrHmd hmd to ovrSession session.
  3. Remove any code that uses ovrInit_ServerOptional. If you use this to detect whether the OVRService is available, periodically call ovr_Initialize or poll ovr_Detect instead.
  4. Remove calls to ovr_ConfigureTracking as the SDK enables all existing tracking features by default.
  5. For ovrLayerType_EyeFov layers, fill in the SensorSampleTime with timestamps captured when ovr_GetTrackingState is being called in the same frame just before generating the view matrix to render the two eye textures.