Skip to content

Commit

Permalink
OpenXR SDK 1.1.43 (2024-11-27)
Browse files Browse the repository at this point in the history
This release has a few fixes and minor improvements, as well as support
for several new vendor extensions. It also improves the “loader_test”
which was broken on Android. CMake config files are now also included in
the Android loader AAR distributed for this release, for those not using
Gradle and the Android Gradle Plugin’s support of “Prefab” format native
libraries to consume the loader.

-   Registry
    -   Bump version of XR_KHR_vulkan_swapchain_format_list and note
        that it depends on either XR_KHR_vulkan_enable or
        XR_KHR_vulkan_enable2. (internal MR 3418)
    -   Fix: Correctly mark XR_FB_touch_controller_pro and
        XR_META_touch_controller_plus as promoted to 1.1. (internal MR
        3586)
    -   Improvement: Small XML formatting/organization cleanups.
        (internal MR 3610)
    -   New vendor extension: XR_ML_facial_expression (internal MR 3100)
    -   New vendor extension: XR_META_passthrough_layer_resumed_event
        (internal MR 3106)
    -   New vendor extensions: XR_META_colocation_discovery,
        XR_META_spatial_entity_sharing, and
        XR_META_spatial_entity_group_sharing (internal MR 2782)
    -   Reservation: Reserve numbers for spatial extensions. (internal
        MR 3577)
-   SDK
    -   Fix: loader_test: API version in Android assets, fixes test
        breakage since 1.1.x. (internal MR 3598)
    -   Improvement: Loader test: Update Catch2 from v3.3.2 to v3.7.1.
        Provides build- time and runtime performance improvements, among
        other changes. (internal MR 2893)
    -   Improvement: Accept command line options to build-aar.sh,
        including one that allows including CMake configs in case you
        are building for Android but not using Gradle and Android Gradle
        Plugin to consume the .aar. (internal MR 3423)
    -   Improvement: Loader: Update jnipp, used for Android builds. New
        version includes a build fix for some environments, as well as a
        crash fix. (internal MR 3589)
    -   Improvement: Add disable_environment field to the output of
        generate_api_layer_manifest.py script. (internal MR 3591)
    -   Improvement: hello_xr: Add Vulkan debug messages during Vulkan
        instance creation. (internal MR 3592)
    -   Improvement: Loader test: Use Catch2 idiomatic assertions and
        captures to make it easier to debug. (internal MR 3599)

GitOrigin-RevId: 46d1c5e46ca0e9f37d3233f36dbd7a1f8fe8460c
  • Loading branch information
rpavlik committed Nov 27, 2024
1 parent b15ef6c commit 20a38ab
Show file tree
Hide file tree
Showing 323 changed files with 21,372 additions and 7,828 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.42.{build}
version: 1.1.43.{build}
image: Visual Studio 2017


Expand Down
6 changes: 3 additions & 3 deletions .reuse/dep5
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ Comment: Based on a Material Icons asset ("emoji-people") with added text
Rasterized with Android Studio.

