All Oculus Quest developers MUST PASS the concept review prior to gaining publishing access to the Quest Store and additional resources. Submit a concept document for review as early in your Quest application development cycle as possible. For additional information and context, please see Submitting Your App to the Oculus Quest Store.
The Oculus PC SDK includes the resources necessary to use the OpenXR API for native C/C++ development of VR apps. OpenXR offers an alternate development path that allows developers to create portable code that can be used on devices from multiple vendors.
OpenXR is a royalty-free open standard from the Khronos Group created for the development of high-performance VR applications that run on multiple platforms. OpenXR aims to simplify VR development by enabling developers to reach more platforms while reusing the same code. To read more about OpenXR, see the Khronos OpenXR webpage.
Product is based on a published Khronos specification and is expected to pass the Khronos Conformance Process when available. Current conformance status can be found at www.khronos.org/conformance.
To begin using OpenXR for Oculus PC development, developers must meet the following requirements:
Use the OpenXR headers and loader from the Khronos Group’s OpenXR-SDK GitHub page. Use the Windows 32-bit or 64-bit loader build instructions to match your application’s configuration.
After confirming that you meet the requirements, you can learn about using OpenXR to develop VR apps by reading the OpenXR 1.0 Specification at the Khronos Group site. The site also offers API reference documentation and a PDF reference guide that provides a detailed overview of the API.
Please note that there are some known issues with this release. Fixes for the following will go out in the next release:
XR_EXT_debug_utilsextension has not yet been implemented. App developers should still use the extension, but it will not retrieve detailed messages from the runtime.
isActive == false, which is conformant but misaligned with other runtimes. This will cause issues if relying on on tracking state vs.
isActivefor rendering hands.