Skip to content

Commit

Permalink
OpenXR SDK 1.0.28 (2023-07-10)
Browse files Browse the repository at this point in the history
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
  • Loading branch information
rpavlik committed Jul 10, 2023
1 parent 58a00cf commit f5beb01
Show file tree
Hide file tree
Showing 43 changed files with 2,520 additions and 310 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.0.27.{build}
version: 1.0.28.{build}
image: Visual Studio 2017


Expand Down
5 changes: 3 additions & 2 deletions .azure-pipelines/shared/build_jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ jobs:
presentationBackend: wayland
pool:
vmImage: "ubuntu-latest"
container: khronosgroup/docker-images:openxr-sdk.20230209
container: khronosgroup/docker-images:openxr-sdk.20230323
# container: khronosgroup/docker-images@sha256:20edadbaa6cdec4fed7417c24b18dfb4b93eec940fdf1a27b5f97272dec47032
steps:
# First build as debug
- template: build_linux.yml
Expand Down Expand Up @@ -130,7 +131,7 @@ jobs:
# Use the specified version of Python from the tool cache
- task: UsePythonVersion@0
inputs:
versionSpec: "3.9"
versionSpec: "3.10"
- task: PythonScript@0
displayName: Move artifact contents
inputs:
Expand Down
3 changes: 2 additions & 1 deletion .azure-pipelines/shared/check_clang_format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ jobs:
displayName: "clang-format"
pool:
vmImage: "ubuntu-latest"
container: khronosgroup/docker-images:openxr-sdk.20230209
container: khronosgroup/docker-images:openxr-sdk.20230323
# container: khronosgroup/docker-images@sha256:20edadbaa6cdec4fed7417c24b18dfb4b93eec940fdf1a27b5f97272dec47032
steps:
- script: ./runClangFormat.sh
displayName: Run clang-format
Expand Down
3 changes: 2 additions & 1 deletion .azure-pipelines/shared/check_file_format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ jobs:
displayName: 'Check file formatting'
pool:
vmImage: 'ubuntu-latest'
container: khronosgroup/docker-images:openxr-sdk.20230209
container: khronosgroup/docker-images:openxr-sdk.20230323
# container: khronosgroup/docker-images@sha256:20edadbaa6cdec4fed7417c24b18dfb4b93eec940fdf1a27b5f97272dec47032
steps:
- script: ./file_format.sh
displayName: File formatting checks (file_format.sh)
Expand Down
3 changes: 2 additions & 1 deletion .azure-pipelines/shared/codespell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ jobs:
displayName: "codespell"
pool:
vmImage: "ubuntu-latest"
container: khronosgroup/docker-images:openxr-sdk.20230209
container: khronosgroup/docker-images:openxr-sdk.20230323
# container: khronosgroup/docker-images@sha256:20edadbaa6cdec4fed7417c24b18dfb4b93eec940fdf1a27b5f97272dec47032
steps:
- script: ./checkCodespell
displayName: Run Codespell script
5 changes: 4 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,10 @@
*.sh eol=lf

*.png binary
*.pdf binary

# git-lfs big files
*.pdf filter=lfs diff=lfs merge=lfs -text
*.glb filter=lfs diff=lfs merge=lfs -text

# Shell/python scripts that don't end in .sh
specification/makeAllExts eol=lf
Expand Down
25 changes: 25 additions & 0 deletions .github/scripts/CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,31 @@
"CMAKE_SYSTEM_NAME": "WindowsStore",
"CMAKE_SYSTEM_VERSION": "10.0"
}
},
{
"name": ".base-cts-msvc",
"generator": "Visual Studio 17 2022",
"hidden": true,
"installDir": "$env{INSTALL_DIR}",
"cacheVariables": {
"DYNAMIC_LOADER": false,
"BUILD_ALL_EXTENSIONS": true
},
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "cts-win32",
"inherits": ".base-cts-msvc",
"architecture": "Win32"
},
{
"name": "cts-x64",
"inherits": ".base-cts-msvc",
"architecture": "x64"
}
]
}
15 changes: 14 additions & 1 deletion .github/scripts/shared.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

import json
import sys
import os
from dataclasses import dataclass
from itertools import product

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

def has_cts_build(self) -> bool:
# No UWP CTS right now
return not self.uwp and not self.should_skip()

def preset(self) -> str:
if self.uwp:
return f"{self.arch.lower()}_uwp"
Expand All @@ -34,6 +39,9 @@ def preset(self) -> str:
def win_artifact_name(self) -> str:
return f"loader_{self.preset()}"

def win_cts_artifact_name(self) -> str:
return f"loader_{self.preset()}"

def platform_dirname(self) -> str:
if self.uwp:
return f"{self.arch}_uwp"
Expand All @@ -46,9 +54,14 @@ def platform_dirname(self) -> str:

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

CTS_BUILD_CONFIGS = [c for c in _UNFILTERED_BUILD_CONFIGS if c.has_cts_build()]


