Releases: KhronosGroup/OpenXR-CTS
OpenXR CTS 1.1.57.0
OpenXR CTS 1.1.57.0 (2026-02-26)
Status
- Approved by the Working Group 26-February-2026
- Not yet subject to a withdrawal vote.
Assets
There are (or will be) Windows and Android binaries attached to this release. While use of them is recommended for maximum compatibility, it is not required; you may follow the "porting process" in the conformance process document.
See the attached Usage guide, in PDF or HTML format, for information on running the tests.
Changes
- Conformance Tests
- Change: Update conformance layer generation to properly support extending
allowable return codes from extensions.
(internal MR 4009,
internal issue 2494) - Fix: Always verify depth format before using it.
(internal MR 4135,
internal MR 4096) - Improvement: Deduplicate code in internal "gfxwrapper" library used in the CTS
(among other uses) for OpenGL/OpenGL ES. Add an explicit always-EGL path.
(internal MR 2942,
internal issue 1911) - Improvement: Update Catch2 test library from 3.7.1 to 3.11.0, making minor test
changes as required.
(internal MR 4006,
internal issue 2108,
internal MR 4146,
internal issue 2659,
internal MR 4152) - Improvement: Update tiny-gltf library from 2.9.3 to 2.9.6.
(internal MR 4007,
internal issue 2108) - Improvement: Update basis_universal library from 1.16.4 to 1.50.0.
(internal MR 4008,
internal issue 2108) - Improvement: Code cleanup for performance improvement.
(internal MR 4123) - Improvement: Add example of specifying multiple interaction profiles for
interactive actions tests to the usage document.
(internal MR 4138,
internal MR 4127) - New test: Add validation that
XR_REFERENCE_SPACE_TYPE_VIEWmatches views
returned fromxrLocateViews.
(internal MR 4041)
- Change: Update conformance layer generation to properly support extending
OpenXR CTS 1.1.54.0
OpenXR CTS 1.1.54.0 (2025-12-18)
Status
- Approved by the Working Group 18-December-2025
- Will be withdrawn 2026-08-25, 180 days after the publication of the subsequent approved release, 1.1.57.0.
Assets
There are (or will be) Windows and Android binaries attached to this release. While use of them is recommended for maximum compatibility, it is not required; you may follow the "porting process" in the conformance process document.
See the attached Usage guide, in PDF or HTML format, for information on running the tests.
Changes
- Conformance Tests
- Change: Update C++ standard version used from C++14 to C++17.
(internal MR 4096) - Fix: Use correct buffer size constant for
xrStructureTypeToString2KHRtest.
(internal MR 4093) - Fix: Alpha channel values are to be propagated unchanged, not affected by
conversion between linear and non-linear sRGB representation
(internal MR 4109) - Fix: Remove leading newline from generated include file for shader.
(internal MR 4127) - Improvement:
XR_EXT_spatial_marker_tracking: If QR code has string data,
check that the string ends with a null terminator.
(internal MR 3913) - Improvement:
XR_EXT_spatial_marker_tracking: Replace "REQUIRE" with "CHECK"
for marker component data because we can still continue to render the markers
and test the bounded2D component even if the marker component data is invalid.
(internal MR 3913) - Improvement:
XR_EXT_spatial_marker_tracking: Create "update snapshot" for
discovered markers so that we render them at their latest pose.
(internal MR 3913) - Improvement: Add checks for
XrEventDataSessionStateChanged::time.
(internal MR 4048) - Improvement: Add additional test instructions for
XR_EXT_hand_tracking
interactive test.
(internal MR 4073) - Improvement: Add additional test instructions for
XR_EXT_spatial_anchor
interactive test.
(internal MR 4074) - Improvement: Force all tests to be printed in test XML.
(internal MR 4103) - Improvement: Fix
-Wmissing-prototypescompiler warnings.
(internal MR 4107) - Improvement: Fix
-Wdeprecated-literal-operatorwarnings in CTS.
(internal MR 4108) - New test: Verify the presence of
VK_KHR_image_format_listin the Vulkan
device extension list whenXR_KHR_vulkan_swapchain_format_listis enabled if
XR_KHR_vulkan_enable2is also enabled inXrApiLayer_runtime_conformance.
(internal MR 3781)
- Change: Update C++ standard version used from C++14 to C++17.
OpenXR CTS 1.1.53.0
OpenXR CTS 1.1.53.0 (2025-11-06)
Status
- Approved by the Working Group 06-November-2025
- Will be withdrawn 2026-06-16, 180 days after the publication of the subsequent approved release, 1.1.54.0.
Assets
There are (or will be) Windows and Android binaries attached to this release. While use of them is recommended for maximum compatibility, it is not required; you may follow the "porting process" in the conformance process document.
See the attached Usage guide, in PDF or HTML format, for information on running the tests.
Changes
- Conformance Tests
- Fix: Change conformance_layer debug utils callback return value to XR_FALSE to
match specification requirements.
(internal MR 4032) - Fix: Allow default Metal device to be created when
xrGetMetalGraphicsRequirementsKHRhas not been called, to test the error case
similar to other graphics plugins.
(internal MR 4039) - Fix: Skip "XR_FB_space_warp" test when no suitable swapchain format is
available.
(internal MR 4040) - Fix: Correctly define
XR_EXT_dpad_bindingpaths for
/interaction_profiles/bytedance/pico_ultra_controller_bd in XML, affecting
generated tests.
(internal MR 4049) - Fix: Copy vulkan layer json with conformance_cli.
(internal MR 4062) - Improvement: Clean up handle state creation and usage in the CTS layer, passing
handle state to hook implementations to reduce repeated mutex locking.
(internal MR 3809,
OpenXR-CTS PR 101,
internal MR 3808,
OpenXR-CTS PR 108) - Improvement: Handle graphics plugin
ShutdownDevice()calls in most cases with
a scope guard.
(internal MR 3941) - Improvement: Warn if the runtime does not support any commonly used depth
formats for swapchain creation.
(internal MR 3980,
internal issue 2111) - Improvement: Add self test for CTS, using the "do-nothing" test_runtime.
(internal MR 3989) - Improvement: Set Visual Studio working directory for
conformance_cli
(internal MR 4059)
- Fix: Change conformance_layer debug utils callback return value to XR_FALSE to
OpenXR CTS 1.1.52.0
OpenXR CTS 1.1.52.0 (2025-10-16)
Status
- Approved by the Working Group 16-October-2025
- Will be withdrawn 2026-05-09, 180 days after the publication of the subsequent approved release, 1.1.53.0
Assets
There are (or will be) Windows and Android binaries attached to this release. While use of them is recommended for maximum compatibility, it is not required; you may follow the "porting process" in the conformance process document.
See the attached Usage guide, in PDF or HTML format, for information on running the tests.
Changes
- Conformance Tests
- Fix: Rename
VK_LAYER_OPENXR_xr_runtime_conformancedisable_environmentname
to match layer.
(internal MR 3987) - Fix: Mark spatial entity tests which require tracking as "interactive".
(internal MR 3997) - Improvement: add a way to fail most tests that ask for human judgement to pass.
(internal MR 3853,
internal issue 2262) - Improvement: align the interaction method for most interactive tests. (Select
to pass, Menu to show help or do other action, Menu+Select to fail.) This means
that the instructions to pass have changed for the following tests:
"GripAndAimPose", "HapticInterrupt", "XR_EXT_palm_pose", "GripSurface-
XR_KHR_maintenance1", "GripSurface", and "XR_MSFT_controller_model-interactive"
(internal MR 3853,
internal issue 2262) - Improvement: enable clang-tidy bugprone-use-after-move check after fixing
issues discovered.
(internal MR 3891,
internal MR 4031) - Improvement: General improvements to reliability in the Vulkan API layer
embedded inXrApiLayer_runtime_conformance.
(internal MR 3939) - Improvement: Add stricter compiler flags.
(internal MR 4028) - New test:
XR_KHR_generic_controllertest of selection rule.
(internal MR 3288,
internal issue 2220,
internal MR 3018,
internal MR 4019)
- Fix: Rename
OpenXR CTS 1.1.51.0
OpenXR CTS 1.1.51.0 (2025-09-04)
Status
- Approved by the Working Group 04-September-2025
- Will be withdrawn 2026-04-14, 180 days after the publication of the subsequent approved release, 1.1.52.0.
Assets
There are (or will be) Windows and Android binaries attached to this release. While use of them is recommended for maximum compatibility, it is not required; you may follow the "porting process" in the conformance process document.
See the attached Usage guide, in PDF or HTML format, for information on running the tests.
Changes
- Conformance Tests
- Fix: Thread-safe unrecognized structure type mechanisms, and clarify names of
sections testing correct handling of unrecognized types.
(internal MR 3865) - Fix: Extension number calculation in
xrResultToString,
xrStructureTypeToString, andKHR_extended_struct_name_lengthtests.
(internal MR 3946,
internal issue 2544) - Fix: Move version directive to the first line of the OpenGL ES shaders. Similar
to PR 310 on OpenXR-SDK-Source.
(internal MR 3950) - Fix: Add explicit linker visibility for symbols in
XrApiLayer_conformance_layer.
(internal MR 3958) - Fix: Crash when skipping some tests due to missing view configuration type.
(internal MR 3988) - Fix: Warning from conformance layer when using
XR_MND_headlessand testing
it.
(OpenXR-CTS PR 110) - Improvement: Enable clang-tidy bugprone-casting-through-void check.
(internal MR 3865) - Improvement: Add clang-tidy exclusions for clang-tidy-20.
(internal MR 3906) - Improvement: Track custom session state on swapchains created via
xrCreateSwapchainAndroidSurfaceKHR()
(internal MR 3934,
internal issue 2572) - Improvement: Make it easier to track down failures in the "graphicsBindings"
test that enables all graphics bindings extensions.
(internal MR 3940) - New test: Validate that action bind state matches when suggesting a binding for
both a.../clickor.../valuepath and its parent (checking component
inference rules).
(internal MR 3702,
internal issue 1569,
internal MR 3962) - New test: Validate that action values match and that coercion rules are
followed when suggesting a binding for both a.../clickor.../valuepath
and its parent (checking component inference rules).
(internal MR 3702,
internal issue 1569,
internal MR 3962) - New test: Require
XR_SESSION_NOT_FOCUSEDfor haptics functions when minimum
version 1.1.
(internal MR 3902) - New test: Add tests for
XR_KHR_maintenance1grip_surfacesupport.
(internal MR 3938) - New test: interactive tests for
XR_FB_composition_layer_image_layout
(OpenXR-CTS PR 111,
internal issue 2591,
OpenXR-CTS PR 115,
internal MR 3969,
internal MR 3974)
- Fix: Thread-safe unrecognized structure type mechanisms, and clarify names of
OpenXR CTS 1.1.50.0
OpenXR CTS 1.1.50.0 (2025-08-14)
Status
- Approved by the Working Group 14-August-2025
- Will be withdrawn 2026-03-03, 180 days after the publication of the subsequent approved release, 1.1.51.0.
Assets
There are (or will be) Windows and Android binaries attached to this release. While use of them is recommended for maximum compatibility, it is not required; you may follow the "porting process" in the conformance process document.
See the attached Usage guide, in PDF or HTML format, for information on running the tests.
Changes
- Conformance Tests
- Fix: Crash in conformance layer when exiting the
"XR_KHR_android_surface_swapchain-interactive" test.
(internal MR 3910) - Fix: AlphaBlend mode in
EXT_spatial_entitytests was not respected.
(internal MR 3911) - Improvement: Add support for sanitizers in CMake with sanitizers-cmake project.
(internal MR 3716) - Improvement: Add Vulkan API layer interface and
VulkanGraphicsValidatorto
XrApiLayer_runtime_conformance, to allow correlating OpenXR and Vulkan API
state.
(internal MR 3760,
internal MR 3829,
internal MR 3912,
internal MR 3920,
internal MR 3930,
internal MR 3933,
internal MR 3917) - Improvement: add
.clang-tidyfile.
(internal MR 3802) - Improvement: Enable the clang-tidy cert-dcl16-c, bugprone-too-small-loop-
variable, and bugprone-switch-missing-default-case checks, making fixes
required to satisfy them.
(internal MR 3882,
internal MR 3893,
internal MR 3905) - Improvement: Disable the clang-tidy bugprone-reserved-identifier, cert-dcl37-c,
and cert-dcl51-cpp checks.
(internal MR 3882,
internal MR 3893,
internal MR 3905) - New test: Verify the runtime implementation
VkQueueaccess against the
specification inXrApiLayer_runtime_conformancethrough the
VulkanGraphicsValidator.
(internal MR 3760,
internal MR 3829,
internal MR 3912,
internal MR 3920,
internal MR 3930,
internal MR 3933,
internal MR 3917) - New test: Try submitting zero layers in both unknown session state and visible
session state.
(internal MR 3833,
internal issue 2296)
- Fix: Crash in conformance layer when exiting the
OpenXR CTS 1.1.49.0
OpenXR CTS 1.1.49.0 (2025-07-03)
Status
- Approved by the Working Group 03-July-2025
- Will be withdrawn 2026-02-11, 180 days after the publication of the subsequent approved release, 1.1.50.0.
Assets
There are (or will be) Windows and Android binaries attached to this release. While use of them is recommended for maximum compatibility, it is not required; you may follow the "porting process" in the conformance process document.
See the attached Usage guide, in PDF or HTML format, for information on running the tests.
Changes
- Conformance Tests
- Fix: Skip unsupported graphics tests with headless; and similarly skip tracking
tests for untracked systems.
(internal MR 3844) - Fix: Remove redundant device on/off sections in
StateQueryFunctionsInteractive.
(internal MR 3854,
internal issue 2277) - Improvement: Conformance utilities for writing tests for extensions based on
XR_EXT_render_model.
(internal MR 2464,
internal MR 3314) - Improvement: Conformance utilities for the
XR_EXT_spatial_*set of
extensions.
(internal MR 3030) - Improvement: Add timeout to
XR_EXT_hand_tracking-interactive.
(internal MR 3804,
internal issue 2418) - Improvement: Clean up frame iterator helper to improve ease of troubleshooting
conformance failures.
(internal MR 3821,
OpenXR-CTS PR 109) - Improvement: Fix some clang-tidy warnings and errors.
(internal MR 3886) - New test: Add test for
XR_EXT_render_model.
(internal MR 2464,
internal MR 3314) - New test: Add test for
XR_EXT_interaction_render_model.
(internal MR 2615,
internal MR 3240,
internal MR 3291,
internal MR 3870,
internal MR 3869,
internal MR 3881,
internal MR 3889,
internal MR 3895) - New test: Add test for
XR_EXT_spatial_anchor.
(internal MR 3286,
internal MR 3881,
internal MR 3887) - New test: Add test for
XR_EXT_spatial_plane_tracking.
(internal MR 3402,
internal MR 3881,
internal MR 3887) - New test: Add test for
XR_EXT_spatial_marker_tracking.
(internal MR 3414,
internal MR 3881,
internal MR 3887) - New test: Add test for
XR_EXT_spatial_persistence.
(internal MR 3533,
internal MR 3873,
internal MR 3887) - New test: Add test for
XR_EXT_spatial_persistence_operations.
(internal MR 3873)
- Fix: Skip unsupported graphics tests with headless; and similarly skip tracking
OpenXR CTS 1.1.48.0
OpenXR CTS 1.1.48.0 (2025-06-12)
Status
- Approved by the Working Group 12-June-2025
- Will be withdrawn 2026-01-03, 180 days after the publication of the subsequent approved release, 1.1.49.0.
Assets
There are (or will be) Windows and Android binaries attached to this release. While use of them is recommended for maximum compatibility, it is not required; you may follow the "porting process" in the conformance process document.
See the attached Usage guide, in PDF or HTML format, for information on running the tests.
Changes
- Conformance Tests
- Fix: Incorrect use of
xrReleaseSwapchainImageinconformance_utils
(internal MR 3753,
internal issue 2439) - Fix: Copy conformance assets to install destination (regression).
(internal MR 3818) - Fix: Reduce display test title length to avoid developer warnings.
(internal MR 3824) - Fix: CTS usage doc typo of the
[no_auto]test case tag.
(internal MR 3830) - Fix: CTS usage leftover mention of testing over the product of API versions and
other factors.
(internal MR 3830) - Fix: Update
test_xrStructureTypeToString.cppto support longer struct names.
(internal MR 3863) - Fix: Avoid using
glCheckNamedFramebufferStatusin OpenGL plugin for
compatibility.
(internal MR 3878) - Fix: Revise how OpenGL compatibility is detected in the build system on
Windows.
(internal MR 3883) - Improvement: Adjust how CMake enables support for
XR_KHR_convert_timespec_time, enabling the corresponding tests on Android by
default.
(internal MR 3810) - Improvement: CTS usage doc now includes
--reporter consolein all non-Android
sample command lines to provide standard terminal progress output in addition
to the official submission XML.
(internal MR 3830) - Improvement: Minor code cleanup.
(internal MR 3835) - Improvement: Allow for unsupported and invalid return for test_actions invalid
paths.
(internal MR 3842) - Improvement: Fix multiple clang-format formatting issues.
(internal MR 3845) - New test: Add test for
XR_KHR_android_surface_swapchain.
(internal MR 3798)
- Fix: Incorrect use of
OpenXR CTS 1.1.47.0
OpenXR CTS 1.1.47.0 (2024-04-24)
Status
- Approved by the Working Group 24-April-2024
- Withdrawn 2025-12-10, 180 days after the publication of the subsequent approved release, 1.1.48.0.
Assets
There are (or will be) Windows and Android binaries attached to this release. While use of them is recommended for maximum compatibility, it is not required; you may follow the "porting process" in the conformance process document.
(Note that the Windows binary archives have been updated to correct an errata, as the additional assets were initially omitted.)
See the attached Usage guide, in PDF or HTML format, for information on running the tests.
Changes
- Conformance Tests
- Fix: Better handle multi-config CMake generators in CTS build system for
running from build tree.
(internal MR 2794,
internal issue 2431,
OpenXR-CTS PR 102) - Fix: Account for "depends" of extensions in generated dependencies for
automated availability tests
(internal MR 3675) - Fix: Do not clamp max layers in "MaxLayers-noninteractive" test as we test
submitting max+1 expecting failure. Always use exactly 4 swapchains to limit
resource usage instead.
(internal MR 3683,
internal issue 2435) - Fix: Changed interactive "MaxLayer" test to "MinLayer" test to more accurately
reflect specification constraints.
(internal MR 3726) - Fix: Changed the "MaxLayer-noninteractive" test to emit a warning when failing
to submitmaxLayerlayers, instead of an error.
(internal MR 3726) - Fix: Correctly honor availability of top-level /user paths in
"StateQueryFunctionsInteractive", given schema updates in spec 1.1.47 adding
such paths to existing profiles.
(internal MR 3783,
internal issue 2498) - Fix: Prevent recursive copying of assets by Gradle, avoiding ballooning APK
sizes between clean builds.
(internal MR 3786,
internal MR 3795,
internal issue 2440) - Fix: Update
vert.spvto correctly matchvert.glsl.
(internal MR 3787,
internal issue 2509) - Fix: Do not validate
XrEventDataReferenceSpaceChangePending::poseInPreviousSpace.orientationif
XrEventDataReferenceSpaceChangePending::poseValidis false.
(internal MR 3793) - Fix: Handling of
xrCreateSwapchainAndroidSurfaceKHRin generated layer code.
(OpenXR-CTS PR 99) - Improvement: Update Android target SDK version to 34 to eliminate Play Protect
warning on install, and verify runtime can handle applications built with
updated target SDK. (Minimum SDK remains 24.)
(internal MR 3719) - New test: Add test cases for
XrPosecontaining NaN.
(internal MR 3705,
internal MR 3714) - New test: Validate that the
XrFovfvalues returned fromxrLocateViewsare
valid, plus warn if left == right or up == down are equal (0 FOV in either
direction) as that is permitted but likely to lead to undefined behavior when
applications compute their projection matrix.
(internal MR 3708,
internal issue 2384)
- Fix: Better handle multi-config CMake generators in CTS build system for
OpenXR CTS 1.1.46.0
OpenXR CTS 1.1.46.0 (2025-03-20)
Status
- Approved by the Working Group 20-March-2025
- Withdrawal effective 2025-10-22, 180 days after the publication of the subsequent approved release, 1.1.47.0.
Assets
There are (or will be) Windows and Android binaries attached to this release. While use of them is recommended for maximum compatibility, it is not required; you may follow the "porting process" in the conformance process document.
See the attached Usage guide, in PDF or HTML format, for information on running the tests.
Changes
Note that this release substantially changes how tests are run: a separate full
test run is no longer needed for each of 1.0 and 1.1. See the usage document for
more information.
- Conformance Tests
- Fix: Fix glTF loading spinner using wrong pose, making the animation not
visible.
(internal MR 3648,
internal issue 2389) - Fix: D3D11 validation error about depth stencil view array size.
(internal MR 3691,
internal issue 2337) - Fix: Build error with Clang on some systems.
(internal MR 3704) - Fix: Mark the "MaxLayers" test as "[no_auto]".
(internal MR 3718) - Fix: Android Studio build of conformance APK
(internal MR 3736) - Fix: Add missed skips based on minApiVersion in tests that only run in 1.0.
(internal MR 3738) - Improvement: Refactored usage of Android logging to be more consistent.
(internal MR 2909) - Improvement: Split
XR_EXT_active_action_set_prioritytests from
xrSyncActionstests to have priorities tested enabled and disabled.
(internal MR 3505) - Improvement: Replace
--apiVersionargument with--minApiVersion, and
automatically use higher versions when available if required or if behaviour
may differ.
(internal MR 3576) - Improvement:
WARNwhen the runtime allows the application to create an
instance withXR_EXT_dpad_bindingbut withoutXR_KHR_binding_modification
(internal MR 3676) - Improvement: Clear and render all texture array indices in Swapchains test.
(internal MR 3691,
internal issue 2337) - Improvement: Recognize enabling
XR_MND_headlessin Android entry point and
skip appending graphics plugin.
(internal MR 3739) - Improvement: Change a runtime assert to a static assert.
(internal MR 3740)
- Fix: Fix glTF loading spinner using wrong pose, making the animation not