Releases: KhronosGroup/OpenXR-SDK
OpenXR SDK 1.0.22
OpenXR SDK 1.0.22 (2022-01-12)
This release features a number of new extensions, as well as some software
updates and fixes, especially for Android. If you are using the bundled jsoncpp,
this is also a security release as the bundled jsoncpp was upgraded to
incorporate security improvements from upstream.
- Registry
- Add new
XR_FB_render_model
vendor extension.
(internal MR 2117,
internal MR 2169) - Add new
XR_HTC_facial_expression
vendor extension.
(internal MR 2120) - Add new
XR_FB_keyboard_tracking
vendor extension.
(internal MR 2128) - Add new
XR_EXT_uuid
multi-vendor extension.
(internal MR 2152) - Add new
XR_FB_passthrough_keyboard_hands
vendor extension.
(internal MR 2162) - Add new
XR_HTC_vive_focus3_controller_interaction
vendor extension.
(internal MR 2178) - Add new
XR_ALMALENCE_digital_lens_control
vendor extension.
(OpenXR-Docs PR 104,
internal issue 1615) - Correct winding order for
XR_MSFT_hand_tracking_mesh
extension to clockwise
to match runtime behavior.
(internal MR 2151) - Fix typos/naming convention errors in
XR_FB_hand_tracking_capsules
: rename
XR_FB_HAND_TRACKING_CAPSULE_POINT_COUNT
to
XR_HAND_TRACKING_CAPSULE_POINT_COUNT_FB
and
XR_FB_HAND_TRACKING_CAPSULE_COUNT
toXR_HAND_TRACKING_CAPSULE_COUNT_FB
,
providing the old names as compatibility aliases.
(internal MR 1547,
internal issue 1519) - Reserve vendor extensions 208 - 299 for Facebook.
(internal MR 2158) - Reserve extension numbers for anticipated multi-vendor extensions.
(internal MR 2173)
- Add new
- SDK
- Android loader: Update vendored jnipp project, including crash/exception fixes
if an application manually attached or detached a thread.
(OpenXR-SDK-Source PR 286,
OpenXR-SDK-Source PR 285) - Docs: Fixed typo in docs.
(OpenXR-SDK-Source PR 284) - Fix detection of std::filesystem options on GCC 11 and newer.
(OpenXR-SDK-Source PR 276,
OpenXR-SDK-Source issue 260,
internal issue 1571) - Loader: Add
ifdef
guards around contents of Android-specific files so all
platforms may still glob all source files in OpenXR-SDK to build the loader
with a custom build system.
(OpenXR-SDK-Source PR 274) - Loader: Fixed incorrect return value when no broker is present on Android but
runtime defined viaactive_runtime.json
.
(OpenXR-SDK-Source PR 284) - Loader: Added
/system
to the search path on Android as per documentation.
(OpenXR-SDK-Source PR 284) - Loader doc: Use
nativeLibraryDir
(property, part of API) instead of
getNativeLibraryDir()
(function generated by wrapping library)
(OpenXR-SDK-Source PR 278) - Update vendored copy of jsoncpp from 1.8.4 to 1.9.5 for security and other
fixes.
(internal MR 2168,
OpenXR-SDK-Source issue 265,
internal issue 1582) - Update android-jni-wrappers to fix missing include.
(OpenXR-SDK-Source PR 280,
OpenXR-SDK-Source issue 275,
internal issue 1616) - Update jnipp to fix crash on Android if app detaches thread from JVM (e.g. on
shutdown).
(OpenXR-SDK-Source PR 280) - scripts: Populate
ext_name
inHandleData
too, for use by language wrapper
generation scripts.
(internal MR 2184)
- Android loader: Update vendored jnipp project, including crash/exception fixes
Attached release artifacts are signed by specification editor Ryan Pavlik's key, with fingerprint F029455EAB70F520FF4A03BD7F534CD56F00321E.
Additional binaries are available from the OpenXR-SDK-Source repo release 1.0.22
This release replaces 1.0.21.
OpenXR SDK 1.0.21
This release was withdrawn due to a typo noticed after initial publication.
All changes are now listed under 1.0.22.
OpenXR SDK 1.0.20
OpenXR SDK 1.0.20 (2021-10-04)
This release includes a proposed cross-vendor OpenXR loader for Android, Android
build system for hello_xr, and a number of new vendor extensions.
- Registry
- Add new
XR_HTCX_vive_tracker_interaction
provisional vendor extension.
(internal MR 1983) - Add new
XR_VARJO_marker_tracking
vendor extension.
(internal MR 2129) - Add new
XR_FB_triangle_mesh
vendor extension.
(internal MR 2130) - Add new
XR_FB_passthrough
vendor extension.
(internal MR 2130) - Reserve vendor extensions for Facebook.
(internal MR 2131) - Reserve a vendor extension for Almalence.
(OpenXR-Docs PR 99) - XR_FB_color_space: Fix XML markup to indicate that
XrSystemColorSpacePropertiesFB
is chained toXrSystemProperties
.
(internal MR 2143)
- Add new
- SDK
- Loader specification: Describe a cross-vendor loader for use on Android.
(internal MR 1949,
internal issue 1425) - hello_xr: Add Android build system, using new cross-vendor loader, and make
some improvements/fixes.
(internal MR 1949,
internal issue 1425) - loader: Implement cross-vendor loader for Android, with AAR Prefab packaging.
(internal MR 1949,
internal issue 1425)
- Loader specification: Describe a cross-vendor loader for use on Android.
Additional binaries are available from the OpenXR-SDK-Source repo release 1.0.20
OpenXR SDK 1.0.19
OpenXR SDK 1.0.19 (2021-08-24)
This release features a number of new or updated vendor extensions, as well as
some minor cleanups and bug fixes in the SDK.
- Registry
- Add
XR_SESSION_NOT_FOCUSED
as a possible success return code to
xrApplyHapticFeedback
andxrStopHapticFeedback
.
(internal MR 2106,
internal issue 1270) - Add new
XR_FB_hand_tracking_mesh
vendor extension.
(internal MR 2089) - Add new
XR_FB_hand_tracking_capsules
vendor extension.
(internal MR 2089) - Add new
XR_FB_hand_tracking_aim
vendor extension.
(internal MR 2089) - Add version 1 of new
XR_FB_space_warp
vendor extension.
(internal MR 2115) - Register new Author ID for Almalence.
(OpenXR-Docs PR 92,
OpenXR-Docs PR 93) - Update to version 2 of
XR_VALVE_analog_threshold
.
(internal MR 2113)
- Add
- SDK
- scripts: Some typing annotations and type-related cleanup found by using type-
aware Python editors.
(internal MR 2100) xr_linear.h
: Fix bug inXrVector3f_Cross
(internal MR 2111)
- scripts: Some typing annotations and type-related cleanup found by using type-
OpenXR SDK 1.0.18
OpenXR SDK 1.0.18 (2021-07-30)
This release mostly adds new extensions. It also includes some fixes to the
included layers, as well as text in the loader documentation describing how
runtimes can register themselves for manual selection. This is not used by the
loader itself and does not require any changes to the loader, but it may be
useful to developer-focused supporting software.
- Registry
- Add ratified
XR_KHR_swapchain_usage_input_attachment_bit
Khronos extension.
(Promotion ofXR_MND_swapchain_usage_input_attachment_bit
, which is now
deprecated.)
(internal MR 2045) - Add new
XR_FB_foveation
,XR_FB_foveation_configuration
, and
XR_FB_foveation_vulkan
vendor extensions.
(internal MR 2050) - Add additional extension dependencies to
XR_FB_swapchain_update_state
.
(internal MR 2072,
internal issue 1572) - Add new
XR_FB_composition_layer_secure_content
vendor extension.
(internal MR 2075) - Add new
XR_FB_composition_layer_alpha_blend
vendor extension.
(internal MR 2078) - Add new
XR_FB_composition_layer_image_layout
vendor extension.
(internal MR 2090) - Add new
XR_MSFT_spatial_anchor_persistence
vendor extension.
(internal MR 2093) - Add some simple Schematron rules and a script to
check the XML registry against them.
(internal MR 2103) - Register author ID and Reserve vendor extensions for Unity.
(internal MR 2105) - Reserve extension ID range 187-196 for LIV Inc.
(internal MR 2102)
- Add ratified
- SDK
- Describe how runtimes may register themselves at installation time for manual
selection.
(internal MR 2081,
internal MR 2109,
internal issue 1574) - Include sRGB in list of supported swapchain texture formats for the HelloXR
OpenGLES plugin.
(internal MR 2066) - layers: Refactor generated
xrGetInstanceProcAddr
implementations to avoid
deeply-nestedif ... else
blocks. (Some compilers have limits we were nearing
or hitting.)
(internal MR 2050) - validation layer: Set default logging mode to stdout ("text") instead of none.
(OpenXR-SDK-Source PR 262) - validation layer: Fix invalid struct type error message to show the expected
type instead of the actual type.
(OpenXR-SDK-Source PR 263)
- Describe how runtimes may register themselves at installation time for manual
OpenXR SDK 1.0.17
OpenXR SDK 1.0.17 (2021-06-08)
This release features an important fix to the loader for an invalid-iterator bug
introduced in 1.0.16. All developers shipping the loader are strongly encouraged
to upgrade. It also includes a variety of new vendor extensions.
- Registry
- Add
XR_MSFT_scene_understanding
vendor extension.
(internal MR 2032) - Add
XR_MSFT_scene_understanding_serialization
vendor extension.
(internal MR 2032) - Add
XR_MSFT_composition_layer_reprojection
vendor extension.
(internal MR 2033) - Add
XR_OCULUS_audio_device_guid
vendor extension.
(internal MR 2053) - Add version 3 of
XR_FB_swapchain_update_state
vendor extension, which splits
platform and graphics API specific structs into separate extensions.
(internal MR 2059) - Apply formatting to registry XML by selectively committing changes made by
https://github.com/rpavlik/PrettyRegistryXml.
(internal MR 2070,
OpenXR-SDK-Source/#256) - Enforce that all
xrCreate
functions must be able to return
XR_ERROR_LIMIT_REACHED
andXR_ERROR_OUT_OF_MEMORY
, and adjust lists of
error codes accordingly.
(internal MR 2064) - Fix a usage of
>
without escaping as an XML entity.
(internal MR 2064) - Fix all cases of a success code (most often
XR_SESSION_LOSS_PENDING
)
appearing in theerrorcodes
attribute of a command.
(internal MR 2064,
internal issue 1566) - Improve comments for several enum values.
(internal MR 1982) - Perform some script clean-up and refactoring, including selective type
annotation and moving the Conventions abstract base class tospec_tools
.
(internal MR 2064) - Sort return codes, with some general, popular codes made to be early. Script
sort_codes.py
can be used to maintain this, though it mangles other XML
formatting, so use it with care. https://github.com/rpavlik/PrettyRegistryXml
can format, and eventually sort return codes (currently sort order does not
match).
(internal MR 2064,
OpenXR-SDK-Source/#256)
- Add
- SDK
- Loader: Fix iteration over explicit layer manifests.
(OpenXR-SDK-Source/#256) - validation layer: Don't try to apply
strlen
towchar_t
-based output
buffers.
(internal MR 2053)
- Loader: Fix iteration over explicit layer manifests.
OpenXR SDK 1.0.16
nupkg signed by Ryan Pavlik, key fingerprint F029455EAB70F520FF4A03BD7F534CD56F00321E
See https://github.com/KhronosGroup/OpenXR-SDK-Source/releases/ for additional release artifacts.
OpenXR SDK 1.0.16 (2021-05-11)
This release contains an update to define a new error code,
XR_ERROR_RUNTIME_UNAVAILABLE
, now returned by the loader at xrCreateInstance
and xrEnumerateInstanceProperties
when it cannot find or load a runtime for
some reason. This should be more clear for developers when encountering it, as
well as helpful when troubleshooting errors hit by users. (The
previously-returned error was typically XR_ERROR_INSTANCE_LOST
, which is
confusing when returned when trying to create an instance.) This release also
includes a new multi-vendor extension, a new vendor extension, and improved
concurrency handling in the loader, among smaller fixes.
- Registry
- Add new
XR_ERROR_RUNTIME_UNAVAILABLE
error code, add
XR_ERROR_RUNTIME_UNAVAILABLE
as a supported error code toxrCreateInstance
andxrEnumerateInstanceProperties
, and removeXR_ERROR_INSTANCE_LOST
as a
supported error code fromxrCreateInstance
.
(internal MR 2024,
internal issue 1552,
OpenXR-SDK-Source/#177) - Add
XR_EXT_hand_joint_motion_range
multi-vendor extension.
(internal MR 1995) - Add
XR_FB_swapchain_update_state
vendor extension.
(internal MR 1997) - Fix missing
XR_ERROR_INSTANCE_LOST
return codes for extension functions in
XR_EXT_performance_settings
,XR_EXT_debug_utils
,
XR_EXT_conformance_automation
, andXR_EXT_thermal_query
.
(internal MR 2023,
OpenXR-Docs/#10,
internal issue 1256) - Reserve extension 166 for working group use.
(internal MR 2025)
- Add new
- SDK
- Loader: Change runtime part to return
XR_ERROR_RUNTIME_UNAVAILABLE
when
there is an error loading a runtime.
(internal MR 2024,
internal issue 1552,
OpenXR-SDK-Source/#177) - Loader: Simplify in areas where code paths were dead.
(internal MR 2024) - Loader: Improved locking around a few areas of the loader that aren't robust
against usual concurrent calls.
(OpenXR-SDK-Source/#252) - validation layer: Fix generated code when a protected extension contains a base
header type.
(internal MR 1997)
- Loader: Change runtime part to return
OpenXR SDK 1.0.15
nupkg signed by Ryan Pavlik, key fingerprint F029455EAB70F520FF4A03BD7F534CD56F00321E
See https://github.com/KhronosGroup/OpenXR-SDK-Source/releases/ for additional release artifacts.
OpenXR SDK 1.0.15 (2021-04-13)
The main SDK change in this release is that the OpenXR headers no longer
expose extension function prototypes because extension functions are not
exported by the loader. This should prevent some confusion during development
without affecting code that correctly compiles and links with older SDKs. Code
that was compiled but not linked (for instance, the automated tests of example
source in the specification) and that would not have successfully linked may
have their defects highlighted by this change, however. If you need those
prototypes still available, there is a preprocessor define that can re-enable
them. The function pointer definitions are always available.
In addition to that header change, this release contains three new vendor
extensions plus an assortment of SDK fixes.
- Registry
- Add
XR_VARJO_foveated_rendering
vendor extension.
(internal MR 1981) - Add
XR_VARJO_composition_layer_depth_test
vendor extension.
(internal MR 1998) - Add
XR_VARJO_environment_depth_estimation
vendor extension.
(internal MR 1998) - Add
uint16_t
toopenxr_platform_defines
(and associated scripts) so it may
be used easily by extensions.
(internal MR 2017) - Reserve extension 149 for working group use.
(internal MR 1999) - Reserve extension numbers 150 to 155 for ULTRALEAP extensions
(internal MR 2006) - Reserve extension numbers 156-165 for Facebook.
(internal MR 2018)
- Add
- SDK
- Hide prototypes for extension functions unless explicitly requested by defining
XR_EXTENSION_PROTOTYPES
. These functions are not exported from the loader, so
having their prototypes available is confusing and leads to link errors, etc.
(OpenXR-SDK-Source/#251,
OpenXR-SDK-Source/#174,
internal issue 1554,
internal issue 1338) - Also list API layers in list tool.
(internal MR 1991) - Ensure we expose the OpenXR headers in the build-time interface of the loader,
as well as the install-time interface, for use with FetchContent.cmake.
(OpenXR-SDK-Source/#242,
OpenXR-SDK-Source/#195,
internal issue 1409) - Improve
BUILDING.md
, including adding details on how to specify architecture
for VS2019.
(OpenXR-SDK-Source/#245,
OpenXR-SDK-Source/#253) - Loader: Fix loader failing to load on Windows 7 due to
pathcch
dependency.
(OpenXR-SDK-Source/#239,
OpenXR-SDK-Source/#214,
internal issue 1471,
OpenXR-SDK-Source/#236,
internal issue 1519) - Loader: Fix conflicting filename in
openxr_loader.def
causing a linker warning
when building debug for Windows.
(OpenXR-SDK-Source/#246) - Update
cgenerator.py
to generate header comments inopenxr.h
to show when a
struct extends another struct
(internal MR 2005) - hello_xr: Check for
shaderStorageImageMultisample
feature in Vulkan plugin
before using it.
(OpenXR-SDK-Source/#234,
OpenXR-SDK-Source/#233,
internal issue 1518) - hello_xr: Make sure
common.h
includes the reflection header that it uses.
(OpenXR-SDK-Source/#247) - layers: Revise documentation, re-formatting and updating to refer to real
functions and URLs.
(internal MR 2012) - loader: Check the instance handle passed to
xrGetInstanceProcAddr
.
(internal MR 1980) - loader: Fix building OpenXR-SDK with CMake's multi-config Ninja generator.
(OpenXR-SDK-Source/#249,
OpenXR-SDK-Source/#231) openxr_reflection.h
: Make reproducible/deterministic by sorting protection
defines in the script.
(internal MR 1993,
internal issue 1424)- xr_dependencies (shared utility): Include
unknwn.h
on Windows, even without
D3D enabled.
(OpenXR-SDK-Source/#250,
OpenXR-SDK-Source/#237)
- Hide prototypes for extension functions unless explicitly requested by defining
OpenXR SDK 1.0.14
Windows binaries and NuGet package of the loader are attached. Zip/nupkg file is signed by Ryan Pavlik, key fingerprint F029455EAB70F520FF4A03BD7F534CD56F00321E
Note that this release now comes with some new/added files in the zip:
- Binaries and associated manifests for the two API layers in the OpenXR-SDK-Source repo.
Additionally, future releases will have the large zipped binaries on the https://github.com/KhronosGroup/OpenXR-SDK-Source repo instead of here, since more of the build products are now packaged.
OpenXR SDK 1.0.14 (2021-01-27)
This release contains a collection of fixes and improvements, including one new
vendor extension. Notably, we have relicensed all files that become part of the
loader, so the loader may be "Apache-2.0 OR MIT" for downstream license
compatibility.
- Registry
- Add new
XR_FB_android_surface_swapchain_create
vendor extension.
(internal MR 1939,
internal issue 1493,
internal MR 1968) - Add missing
optional
attributes toXR_KHR_vulkan_enable2
structs. Fixes
validation layer.
(OpenXR-Docs/#72) - Correction to
locationFlags
field inXrHandJointLocationEXT
to be optional.
(internal MR 1945) - Reserve vendor extensions for Varjo.
(internal MR 1935) - Reserve vendor extensions for Magic Leap.
(internal MR 1967,
internal MR 1970) - Reserve extension number 143 to 148 for MSFT extensions.
(internal MR 1969) - Update Magic Leap ID and contact information.
(internal MR 1967)
- Add new
- SDK
- Add
./
to the start of the library name in API layer manifests on Windows, so
they are treated as a relative path.
(internal MR 1975) - Fix searching for prerequisites in generated CMake config files.
(internal MR 1963) - Start shipping the OpenXR API layers with the release artifacts.
(internal MR 1975) - cmake: Debug library uses d suffix on Windows. CMake
OPENXR_DEBUG_POSTFIX
variable can be set to something else to change it.
(OpenXR-SDK-Source/#229) - hello_xr: Remove redundant call to
xrInitializeLoaderKHR
.
(internal MR 1933) - hello_xr: Return supported sample count as 1 for GLES, GL and D3D11.
(internal MR 1962) - hello_xr: Use
android.app.NativeActivity
correctly in place of NativeActivity
subclass.
(internal MR 1976) - hello_xr: On Vulkan, explicitly add surface extensions for mirror window.
(OpenXR-SDK-Source/#230,
internal MR 1934) - loader: Relicense all files that become part of the loader, so the loader may
be "Apache-2.0 OR MIT" for downstream license compatibility.
(internal MR 1937,
internal issue 1449,
OpenXR-SDK-Source/#205) - loader: Protect against the application overriding loader symbols.
(internal MR 1961) - loader: Handle JSON files in the search path that are not objects.
(internal MR 1979)
- Add
OpenXR 1.0.13
Windows binaries and NuGet package of the loader are attached. Zip/nupkg file is signed by Ryan Pavlik, key fingerprint F029455EAB70F520FF4A03BD7F534CD56F00321E
Note that this release now comes with some new/added files in the zip:
- CMake config files for several Windows-based platforms: just point
OpenXR_DIR
to the directory you extracted this to (containing OpenXRConfig.cmake) - PDB files for all provided loader binaries
- Executable binaries of hello_xr.exe (the sample app, source is in OpenXR-SDK-Source ) and
openxr_runtime_list.exe
(which lists runtime details and extensions)