Skip to content

Commit b1ef8f9

Browse files
committed
OpenXR SDK 1.0.28 (2023-07-10)
This release contains improved compatibility and code quality fixes for the loader, support for loading certain API layers on Android-based devices, and a number of other improvements, in addition to the new extensions. Additionally, the loader documentation now describes how OpenXR handles compatibility with Android API levels of 30 and above: runtimes may need to update accordingly to support this compatibility solution. - Registry - Added defines to xr.xml for extension enum base and enum stride. (internal MR 2693, OpenXR-Docs issue 148, internal issue 1979) - Extension reservation: Reserve an extension for XR_EXT_future (internal MR 2631) - Extension reservation: Register ANDROID author ID and reserve 15 extensions for it. (internal MR 2690) - Extension reservation: Reserve extensions for “user presence” and “locate spaces” (internal MR 2705) - Extension reservation: Reserve 25 extensions for Magic Leap. (internal MR 2778) - Extension reservation: Reserve extension for XR_KHR_extendable_action_binding (internal MR 2779) - Fix spelling. (internal MR 2766) - Fixed the error code specification for xrGetControllerModelPropertiesMSFT function. (internal MR 2600) - New multi-vendor extension: XR_EXT_hand_interaction (internal MR 2116) - New multi-vendor extension: XR_EXT_plane_detection (internal MR 2510, internal MR 2791) - New multi-vendor extension: XR_EXT_hand_tracking_data_source (internal MR 2568) - New vendor extension: XR_META_passthrough_color_lut (internal MR 2507) - New vendor extension: XR_META_virtual_keyboard (internal MR 2555) - New vendor extension: XR_OPPO_controller_interaction (OpenXR-Docs PR 146) - Update Magic Leap contact (internal MR 2699) - XR_FB_face_tracking: Non-functional registry change, fixing a problem with standalone headers. (internal MR 2663) - XR_FB_scene: Introduce XrSemanticLabelsSupportInfoFB and bump spec version to 3. (internal MR 2682) - XR_FB_spatial_entity and XR_FB_scene: Add XR_ERROR_SIZE_INSUFFICIENT return code to functions which use the two-call idiom. (internal MR 2718) - XR_FB_touch_controller_pro: Fix XML to require the touch_controller_pro interaction profile for the extension (internal MR 2806) - registry: Remove extraneous whitespace from some commands. (OpenXR-SDK-Source PR 397) - schematron: Improve self tests. (internal MR 2680) - schematron: Require vendor tag on interaction profile paths introduced by extensions. (internal MR 2684) - scripts: Allow schematron to check an alternate XML file. (internal MR 2670) - SDK - Allow compilation of OpenXR SDK on Mac (internal MR 2788, internal MR 2789, internal MR 2790, internal MR 2800) - Common: Add stdint.h include to platform_utils.hpp for GCC 13+ (OpenXR-SDK-Source PR 406) - Describe building OpenXR SDK on macOS with Xcode (internal MR 2768) - Handle clang-format-16 in runClangFormat.sh, and adjust source files so its output matches the earlier version used on CI. (internal MR 2666, internal MR 2814) - Improvement: Fix clang warning -Wundef. (internal MR 2717) - Improvement: Fix leftover warnings when building with -Wall. (internal MR 2754, OpenXR-SDK-Source PR 410) - Loader: On Android, use a single logcat tag for all parts of the loader. (internal MR 2688) - Loader: Update the required queries elements for an OpenXR application on Android, so that runtime and layer components loaded in the application process may access their own package in API >29. (internal MR 2708) - Loader: Search system directories for API layer manifests on Android (internal MR 2709) - Loader: Add Product and OEM partition to active runtime search path on Android (internal MR 2709) - Loader: Improve casting to uint32_t edge case handling. (internal MR 2745) - Loader: Clear possible dangling next pointers in XR_EXT_debug_utils label structures. (internal MR 2764) - Validation Layer: Fix the validation_layer_generator to not check static array addresses. (OpenXR-SDK-Source PR 399) - api_layers: Update API Layers spec section in README.md (internal MR 2753) - cmake: Set up alias targets OpenXR::openxr_loader and OpenXR::headers so that the loader and headers may be used the same whether you used find_package(OpenXR) on binaries or have included the source tree as a subproject. (internal MR 2793) - gradle: Add license for gradlew and gradlew.bat (internal MR 2725) - gradle: General cleanup and updates of Android build system. (internal MR 2796) - hello_xr: Enable building with latest Android Studio canary (OpenXR-SDK-Source PR 393) - layers: Code cleanup and calling convention fixes (internal MR 2784) - loader test: Fix for Windows 32-bit (internal MR 2784) - loader test: Fix CMake dependencies. (internal MR 2776) GitOrigin-RevId: c878b431b0926d90f81bcc98253d9c600aadf61f
1 parent 3de8c9b commit b1ef8f9