def output_json(data, variable_name=None):
if variable_name:
print(f"::set-output name={variable_name}::{json.dumps(data)}")
envfile = os.getenv("GITHUB_ENV")
assert envfile
with open(envfile, "w", encoding="utf-8") as fp:
fp.write(f"{variable_name}={json.dumps(data)}")
else:
print(json.dumps(data, indent=4))
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@v3
- name: Get modern CMake and Ninja
uses: lukka/get-cmake@v3.25.2
uses: lukka/get-cmake@v3.26.4

- name: set up JDK 11
uses: actions/setup-java@v3
Expand Down Expand Up @@ -93,7 +93,7 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Get modern CMake and Ninja
uses: lukka/get-cmake@v3.25.2
uses: lukka/get-cmake@v3.26.4
- name: set up JDK 11
uses: actions/setup-java@v3
with:
Expand Down
28 changes: 18 additions & 10 deletions .github/workflows/msvc-build-preset.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2021-2022, Collabora, Ltd.
# Copyright 2021-2023, Collabora, Ltd.
# SPDX-License-Identifier: CC0-1.0

on:
Expand All @@ -9,13 +9,18 @@ on:
type: string
required: true
buildType:
description: "Build type"
description: "Build configuration"
type: string
required: true
default: RelWithDebInfo
artifactName:
description: "Artifact name to upload to."
type: string
required: false
subdir:
description: "Subdir of the workspace to upload as an artifact."
type: string
default: install

jobs:
msvc-build:
Expand All @@ -25,30 +30,33 @@ jobs:
INSTALL_DIR: "${{ github.workspace }}/install"
steps:
- uses: actions/checkout@v3
- uses: lukka/get-cmake@v3.25.2

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

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

- name: Install Vulkan SDK
if: ${{ !contains( inputs.preset, 'uwp') }}
working-directory: ${{ github.workspace }}
shell: pwsh
run: ./.github/scripts/install_vulkan.ps1
if: "${{ !contains( inputs.preset, 'uwp') }}"
working-directory: "${{ github.workspace }}"
shell: pwsh

- name: Generate build system
shell: pwsh
run: |
Copy-Item .github/scripts/CMakePresets.json .
cmake --fresh --preset ${{ inputs.preset }} -S . -B $env:RUNNER_TEMP
- name: Build
run: cmake --build $env:RUNNER_TEMP --parallel --clean-first --config ${{ inputs.buildType }}
run: "cmake --build $env:RUNNER_TEMP --parallel --clean-first --config ${{ inputs.buildType }}"

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

- name: Upload Artifacts
uses: actions/upload-artifact@v3
if: inputs.artifactName
with:
name: ${{ inputs.artifactName }}
path: ${{ github.workspace }}/install
name: "${{ inputs.artifactName }}"
path: "${{ github.workspace }}/${{ inputs.subdir }}"
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ pregen/
generated-includes
cmake_install.cmake
cmake_uninstall.cmake
cmake-build-*

# Marker file for a snapshot build
SNAPSHOT
Expand Down
25 changes: 23 additions & 2 deletions .reuse/dep5
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,27 @@ Copyright: 2007-2010 Baptiste Lepilleur and The JsonCpp Authors
License: MIT OR LicenseRef-jsoncpp-public-domain
Comment: Unmodified, vendored copy of jsoncpp 1.9.5

Files: src/external/tinygltf/*
Copyright: 2017 Syoyo Fujita, Aurélien Chatelain and many contributors
License: MIT
Comment: Unmodified, vendored copy of a subset of the tiny-gltf repo v2.8.9

Files: src/external/tinygltf/json.hpp
Copyright: 2013-2017 Niels Lohmann <http://nlohmann.me>
License: MIT
Comment: Unmodified, included in tiny-gltf repo.

Files: src/external/d3dx12/*
Copyright: Copyright (c) Microsoft Corporation.
License: MIT
Comment: Unmodified, vendored copy of DirectX-Headers commit da7aedb
of https://github.com/microsoft/DirectX-Headers filtered to just d3dx12 headers

Files: src/external/mikktspace/*
Copyright: 2011 by Morten S. Mikkelsen
License: Zlib
Comment: Unmodified, vendored copy of MikkTSpace commit 3e895b4

Files: src/external/jnipp/*
Copyright: 2016-2020, Mitchell Dowd
2020, Collabora, Ltd.
Expand Down Expand Up @@ -67,7 +88,7 @@ Comment: In-line license comments requested, https://gitlab.khronos.org/openxr/o

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

Expand All @@ -76,7 +97,7 @@ Files: src/conformance/platform_specific/android_resources/mipmap-hdpi/*
src/conformance/platform_specific/android_resources/mipmap-xhdpi/*
src/conformance/platform_specific/android_resources/mipmap-xxhdpi/*
src/conformance/platform_specific/android_resources/mipmap-xxxhdpi/*
Copyright: 2020, The Khronos Group Inc.
Copyright: 2020-2023, The Khronos Group Inc.
2020, Google
License: Apache-2.0
Comment: Generated .png versions of an icon, created in Android Studio
Expand Down
Loading

0 comments on commit f5beb01

Please sign in to comment.