Develop
Develop
Select your platform

Meta OpenXR SDK

Download
Updated: Dec 11, 2025|
Version
83.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 83.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

  • Added use of Stationary Reference Space extension in the XrSceneModel sample.
  • Introduced parametric haptics as an experimental extension. See XrControllers sample for its usage.
  • 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:
  • Clients linking against OpenXR version >= 1.1.49 will have properly set hand tracking aim pose flags: XR_HAND_TRACKING_AIM_COMPUTED_BIT_FB and XR_HAND_TRACKING_AIM_VALID_BIT_FB.
  • Clients linking against OpenXR version >= 1.1.49 will have "/user/hand/{left|right}/input/aim/pose" match the system shell. However there was a bug in this implementation that resulted in the pose being rotated 180 degrees around the z axis; this bug will be resolved in OpenXR version >= 1.1.53.
  • Clients linking against OpenXR version >= 1.1.50 will have XR_ERROR_FEATURE_UNSUPPORTED if they used XR_SWAPCHAIN_CREATE_PROTECTED_CONTENT_BIT in the create info.
  • Clients linking against OpenXR version >= 1.1.50 will have group UUID validation within xrShareSpacesMETA().
  • Clients linking against OpenXR version >= 1.1.49 will have XrHandJointLocationsEXT isActive and XrHandJointLocationEXT locationFlags set according to spec.
  • Clients linking against OpenXR version >= 1.1.49 will have XR_SPACE_LOCATION TRACKED_BITs set according to spec, when hand tracking VALID_BITs are set.
  • Clients linking against OpenXR version >= 1.1.53 will have the correct "/user/hand/{left|right}/input/poke_ext/pose".
  • Clients linking against OpenXR version >= 1.1.53 will have the correct "/user/hand/{left|right}/input/pinch_ext/pose".
  • Clients linking against OpenXR version >= 1.1.54 will have "/user/hand/{left|right}/input/aim/pose" with the correct Z axis rotation.

  • 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.
  • Clients linking against OpenXR version >= 1.1.46 will receive Object Collider Meshes and Functional Surface Planes on Spatial Entities which didn't previously have them when Querying/Discovering Spatial Entities. Clients will also begin receiving Spatial Entities with SemanticLabel OTHER representing uncategorized scene elements, e.g. guitar, garbage can, clutter, etc.