Skip to content

Commit 6d572b7

Browse files
committed
OpenXR SDK 1.0.24 (2022-06-23)
- Registry - Add new XR_EXT_palm_pose multi-vendor extension. (internal MR 2112) - Add new XR_FB_scene vendor extension. (internal MR 2237) - Fix structure definition in XR_FB_spatial_entity_container. (internal MR 2278) - scripts: Teach xr_conventions that 2D, 3D, etc. are words for the purposes of structure type enum generation. (internal MR 2237) - SDK - Loader: Fix filename and native lib dir sequence for log (OpenXR-SDK-Source PR 311) - Loader: Fix loader building with Gradle and add CI checking for loader building with Gradle (OpenXR-SDK-Source PR 312) - hello_xr: Pick background clear color based on the selected environment blend mode. (internal MR 2275) - hello_xr: Defer Vulkan CPU sync until the next frame begins. (OpenXR-SDK-Source PR 277) - hello_xr: Fix shader compile on Mali driver (OpenXR-SDK-Source PR 310) - scripts: Delegate generating structure types to the conventions object as done elsewhere in the repo. (internal MR 2237)
1 parent 2368c98 commit 6d572b7

20 files changed

+296
-129
lines changed

.appveyor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#
33
# SPDX-License-Identifier: Apache-2.0
44

5-
version: 1.0.23.{build}
5+
version: 1.0.24.{build}
66
image: Visual Studio 2017
77

88

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ local.properties
4545

4646
# Don't ignore these things
4747
!.*.license
48+
!.appveyor.yml
4849
!.azure-pipelines/
4950
!.azure-pipelines/nuget/NugetTemplate/build
5051
!.clang-format

CHANGELOG.SDK.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,35 @@ along with any public pull requests that have been accepted.
1919
In this repository in particular, since it is primarily software,
2020
pull requests may be integrated as they are accepted even between periodic updates.
2121