File tree

101 files changed

+2153
-4210
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

101 files changed

+2153
-4210
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.27.{build}
5+
version: 1.0.28.{build}
66
image: Visual Studio 2017
77

88

.gitattributes

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,10 @@
2323
*.sh eol=lf
2424

2525
*.png binary
26-
*.pdf binary
26+
27+
# git-lfs big files
28+
*.pdf filter=lfs diff=lfs merge=lfs -text
29+
*.glb filter=lfs diff=lfs merge=lfs -text
2730

2831
# Shell/python scripts that don't end in .sh
2932
specification/makeAllExts eol=lf

.github/scripts/CMakePresets.json

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,31 @@
6565
"CMAKE_SYSTEM_NAME": "WindowsStore",
6666
"CMAKE_SYSTEM_VERSION": "10.0"
6767
}
68+
},
69+
{
70+
"name": ".base-cts-msvc",
71+
"generator": "Visual Studio 17 2022",
72+
"hidden": true,
73+
"installDir": "$env{INSTALL_DIR}",
74+
"cacheVariables": {
75+
"DYNAMIC_LOADER": false,
76+
"BUILD_ALL_EXTENSIONS": true
77+
},
78+
"condition": {
79+
"type": "equals",
80+
"lhs": "${hostSystemName}",
81+
"rhs": "Windows"
82+
}
83+
},
84+
{
85+
"name": "cts-win32",
86+
"inherits": ".base-cts-msvc",
87+
"architecture": "Win32"
88+
},
89+
{
90+
"name": "cts-x64",
91+
"inherits": ".base-cts-msvc",
92+
"architecture": "x64"
6893
}
6994
]
7095
}

.github/scripts/shared.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
import json
55
import sys
6+
import os
67
from dataclasses import dataclass
78
from itertools import product
89

@@ -25,6 +26,10 @@ def should_skip(self) -> bool:
2526
# can switch to just doing x64 for speed of testing
2627
# return self.arch != "x64"
2728

29+
def has_cts_build(self) -> bool:
30+
# No UWP CTS right now
31+
return not self.uwp and not self.should_skip()
32+
2833
def preset(self) -> str:
2934
if self.uwp:
3035
return f"{self.arch.lower()}_uwp"
@@ -34,6 +39,9 @@ def preset(self) -> str:
3439
def win_artifact_name(self) -> str:
3540
return f"loader_{self.preset()}"
3641

42+
def win_cts_artifact_name(self) -> str:
43+
return f"loader_{self.preset()}"
44+
3745
def platform_dirname(self) -> str:
3846
if self.uwp:
3947
return f"{self.arch}_uwp"
@@ -46,9 +54,14 @@ def platform_dirname(self) -> str:
4654

4755
BUILD_CONFIGS = [c for c in _UNFILTERED_BUILD_CONFIGS if not c.should_skip()]
4856

57+
CTS_BUILD_CONFIGS = [c for c in _UNFILTERED_BUILD_CONFIGS if c.has_cts_build()]
58+
4959

5060
def output_json(data, variable_name=None):
5161
if variable_name:
52-
print(f"::set-output name={variable_name}::{json.dumps(data)}")
62+
envfile = os.getenv("GITHUB_ENV")
63+
assert envfile
64+
with open(envfile, "w", encoding="utf-8") as fp:
65+
fp.write(f"{variable_name}={json.dumps(data)}")
5366
else:
5467
print(json.dumps(data, indent=4))

.github/workflows/android.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
steps:
2626
- uses: actions/checkout@v3
2727
- name: Get modern CMake and Ninja
28-
uses: lukka/[email protected].3
28+
uses: lukka/[email protected].4
2929

