Oculus SDK for Windows

1.3.0 | Updated 2016-03-28

I have read and agree to the terms of the EULA, Terms of Use and Privacy Policy

  • Release Notes
  • Legal

Oculus PC SDK 1.3.0

The Oculus SDK now provides Asynchronous TimeWarp (ATW). With ATW, TimeWarp is automatically applied to the last rendered frame by the Oculus Compositor at the same time as distortion. For more information, see Asynchronous TimeWarp.

Oculus now provides guidance and APIs for VR focus management, which helps you smoothly transition users between your game or experience and Oculus Home. For more information, see VR Focus Management.

New Features

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

  • Added Asynchronous TimeWarp (ATW). For more information, see Asynchronous TimeWarp.
  • Added features for VR focus management, which helps you smoothly transition users between your game or experience and Oculus Home. For more information, see VR Focus Management.
  • Updated queue ahead to be adaptive. Queue ahead previously processed frames 2.8 milliseconds in advance to improve CPU and GPU parallelism. Adaptive queue ahead works similarly, but automatically adjusts the start time from 0 to -1 frame (depending on the current performance).
  • Added the performance indicator, which displays when the application is slow or not maintaining frame rate. For more information, see Performance Indicator
  • Added the Oculus Compositor performance HUD (ovrPerfHud_CompRenderTiming) and renamed the application performance HUD (ovrPerfHud_RenderTiming) to ovrPerfHud_CompRenderTiming.
  • Support for DirectX 12 (DX12). For more information, refer to the Oculus Room Tiny (DX12) sample.

Runtime Changes

Changes include:

  • Added Oculus Setup, which installs and configures the Oculus Rift, installs the Oculus App, and installs Oculus Home.
  • Added the Oculus App, which replaces the Oculus Configuration Utility. To open the Oculus App, double-click the Oculus desktop icon.
  • Added Oculus Home, the VR-based application for launching games and experiences. If the Oculus App is open, Oculus Home automatically runs whenever you put on the headset.
  • Added the universal menu to perform many common tasks, such as recentering and lens adjustment. To open the universal menu, press the Oculus button on the Oculus remote or the Xbox button on the Xbox Controller
  • Account, device, and privacy management tasks are now performed through the Oculus App. To make changes, click the menu icon (three dots) in the upper right corner of the Oculus App and select Settings.
  • Previously, when you locked your computer, any VR content continued to display in the headset. Now, when you lock the computer, the headset displays a blank screen.

API Changes

Updates to the API include:

  • Added ovrTrackerFlags, which returns whether the sensor is present and is in a valid position.
  • Added ovrSessionStatus flags to for focus management. For more information, see VR Focus Management.
  • Added ovrTrackerPose to get the position of a specific sensor.
  • Added bit masks that provide button touch states (ovrTouch_RButtonMask and ovrTouch_LButtonMask), button press states (ovrButton_RMask and ovrButton_LMask), and finger poses (ovrTouch_RPoseMask and ovrTouch_LPoseMask) for the Oculus Touch controllers.
  • Added ovrTrackingState::CalibratedOrigin, which is the initial origin configured by the user when he or she set up the headset. Every time a user recenters a headset, the updated location is relative to this value.
  • Added the ovr_ClearShouldRecenterFlag function for applications that want to manually calculate a recentered tracking pose instead of using the provided SDK function ovr_RecenterTrackingOrigin.
  • Added the utility function ovrPosef_FlipHandedness to help applications easily flip any ovrPosef from a left to right-handed coordinate system.

