Skip to content

Commit d4a7f50

Browse files
committed
OpenXR Specification 1.1.52 (2025-09-19)
This release adds a new ratified Khronos extension, which defines a new interaction profile intended for fallback use. It also announces the ratification of several existing EXT extensions, fixes issues in the XML registry, adds a new vendor extension, and modifies a recent vendor extension. - Specification - New ratified Khronos extension specification: XR_KHR_generic_controller providing a featureful fallback interaction profile that maps easily (and in defined ways) to popular controllers. (internal MR 3018) - New vendor extension specification: XR_META_spatial_entity_discovery providing for vendor-specific spatial entity retrieval in large areas. (internal MR 2880, internal MR 4001) - Change: Revert XrTrackablePlaneANDROID::vertexCountOutput to a pointer, add note explaining that it does not match convention, and increment extension version number. (internal MR 3998) - Fix: Update XR_EXT_hand_interaction extension version to 2 for clarity, corresponding to adding XML for missing grip_surface paths for “/interaction_profiles/ext/hand_interaction_ext” in xr.xml. (internal MR 3963) - Registry - New ratified Khronos extension: XR_KHR_generic_controller (internal MR 3018) - Update: Ratified XR_EXT_debug_utils (internal MR 3899) - Update: Ratified XR_EXT_render_model (internal MR 3900) - Update: Ratified XR_EXT_interaction_render_model (internal MR 3901) - New vendor extension: XR_META_spatial_entity_discovery. (internal MR 2880, internal MR 4001) - Change: Revert XrTrackablePlaneANDROID::vertexCountOutput to a pointer, and increment extension version number. (internal MR 3998) - Chore: Reserve numbers for extensions. (internal MR 4004) - Fix: Add XML for missing grip_surface paths for “/interaction_profiles/ext/hand_interaction_ext”. Note that these paths were already listed in the spec prose. Update XR_EXT_hand_interaction extension version to 2 for clarity. (internal MR 3963) - Fix: Mark a few structure members that are bitmasks as optional, to match prose and/or usage intent. (internal MR 3973) - Fix: Mark XrCompositionLayerPassthroughFB.space as optional to match spec prose. (internal MR 3973) - Fix: Add XML for missing palm_ext/pose and grip_surface/pose paths for “/interaction_profiles/logitech/mx_ink_stylus_logitech”. Note that these paths were already listed in the spec prose. (internal MR 3996) GitOrigin-RevId: eb32eb01dc51e194ed0e4d2626a5cd8b78cb2c9b
1 parent 6bb429d commit d4a7f50

10 files changed

Lines changed: 984 additions & 67 deletions

File tree

‎CHANGELOG.Docs.md‎

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,63 @@ any public pull requests that have been accepted.
1717
This changelog only lists changes that affect the registry,
1818
headers, and/or specification text.
1919

