Develop
Develop
Select your platform

Meta OpenXR SDK

Download
Updated: Mar 14, 2025|
Version
74.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 74.0 Release Notes

The Meta OpenXR SDK is now available on GitHub.
You can access the GitHub repository through the following link: https://github.com/meta-quest/Meta_OpenXR_SDK

Current OpenXR Version

  • What's New

  • Introduced meta_handtracking_microgestures extension and XrMicrogesture sample
  • Introduced meta_passthrough_layer_resumed_event extension
  • Introduced SceneSharing API and XrSceneSharing sample
  • What's Fixed

  • Refactored part of the 1stParty library
  • Fixed SceneModel sample app launched to 2D panel rather than immersive issue
  • 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 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 now 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.
  • 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.
  • Clients linking against OpenXR version >= 1.0.38 will be able to receive scene data corresponding to multiple rooms from xrQuerySpacesFB.
  • Clients linking against OpenXR version >= 1.0.40 will use the path up until the identifier to determine the priority to use for an action during priority resolution. Prior versions will use the full path, meaning less conflict between actions.
  • Clients linking against OpenXR version >= 1.0.40 will be able to receive visibility mask data from xrGetVisibilityMaskKHR.
  • Clients linking against OpenXR version >= 1.0.40 will be able to set and enable the XR_SPACE_COMPONENT_TYPE_SHARABLE_FB on Rooms - XrSpace with XrRoomLayoutFB component, via the xrSetSpaceComponentStatusFB API.