Files: src/external/catch2/*
Copyright: Copyright (c) 2023 Two Blue Cubes Ltd.
Copyright: Copyright Catch2 Authors
License: BSL-1.0
Comment: Unmodified, vendored copy of Catch2 v3.3.2
Comment: Unmodified, vendored copy of Catch2 v3.7.1

Files: src/external/jsoncpp/*
Copyright: 2007-2010 Baptiste Lepilleur and The JsonCpp Authors
Expand Down Expand Up @@ -77,7 +77,7 @@ Files: src/external/jnipp/*
Copyright: 2016-2020, Mitchell Dowd
2020, Collabora, Ltd.
License: MIT
Comment: Unmodified, vendored copy of commit e6c415837c5a487809fdbb2f71f1080d454eb99a
Comment: Unmodified, vendored copy of commit v1.0.0-13-gcdd6293

Files: src/external/metal-cpp/*
Copyright: Copyright 2020-2022 Apple Inc.
Expand Down
51 changes: 51 additions & 0 deletions CHANGELOG.SDK.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,57 @@ 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.43 (2024-11-27)

This release has a few fixes and minor improvements, as well as support for
several new vendor extensions. It also improves the "loader_test" which was
broken on Android. CMake config files are now also included in the Android
loader AAR distributed for this release, for those not using Gradle and the
Android Gradle Plugin's support of "Prefab" format native libraries to consume
the loader.

- Registry
- Bump version of `XR_KHR_vulkan_swapchain_format_list` and note that it depends
on either `XR_KHR_vulkan_enable` or `XR_KHR_vulkan_enable2`.
([internal MR 3418](https://gitlab.khronos.org/openxr/openxr/merge_requests/3418))
- Fix: Correctly mark `XR_FB_touch_controller_pro` and
`XR_META_touch_controller_plus` as promoted to 1.1.
([internal MR 3586](https://gitlab.khronos.org/openxr/openxr/merge_requests/3586))
- Improvement: Small XML formatting/organization cleanups.
([internal MR 3610](https://gitlab.khronos.org/openxr/openxr/merge_requests/3610))
- New vendor extension: `XR_ML_facial_expression`
([internal MR 3100](https://gitlab.khronos.org/openxr/openxr/merge_requests/3100))
- New vendor extension: `XR_META_passthrough_layer_resumed_event`
([internal MR 3106](https://gitlab.khronos.org/openxr/openxr/merge_requests/3106))
- New vendor extensions: `XR_META_colocation_discovery`,
`XR_META_spatial_entity_sharing`, and `XR_META_spatial_entity_group_sharing`
([internal MR 2782](https://gitlab.khronos.org/openxr/openxr/merge_requests/2782))
- Reservation: Reserve numbers for spatial extensions.
([internal MR 3577](https://gitlab.khronos.org/openxr/openxr/merge_requests/3577))
- SDK
- Fix: loader_test: API version in Android assets, fixes test breakage since
1.1.x.
([internal MR 3598](https://gitlab.khronos.org/openxr/openxr/merge_requests/3598))
- Improvement: Loader test: Update Catch2 from v3.3.2 to v3.7.1. Provides build-
time and runtime performance improvements, among other changes.
([internal MR 2893](https://gitlab.khronos.org/openxr/openxr/merge_requests/2893))
- Improvement: Accept command line options to `build-aar.sh`, including one that
allows including CMake configs in case you are building for Android but not
using Gradle and Android Gradle Plugin to consume the `.aar`.
([internal MR 3423](https://gitlab.khronos.org/openxr/openxr/merge_requests/3423))
- Improvement: Loader: Update jnipp, used for Android builds. New version
includes a build fix for some environments, as well as a crash fix.
([internal MR 3589](https://gitlab.khronos.org/openxr/openxr/merge_requests/3589))
- Improvement: Add `disable_environment` field to the output of
`generate_api_layer_manifest.py` script.
([internal MR 3591](https://gitlab.khronos.org/openxr/openxr/merge_requests/3591))
- Improvement: hello_xr: Add Vulkan debug messages during Vulkan instance
creation.
([internal MR 3592](https://gitlab.khronos.org/openxr/openxr/merge_requests/3592))
- Improvement: Loader test: Use Catch2 idiomatic assertions and captures to make
it easier to debug.
([internal MR 3599](https://gitlab.khronos.org/openxr/openxr/merge_requests/3599))

## OpenXR SDK 1.1.42 (2024-10-25)

This release updates a vendor extension with renamed enumerants, adds
Expand Down
140 changes: 88 additions & 52 deletions maintainer-scripts/build-aar.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,16 @@ logMsg() {
echo
}

usage() {
echo "Usage: $0 <options> [clean]" 1>&2
echo "" 1>&2
echo " clean Make a clean build. Important for releases, though they are typically done on CI." 1>&2
echo " -s Skip building sources jar" 1>&2
echo " -C Install CMake config files, only needed if not using Gradle to consume" 1>&2
echo " -h Show this help" 1>&2
exit 1
}

ROOT=$(cd "$(dirname "$0")" && cd .. && pwd)

OPENXR_ANDROID_VERSION_SUFFIX=
Expand All @@ -31,6 +41,8 @@ fi

BUILD_DIR=${BUILD_DIR:-${ROOT}/build-android}
INSTALL_DIR=${INSTALL_DIR:-${ROOT}/build-android-install}
SKIP_SOURCES_JAR=false
INSTALL_COMPONENTS=(License Headers Loader Prefab)

ANDROID_STL=c++_static
CONFIG=Release
Expand All @@ -41,13 +53,33 @@ if [ -z "$ANDROID_NDK_HOME" ]; then
exit 1
fi

while getopts ":hsC" o; do

case "${o}" in
C)
INSTALL_COMPONENTS+=(CMakeConfigs)
;;
s)
SKIP_SOURCES_JAR=true
;;
h)
usage
;;
*)
usage
;;
esac
done

logMsg "ANDROID_NDK_HOME: ${ANDROID_NDK_HOME}"
logMsg "ANDROID_STL: ${ANDROID_STL}"
logMsg "CONFIG: ${CONFIG}"
logMsg "ANDROID_PLATFORM: ${ANDROID_PLATFORM}"

logMsg "BUILD_DIR: ${BUILD_DIR}"
logMsg "INSTALL_DIR: ${INSTALL_DIR}"
logMsg "INSTALL_COMPONENTS: ${INSTALL_COMPONENTS[*]}"
logMsg "SKIP_SOURCES_JAR: ${SKIP_SOURCES_JAR}"

logMsg "Wiping install staging dir"
rm -rf "${INSTALL_DIR}"
Expand All @@ -65,28 +97,28 @@ fi
for arch in x86 x86_64 armeabi-v7a arm64-v8a; do
logMsg "Configuring and building for arch ${arch}"
cmake -S "${ROOT}" \
-B "${BUILD_DIR}/${arch}" \
-G Ninja \
"-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake" \
"-DCMAKE_ANDROID_NDK=${ANDROID_NDK_HOME}" \
-DANDROID_ABI=${arch} \
-DANDROID_PLATFORM=${ANDROID_PLATFORM} \
-DANDROID_STL=${ANDROID_STL} \
"-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}/openxr" \
-DCMAKE_BUILD_TYPE=${CONFIG} \
-DINSTALL_TO_ARCHITECTURE_PREFIXES=ON \
-DBUILD_TESTS=OFF \
-DBUILD_CONFORMANCE_TESTS=OFF \
-DBUILD_LOADER=ON \
-DBUILD_API_LAYERS=OFF \
"-DOPENXR_ANDROID_VERSION_SUFFIX=${OPENXR_ANDROID_VERSION_SUFFIX}"
-B "${BUILD_DIR}/${arch}" \
-G Ninja \
"-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake" \
"-DCMAKE_ANDROID_NDK=${ANDROID_NDK_HOME}" \
-DANDROID_ABI=${arch} \
-DANDROID_PLATFORM=${ANDROID_PLATFORM} \
-DANDROID_STL=${ANDROID_STL} \
"-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}/openxr" \
-DCMAKE_BUILD_TYPE=${CONFIG} \
-DINSTALL_TO_ARCHITECTURE_PREFIXES=ON \
-DBUILD_TESTS=OFF \
-DBUILD_CONFORMANCE_TESTS=OFF \
-DBUILD_LOADER=ON \
-DBUILD_API_LAYERS=OFF \
"-DOPENXR_ANDROID_VERSION_SUFFIX=${OPENXR_ANDROID_VERSION_SUFFIX}"

ninja -C "${BUILD_DIR}/${arch}"

logMsg "Installing for arch ${arch}"

# Component-wise install of the build, since we do not want all components
for comp in License Headers Loader Prefab; do
for comp in "${INSTALL_COMPONENTS[@]}"; do
cmake --install "${BUILD_DIR}/${arch}/" --strip --component "${comp}"
done
done
Expand All @@ -105,28 +137,31 @@ EXTRA_MANIFEST_ENTRIES="${BUILD_DIR}/x86/src/loader/additional_manifest.mf"
logMsg "AAR file created: ${AARFILE}"
)

logMsg "Archiving SDK sources"
SOURCES_JAR_ROOT=sources-jar
SOURCES_NAMESPACE_PATH=org/khronos/openxr/openxr_loader_for_android
rm -f OpenXR-SDK.tar.gz
rm -rf ${SOURCES_JAR_ROOT}
mkdir -p ${SOURCES_JAR_ROOT}/${SOURCES_NAMESPACE_PATH}
maintainer-scripts/archive-sdk.sh

logMsg "Repacking SDK sources as a sources jar"
SOURCESFILE="$ROOT/${DECORATED%.pom}-sources.jar"
(
cd ${SOURCES_JAR_ROOT}/${SOURCES_NAMESPACE_PATH}
tar xf "${ROOT}/OpenXR-SDK.tar.gz"

# Add files we want, for reproducibility
mkdir -p maintainer-scripts
cp "${ROOT}/maintainer-scripts/build-aar.sh" maintainer-scripts
cp "${ROOT}/maintainer-scripts/archive-sdk.sh" maintainer-scripts
cp "${ROOT}/maintainer-scripts/common.sh" maintainer-scripts

# Drop files/dirs we don't care about
rm -rf \
if $SKIP_SOURCES_JAR; then
logMsg "Skipping sources jar"
else
logMsg "Archiving SDK sources"
SOURCES_JAR_ROOT=sources-jar
SOURCES_NAMESPACE_PATH=org/khronos/openxr/openxr_loader_for_android
rm -f OpenXR-SDK.tar.gz
rm -rf ${SOURCES_JAR_ROOT}
mkdir -p ${SOURCES_JAR_ROOT}/${SOURCES_NAMESPACE_PATH}
maintainer-scripts/archive-sdk.sh

logMsg "Repacking SDK sources as a sources jar"
SOURCESFILE="$ROOT/${DECORATED%.pom}-sources.jar"
(
cd ${SOURCES_JAR_ROOT}/${SOURCES_NAMESPACE_PATH}
tar xf "${ROOT}/OpenXR-SDK.tar.gz"

# Add files we want, for reproducibility
mkdir -p maintainer-scripts
cp "${ROOT}/maintainer-scripts/build-aar.sh" maintainer-scripts
cp "${ROOT}/maintainer-scripts/archive-sdk.sh" maintainer-scripts
cp "${ROOT}/maintainer-scripts/common.sh" maintainer-scripts

# Drop files/dirs we don't care about
rm -rf \
.appveyor.yml \
.azure-pipelines \
.editorconfig \
Expand All @@ -136,24 +171,25 @@ SOURCESFILE="$ROOT/${DECORATED%.pom}-sources.jar"
.gitignore \
doc

# Drop licenses not actually used in this code, based on `reuse lint` in OpenXR-SDK
rm -f \
# Drop licenses not actually used in this code, based on `reuse lint` in OpenXR-SDK
rm -f \
LICENSES/OFL-1.1-RFN.txt \
LICENSES/Unlicense.txt \
LICENSES/LicenseRef-Khronos-Free-Use-License-for-Software-and-Documentation.txt \
LICENSES/ISC.txt \
LICENSES/LicenseRef-KhronosSpecCopyright-WithNormativeWording-v10.txt \
LICENSES/Zlib.txt

# Remove the bare copy of Apache-2.0 named LICENSE since it is confusing.
rm -f LICENSE

# Move the copying and license files to the jar root
mv COPYING.adoc "$ROOT/${SOURCES_JAR_ROOT}"
mv LICENSES "$ROOT/${SOURCES_JAR_ROOT}"
)
(
cd ${SOURCES_JAR_ROOT}
jar --create --file="${SOURCESFILE}" "--manifest=${EXTRA_MANIFEST_ENTRIES}" ./*
logMsg "Sources JAR file created: ${SOURCESFILE}"
)
# Remove the bare copy of Apache-2.0 named LICENSE since it is confusing.
rm -f LICENSE

# Move the copying and license files to the jar root
mv COPYING.adoc "$ROOT/${SOURCES_JAR_ROOT}"
mv LICENSES "$ROOT/${SOURCES_JAR_ROOT}"
)
(
cd ${SOURCES_JAR_ROOT}
jar --create --file="${SOURCESFILE}" "--manifest=${EXTRA_MANIFEST_ENTRIES}" ./*
logMsg "Sources JAR file created: ${SOURCESFILE}"
)
fi
4 changes: 2 additions & 2 deletions specification/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ endif
VERSIONS := XR_VERSION_1_0 XR_VERSION_1_1 XR_LOADER_VERSION_1_0
VERSIONOPTIONS := $(foreach version,$(VERSIONS),-feature $(version))

SPECREVISION = 1.1.42
SPECREVISION = 1.1.43
REVISION_COMPONENTS = $(subst ., ,$(SPECREVISION))
MAJORMINORVER = $(word 1,$(REVISION_COMPONENTS)).$(word 2,$(REVISION_COMPONENTS))

Expand Down Expand Up @@ -351,7 +351,7 @@ ASCIIDOCTOR_TARGETS += $(PDFSPEC) $(PDFA4SPEC)

# Target-specific variables and deps customizing the AsciiDoctor rule
# EXTRAATRIBS is for build-time customization
$(PDFSPEC) $(PDFA4SPEC): BACKEND_ARGS=--backend pdf --require asciidoctor-pdf -a compress --require ./scripts/pdf-index-customizer.rb $(EXTRAATTRIBS)
$(PDFSPEC) $(PDFA4SPEC): BACKEND_ARGS=--backend pdf --require asciidoctor-pdf -a compress --require ./scripts/pdf-index-customizer.rb $(EXTRAATTRIBS)
$(PDFSPEC): PAGESIZE=LETTER
$(PDFA4SPEC): PAGESIZE=A4
$(PDFSPEC) $(PDFA4SPEC): $(COMMONDOCS)
Expand Down
Loading

0 comments on commit 20a38ab

Please sign in to comment.