Skip to content

Commit 650f751

Browse files
committed
OpenXR SDK 1.1.38 (2024-06-09)
This is a fairly small release, with one new extension and a handful of fixes. - Registry - Addition: New multi-vendor extension: XR_EXT_composition_layer_inverted_alpha (internal MR 3085, internal MR 3385) - Chore: Reserve an extension for Logitech. (internal MR 3384) - Chore: Register author tag for Deep Mirror. (OpenXR-Docs PR 171) - Fix: XrCompositionLayerPassthroughFB has a “parentstruct” of XrCompositionLayerBaseHeader (it is based on this type), rather than “structextends” (in the next chain). Bump extension revision. (internal MR 3305) - Fix: XR_EXT_plane_detection: Fix extents description and plane axis to match CTS and implementations. (internal MR 3374, internal issue 2281) - Fix: Correct typo in XR_FB_keyboard_tracking flag description. (internal MR 3393) - SDK - No significant changes GitOrigin-RevId: fd4ad294a24169b4db555022859a02dd5bebcd2f
1 parent 4d6b167 commit 650f751

File tree

9 files changed

+181
-82
lines changed

9 files changed

+181
-82
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.1.37.{build}
5+
version: 1.1.38.{build}
66
image: Visual Studio 2017
77

88

CHANGELOG.SDK.md

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

