Skip to content

Commit

Permalink
OpenXR SDK 1.1.38 (2024-06-09)
Browse files Browse the repository at this point in the history
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
  • Loading branch information
rpavlik committed Jun 10, 2024
1 parent be392bf commit f90488c
Show file tree
Hide file tree
Showing 9 changed files with 65 additions and 21 deletions.
2 changes: 1 addition & 1 deletion .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: Apache-2.0

version: 1.1.37.{build}
version: 1.1.38.{build}
image: Visual Studio 2017


Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Get modern CMake and Ninja
uses: "lukka/get-cmake@v3.28.3"
uses: "lukka/get-cmake@v3.29.5"

# Do this before building aar since it affects the version
- name: Touch SNAPSHOT marker file
Expand All @@ -47,7 +47,7 @@ jobs:
steps:
- uses: "actions/checkout@v4"
- name: "Get modern CMake and Ninja"
uses: "lukka/get-cmake@v3.28.3"
uses: "lukka/get-cmake@v3.29.5"
- name: "set up JDK 11"
uses: "actions/setup-java@v4"
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/msvc-build-preset.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@ jobs:
lfs: true

- name: Get modern CMake and Ninja
uses: lukka/get-cmake@v3.28.3
uses: lukka/get-cmake@v3.29.5

- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.3
uses: microsoft/setup-msbuild@v2

- name: Install Vulkan SDK
run: ./.github/scripts/install_vulkan.ps1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/windows-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ jobs:
# NuGet stuff now

- name: Setup NuGet
uses: "NuGet/setup-nuget@296fd3ccf8528660c91106efefe2364482f86d6f"
uses: "NuGet/setup-nuget@a21f25cd3998bf370fde17e3f1b4c12c175172f9"
with:
nuget-version: "5.x"

Expand Down
25 changes: 25 additions & 0 deletions CHANGELOG.SDK.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,31 @@ along with any public pull requests that have been accepted.
In this repository in particular, since it is primarily software,
pull requests may be integrated as they are accepted even between periodic updates.