Changes to the API include:

  • The previous API returned a mutable struct which had to be modified in a specific way and passed back to the API. The Oculus SDK now returns an Opaque handle that represents the TextureSwapChain.
  • Removed the deprecated ovrHmdStruct synonym for ovrHmd.
  • Removed the ovrStatusBits::ovrStatus_CameraPoseTracked and ovrStatusBits::ovrStatus_PositionConnected flags.
  • Moved CameraFrustumHFovInRadians, CameraFrustumVFovInRadians, CameraFrustumNearZInMeters, and CameraFrustumFarZInMeters from ovrHmdDesc to ovrTrackerDesc. Renamed them FrustumHFovInRadians, FrustumVFovInRadians, FrustumNearZInMeters, and FrustumFarZInMeters.
  • Removed CameraPose and LeveledCameraPose from ovrTrackingState and added them to ovrTrackerPose (as Pose and LeveledPose).
  • Renamed HmdToEyeViewOffset to HmdToEyeOffset.
  • Renamed ovrSwapTextureSet to ovrTextureSwapChain.
  • Removed the deprecated functions ovr_ResetBackOfHeadTracking and ovr_ResetMulticameraTracking.
  • Removed ovr_SetEnabledCaps.
  • Removed ovr_ConfigureTracking.
  • Removed the ovr_GetEnabledCaps function.
  • Removed the ovr_GetTrackingCaps function.
  • Removed the ovrLayerDirect layer type.
  • Renamed the ovr_RecenterPose function to ovr_RecenterTrackingOrigin.
  • Changed ovrMaxLayerCount from 32 to 16.
  • Moved the bindFlags parameter in function ovr_CreateTextureSwapChainDX to be part of the ovrTextureSwapChainDesc structure.
  • Added the output parameter outSensorSampleTime to the utility function ovr_GetEyePoses.
  • Modified ovrMatrix4f_Projection to be right-handed by default and changed ovrProjection_RightHanded to ovrProjection_LeftHanded.
  • Modified the default handedness of ovrMatrix4f_Projection to be right-handed by default and changed ovrProjection_RightHanded to be ovrProjection_LeftHanded.
  • Added the ovrPosef_FlipHandedness utility function.
  • Renamed ovrControllerType_SID to ovrControllerType_Remote.
  • Renamed ovrMirrorTextureDesc::Flags to ovrMirrorTextureDesc::MiscFlags and ovrTextureSwapChainDesc::Flags to ovrTextureSwapChainDesc::MiscFlags.
  • Removed the OVR_Kernel.h header file.

Known Issues

The following are known issues:

  • Antivirus software, such a McAfee, can cause installation issues. To work around the issue, make sure you have the latest updates and disable real-time scanning.
  • If you encounter installation issues, delete the Oculus folder and install the software again.
  • If the Rift displays a message that instructs you to take off the headset, remove it and place it on a flat surface for 10-15 seconds.
  • The keyboard and mouse do not work in Oculus Home. To select an item, gaze at it and select it using the Oculus Remote or Xbox controller.
  • Bandwidth-intensive USB devices, such as web cams and high-end audio interfaces, might not work when using the Rift. To work around this issue, install the device on another USB host controller or a separate computer.
  • For dual-boot systems using DK2 or CB1 HMDs, the OS selection screen might appear on the HMD instead of the monitor. To work around this, try plugging the HMD into a different port or unplug the HMD while booting.
  • If you are running your application from the Unity Editor and you press the controller's home button to return to Oculus Home, you will be prompted to close the application. If you select OK, Unity might remain in a state where it is running, but will never get focus. To work around this, restart Unity.

Oculus VR, LLC Software Development Kit License Agreement

Copyright © 2014-2016 Oculus VR, LLC All rights reserved.

The text of this may be found at: https://developer.oculus.com/licenses/pc-3.3/

In order to obtain and use the Oculus Software Development Kit for PC, You must first agree to the terms of this License. If you agree to the terms of this License, you may use the Oculus Software Development Kit for PC. If you do not agree to the terms of this License, then you may not use the Oculus Software Development Kit for PC.