3030
- name: set up JDK 11
3131
uses: actions/setup-java@v3
@@ -93,7 +93,7 @@ jobs:
9393
steps:
9494
- uses: actions/checkout@v3
9595
- name: Get modern CMake and Ninja
96-
uses: lukka/[email protected].3
96+
uses: lukka/[email protected].4
9797
- name: set up JDK 11
9898
uses: actions/setup-java@v3
9999
with:
Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright 2021-2022, Collabora, Ltd.
1+
# Copyright 2021-2023, Collabora, Ltd.
22
# SPDX-License-Identifier: CC0-1.0
33

44
on:
@@ -9,13 +9,18 @@ on:
99
type: string
1010
required: true
1111
buildType:
12-
description: "Build type"
12+
description: "Build configuration"
1313
type: string
14+
required: true
1415
default: RelWithDebInfo
1516
artifactName:
1617
description: "Artifact name to upload to."
1718
type: string
1819
required: false
20+
subdir:
21+
description: "Subdir of the workspace to upload as an artifact."
22+
type: string
23+
default: install
1924

2025
jobs:
2126
msvc-build:
@@ -25,30 +30,33 @@ jobs:
2530
INSTALL_DIR: "${{ github.workspace }}/install"
2631
steps:
2732
- uses: actions/checkout@v3
28-
- uses: lukka/[email protected]
33+
34+
- name: Get modern CMake and Ninja
35+
uses: lukka/[email protected]
36+
2937
- name: Add msbuild to PATH
3038
uses: microsoft/[email protected]
3139

3240
- name: Install Vulkan SDK
33-
if: ${{ !contains( inputs.preset, 'uwp') }}
34-
working-directory: ${{ github.workspace }}
35-
shell: pwsh
3641
run: ./.github/scripts/install_vulkan.ps1
42+
if: "${{ !contains( inputs.preset, 'uwp') }}"
43+
working-directory: "${{ github.workspace }}"
44+
shell: pwsh
3745

3846
- name: Generate build system
3947
shell: pwsh
4048
run: |
4149
Copy-Item .github/scripts/CMakePresets.json .
4250
cmake --fresh --preset ${{ inputs.preset }} -S . -B $env:RUNNER_TEMP
4351
- name: Build
44-
run: cmake --build $env:RUNNER_TEMP --parallel --clean-first --config ${{ inputs.buildType }}
52+
run: "cmake --build $env:RUNNER_TEMP --parallel --clean-first --config ${{ inputs.buildType }}"
4553

4654
- name: Install
47-
run: cmake --build $env:RUNNER_TEMP --parallel --config ${{ inputs.buildType }} --target install
55+
run: "cmake --build $env:RUNNER_TEMP --parallel --config ${{ inputs.buildType }} --target install"
4856

4957
- name: Upload Artifacts
5058
uses: actions/upload-artifact@v3
5159
if: inputs.artifactName
5260
with:
53-
name: ${{ inputs.artifactName }}
54-
path: ${{ github.workspace }}/install
61+
name: "${{ inputs.artifactName }}"
62+
path: "${{ github.workspace }}/${{ inputs.subdir }}"

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ pregen/
1818
generated-includes
1919
cmake_install.cmake
2020
cmake_uninstall.cmake
21+
cmake-build-*
2122

2223
# Marker file for a snapshot build
2324
SNAPSHOT

.reuse/dep5

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,27 @@ Copyright: 2007-2010 Baptiste Lepilleur and The JsonCpp Authors
3838
License: MIT OR LicenseRef-jsoncpp-public-domain
3939
Comment: Unmodified, vendored copy of jsoncpp 1.9.5
4040