22+
## OpenXR SDK 1.0.24 (2022-06-23)
23+
24+
- Registry
25+
- Add new `XR_EXT_palm_pose` multi-vendor extension.
26+
([internal MR 2112](https://gitlab.khronos.org/openxr/openxr/merge_requests/2112))
27+
- Add new `XR_FB_scene` vendor extension.
28+
([internal MR 2237](https://gitlab.khronos.org/openxr/openxr/merge_requests/2237))
29+
- Fix structure definition in `XR_FB_spatial_entity_container`.
30+
([internal MR 2278](https://gitlab.khronos.org/openxr/openxr/merge_requests/2278))
31+
- scripts: Teach xr_conventions that 2D, 3D, etc. are words for the purposes of
32+
structure type enum generation.
33+
([internal MR 2237](https://gitlab.khronos.org/openxr/openxr/merge_requests/2237))
34+
- SDK
35+
- Loader: Fix filename and native lib dir sequence for log
36+
([OpenXR-SDK-Source PR 311](https://github.com/KhronosGroup/OpenXR-SDK-Source/pull/311))
37+
- Loader: Fix loader building with Gradle and add CI checking for loader building
38+
with Gradle
39+
([OpenXR-SDK-Source PR 312](https://github.com/KhronosGroup/OpenXR-SDK-Source/pull/312))
40+
- hello_xr: Pick background clear color based on the selected environment blend
41+
mode.
42+
([internal MR 2275](https://gitlab.khronos.org/openxr/openxr/merge_requests/2275))
43+
- hello_xr: Defer Vulkan CPU sync until the next frame begins.
44+
([OpenXR-SDK-Source PR 277](https://github.com/KhronosGroup/OpenXR-SDK-Source/pull/277))
45+
- hello_xr: Fix shader compile on Mali driver
46+
([OpenXR-SDK-Source PR 310](https://github.com/KhronosGroup/OpenXR-SDK-Source/pull/310))
47+
- scripts: Delegate generating structure types to the conventions object as done
48+
elsewhere in the repo.
49+
([internal MR 2237](https://gitlab.khronos.org/openxr/openxr/merge_requests/2237))
50+
2251
## OpenXR SDK 1.0.23 (2022-05-27)
2352

2453
This release primarily features a large number of new vendor and multi-vendor

changes/sdk/pr.277.gh.OpenXR-SDK-Source.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

changes/sdk/pr.310.gh.OpenXR-SDK-Source.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

changes/sdk/pr.311.gh.OpenXR-SDK-Source.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

changes/sdk/pr.312.gh.OpenXR-SDK-Source.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

specification/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ ifneq (,$(strip $(VERY_STRICT)))
4444
ASCIIDOC := $(ASCIIDOC) --failure-level WARN
4545
endif
4646

47-
SPECREVISION = 1.0.23
47+
SPECREVISION = 1.0.24
4848
REVISION_COMPONENTS = $(subst ., ,$(SPECREVISION))
4949
MAJORMINORVER = $(word 1,$(REVISION_COMPONENTS)).$(word 2,$(REVISION_COMPONENTS))
5050

specification/registry/xr.xml

Lines changed: 102 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
125125
updates them automatically by processing a line at a time.
126126
-->
127127
<type category="define">// OpenXR current version number.
128-
#define <name>XR_CURRENT_API_VERSION</name> <type>XR_MAKE_VERSION</type>(1, 0, 23)</type>
128+
#define <name>XR_CURRENT_API_VERSION</name> <type>XR_MAKE_VERSION</type>(1, 0, 24)</type>
129129

130130
<!--
131131
NOTE: For avoidance of ambiguity, there should only be 1 <name> tag immediately in
@@ -2105,10 +2105,49 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
21052105
<member values="XR_TYPE_SPACE_CONTAINER_FB"><type>XrStructureType</type> <name>type</name></member>
21062106
<member>const <type>void</type>* <name>next</name></member>
21072107
<member optional="true"><type>uint32_t</type> <name>uuidCapacityInput</name></member>
2108-
<member><type>uint32_t</type>* <name>uuidCountOutput</name></member>
2108+
<member optional="true"><type>uint32_t</type> <name>uuidCountOutput</name></member>
21092109
<member optional="true" len="uuidCapacityInput"><type>XrUuidEXT</type>* <name>uuids</name></member>
21102110
</type>
21112111

2112+
<!-- XR_FB_scene structs -->
2113+
<type category="struct" name="XrExtent3DfFB">
2114+
<member><type>float</type> <name>width</name></member>
2115+
<member><type>float</type> <name>height</name></member>
2116+
<member><type>float</type> <name>depth</name></member>
2117+
</type>
2118+
<type category="struct" name="XrOffset3DfFB">
2119+
<member><type>float</type> <name>x</name></member>
2120+
<member><type>float</type> <name>y</name></member>
2121+
<member><type>float</type> <name>z</name></member>
2122+
</type>
2123+
<type category="struct" name="XrRect3DfFB">
2124+
<member><type>XrOffset3DfFB</type> <name>offset</name></member>
2125+
<member><type>XrExtent3DfFB</type> <name>extent</name></member>
2126+
</type>
2127+
<type category="struct" name="XrSemanticLabelsFB">
2128+
<member values="XR_TYPE_SEMANTIC_LABELS_FB"><type>XrStructureType</type> <name>type</name></member>
2129+
<member>const <type>void</type>* <name>next</name></member>
2130+
<member optional="true"><type>uint32_t</type> <name>bufferCapacityInput</name></member>
2131+
<member optional="true"><type>uint32_t</type> <name>bufferCountOutput</name></member>
2132+
<member optional="true" len="bufferCapacityInput"><type>char</type>* <name>buffer</name></member>
2133+
</type>
2134+
<type category="struct" name="XrRoomLayoutFB">
2135+
<member values="XR_TYPE_ROOM_LAYOUT_FB"><type>XrStructureType</type> <name>type</name></member>
2136+
<member>const <type>void</type>* <name>next</name></member>
2137+
<member><type>XrUuidEXT</type> <name>floorUuid</name></member>
2138+
<member><type>XrUuidEXT</type> <name>ceilingUuid</name></member>
2139+
<member optional="true"><type>uint32_t</type> <name>wallUuidCapacityInput</name></member>
2140+
<member optional="true"><type>uint32_t</type> <name>wallUuidCountOutput</name></member>
2141+
<member optional="true" len="wallUuidCapacityInput"><type>XrUuidEXT</type>* <name>wallUuids</name></member>
2142+
</type>
2143+
<type category="struct" name="XrBoundary2DFB">
2144+
<member values="XR_TYPE_BOUNDARY_2D_FB"><type>XrStructureType</type> <name>type</name></member>
2145+
<member>const <type>void</type>* <name>next</name></member>
2146+
<member optional="true"><type>uint32_t</type> <name>vertexCapacityInput</name></member>
2147+
<member optional="true"><type>uint32_t</type> <name>vertexCountOutput</name></member>
2148+
<member optional="true" len="vertexCapacityInput"><type>XrVector2f</type>* <name>vertices</name></member>
2149+
</type>
2150+
21122151
<!-- XR_FB_keyboard_tracking structs -->
21132152
<type category="struct" name="XrSystemKeyboardTrackingPropertiesFB" structextends="XrSystemProperties">
21142153
<member values="XR_TYPE_SYSTEM_KEYBOARD_TRACKING_PROPERTIES_FB"><type>XrStructureType</type> <name>type</name></member>
@@ -2925,6 +2964,10 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
29252964
<enums name="XrSpaceComponentTypeFB" type="enum">
29262965
<enum value="0" name="XR_SPACE_COMPONENT_TYPE_LOCATABLE_FB" comment="Enables tracking the 6 DOF pose of the slink:XrSpace with flink:xrLocateSpace."/>
29272966
<enum value="1" name="XR_SPACE_COMPONENT_TYPE_STORABLE_FB" comment="Enables persistence operations: save and erase."/>
2967+
<enum value="3" name="XR_SPACE_COMPONENT_TYPE_BOUNDED_2D_FB" comment="Bounded 2D component."/>
2968+
<enum value="4" name="XR_SPACE_COMPONENT_TYPE_BOUNDED_3D_FB" comment="Bounded 3D component."/>
2969+
<enum value="5" name="XR_SPACE_COMPONENT_TYPE_SEMANTIC_LABELS_FB" comment="Semantic labels component."/>
2970+
<enum value="6" name="XR_SPACE_COMPONENT_TYPE_ROOM_LAYOUT_FB" comment="Room layout component."/>
29282971
<enum value="7" name="XR_SPACE_COMPONENT_TYPE_SPACE_CONTAINER_FB" comment="Space container component."/>
29292972
</enums>
29302973

@@ -4160,6 +4203,38 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
41604203
<param><type>XrSpaceContainerFB</type>* <name>spaceContainerOutput</name></param>
41614204
</command>
41624205

4206+
<!-- XR_FB_scene -->
4207+
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB,XR_ERROR_FEATURE_UNSUPPORTED">
4208+
<proto><type>XrResult</type> <name>xrGetSpaceBoundingBox2DFB</name></proto>
4209+
<param><type>XrSession</type> <name>session</name></param>
4210+
<param><type>XrSpace</type> <name>space</name></param>
4211+
<param><type>XrRect2Df</type>* <name>boundingBox2DOutput</name></param>
4212+
</command>
4213+
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB,XR_ERROR_FEATURE_UNSUPPORTED">
4214+
<proto><type>XrResult</type> <name>xrGetSpaceBoundingBox3DFB</name></proto>
4215+
<param><type>XrSession</type> <name>session</name></param>
4216+
<param><type>XrSpace</type> <name>space</name></param>
4217+
<param><type>XrRect3DfFB</type>* <name>boundingBox3DOutput</name></param>
4218+
</command>
4219+
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB,XR_ERROR_FEATURE_UNSUPPORTED">
4220+
<proto><type>XrResult</type> <name>xrGetSpaceSemanticLabelsFB</name></proto>
4221+
<param><type>XrSession</type> <name>session</name></param>
4222+
<param><type>XrSpace</type> <name>space</name></param>
4223+
<param><type>XrSemanticLabelsFB</type>* <name>semanticLabelsOutput</name></param>
4224+
</command>
4225+
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB,XR_ERROR_FEATURE_UNSUPPORTED">
4226+
<proto><type>XrResult</type> <name>xrGetSpaceBoundary2DFB</name></proto>
4227+
<param><type>XrSession</type> <name>session</name></param>
4228+
<param><type>XrSpace</type> <name>space</name></param>
4229+
<param><type>XrBoundary2DFB</type>* <name>boundary2DOutput</name></param>
4230+
</command>
4231+
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB,XR_ERROR_FEATURE_UNSUPPORTED">
4232+
<proto><type>XrResult</type> <name>xrGetSpaceRoomLayoutFB</name></proto>
4233+
<param><type>XrSession</type> <name>session</name></param>
4234+
<param><type>XrSpace</type> <name>space</name></param>
4235+
<param><type>XrRoomLayoutFB</type>* <name>roomLayoutOutput</name></param>
4236+
</command>
4237+
41634238
<!-- XR_FB_passthrough_keyboard_hands -->
41644239
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED">
41654240
<proto><type>XrResult</type> <name>xrPassthroughLayerSetKeyboardHandsIntensityFB</name></proto>
@@ -6372,17 +6447,35 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
63726447
</require>
63736448
</extension>
63746449

6375-
<extension name="XR_FB_extension_176" number="176" type="instance" supported="disabled">
6450+
<extension name="XR_FB_scene" number="176" type="instance" requires="XR_FB_spatial_entity" supported="openxr">
63766451
<require>
6377-
<enum value="1" name="XR_FB_extension_176_SPEC_VERSION"/>
6378-
<enum value="&quot;XR_FB_extension_176&quot;" name="XR_FB_extension_176_EXTENSION_NAME"/>
6452+
<enum value="1" name="XR_FB_scene_SPEC_VERSION"/>
6453+
<enum value="&quot;XR_FB_scene&quot;" name="XR_FB_SCENE_EXTENSION_NAME"/>
6454+
6455+
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SEMANTIC_LABELS_FB"/>
6456+
<enum offset="1" extends="XrStructureType" name="XR_TYPE_ROOM_LAYOUT_FB"/>
6457+
<enum offset="2" extends="XrStructureType" name="XR_TYPE_BOUNDARY_2D_FB"/>
6458+
6459+
<type name="XrExtent3DfFB"/>
6460+
<type name="XrOffset3DfFB"/>
6461+
<type name="XrRect3DfFB"/>
6462+
<type name="XrSemanticLabelsFB"/>
6463+
<type name="XrRoomLayoutFB"/>
6464+
<type name="XrBoundary2DFB"/>
6465+
6466+
<command name="xrGetSpaceBoundingBox2DFB"/>
6467+
<command name="xrGetSpaceBoundingBox3DFB"/>
6468+
<command name="xrGetSpaceSemanticLabelsFB"/>
6469+
<command name="xrGetSpaceBoundary2DFB"/>
6470+
<command name="xrGetSpaceRoomLayoutFB"/>
6471+
63796472
</require>
63806473
</extension>
63816474

6382-
<extension name="XR_UNITY_hand_model_pose" number="177" type="instance" supported="disabled">
6475+
<extension name="XR_EXT_palm_pose" number="177" type="instance" supported="openxr">
63836476
<require>
6384-
<enum value="1" name="XR_UNITY_hand_model_pose_SPEC_VERSION"/>
6385-
<enum value="&quot;XR_UNITY_hand_model_pose&quot;" name="XR_UNITY_HAND_MODEL_POSE_EXTENSION_NAME"/>
6477+
<enum value="2" name="XR_EXT_palm_pose_SPEC_VERSION"/>
6478+
<enum value="&quot;XR_EXT_palm_pose&quot;" name="XR_EXT_PALM_POSE_EXTENSION_NAME"/>
63866479
</require>
63876480
</extension>
63886481

@@ -6546,7 +6639,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
65466639

65476640
<extension name="XR_FB_spatial_entity_container" number="200" type="instance" requires="XR_FB_spatial_entity" supported="openxr">
65486641
<require>
6549-
<enum value="1" name="XR_FB_spatial_entity_container_SPEC_VERSION"/>
6642+
<enum value="2" name="XR_FB_spatial_entity_container_SPEC_VERSION"/>
65506643
<enum value="&quot;XR_FB_spatial_entity_container&quot;" name="XR_FB_SPATIAL_ENTITY_CONTAINER_EXTENSION_NAME"/>
65516644

65526645
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SPACE_CONTAINER_FB"/>

specification/scripts/xrconventions.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,27 @@
1717
# Note that while Vulkan is listed as a special case,
1818
# it doesn't actually break the rules, so it's not treated specially
1919
MAIN_RE = re.compile(
20-
r'(?P<d3d>D3D[0-9]*)|(?P<egl>EGL)|(?P<gl>OpenGL(ES)?)|(?P<word>([A-Z][a-z]+[a-z0-9]*)|([A-Z][A-Z0-9]+))')
20+
r'''(?P<d3d>D3D[0-9]*)| # Take D3D as a group of its own
21+
(?P<egl>EGL)| # EGL as a word of its own
22+
(?P<gl>OpenGL(ES)?)| # OpenGL and OpenGLES as words
23+
(?P<dimension>[0-9]D)| # Things like 2D are words
24+
(?P<word> # Normal-ish words, which are....
25+
([A-Z]([a-z]+([0-9](?!D))*)+)| # Capital letter followed by at least one lowercase letter, possibly ending in some digits as long as the digits aren't followed by "D"
26+
([A-Z][A-Z0-9]+(?![a-z])) # Or, all-caps letter and digit mix starting with a letter, excluding the last capital before some lowercase
27+
)''', re.VERBOSE)
2128

2229

2330
class OpenXRConventions(ConventionsBase):
31+
"""The specifics of how OpenXR writes a spec."""
32+
2433
@property
2534
def null(self):
2635
"""Preferred spelling of NULL."""
2736
return 'code:NULL'
2837

2938
@property
3039
def constFlagBits(self):
31-
"""Returns True if static const flag bits should be generated, False if an enumerated type should be generated."""
40+
"""Return True if static const flag bits should be generated, False if an enumerated type should be generated."""
3241
return True
3342

3443
@property
@@ -82,6 +91,10 @@ def generate_structure_type_from_name(self, structname):
8291
# OpenGLES ⇒ _OPENGL_ES
8392
structure_type_parts.append(
8493
elem.group().upper().replace('ES', '_ES'))
94+
elif elem.group('dimension'):
95+
# 2D ⇒ _2D
96+
structure_type_parts.append(
97+
elem.group())
8598
else:
8699
word = elem.group('word')
87100
if word == 'Xr':

0 commit comments

Comments
 (0)