## 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](https://gitlab.khronos.org/openxr/openxr/merge_requests/3085),
[internal MR 3385](https://gitlab.khronos.org/openxr/openxr/merge_requests/3385))
- Chore: Reserve an extension for Logitech.
([internal MR 3384](https://gitlab.khronos.org/openxr/openxr/merge_requests/3384))
- Chore: Register author tag for Deep Mirror.
([OpenXR-Docs PR 171](https://github.com/KhronosGroup/OpenXR-Docs/pull/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](https://gitlab.khronos.org/openxr/openxr/merge_requests/3305))
- Fix: `XR_EXT_plane_detection`: Fix extents description and plane axis to match
CTS and implementations.
([internal MR 3374](https://gitlab.khronos.org/openxr/openxr/merge_requests/3374),
[internal issue 2281](https://gitlab.khronos.org/openxr/openxr/issues/2281))
- Fix: Correct typo in `XR_FB_keyboard_tracking` flag description.
([internal MR 3393](https://gitlab.khronos.org/openxr/openxr/merge_requests/3393))
- SDK
- No significant changes

## OpenXR SDK 1.1.37 (2024-05-23)

This release primarily adds new defines for easier use of both OpenXR 1.0 and
Expand Down
14 changes: 10 additions & 4 deletions include/openxr/openxr.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ extern "C" {
((((major) & 0xffffULL) << 48) | (((minor) & 0xffffULL) << 32) | ((patch) & 0xffffffffULL))

// OpenXR current version number.
#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 1, 37)
#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 1, 38)

// OpenXR 1.0 version number
#define XR_API_VERSION_1_0 XR_MAKE_VERSION(1, 0, XR_VERSION_PATCH(XR_CURRENT_API_VERSION))
Expand Down Expand Up @@ -773,6 +773,7 @@ typedef XrFlags64 XrCompositionLayerFlags;
static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_CORRECT_CHROMATIC_ABERRATION_BIT = 0x00000001;
static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_BLEND_TEXTURE_SOURCE_ALPHA_BIT = 0x00000002;
static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_UNPREMULTIPLIED_ALPHA_BIT = 0x00000004;
static const XrCompositionLayerFlags XR_COMPOSITION_LAYER_INVERTED_ALPHA_BIT_EXT = 0x00000008;

typedef XrFlags64 XrViewStateFlags;

Expand Down Expand Up @@ -4173,7 +4174,7 @@ XR_DEFINE_HANDLE(XrPassthroughFB)
XR_DEFINE_HANDLE(XrPassthroughLayerFB)
XR_DEFINE_HANDLE(XrGeometryInstanceFB)
#define XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB 256
#define XR_FB_passthrough_SPEC_VERSION 3
#define XR_FB_passthrough_SPEC_VERSION 4
#define XR_FB_PASSTHROUGH_EXTENSION_NAME "XR_FB_passthrough"

typedef enum XrPassthroughLayerPurposeFB {
Expand Down Expand Up @@ -4232,7 +4233,6 @@ typedef struct XrPassthroughLayerCreateInfoFB {
XrPassthroughLayerPurposeFB purpose;
} XrPassthroughLayerCreateInfoFB;

// XrCompositionLayerPassthroughFB extends XrCompositionLayerBaseHeader
typedef struct XrCompositionLayerPassthroughFB {
XrStructureType type;
const void* XR_MAY_ALIAS next;
Expand Down Expand Up @@ -7157,7 +7157,7 @@ typedef struct XrHandTrackingDataSourceStateEXT {
// XR_EXT_plane_detection is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_plane_detection 1
XR_DEFINE_HANDLE(XrPlaneDetectorEXT)
#define XR_EXT_plane_detection_SPEC_VERSION 1
#define XR_EXT_plane_detection_SPEC_VERSION 2
#define XR_EXT_PLANE_DETECTION_EXTENSION_NAME "XR_EXT_plane_detection"

typedef enum XrPlaneDetectorOrientationEXT {
Expand Down Expand Up @@ -7445,6 +7445,12 @@ XRAPI_ATTR XrResult XRAPI_CALL xrEnableUserCalibrationEventsML(
#define XR_YVR_controller_interaction_SPEC_VERSION 1
#define XR_YVR_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_YVR_controller_interaction"


// XR_EXT_composition_layer_inverted_alpha is a preprocessor guard. Do not pass it to API calls.
#define XR_EXT_composition_layer_inverted_alpha 1
#define XR_EXT_composition_layer_inverted_alpha_SPEC_VERSION 1
#define XR_EXT_COMPOSITION_LAYER_INVERTED_ALPHA_EXTENSION_NAME "XR_EXT_composition_layer_inverted_alpha"

#ifdef __cplusplus
}
#endif
Expand Down
2 changes: 2 additions & 0 deletions include/openxr/openxr_reflection.h
Original file line number Diff line number Diff line change
Expand Up @@ -1451,6 +1451,7 @@ XR_ENUM_STR(XrResult);
_(XR_COMPOSITION_LAYER_CORRECT_CHROMATIC_ABERRATION_BIT, 0x00000001) \
_(XR_COMPOSITION_LAYER_BLEND_TEXTURE_SOURCE_ALPHA_BIT, 0x00000002) \
_(XR_COMPOSITION_LAYER_UNPREMULTIPLIED_ALPHA_BIT, 0x00000004) \
_(XR_COMPOSITION_LAYER_INVERTED_ALPHA_BIT_EXT, 0x00000008) \

#define XR_LIST_BITS_XrViewStateFlags(_) \
_(XR_VIEW_STATE_ORIENTATION_VALID_BIT, 0x00000001) \
Expand Down Expand Up @@ -5401,6 +5402,7 @@ XR_ENUM_STR(XrResult);
_(XR_KHR_locate_spaces, 472) \
_(XR_ML_user_calibration, 473) \
_(XR_YVR_controller_interaction, 498) \
_(XR_EXT_composition_layer_inverted_alpha, 555) \
_(XR_KHR_maintenance1, 711) \


Expand Down
1 change: 1 addition & 0 deletions include/openxr/openxr_reflection_parent_structs.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ This file contains expansion macros (X Macros) for OpenXR structures that have a
_avail(XrCompositionLayerCylinderKHR, XR_TYPE_COMPOSITION_LAYER_CYLINDER_KHR) \
_avail(XrCompositionLayerEquirectKHR, XR_TYPE_COMPOSITION_LAYER_EQUIRECT_KHR) \
_avail(XrCompositionLayerEquirect2KHR, XR_TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR) \
_avail(XrCompositionLayerPassthroughFB, XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_FB) \
_avail(XrCompositionLayerPassthroughHTC, XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_HTC) \


Expand Down
32 changes: 21 additions & 11 deletions specification/registry/xr.xml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
<tag name="BD" author="Bytedance" contact="Will Fu @willfu, Bangsen Han @Hansenn"/>
<tag name="COLLABORA" author="Collabora" contact="Rylie Pavlik @rpavlik"/>
<tag name="DANWILLM" author="Daniel Willmott" contact="Daniel Willmott @danwillm"/>
<tag name="DEEPMIRROR" author="Deep Mirror" contact="Yuhui Lun @lyh-dm"/>
<tag name="EPIC" author="Epic" contact="Nick Whiting @whitingn"/>
<tag name="EXT" author="Multivendor" contact="Rylie Pavlik @rpavlik"/>
<tag name="FB" author="Facebook" contact="Cass Everitt @casseveritt, Jonathan Wright @Nelno"/>
Expand Down Expand Up @@ -134,7 +135,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
updates them automatically by processing a line at a time.
-->
<type category="define">// OpenXR current version number.
#define <name>XR_CURRENT_API_VERSION</name> <type>XR_MAKE_VERSION</type>(1, 1, 37)</type>
#define <name>XR_CURRENT_API_VERSION</name> <type>XR_MAKE_VERSION</type>(1, 1, 38)</type>

<!--
Defines for a fixed major.minor version of OpenXR preserving the shared patch version.
Expand Down Expand Up @@ -2839,7 +2840,7 @@ typedef XrResult (XRAPI_PTR *<name>PFN_xrCreateApiLayerInstance</name>)(
<member><type>XrPassthroughFlagsFB</type> <name>flags</name></member>
<member><type>XrPassthroughLayerPurposeFB</type> <name>purpose</name></member>
</type>
<type category="struct" name="XrCompositionLayerPassthroughFB" structextends="XrCompositionLayerBaseHeader">
<type category="struct" name="XrCompositionLayerPassthroughFB" parentstruct="XrCompositionLayerBaseHeader">
<member values="XR_TYPE_COMPOSITION_LAYER_PASSTHROUGH_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrCompositionLayerFlags</type> <name>flags</name></member>
Expand Down Expand Up @@ -4742,15 +4743,15 @@ typedef XrResult (XRAPI_PTR *<name>PFN_xrCreateApiLayerInstance</name>)(
<!-- flags for XR_FB_keyboard_tracking query state -->
<enums name="XrKeyboardTrackingFlagBitsFB" type="bitmask">
<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."/>
<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."/>
<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."/>
<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."/>
<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."/>
<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"/>
</enums>

<!-- flags for XR_FB_keyboard_tracking query -->
<enums name="XrKeyboardTrackingQueryFlagBitsFB" type="bitmask">
<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."/>
<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."/>
<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."/>
<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."/>
</enums>

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

<extension name="XR_FB_passthrough" number="119" type="instance" supported="openxr">
<require>
<enum value="3" name="XR_FB_passthrough_SPEC_VERSION"/>
<enum value="4" name="XR_FB_passthrough_SPEC_VERSION"/>
<enum value="&quot;XR_FB_passthrough&quot;" name="XR_FB_PASSTHROUGH_EXTENSION_NAME"/>

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

<extension name="XR_EXT_plane_detection" number="430" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_EXT_plane_detection_SPEC_VERSION"/>
<enum value="2" name="XR_EXT_plane_detection_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_plane_detection&quot;" name="XR_EXT_PLANE_DETECTION_EXTENSION_NAME"/>

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

<extension name="XR_META_extension_555" number="555" type="instance" supported="disabled">
<extension name="XR_EXT_composition_layer_inverted_alpha" number="555" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_META_extension_555_SPEC_VERSION"/>
<enum value="&quot;XR_META_extension_555&quot;" name="XR_META_extension_555_EXTENSION_NAME"/>
<enum value="1" name="XR_EXT_composition_layer_inverted_alpha_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_composition_layer_inverted_alpha&quot;" name="XR_EXT_COMPOSITION_LAYER_INVERTED_ALPHA_EXTENSION_NAME"/>
<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."/>
<!-- Addition to core bitmask from EXT approved by WG 14-March-2024 -->
</require>
</extension>

Expand Down Expand Up @@ -15284,6 +15287,13 @@ typedef XrResult (XRAPI_PTR *<name>PFN_xrCreateApiLayerInstance</name>)(
</require>
</extension>

<extension name="XR_LOGITECH_extension_746" number="746" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LOGITECH_extension_746_SPEC_VERSION"/>
<enum value="&quot;XR_LOGITECH_extension_746&quot;" name="XR_LOGITECH_EXTENSION_746_EXTENSION_NAME"/>
</require>
</extension>

</extensions>

</registry>

0 comments on commit f90488c

Please sign in to comment.