1. Subject to the terms and conditions of this License Agreement (the “License”), Oculus VR, LLC (“Oculus”) hereby grants to you a worldwide, non-exclusive, no-charge, royalty-free, sublicenseable copyright license to use, reproduce and redistribute (subject to restrictions below) the software contained in this Oculus Rift Software Development Kit (the “Oculus SDK”), including, but not limited to, the samples, headers, LibOVR headers, LibOVR source and, subject to your compliance with Section 3, the headers, libraries and APIs to enable the Platform Services. This License is subject to the following terms and conditions:

1.1 This license grants you the non-exclusive license and right to use (i) the Oculus SDK to make engines, tools, applications, content, games and demos (collectively and generally referred to as “Developer Content”) for use on the Oculus approved hardware and software PC products (“Oculus Approved Products”) and which may incorporate the Oculus SDK in whole or in part in binary or object code; and (ii) the headers, libraries, APIs and other tools made available by Oculus to enable the use of Platform Services with your Developer Content.

1.2 For the sake of clarification, when you use the Oculus SDK in or with Developer Content, you retain all rights to your Developer Content, and you have no obligations to share or license Developer Content (including your source and object code) to Oculus or any third parties; provided, however, Oculus retains all rights to the Oculus SDK and the headers, libraries and APIs to the Platform Services and other tools made available by Oculus, including those that may be incorporated into your Developer Content.

1.3 You agree that as a condition of this License you will design and distribute your Developer Content to ensure that your Developer Content and any software required to use your Developer Content does not, and you will not, alter or interfere with the normal operation, behavior or functionality of the Oculus hardware or software, including: (i) the behavior of the "Oculus button" and “XBox button” implemented by the Oculus system software; (ii) any on-screen messages or information; (iii) the behavior of the proximity sensor in the Oculus hardware implemented by the Oculus system software; (iv) Oculus hardware or software security features; (v) end user’s settings; or (vi) the Oculus Flash Screen Warnings. You also agree not to commit any act intended to interfere with the normal operation of the Oculus hardware or software, or provide software to Oculus users or developers that would induce breach of any Oculus agreements or that contains malware, viruses, hacks, bots, Trojan horses, or other malicious code.

1.4 You may not use the Oculus SDK for any purpose not expressly permitted by this License. You may not:

  1. decompile
  2. reverse engineer
  3. disassemble
  4. attempt to derive the source code of the Oculus SDK or any part of the Oculus SDK, or any other software or firmware provided to you by Oculus

(except as and only to the extent any foregoing restriction is prohibited by applicable law).


2. Subject to the terms and conditions of this License, your license to redistribute and sublicense the Oculus SDK is also expressly made subject to the following conditions:

2.1 You may sublicense and redistribute the source, binary, or object code of the Oculus SDK in whole for no charge or as part of a for-charge piece of Developer Content; provided, however, you may only license, sublicense or redistribute the source, binary or object code of the Oculus SDK in its entirety. The Oculus SDK (including, but not limited to LibOVR), and any Developer Content that includes any portion of the Oculus SDK, may only be used with Oculus Approved Products and may not be used, licensed, or sublicensed to interface with software or hardware or other commercial headsets that are not authorized and approved by Oculus;

2.2 You must include with all such redistributed or sublicensed Oculus SDK code the following copyright notice: “Copyright © 2014-2016 Oculus VR, LLC. All rights reserved,”

2.3 You must give any other recipients of the Oculus SDK a copy of this License as such recipients, licensees or sublicensees may only use the Oculus SDK subject to the terms of this License and such recipient's, licensee's or sublicensee's agreement to and acceptance of this License with Oculus; and

2.4 The Oculus SDK includes a “LICENSE” text file (the “License Notice”), and any Oculus SDK distribution that you distribute must include a copy of this License with the License Notice.


