OpenXR SDK 1.1.58 (2026-03-31)
This release features several fixes to the SDK as well as tooling
improvements. Among the several added extensions, the most notable are
the two new ratified multi-vendor extensions,
XR_EXT_view_configuration_views_change and
XR_EXT_interaction_profile_battery_state_display.
- SDK
- API Dump Layer: Fix: crash when encountering XR_TYPE_UNKNOWN in
next chain (internal MR 4090)
- Improvement: Enable -Werror=missing-prototypes more widely.
(internal MR 4120)
- Improvement: Search using QUIET mode for sanitizers, as they are
a developer feature. (OpenXR-SDK-Source PR 577)
- hello_xr: Improvement: Simplify options parsing (internal MR
4155, internal MR 3369)
- hello_xr: Fix: Remove error condition check if hello_xr is run
with XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO. (internal MR 4197,
internal issue 2679)
- hello_xr: Fix: crash with D3D11 when the runtime does not
support an appropriate depth format. (internal MR 4199, internal
issue 2689, OpenXR-SDK-Source issue 589)
- hello_xr: Fix: Missed parts of backporting changes from CTS for
depth image support. (OpenXR-SDK-Source PR 587, internal issue
2780)
- hello_xr: Fix: Correct type enum error in D3D12 code.
(OpenXR-SDK-Source PR 587, internal issue 2780)
- hello_xr: Improvement: Remove now-unused code in D3D11, OpenGL,
and OpenGL ES backends. (OpenXR-SDK-Source PR 587, internal
issue 2780)
- loader_test: Fix: Android compatibility (internal MR 4090)
- loader_test: Improvement: run loader_test through CTest on Linux
(internal MR 4090)
- test_runtime: Improvement: Simplify session state implementation
in runtime_test.cpp (internal MR 4159)
- test_runtime: Fix: Update for marking of
XR_FB_touch_controller_proximity as obsoleted by OpenXR 1.1.
(internal MR 4191, internal issue 2599)
- test_runtime: Improvement: Fix quaternion validation percentage
in runtime_test.cpp (internal MR 4192, internal MR 4159)
- Registry
- Change: Mark XR_FB_space_warp as deprecated by
XR_EXT_frame_synthesis, which provides the same functionality
with a slightly modified interface. (internal MR 4173, internal
issue 2469)
- Chore: Reserve extension numbers. (internal MR 4204)
- Fix: Mark XR_FB_touch_controller_proximity as obsoleted by
OpenXR 1.1. (internal MR 4191, internal issue 2599)
- Improvement: Add command return code checks in
xml_consistency.py for specific spatial entity input types.
(internal MR 4151)
- New ratified multi-vendor extension:
XR_EXT_view_configuration_views_change (internal MR 711,
internal issue 619)
- New ratified multi-vendor extension:
XR_EXT_interaction_profile_battery_state_display. (internal MR
3528, internal issue 1339, internal issue 1905)
- New vendor extension: XR_QCOM_hand_tracking_gesture (internal MR
2572)
- New vendor extension: XR_META_body_tracking_fidelity (internal
MR 2962)
- New vendor extension: XR_META_spatial_entity_semantic_label
(internal MR 3529)
- New vendor extension: XR_ANDROID_performance_metrics (internal
MR 3607)
- New vendor extension: XR_ANDROID_mouse_interaction (internal MR
3608)
- New vendor extension: XR_ANDROID_unbounded_reference_space
(internal MR 3624)
- New vendor extension:
XR_ANDROID_composition_layer_passthrough_mesh (internal MR 3625)
- New vendor extension: XR_META_environment_raycast (internal MR
3758)
- New vendor extension: XR_ANDROID_trackables_qr_code (internal MR
3772)
- New vendor extension: XR_BD_spatial_audio_rendering (internal MR
3794)
- New vendor extension: XR_ANDROID_scene_meshing (internal MR
3872)
- New vendor extension: XR_META_tile_properties_hint (internal MR
3885)
- New vendor extension: XR_ANDROID_spatial_object_tracking
(internal MR 3992)
- New vendor extension: XR_ANDROID_spatial_discovery_raycast
(internal MR 3993)
- New vendor extension: XR_ANDROID_spatial_entity_bound_anchor
(internal MR 3994)
- New vendor extension: XR_ANDROID_spatial_component_subsumed_by
(internal MR 4125)
- New vendor extension: XR_ANDROID_spatial_anchor_space (internal
MR 4132)
- Schematron: Add schematron validation for prefix
XrCompositionLayer for structures which extend
XrCompositionLayerBaseHeader. (internal MR 4131)
GitOrigin-RevId: 38a3136372ebb2a2e94cbe7c0687b1cad6ea0850
This repository contains OpenXR headers, as well as source code and build scripts for the OpenXR loader. It contains all generated source files and headers pre-generated for minimum dependencies.
The authoritative public repository for this project is located at https://github.com/KhronosGroup/OpenXR-SDK.
The public repository containing the scripts that generate the files in this repository is located at https://github.com/KhronosGroup/OpenXR-SDK-Source. It hosts the public Issue tracker, and accepts patches (Pull Requests) from the general public. That repository is also where sample code (hello_xr) and API layer source can be found.
Note that this repo is effectively read-only: changes to this repo should be made in the OpenXR-SDK-Source repo instead
BUILDING.md - Instructions for building the projectsREADME.md - This fileCOPYING.md - Copyright and licensing informationCODE_OF_CONDUCT.md - Code of Conductexternal/ - External code for projects in the repoinclude/ - OpenXR header filessrc/external/jsoncpp - The jsoncpp project source code, an included dependency of the loader.src/loader - OpenXR loader code, including generated codeThe project is set up to build using CMake.
By default, the OpenXR loader is built as a static library on Windows and a dynamic library on other platforms. To specify alternate behavior, define the CMake option DYNAMIC_LOADER, e.g. by adding -DDYNAMIC_LOADER=ON or -DDYNAMIC_LOADER=OFF to your CMake command line.
Building the OpenXR components in this tree on Windows is supported using Visual Studio 2013 and newer. Before beginning, make sure the appropriate “msbuild.exe” is in your PATH. Also, when generating the solutions/projects using CMake, be sure to use the correct compiler version number. The following table is provided to help you:
| Visual Studio | Version Number |
|---|---|
| Visual Studio 2017 | 15 |
| Visual Studio 2019 | 16 |
| Visual Studio 2022 | 17 |
Specific sample command lines for building follow. If you're already familiar with the process of building a project with CMake, you may skim or skip these instructions.
First, generate the 64-bit solution and project files using CMake:
mkdir build\win64 cd build\win64 cmake -G "Visual Studio [Version Number] Win64" ..\..
Finally, open the build\win64\OPENXR.sln in the Visual Studio to build the loader.
First, generate the 32-bit solution and project files using CMake:
mkdir build\win32 cd build\win32 cmake -G "Visual Studio [Version Number]" ..\..
Open the build\win32\OPENXR.sln in the Visual Studio to build the loader.
The following set of Debian/Ubuntu packages provides all required libs for building for xlib or xcb with OpenGL and Vulkan support.
build-essentialcmake (of somewhat recent vintage, 3.10+ known working)libgl1-mesa-devlibvulkan-devlibx11-xcb-devlibxcb-dri2-0-devlibxcb-glx0-devlibxcb-icccm4-devlibxcb-keysyms1-devlibxcb-randr0-devlibxrandr-devlibxxf86vm-devmesa-common-devSpecific sample command lines for building follow. If you're already familiar with the process of building a project with CMake, you may skim or skip these instructions.
mkdir -p build/linux_debug cd build/linux_debug cmake -DCMAKE_BUILD_TYPE=Debug ../.. make
mkdir -p build/linux_release cd build/linux_release cmake -DCMAKE_BUILD_TYPE=Release ../.. make
Building the OpenXR components in this tree on macOS is supported using Xcode 14.0 and newer. You may need to install Xcode Command Line Tools and cmake.
First, generate the Xcode project file using CMake:
mkdir -p build/macos cd build/macos cmake -G "Xcode" ../..
Finally, open the build/macos/OPENXR.xcodeproj in Xcode to build the samples.