Develop
Develop
Select your platform

Meta OpenXR SDK

Download
Updated: Apr 16, 2024|
Version
64.0
Includes OpenXR API resources for native development of Meta Quest devices. Create portable code that can be used on devices from multiple vendors.

Version 64.0 Release Notes

Current OpenXR Version

  • What's New

  • OpenXR upgraded from 1.0.32 to 1.0.33
  • All samples have been converted to CMake for cross platform build support
  • What's Fixed

  • Sample apps now are able to build on Android Studio Chipmunk 2021.2.1 and newer
  • Sample apps now build with NDK newer than version 26.0.10792818
  • Cleaned manifest files of all samples to require only necessary permissions
  • Removed many unused variables across samples
  • Restructured SDK package for better experience
  • Adding more explanation to samples
  • Runtime Behavior Changes


    We sometimes find that the runtime shipped with a bug or non-conformant behavior and in such cases we may change the runtime so that future applications get conformance and bug fixes.

    In cases where such bug fixes or behavior changes may be incompatible with existing applications, the OpenXR version number that an application is compiled against is used to gate the behavior change. This allows older applications that may have been working around the issue continue to work as expected, while newly-built applications can receive the conformant or correct behavior.

    For example, if your app builds with version 1.0.25 and a behavior change is gated on 1.0.26, then your application will continue to function as expected even with a newer Oculus OS runtime built to support OpenXR version 1.0.26 or greater. However, if you rebuild your application with 1.0.26 or greater, the new behavior will be enabled for your application.

    The following list is intended to give developers forewarning of such behavior changes in order that they might be addressed when applications are updated and built on against newer OpenXR headers.

    Behavior Changes On Upcoming OpenXR Version:
  • Quest 2 clients linking against OpenXR version >= 1.0.34 will default to the Display P3 color space. To maintain the previous behavior, clients must explicitly set the Rift CV1 color space with xrSetColorSpaceFB.
  • Clients linking against OpenXR version >= 1.0.37 will only be able to query action states on subaction paths that were explicitly enumerated when the action was created. If XR_NULL_PATH is used to create an action, then subaction paths will not be queryable on this action.

  • Behavior Changes On Previous OpenXR Version:
  • Apps linked against OpenXR headers older than 1.0.22 have their XrSwapchainCreateInfo.next pointer ignored to prevent Unity applications from crashing due to an uninitialized next pointer.
  • Apps linked against OpenXR 1.0.23 or newer treat the XrCompositionLayerImageLayoutFB.flipY flag correctly. Prior to 1.0.23 there was a bug in the OpenXR implementation where this flag was ignored.
  • Prior to OpenXR version 1.0.23 the thumbs joints of our hands were rotated in a way that did not match OpenXR specification. Apps linked against 1.0.23 and greater should get thumb joint rotations that match the specification.
  • Apps building against OpenXR version 1.0.24 or higher can enable STAGE space when a stationary Guardian is configured.
  • Apps linked to OpenXR versions prior to 1.0.24 would not receive data to the khr/simple_controller action profile and grip and aim poses were broken. Apps linking to 1.0.24 or greater should receive the correct data.
  • Clients linking to OpenXR version 1.0.28 or higher will not have output structs types correctly validated. Applications that are passing invalid structure types to xrEnumerateConfigurationViews or xrLocateViews may now be returned an XR_ERROR_VALIDATION_FAILURE error where they previously were not.
  • Clients linking to OpenXR version 1.0.29 or higher cannot rely on the return value of xrGetFaceExpressionWeightsFB to know if the returned expression weights values are valid. Instead they should check the valid flag on the XrFaceExpressionWeightsFB struct. Note that the valid flag is set on older OpenXR versions as well.
  • Clients linking against OpenXR version >= 1.0.29 will have the XR_HAND_JOINT_PALM_EXT pose calculated as (XR_HAND_JOINT_MIDDLE_METACARPAL_EXT pose + XR_HAND_JOINT_MIDDLE_PROXIMAL_EXT pose) / 2.
  • Clients linking against OpenXR version >= 1.0.31 need to request the scene permission com.oculus.permission.USE_SCENE in the app to display the permission dialog and get user consent before they can query scene data use XrQuerySpacesFB.