3. Oculus makes the headers, libraries and APIs, software, and other tools made available by Oculus to enable Platform Services in connection with your Developer Content. You agree not to use any API, code or other tools, instruction or service provided by Oculus to enable or use a Platform Service other than in compliance with these terms. For more information go to https://developer.oculus.com.

  • "Oculus Platform Framework" means the suite of Oculus platform services, including but not limited to the Oculus file distribution and update system (enabling distribution and updates of Developer Content by Oculus, including through generated activation Keys), entitlement system, and account authentication, which list may be changed from time to time in Oculus’ sole discretion.
  • "Application Services" means services provided by Oculus associated with the Platform, including but not limited to in-app purchasing, multiplayer matchmaking, friends, leader boards, achievements, rooms, voice over IP and cloud saves, which list may be changed from time to time in Oculus’ sole discretion.
  • “Platform” means the Oculus virtual reality platform, including but not limited to the user experience, user interface, store, and social features, usable on Oculus approved hardware or any third-party device or operating system, including but not limited to Windows, OS X, Linux.
  • “Platform Services” means the Oculus Platform Framework and the Application Services.

3.1 Oculus Platform Services. Oculus makes certain Platform Services available to you to include and enable in your Developer Content. Developer Content that enables or includes any Platform Service must implement the Oculus Platform Framework with that Developer Content. Once your Developer Content has been authorized for use of the Platform Services, you are not required to update your Developer Content to include new Platform Services Oculus may make available as part of the Oculus Platform Framework.

3.2 Limited Authorization. You hereby grant Oculus the limited authorization reasonably necessary for Oculus’s exercise of its rights and performance of its obligations under this Section 3. You agree that Oculus may use its contractors and affiliates for the purposes of exercising its rights and licenses set forth in this Section 3.

3.3. Internal Use. You agree that Oculus may grant its employees and internal contractors the right to use, perform and display the Developer Content you provide to Oculus for testing, evaluation and approval purposes, which shall be on a royalty-free basis.

3.4 Key Provision and Redemption. If you request that Oculus generate activation keys for your Developer Content on the Platform ("Keys") and Oculus agrees, you hereby grant Oculus (i) the right to generate Keys for you and (ii) a license to make available, reproduce, distribute, perform, and display the Developer Content to end users who have submitted a Key to Oculus. Oculus agrees to authenticate and make Developer Content available to any end user supplying a valid Key (unless the Developer Content has been removed or withdrawn).

3.5 Platform Services Requirements. You will not make any use of any API, software, code or other item or information supplied by Oculus in connection with the Platform Services other than to enhance the functionality of your Developer Content. In particular, you must not (nor enable others to): (i) defame, abuse, harass, stalk, or threaten others, or to promote or facilitate any prohibited or illegal activities; (ii) enable any functionality in your Developer Content that would generate excessive traffic over the Oculus network or servers that would negatively impact other users' experience, or otherwise interfere with or restrict the operation of the Platform Services, or Oculus's servers or networks providing the Platform Services; or (iii) remove, obscure, or alter any Oculus license terms, policies or terms of service or any links to or notices thereto. You may not sublicense any software, firmware or other item or information supplied by Oculus in connection with the Platform Service for use by a third party, unless expressly authorized by Oculus to do so. You agree not to use (or encourage the use of) the Platform Services for mission critical, life saving or ultra-hazardous activities. Oculus may suspend operation of or remove any Developer Content that does not comply with the restrictions in this License.


4. Additional Materials

4.1 Oculus may include in this Oculus SDK additional content (e.g., samples) for demonstration, references or other specific purposes. Such content will be clearly marked in the Oculus SDK and is subject to any included terms and conditions.

4.2 Your use of third-party materials included in the Oculus SDK may be subject to other terms and conditions typically found in separate third-party license agreements or "READ ME" files included with such third-party materials. To the extent such other terms and conditions conflict with the terms and conditions of this License, the former will control with respect to the applicable third-party materials.


6. This License does not grant permission to use the trade names, trademarks, service marks, or product names of Oculus, except as required for reasonable and customary use in describing the origin of the Oculus SDK, and reproducing the content of the License Notice file. Oculus reserves all rights not expressly granted to you under this License. Neither the name of Oculus VR, LLC nor the names of Oculus VR, LLC’s contributors, licensors, employees, or contractors, may be used to endorse or promote products developed using the Oculus SDK without specific prior written permission of Oculus VR, LLC.