20+
## OpenXR Specification 1.1.52 (2025-09-19)
21+
22+
This release adds a new ratified Khronos extension, which defines a new
23+
interaction profile intended for fallback use. It also announces the
24+
ratification of several existing EXT extensions, fixes issues in the XML
25+
registry, adds a new vendor extension, and modifies a recent vendor extension.
26+
27+
- Specification
28+
- New ratified Khronos extension specification: `XR_KHR_generic_controller` providing a
29+
featureful fallback interaction profile that maps easily (and in defined ways)
30+
to popular controllers.
31+
([internal MR 3018](https://gitlab.khronos.org/openxr/openxr/merge_requests/3018))
32+
- New vendor extension specification: `XR_META_spatial_entity_discovery`
33+
providing for vendor-specific spatial entity retrieval in large areas.
34+
([internal MR 2880](https://gitlab.khronos.org/openxr/openxr/merge_requests/2880),
35+
[internal MR 4001](https://gitlab.khronos.org/openxr/openxr/merge_requests/4001))
36+
- Change: Revert `XrTrackablePlaneANDROID::vertexCountOutput` to a pointer, add
37+
note explaining that it does not match convention, and increment extension
38+
version number.
39+
([internal MR 3998](https://gitlab.khronos.org/openxr/openxr/merge_requests/3998))
40+
- Fix: Update `XR_EXT_hand_interaction` extension version to `2` for clarity,
41+
corresponding to adding XML for missing `grip_surface` paths for
42+
"/interaction_profiles/ext/hand_interaction_ext" in `xr.xml`.
43+
([internal MR 3963](https://gitlab.khronos.org/openxr/openxr/merge_requests/3963))
44+
- Registry
45+
- New ratified Khronos extension: `XR_KHR_generic_controller`
46+
([internal MR 3018](https://gitlab.khronos.org/openxr/openxr/merge_requests/3018))
47+
- Update: Ratified `XR_EXT_debug_utils`
48+
([internal MR 3899](https://gitlab.khronos.org/openxr/openxr/merge_requests/3899))
49+
- Update: Ratified `XR_EXT_render_model`
50+
([internal MR 3900](https://gitlab.khronos.org/openxr/openxr/merge_requests/3900))
51+
- Update: Ratified `XR_EXT_interaction_render_model`
52+
([internal MR 3901](https://gitlab.khronos.org/openxr/openxr/merge_requests/3901))
53+
- New vendor extension: `XR_META_spatial_entity_discovery`.
54+
([internal MR 2880](https://gitlab.khronos.org/openxr/openxr/merge_requests/2880),
55+
[internal MR 4001](https://gitlab.khronos.org/openxr/openxr/merge_requests/4001))
56+
- Change: Revert `XrTrackablePlaneANDROID::vertexCountOutput` to a pointer, and
57+
increment extension version number.
58+
([internal MR 3998](https://gitlab.khronos.org/openxr/openxr/merge_requests/3998))
59+
- Chore: Reserve numbers for extensions.
60+
([internal MR 4004](https://gitlab.khronos.org/openxr/openxr/merge_requests/4004))
61+
- Fix: Add XML for missing `grip_surface` paths for
62+
"/interaction_profiles/ext/hand_interaction_ext". Note that these paths were
63+
already listed in the spec prose. Update `XR_EXT_hand_interaction` extension
64+
version to `2` for clarity.
65+
([internal MR 3963](https://gitlab.khronos.org/openxr/openxr/merge_requests/3963))
66+
- Fix: Mark a few structure members that are bitmasks as optional, to match prose
67+
and/or usage intent.
68+
([internal MR 3973](https://gitlab.khronos.org/openxr/openxr/merge_requests/3973))
69+
- Fix: Mark `XrCompositionLayerPassthroughFB.space` as optional to match spec
70+
prose.
71+
([internal MR 3973](https://gitlab.khronos.org/openxr/openxr/merge_requests/3973))
72+
- Fix: Add XML for missing `palm_ext/pose` and `grip_surface/pose` paths for
73+
"/interaction_profiles/logitech/mx_ink_stylus_logitech". Note that these paths
74+
were already listed in the spec prose.
75+
([internal MR 3996](https://gitlab.khronos.org/openxr/openxr/merge_requests/3996))
76+
2077
## OpenXR Specification 1.1.51 (2025-08-28)
2178

2279
This release primarily features some specification clarifications and fixes to

‎specification/Makefile‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ endif
3939
VERSIONS := XR_VERSION_1_0 XR_VERSION_1_1 XR_LOADER_VERSION_1_0
4040
VERSIONOPTIONS := $(foreach version,$(VERSIONS),-feature $(version))
4141

42-
SPECREVISION = 1.1.51
42+
SPECREVISION = 1.1.52
4343
REVISION_COMPONENTS = $(subst ., ,$(SPECREVISION))
4444
MAJORMINORVER = $(word 1,$(REVISION_COMPONENTS)).$(word 2,$(REVISION_COMPONENTS))
4545

‎specification/current_version.ini‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@
1010
# Similarly, update specification/scripts/extensionmetadocgenerator.py as well.
1111
MAJOR=1
1212
MINOR=1
13-
PATCH=51
13+
PATCH=52

‎specification/registry/registry.sch‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -784,7 +784,8 @@
784784
<sch:assert test="type/text() = 'uint32_t'">
785785
<sch:value-of select="$type_name" /> two call idiom struct: The <sch:value-of select="$member_name" /> member must be uint32_t.
786786
sch:assert>
787-
<sch:assert test="not(ends-with(normalize-space(current()/text()[preceding-sibling::type][1]), '*'))">
787+
<sch:let name="is_exception" value="$type_name = ('XrTrackablePlaneANDROID')"/>
788+
<sch:assert test="$is_exception or not(ends-with(normalize-space(current()/text()[preceding-sibling::type][1]), '*'))">
788789
<sch:value-of select="$type_name" /> two call idiom struct: The <sch:value-of select="$member_name" /> member must not be a pointer.
789790
sch:assert>
790791

@@ -933,7 +934,7 @@
933934
<sch:pattern name="Interaction Profile Component naming">
934935
935936
936-
<sch:let name="standard-identifiers" value="'^(a|b|back|aim|dpad_down|dpad_up|dpad_left|dpad_right|grip|grip_surface|haptic|haptic_left|haptic_right|haptic_left_trigger|haptic_right_trigger|home|menu|mute_mic|palm|select|shoulder|shoulder_left|shoulder_right|squeeze|system|thumbrest|thumbstick|thumbstick_left|thumbstick_right|trackpad|trigger|trigger_left|trigger_right|view|volume_up|volume_down|x|y|stylus|thumb_resting_surfaces|trigger_curl|trigger_slide|haptic_trigger|haptic_thumb)$'"/>
937+
<sch:let name="standard-identifiers" value="'^(a|b|back|aim|dpad_down|dpad_up|dpad_left|dpad_right|grip|grip_surface|haptic|haptic_left|haptic_right|haptic_left_trigger|haptic_right_trigger|home|menu|mute_mic|palm|select|shoulder|shoulder_left|shoulder_right|squeeze|system|thumbrest|thumbstick|thumbstick_left|thumbstick_right|trackpad|trigger|trigger_left|trigger_right|view|volume_up|volume_down|x|y|stylus|thumb_resting_surfaces|trigger_curl|trigger_slide|haptic_trigger|haptic_thumb|primary|secondary)$'"/>
937938
938939
939940

0 commit comments

Comments
 (0)