41+
Files: src/external/tinygltf/*
42+
Copyright: 2017 Syoyo Fujita, Aurélien Chatelain and many contributors
43+
License: MIT
44+
Comment: Unmodified, vendored copy of a subset of the tiny-gltf repo v2.8.9
45+
46+
Files: src/external/tinygltf/json.hpp
47+
Copyright: 2013-2017 Niels Lohmann <http://nlohmann.me>
48+
License: MIT
49+
Comment: Unmodified, included in tiny-gltf repo.
50+
51+
Files: src/external/d3dx12/*
52+
Copyright: Copyright (c) Microsoft Corporation.
53+
License: MIT
54+
Comment: Unmodified, vendored copy of DirectX-Headers commit da7aedb
55+
of https://github.com/microsoft/DirectX-Headers filtered to just d3dx12 headers
56+
57+
Files: src/external/mikktspace/*
58+
Copyright: 2011 by Morten S. Mikkelsen
59+
License: Zlib
60+
Comment: Unmodified, vendored copy of MikkTSpace commit 3e895b4
61+
4162
Files: src/external/jnipp/*
4263
Copyright: 2016-2020, Mitchell Dowd
4364
2020, Collabora, Ltd.
@@ -67,7 +88,7 @@ Comment: In-line license comments requested, https://gitlab.khronos.org/openxr/o
6788

6889
Files: specification/sources/chapters/extensions/ext/ext_performance_settings.adoc
6990
specification/sources/chapters/extensions/ext/ext_thermal_query.adoc
70-
Copyright: 2017-2020, The Khronos Group Inc.
91+
Copyright: 2017-2023, The Khronos Group Inc.
7192
License: CC-BY-4.0
7293
Comment: In-line license comments requested, https://gitlab.khronos.org/openxr/openxr/-/issues/1419
7394

@@ -76,7 +97,7 @@ Files: src/conformance/platform_specific/android_resources/mipmap-hdpi/*
7697
src/conformance/platform_specific/android_resources/mipmap-xhdpi/*
7798
src/conformance/platform_specific/android_resources/mipmap-xxhdpi/*
7899
src/conformance/platform_specific/android_resources/mipmap-xxxhdpi/*
79-
Copyright: 2020, The Khronos Group Inc.
100+
Copyright: 2020-2023, The Khronos Group Inc.
80101
2020, Google
81102
License: Apache-2.0
82103
Comment: Generated .png versions of an icon, created in Android Studio

BUILDING.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,21 @@ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ../..
142142
make
143143
```
144144

145+
### macOS
146+
147+
Building the OpenXR components in this tree on macOS is supported using Xcode
148+
14.0 and newer. You may need to install Xcode Command Line Tools and cmake.
149+
150+
First, generate the Xcode project file using CMake:
151+
152+
```cmd
153+
mkdir -p build/macos
154+
cd build/macos
155+
cmake -G "Xcode" ../..
156+
```
157+
158+
Finally, open the build/macos/OPENXR.xcodeproj in Xcode to build the samples.
159+
145160
### Android
146161

147162
```sh

CHANGELOG.SDK.md

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,130 @@ 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.28 (2023-07-10)
23+
24+
This release contains improved compatibility and code quality fixes for the
25+
loader, support for loading certain API layers on Android-based devices, and a
26+
number of other improvements, in addition to the new extensions. Additionally,
27+
the loader documentation now describes how OpenXR handles compatibility with
28+
Android API levels of 30 and above: runtimes may need to update accordingly to
29+
support this compatibility solution.
30+
31+
- Registry
32+
- Added defines to `xr.xml` for extension enum base and enum stride.
33+
([internal MR 2693](https://gitlab.khronos.org/openxr/openxr/merge_requests/2693),
34+
[OpenXR-Docs issue 148](https://github.com/KhronosGroup/OpenXR-Docs/issues/148),
35+
[internal issue 1979](https://gitlab.khronos.org/openxr/openxr/issues/1979))
36+
- Extension reservation: Reserve an extension for `XR_EXT_future`
37+
([internal MR 2631](https://gitlab.khronos.org/openxr/openxr/merge_requests/2631))
38+
- Extension reservation: Register `ANDROID` author ID and reserve 15 extensions
39+
for it.
40+
([internal MR 2690](https://gitlab.khronos.org/openxr/openxr/merge_requests/2690))
41+
- Extension reservation: Reserve extensions for "user presence" and "locate
42+
spaces"
43+
([internal MR 2705](https://gitlab.khronos.org/openxr/openxr/merge_requests/2705))
44+
- Extension reservation: Reserve 25 extensions for Magic Leap.
45+
([internal MR 2778](https://gitlab.khronos.org/openxr/openxr/merge_requests/2778))
46+
- Extension reservation: Reserve extension for `XR_KHR_extendable_action_binding`
47+
([internal MR 2779](https://gitlab.khronos.org/openxr/openxr/merge_requests/2779))
48+
- Fix spelling.
49+
([internal MR 2766](https://gitlab.khronos.org/openxr/openxr/merge_requests/2766))
50+
- Fixed the error code specification for `xrGetControllerModelPropertiesMSFT`
51+
function.
52+
([internal MR 2600](https://gitlab.khronos.org/openxr/openxr/merge_requests/2600))
53+
- New multi-vendor extension: `XR_EXT_hand_interaction`
54+
([internal MR 2116](https://gitlab.khronos.org/openxr/openxr/merge_requests/2116))
55+
- New multi-vendor extension: `XR_EXT_plane_detection`
56+
([internal MR 2510](https://gitlab.khronos.org/openxr/openxr/merge_requests/2510),
57+
[internal MR 2791](https://gitlab.khronos.org/openxr/openxr/merge_requests/2791))
58+
- New multi-vendor extension: `XR_EXT_hand_tracking_data_source`
59+
([internal MR 2568](https://gitlab.khronos.org/openxr/openxr/merge_requests/2568))
60+
- New vendor extension: `XR_META_passthrough_color_lut`
61+
([internal MR 2507](https://gitlab.khronos.org/openxr/openxr/merge_requests/2507))
62+
- New vendor extension: `XR_META_virtual_keyboard`
63+
([internal MR 2555](https://gitlab.khronos.org/openxr/openxr/merge_requests/2555))
64+
- New vendor extension: `XR_OPPO_controller_interaction`
65+
([OpenXR-Docs PR 146](https://github.com/KhronosGroup/OpenXR-Docs/pull/146))
66+
- Update Magic Leap contact
67+
([internal MR 2699](https://gitlab.khronos.org/openxr/openxr/merge_requests/2699))
68+
- `XR_FB_face_tracking`: Non-functional registry change, fixing a problem with
69+
standalone headers.
70+
([internal MR 2663](https://gitlab.khronos.org/openxr/openxr/merge_requests/2663))
71+
- `XR_FB_scene`: Introduce `XrSemanticLabelsSupportInfoFB` and bump spec version
72+
to 3.
73+
([internal MR 2682](https://gitlab.khronos.org/openxr/openxr/merge_requests/2682))
74+
- `XR_FB_spatial_entity` and `XR_FB_scene`: Add `XR_ERROR_SIZE_INSUFFICIENT`
75+
return code to functions which use the two-call idiom.
76+
([internal MR 2718](https://gitlab.khronos.org/openxr/openxr/merge_requests/2718))
77+
- `XR_FB_touch_controller_pro`: Fix XML to require the `touch_controller_pro`
78+
interaction profile for the extension
79+
([internal MR 2806](https://gitlab.khronos.org/openxr/openxr/merge_requests/2806))
80+
- registry: Remove extraneous whitespace from some commands.
81+
([OpenXR-SDK-Source PR 397](https://github.com/KhronosGroup/OpenXR-SDK-Source/pull/397))
82+
- schematron: Improve self tests.
83+
([internal MR 2680](https://gitlab.khronos.org/openxr/openxr/merge_requests/2680))
84+
- schematron: Require vendor tag on interaction profile paths introduced by
85+
extensions.
86+
([internal MR 2684](https://gitlab.khronos.org/openxr/openxr/merge_requests/2684))
87+
- scripts: Allow schematron to check an alternate XML file.
88+
([internal MR 2670](https://gitlab.khronos.org/openxr/openxr/merge_requests/2670))
89+
- SDK
90+
- Allow compilation of OpenXR SDK on Mac
91+
([internal MR 2788](https://gitlab.khronos.org/openxr/openxr/merge_requests/2788),
92+
[internal MR 2789](https://gitlab.khronos.org/openxr/openxr/merge_requests/2789),
93+
[internal MR 2790](https://gitlab.khronos.org/openxr/openxr/merge_requests/2790),
94+
[internal MR 2800](https://gitlab.khronos.org/openxr/openxr/merge_requests/2800))
95+
- Common: Add `stdint.h` include to `platform_utils.hpp` for GCC 13+
96+
([OpenXR-SDK-Source PR 406](https://github.com/KhronosGroup/OpenXR-SDK-Source/pull/406))
97+
- Describe building OpenXR SDK on macOS with Xcode
98+
([internal MR 2768](https://gitlab.khronos.org/openxr/openxr/merge_requests/2768))
99+
- Handle clang-format-16 in `runClangFormat.sh`, and adjust source files so its
100+
output matches the earlier version used on CI.
101+
([internal MR 2666](https://gitlab.khronos.org/openxr/openxr/merge_requests/2666),
102+
[internal MR 2814](https://gitlab.khronos.org/openxr/openxr/merge_requests/2814))
103+
- Improvement: Fix clang warning `-Wundef`.
104+
([internal MR 2717](https://gitlab.khronos.org/openxr/openxr/merge_requests/2717))
105+
- Improvement: Fix leftover warnings when building with `-Wall`.
106+
([internal MR 2754](https://gitlab.khronos.org/openxr/openxr/merge_requests/2754),
107+
[OpenXR-SDK-Source PR 410](https://github.com/KhronosGroup/OpenXR-SDK-Source/pull/410))
108+
- Loader: On Android, use a single logcat tag for all parts of the loader.
109+
([internal MR 2688](https://gitlab.khronos.org/openxr/openxr/merge_requests/2688))
110+
- Loader: Update the required `queries` elements for an OpenXR application on
111+
Android, so that runtime and layer components loaded in the application process
112+
may access their own package in API >29.
113+
([internal MR 2708](https://gitlab.khronos.org/openxr/openxr/merge_requests/2708))
114+
- Loader: Search system directories for API layer manifests on Android
115+
([internal MR 2709](https://gitlab.khronos.org/openxr/openxr/merge_requests/2709))
116+
- Loader: Add Product and OEM partition to active runtime search path on Android
117+
([internal MR 2709](https://gitlab.khronos.org/openxr/openxr/merge_requests/2709))
118+
- Loader: Improve casting to `uint32_t` edge case handling.
119+
([internal MR 2745](https://gitlab.khronos.org/openxr/openxr/merge_requests/2745))
120+
- Loader: Clear possible dangling `next` pointers in `XR_EXT_debug_utils` label
121+
structures.
122+
([internal MR 2764](https://gitlab.khronos.org/openxr/openxr/merge_requests/2764))
123+
- Validation Layer: Fix the validation_layer_generator to not check static array
124+
addresses.
125+
([OpenXR-SDK-Source PR 399](https://github.com/KhronosGroup/OpenXR-SDK-Source/pull/399))
126+
- api_layers: Update API Layers spec section in README.md
127+
([internal MR 2753](https://gitlab.khronos.org/openxr/openxr/merge_requests/2753))
128+
- cmake: Set up alias targets `OpenXR::openxr_loader` and `OpenXR::headers` so
129+
that the loader and headers may be used the same whether you used
130+
`find_package(OpenXR)` on binaries or have included the source tree as a
131+
subproject.
132+
([internal MR 2793](https://gitlab.khronos.org/openxr/openxr/merge_requests/2793))
133+
- gradle: Add license for gradlew and gradlew.bat
134+
([internal MR 2725](https://gitlab.khronos.org/openxr/openxr/merge_requests/2725))
135+
- gradle: General cleanup and updates of Android build system.
136+
([internal MR 2796](https://gitlab.khronos.org/openxr/openxr/merge_requests/2796))
137+
- hello_xr: Enable building with latest Android Studio canary
138+
([OpenXR-SDK-Source PR 393](https://github.com/KhronosGroup/OpenXR-SDK-Source/pull/393))
139+
- layers: Code cleanup and calling convention fixes
140+
([internal MR 2784](https://gitlab.khronos.org/openxr/openxr/merge_requests/2784))
141+
- loader test: Fix for Windows 32-bit
142+
([internal MR 2784](https://gitlab.khronos.org/openxr/openxr/merge_requests/2784))
143+
- loader test: Fix CMake dependencies.
144+
([internal MR 2776](https://gitlab.khronos.org/openxr/openxr/merge_requests/2776))
145+
22146
## OpenXR SDK 1.0.27 (2023-03-21)
23147

24148
This release contains a large list of improvements, including interaction

0 commit comments

Comments
 (0)