7. You are responsible for ensuring that your use of the Oculus SDK and your Developer Content, including enabled Platform Services, complies with all applicable laws (including privacy laws) wherever your Developer Content is made available. You acknowledge and agree that you are solely responsible for any health and safety issues arising from your Developer Content.

8. Your acceptance of the terms and conditions of this License in and of itself and for all Developer Content created as of March 28, 2016, may be evidenced by any of the following: your usage of the Oculus SDK, or acceptance of the license agreement. As this License is updated for future releases of the Oculus SDK, you agree to abide by and meet all requirements of future updates of this License for those future Oculus SDK releases, with acceptance evidenced by usage of the Oculus SDK or any element thereof and the future updates of this License will apply for that future Developer Content that may be developed for or with that future Oculus SDK or any element thereof (i.e., you cannot sidestep out of the requirements of future updates of the License by developing against an older release of the Oculus SDK or License).

9. Oculus reserves the right to terminate this License and all your rights hereunder immediately in the event you materially breach this License.

10. Furthermore, Oculus also reserves the right to cancel or terminate this License for any of the following reasons:

  1. Intellectual property infringement by you with Developer Content created by you that is used with or by the Oculus SDK, or any of the Platform Services;
  2. Developer Content (including enabling Platform Services) that violates applicable law;
  3. Health and safety issues associated with your Developer Content;
  4. Failure to comply with or use properly the Oculus Flash Screen Warnings;
  5. Use of the Oculus SDK with a commercial product other than an Oculus Approved Product;
  6. Failure to provide required notices as set forth above; and
  7. Failure to observe the restrictions in Section 3.5.

11. You agree to fully indemnify Oculus from any and all losses, costs, damages and expenses (including reasonable attorney's fees) arising out of your Developer Content or any matter set forth in Sections 6, 7 and 10(a) through (g).

12. Oculus may discontinue or change functionality of the Platform Services at any time, and your continued use of the Platform Services or use of any modified or additional Platform Services is conditioned upon your adherence to the terms of this License, as modified by Oculus from time to time.

13. In the event any provision of this License is determined to be invalid, prohibited or unenforceable by a court or other body of competent jurisdiction, this License shall be construed as if such invalid, prohibited or unenforceable provision has been more narrowly drawn so as not to be invalid, prohibited or unenforceable.

14. You may not assign any rights or obligations under this License without the advance written consent of Oculus, which may be withheld in its sole discretion. Oculus may assign its rights or obligations under this License in its sole discretion.

15. Failure of either party at any time to enforce any of the provisions of this License will not be construed as a waiver of such provisions or in any way affect the validity of this License or parts thereof.

16. Your remedies under this License shall be limited to the right to collect money damages, if any, and you hereby waive your right to injunctive or other equitable relief.

17. You will comply, and will not cause Oculus to not comply (by for example, providing Developer Content to Oculus under this Agreement for which required export clearances have not been obtained), with all applicable export control laws of the United States and any other applicable governmental authority, including without limitation, the U.S. Export Administration Regulations. You agree that this License and the Oculus SDK and accompanying documentation are Oculus's confidential information (and is not publicly available), and you will not use it, disclose it or make it available to others except in accordance with the terms of this License.

18. This License shall be governed by the laws of the State of California, without giving effect to choice of law principles. All disputes relating to this License shall be resolved by binding non-appearance-based arbitration before a neutral arbitrator in Santa Clara, California. The arbitration shall be conducted in accordance with the rules and procedures of JAMS then in effect, and the judgment of the arbitrator shall be final and capable of entry in any court of competent jurisdiction. You and Oculus agree to submit to the personal jurisdiction of the courts located within Santa Clara, California in connection with any entrance of an arbitrator’s judgment or decision or any dispute with respect to the arbitration process or procedure or Oculus’s exercise of its equitable rights or remedies.