The OpenXR™ registry contains formatted specifications of the OpenXR API, header files, API reference pages, the reference card, and related documentation. The registry also links to the GitHub repository where the sources for these documents can be found.
For general information on OpenXR, including information on implementations, developer resources, and more, see the OpenXR homepage.
Index to the OpenXR Registry page content:
We currently publish the OpenXR API Specification in PDF and HTML forms. There are several versions of the OpenXR 1.0 Specification, as well as related Specifications and collateral material:
The OpenXR 1.0 Reference Card (PDF) is a compact document summarizing the OpenXR 1.0 functions, structures, and enumerants, as well as providing an overview of the input system and a typical OpenXR application's flow.
The OpenXR API Reference Pages describe how to use individual API and extension commands. The goal is to define all commands and structures in the core API and extensions, although there may be some omissions in non-KHR extensions.
The reference pages are generated by automatic extraction from the Specification source, and are not separately checked into GitHub. The set of pages linked above are generated from the 1.0 API specification including all extensions.
The OpenXR-Docs repository contains the AsciiDoc source for the OpenXR API specification, and for registered OpenXR API extensions.
OpenXR-Docs also contains the generated header files, API Registry
xr.xml, and scripts for spec building and verification.
For most developers, the header files provided with the generated loader source in the OpenXR-SDK GitHub repository is all that's needed.
However, all OpenXR headers provided by Khronos are ultimately obtained
from the OpenXR-Docs repository.
If you need to generate a customized version of the headers and/or loader,
use the API Registry
OpenXR-Docs as required, together with the
scripts in specification/scripts and/or src/scripts.
OpenXR defines an API Registry for the API and extensions, formally defining function prototypes, structures, enumerants, and many other aspects of the API and extension mechanisms. The OpenXR Registry is used for many more purposes than most other Khronos API registries, and is the basis for generating the header files; AsciiDoc include files used in the Specification, and reference pages for interface definitions, parameter and member validity language, and synchronization language; and more.
The canonical location for the registry is the
OpenXR-Docs repository in
and that is where any changes should be submitted.
"Read-only" copies, regularly synchronized, exist in the same relative path in:
There are additional Khronos Github repositories containing OpenXR source code, libraries, and tools.
The OpenXR-SDK repository contains:
Most application developers can use this repository, as it provides the header and loader with minimum dependencies, with no requirement for code generation at build time. It is designed for inclusion in your application's source tree, as the loader model for OpenXR on Windows is to bundle the loader (whether statically or dynamically linked) with your application, rather than installing system-wide.
This repository contains a subset of the OpenXR-SDK-Source repository (only the loader source), with the generated source code files pre-generated for easier usage. If you're looking for API layers, sample code, etc. see that repo.
Note: This repository is new for 1.0 - the repository previously located at OpenXR-SDK has been renamed to OpenXR-SDK-Source. The two repositories share the same pre-1.0 git history, however, for ease of migration.
The OpenXR-SDK-Source repository contains:
OpenXR-SDK-Source is where development of the loader takes place: changes are migrated to OpenXR-SDK regularly. Unlike that repo, it does not contain the generated headers or source: you need Python 3.6 or newer on your system to compile this repository.
Note: This repository was formerly known as OpenXR-SDK during the 0.90 time frame, and has been renamed to make room for the new, simpler OpenXR-SDK that contains only the loader and headers, and does not require any code generation.
These are provided for your convenience in porting to 1.0 only. All users of 0.90 should port to the final 1.0 as soon as possible.