24+
## OpenXR SDK 1.1.38 (2024-06-09)
25+
26+
This is a fairly small release, with one new extension and a handful of fixes.
27+
28+
- Registry
29+
- Addition: New multi-vendor extension: `XR_EXT_composition_layer_inverted_alpha`
30+
([internal MR 3085](https://gitlab.khronos.org/openxr/openxr/merge_requests/3085),
31+
[internal MR 3385](https://gitlab.khronos.org/openxr/openxr/merge_requests/3385))
32+
- Chore: Reserve an extension for Logitech.
33+
([internal MR 3384](https://gitlab.khronos.org/openxr/openxr/merge_requests/3384))
34+
- Chore: Register author tag for Deep Mirror.
35+
([OpenXR-Docs PR 171](https://github.com/KhronosGroup/OpenXR-Docs/pull/171))
36+
- Fix: `XrCompositionLayerPassthroughFB` has a "parentstruct" of
37+
`XrCompositionLayerBaseHeader` (it is based on this type), rather than
38+
"structextends" (in the next chain). Bump extension revision.
39+
([internal MR 3305](https://gitlab.khronos.org/openxr/openxr/merge_requests/3305))
40+
- Fix: `XR_EXT_plane_detection`: Fix extents description and plane axis to match
41+
CTS and implementations.
42+
([internal MR 3374](https://gitlab.khronos.org/openxr/openxr/merge_requests/3374),
43+
[internal issue 2281](https://gitlab.khronos.org/openxr/openxr/issues/2281))
44+
- Fix: Correct typo in `XR_FB_keyboard_tracking` flag description.
45+
([internal MR 3393](https://gitlab.khronos.org/openxr/openxr/merge_requests/3393))
46+
- SDK
47+
- No significant changes
48+
2449
## OpenXR SDK 1.1.37 (2024-05-23)
2550

2651
This release primarily adds new defines for easier use of both OpenXR 1.0 and

checkCodespell

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,15 @@ CODESPELL_IGNORE=${CODESPELL_IGNORE:-${DEFAULT_CODESPELL_IGNORE}}
4444
# .Nd is used for a description in a mandoc manpage.
4545
# ba is from a regex
4646
# unknwn is a header file name
47-
# Wee, Ser, Nuber, Blok are names
48-
IGNORE_WORDS="lod,nd,ba,unknwn,wee,ser,nuber,blok,rouge,implementor,implementors"
47+
# Wee, Ser, Nuber, Blok, DeVault are names
48+
# rouge is a word (and our source code highlighter)
49+
# implementors is just how we spell it
50+
IGNORE_WORDS="lod,nd,ba,unknwn,wee,ser,nuber,blok,devault,rouge,implementor,implementors"
4951

5052
# Add to this to exclude individual files or directories (comma-delimited)
5153
# - Skipping external code.
52-
# - Skipping binary files.
53-
SKIP="${ROOT}/src/external,${ROOT}/src/conformance/framework/catch2,*.pyc,*.png,*.jpg,*.svg,*.otf"
54+
# - Skipping binary and data files.
55+
SKIP="${ROOT}/src/external,${ROOT}/src/conformance/framework/catch2,*.pyc,*.png,*.jpg,*.svg,*.otf,*.slvs"
5456

5557
# Args that get passed if no args are provided to this script.
5658
# -q4 to silence "UINT ==> UNIT | disabled due to being a data type"

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.37
42+
SPECREVISION = 1.1.38
4343
REVISION_COMPONENTS = $(subst ., ,$(SPECREVISION))
4444
MAJORMINORVER = $(word 1,$(REVISION_COMPONENTS)).$(word 2,$(REVISION_COMPONENTS))
4545

specification/loader/api_layer.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ In order to support this, the desktop loader can be forced to look in
343343
specific paths for explicit API layers with the `XR_API_LAYER_PATH`
344344
environment variable.
345345
Simply set it to a properly delimited list of paths that you want the loader
346-
to search for explicit API layer JSON Manfiest files.
346+
to search for explicit API layer JSON Manifest files.
347347
While relative paths may work, it is preferable to use absolute paths when
348348
defining this environment variable to reduce issues.
349349

specification/registry/xr.xml

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
3636
<tag name="BD" author="Bytedance" contact="Will Fu @willfu, Bangsen Han @Hansenn"/>
3737
<tag name="COLLABORA" author="Collabora" contact="Rylie Pavlik @rpavlik"/>
3838
<tag name="DANWILLM" author="Daniel Willmott" contact="Daniel Willmott @danwillm"/>
39+
<tag name="DEEPMIRROR" author="Deep Mirror" contact="Yuhui Lun @lyh-dm"/>
3940
<tag name="EPIC" author="Epic" contact="Nick Whiting @whitingn"/>
4041
<tag name="EXT" author="Multivendor" contact="Rylie Pavlik @rpavlik"/>
4142
<tag name="FB" author="Facebook" contact="Cass Everitt @casseveritt, Jonathan Wright @Nelno"/>
@@ -134,7 +135,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
134135
updates them automatically by processing a line at a time.
135136
-->
136137
<type category="define">// OpenXR current version number.
137-
#define <name>XR_CURRENT_API_VERSION</name> <type>XR_MAKE_VERSION</type>(1, 1, 37)</type>
138+
#define <name>XR_CURRENT_API_VERSION</name> <type>XR_MAKE_VERSION</type>(1, 1, 38)</type>
138139

139140
<!--
140141
Defines for a fixed major.minor version of OpenXR preserving the shared patch version.
@@ -2839,7 +2840,7 @@ typedef XrResult (XRAPI_PTR *<name>PFN_xrCreateApiLayerInstance</name>)(
28392840
<member><type>XrPassthroughFlagsFB</type> <name>flags</name></member>
28402841
<member><type>XrPassthroughLayerPurposeFB</type> <name>purpose</name></member>
28412842
</type>
2842-
<type category="struct" name="XrCompositionLayerPassthroughFB" structextends="XrCompositionLayerBaseHeader">
2843+
<type category="struct" name="XrCompositionLayerPassthroughFB" parentstruct="XrCompositionLayerBaseHeader">
28432844
<member values="XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_FB"><type>XrStructureType</type> <name>type</name></member>
28442845
<member>const <type>void</type>* <name>next</name></member>
28452846
<member><type>XrCompositionLayerFlags</type> <name>flags</name></member>
@@ -4742,15 +4743,15 @@ typedef XrResult (XRAPI_PTR *<name>PFN_xrCreateApiLayerInstance</name>)(
47424743
<!-- flags for XR_FB_keyboard_tracking query state -->
47434744
<enums name="XrKeyboardTrackingFlagBitsFB" type="bitmask">
47444745
<enum bitpos="0" name="XR_KEYBOARD_TRACKING_EXISTS_BIT_FB" comment="indicates that the system has a physically tracked keyboard to report. If not set then no other bits should be considered to be valid or meaningful. If set either XR_KEYBOARD_TRACKING_LOCAL_BIT_FB or XR_KEYBOARD_TRACKING_REMOTE_BIT_FB must also be set."/>
4745-
<enum bitpos="1" name="XR_KEYBOARD_TRACKING_LOCAL_BIT_FB" comment="indicates that the physically tracked keyboard is intended to be used in a local pairing with the system. Mutally exclusive with XR_KEYBOARD_TRACKING_REMOTE_BIT_FB."/>
4746-
<enum bitpos="2" name="XR_KEYBOARD_TRACKING_REMOTE_BIT_FB" comment="indicates that the physically tracked keyboard is intended to be used while paired to a separate remote computing device. Mutally exclusive with XR_KEYBOARD_TRACKING_LOCAL_BIT_FB."/>
4746+
<enum bitpos="1" name="XR_KEYBOARD_TRACKING_LOCAL_BIT_FB" comment="indicates that the physically tracked keyboard is intended to be used in a local pairing with the system. Mutually exclusive with XR_KEYBOARD_TRACKING_REMOTE_BIT_FB."/>
4747+
<enum bitpos="2" name="XR_KEYBOARD_TRACKING_REMOTE_BIT_FB" comment="indicates that the physically tracked keyboard is intended to be used while paired to a separate remote computing device. Mutually exclusive with XR_KEYBOARD_TRACKING_LOCAL_BIT_FB."/>
47474748
<enum bitpos="3" name="XR_KEYBOARD_TRACKING_CONNECTED_BIT_FB" comment="indicates that the physically tracked keyboard is actively connected to the headset and capable of sending key data"/>
47484749
</enums>
47494750

47504751
<!-- flags for XR_FB_keyboard_tracking query -->
47514752
<enums name="XrKeyboardTrackingQueryFlagBitsFB" type="bitmask">
4752-
<enum bitpos="1" name="XR_KEYBOARD_TRACKING_QUERY_LOCAL_BIT_FB" comment="indicates the query is for the physically tracked keyboard that is intended to be used in a local pairing with the System. Mutally exclusive with XR_KEYBOARD_TRACKING_QUERY_REMOTE_BIT_FB."/>
4753-
<enum bitpos="2" name="XR_KEYBOARD_TRACKING_QUERY_REMOTE_BIT_FB" comment="indicates the query is for the physically tracked keyboard that may be connected to a separate remote computing device. Mutally exclusive with XR_KEYBOARD_TRACKING_QUERY_LOCAL_BIT_FB."/>
4753+
<enum bitpos="1" name="XR_KEYBOARD_TRACKING_QUERY_LOCAL_BIT_FB" comment="indicates the query is for the physically tracked keyboard that is intended to be used in a local pairing with the System. Mutually exclusive with XR_KEYBOARD_TRACKING_QUERY_REMOTE_BIT_FB."/>
4754+
<enum bitpos="2" name="XR_KEYBOARD_TRACKING_QUERY_REMOTE_BIT_FB" comment="indicates the query is for the physically tracked keyboard that may be connected to a separate remote computing device. Mutually exclusive with XR_KEYBOARD_TRACKING_QUERY_LOCAL_BIT_FB."/>
47544755
</enums>
47554756

47564757
<!-- flags for XR_FB_space_warp -->
@@ -9800,7 +9801,7 @@ typedef XrResult (XRAPI_PTR *<name>PFN_xrCreateApiLayerInstance</name>)(
98009801

98019802
<extension name="XR_FB_passthrough" number="119" type="instance" supported="openxr">
98029803
<require>
9803-
<enum value="3" name="XR_FB_passthrough_SPEC_VERSION"/>
9804+
<enum value="4" name="XR_FB_passthrough_SPEC_VERSION"/>
98049805
<enum value="&quot;XR_FB_passthrough&quot;" name="XR_FB_PASSTHROUGH_EXTENSION_NAME"/>
98059806

98069807
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SYSTEM_PASSTHROUGH_PROPERTIES_FB"/>
@@ -12866,7 +12867,7 @@ typedef XrResult (XRAPI_PTR *<name>PFN_xrCreateApiLayerInstance</name>)(
1286612867

1286712868
<extension name="XR_EXT_plane_detection" number="430" type="instance" supported="openxr">
1286812869
<require>
12869-
<enum value="1" name="XR_EXT_plane_detection_SPEC_VERSION"/>
12870+
<enum value="2" name="XR_EXT_plane_detection_SPEC_VERSION"/>
1287012871
<enum value="&quot;XR_EXT_plane_detection&quot;" name="XR_EXT_PLANE_DETECTION_EXTENSION_NAME"/>
1287112872

1287212873
<enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_SPACE_NOT_LOCATABLE_EXT" comment="The space passed to the function was not locatable."/>
@@ -13833,10 +13834,12 @@ typedef XrResult (XRAPI_PTR *<name>PFN_xrCreateApiLayerInstance</name>)(
1383313834
</require>
1383413835
</extension>
1383513836

13836-
<extension name="XR_META_extension_555" number="555" type="instance" supported="disabled">
13837+
<extension name="XR_EXT_composition_layer_inverted_alpha" number="555" type="instance" supported="openxr">
1383713838
<require>
13838-
<enum value="1" name="XR_META_extension_555_SPEC_VERSION"/>
13839-
<enum value="&quot;XR_META_extension_555&quot;" name="XR_META_extension_555_EXTENSION_NAME"/>
13839+
<enum value="1" name="XR_EXT_composition_layer_inverted_alpha_SPEC_VERSION"/>
13840+
<enum value="&quot;XR_EXT_composition_layer_inverted_alpha&quot;" name="XR_EXT_COMPOSITION_LAYER_INVERTED_ALPHA_EXTENSION_NAME"/>
13841+
<enum bitpos="3" extends="XrCompositionLayerFlagBits" name="XR_COMPOSITION_LAYER_INVERTED_ALPHA_BIT_EXT" comment="Indicates that the texture alpha channel stores transparency instead of opacity, and is to be inverted before layer blending."/>
13842+
<!-- Addition to core bitmask from EXT approved by WG 14-March-2024 -->
1384013843
</require>
1384113844
</extension>
1384213845

@@ -15284,6 +15287,13 @@ typedef XrResult (XRAPI_PTR *<name>PFN_xrCreateApiLayerInstance</name>)(
1528415287
</require>
1528515288
</extension>
1528615289

15290+
<extension name="XR_LOGITECH_extension_746" number="746" type="instance" supported="disabled">
15291+
<require>
15292+
<enum value="1" name="XR_LOGITECH_extension_746_SPEC_VERSION"/>
15293+
<enum value="&quot;XR_LOGITECH_extension_746&quot;" name="XR_LOGITECH_EXTENSION_746_EXTENSION_NAME"/>
15294+
</require>
15295+
</extension>
15296+
1528715297
</extensions>
1528815298

1528915299
</registry>

specification/scripts/cgenerator.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,10 @@ def genType(self, typeinfo, name, alias):
361361
if category == 'define' and self.misracppstyle():
362362
body = body.replace("(uint32_t)", "static_cast<uint32_t>")
363363
if body:
364+
comment = typeElem.get('comment')
365+
if comment and self.genOpts.emitComments:
366+
body = self.makeCComment(comment) + body
367+
364368
# Add extra newline after multi-line entries.
365369
if '\n' in body[0:-1]:
366370
body += '\n'
@@ -428,10 +432,14 @@ def genStruct(self, typeinfo, typeName, alias):
428432

429433
typeElem = typeinfo.elem
430434

435+
body = ''
436+
comment = typeElem.get('comment')
437+
if comment and self.genOpts.emitComments:
438+
body += self.makeCComment(comment)
439+
431440
if alias:
432-
body = f"typedef {alias} {typeName};\n"
441+
body += f"typedef {alias} {typeName};\n"
433442
else:
434-
body = ''
435443
(protect_begin, protect_end) = self.genProtectString(typeElem.get('protect'))
436444
if protect_begin:
437445
body += protect_begin
@@ -451,9 +459,12 @@ def genStruct(self, typeinfo, typeName, alias):
451459
body += f" {typeName} {{\n"
452460

453461
targetLen = self.getMaxCParamTypeLength(typeinfo)
454-
for member in typeElem.findall('.//member'):
455-
body += self.makeCParamDecl(member, targetLen + 4)
456-
body += ';\n'
462+
for elem in list(typeElem):
463+
if elem.tag == 'member':
464+
body += self.makeCParamDecl(elem, targetLen + 4)
465+
body += ';\n'
466+
elif elem.tag == 'comment' and self.genOpts.emitComments:
467+
body += self.makeCComment(elem.text, indents = 1)
457468
body += f"}} {typeName};\n"
458469
if protect_end:
459470
body += protect_end

0 commit comments

Comments
 (0)