OpenXR SDK 1.1.54 (2025-12-02)

This release updates the C++ standards version used by the package, and
includes changes to hello_xr to bring it closer in line with the
OpenXR-CTS (which come from a shared codebase) and allow optional
submission of depth textures where supported, among other changes.

-   SDK
    -   Change: Update C++ standard version used from C++14 to C++17.
        (internal MR 4096)
    -   Chore: Add extra compiler validation for the OpenXR loader.
        (internal MR 4086)
    -   Chore: Fix -Wmissing-prototypes compiler warnings. (internal MR
        4107)
    -   Improvement: Add build option INSTALL_SYMBOLS (enabled by
        default to maintain current behavior), to allow skipping
        installing .PDB files from MSVC builds. (internal MR 4066,
        internal issue 2634)
    -   Improvement: Clarify loader doc regarding removed permission
        requirement for installable broker. (internal MR 4092)
    -   Validation Layer: Fix the library_path of
        XrApiLayer_best_practices_validation.json on Windows (internal
        MR 4080, internal issue 2629)
    -   hello_xr: Revise rendering to be more similar to the CTS, and
        add optional support for XR_KHR_composition_layer_depth.
        (internal MR 4023, internal MR 4118, internal MR 4121)
-   Registry
    -   Change: Deprecate the Wayland part of XR_KHR_opengl_enable and
        bump version. (internal MR 4052, OpenXR-SDK-Source issue 282,
        internal issue 1634, internal issue 2559)
    -   Chore: Reserve extensions. (internal MR 4067, internal MR 4079,
        internal MR 4098, internal MR 4099, internal MR 4100)
    -   Fix: Correctly define XR_EXT_dpad_binding paths for
        /interaction_profiles/bytedance/pico_ultra_controller_bd in XML.
        (internal MR 4049)
    -   Improvement: Add description for
        XR_SPACE_COMPONENT_TYPE_TRIANGLE_MESH_META. (internal MR 4070)
    -   Schematron: Add validation to ensure bitmasks are non-plural
        before Flags/FlagBits. (internal MR 2678)
    -   Schematron: Add validation to check additional scenarios of next
        pointer const-ness. (internal MR 2740)
    -   Schematron: Add validation for interaction profile extension
        binding additions. (internal MR 3982)
    -   Schematron: Remove unneeded exception from “Param/member naming
        conventions: camelCase” pattern. (internal MR 4072)
    -   Schematron: Fix check for multiple arrays bounded by the same
        len param. (internal MR 4077)
    -   Schematron: Add validation for the comment attribute of
        XrSpatialComponentTypeEXT values. The comment must reference the
        list and data structs for the component. (internal MR 4083)
    -   Schematron: Add validation for the comment attribute of
        XrSpatialCapabilityFeatureEXT values. The comment must have
        references to the feature’s config structs. (internal MR 4084)
    -   Schematron: Add check for orphaned structs, enforcing
        structextends or parentstruct when appropriate. (internal MR
        4091, internal MR 4094)
    -   Update: Bump XR_EXT_future version due to clarifying what the
        runtime may do in a completion function of an XrFutureEXT.
        (internal MR 3796, internal MR 4028)
    -   Update: Add XrEnvironmentDepthImageTimestampMETA to
        XR_META_environment_depth, update spec version to 2. (internal
        MR 4024)

GitOrigin-RevId: 0a94be6473bbd008d2073b29a7964521c646cec6
19 files changed
tree: 5c5bd0c8ccaf0342ef3d422f68e43d99a2735eb3
  1. .azure-pipelines/
  2. .github/
  3. .reuse/
  4. include/
  5. LICENSES/
  6. specification/
  7. src/
  8. .appveyor.yml
  9. .editorconfig
  10. .git-blame-ignore-revs
  11. .gitattributes
  12. .gitignore
  13. .mailmap
  14. CHANGELOG.SDK.md
  15. CMakeLists.txt
  16. CODE_OF_CONDUCT.md
  17. COPYING.adoc
  18. LICENSE
  19. README.md
README.md

OpenXR™ Software Development Kit (SDK) Project

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

Directory Structure

  • BUILDING.md - Instructions for building the projects
  • README.md - This file
  • COPYING.md - Copyright and licensing information
  • CODE_OF_CONDUCT.md - Code of Conduct
  • external/ - External code for projects in the repo
  • include/ - OpenXR header files
  • src/external/jsoncpp - The jsoncpp project source code, an included dependency of the loader.
  • src/loader - OpenXR loader code, including generated code

Building

The project is set up to build using CMake.

(Optional) Building the OpenXR Loader as a DLL

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.

Windows

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 StudioVersion Number
Visual Studio 201715
Visual Studio 201916
Visual Studio 202217

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.

Windows 64-bit

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.

Windows 32-bit

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.

Linux

The following set of Debian/Ubuntu packages provides all required libs for building for xlib or xcb with OpenGL and Vulkan support.

  • build-essential
  • cmake (of somewhat recent vintage, 3.10+ known working)
  • libgl1-mesa-dev
  • libvulkan-dev
  • libx11-xcb-dev
  • libxcb-dri2-0-dev
  • libxcb-glx0-dev
  • libxcb-icccm4-dev
  • libxcb-keysyms1-dev
  • libxcb-randr0-dev
  • libxrandr-dev
  • libxxf86vm-dev
  • mesa-common-dev

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.

Linux Debug

mkdir -p build/linux_debug
cd build/linux_debug
cmake -DCMAKE_BUILD_TYPE=Debug ../..
make

Linux Release

mkdir -p build/linux_release
cd build/linux_release
cmake -DCMAKE_BUILD_TYPE=Release ../..
make

macOS

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.