Skip to content

Commit 10bdf86

Browse files
committed
OpenXR SDK 1.1.37 (2024-05-23)
This release primarily adds new defines for easier use of both OpenXR 1.0 and 1.1 with up-to-date headers, some documentation improvements, and improvements for Android, including support for using the “API Dump” and “Validation” API layers in your own APK during the development process. - Registry - Addition: New XR_API_VERSION_1_0 and XR_API_VERSION_1_1 defines to allow applications to easily specify OpenXR “major” and “minor” version while passing through the “patch” version. (internal MR 3329, internal MR 3354, internal issue 2254) - Addition: Register Razer vendor ID. (internal MR 3340) - Fix: Add “palm_pose” to “touch_controller_pro” and “touch_controller_plus” in XML. (internal MR 3363) - Improvement: Add Schematron rule to avoid triggering edge cases of vendor tags ending with X. (internal MR 3341) - Reservation: Reserve extension numbers for a few new EXT extensions. (internal MR 3285, internal MR 3292) - Update: Bump version of XR_FB_composition_layer_alpha_blend due to spec text clarification. (internal MR 3317) - SDK - Addition: Ship open-in-docker.sh script for use building the loader design doc. (internal MR 3352, internal issue 2283, OpenXR-SDK-Source issue 476) - Fix: Fix references to Docker container in spec build instructions and clarify that most parts do not apply to the SDK-Source repo. (internal MR 3352, internal issue 2283, OpenXR-SDK-Source issue 476) - Fix: Do not load all Android app-supplied layers as explicit, but rather as their actual type. (OpenXR-SDK-Source PR 475, internal issue 2284) - Improvement: Use new XR_API_VERSION_1_0 and XR_API_VERSION_1_1 defines. (internal MR 3329, internal issue 2254) - Improvement: Add Android support to “api_dump” and “core_validation” API layers. (internal MR 3330) GitOrigin-RevId: b84815a669b7ab8721ff5117872d8af17b601754
1 parent 2e2c7d5 commit 10bdf86

25 files changed

Lines changed: 339 additions & 65 deletions

.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.36.{build}
5+
version: 1.1.37.{build}
66
image: Visual Studio 2017
77

88

.gitattributes

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@
2525
*.png binary
2626

2727
# git-lfs big files
28-
*.pdf filter=lfs diff=lfs merge=lfs -text
29-
*.glb filter=lfs diff=lfs merge=lfs -text
28+
*.pdf filter=lfs diff=lfs merge=lfs -text
29+
*.glb filter=lfs diff=lfs merge=lfs -text
30+
src/conformance/**/*.png filter=lfs diff=lfs merge=lfs -text
3031

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

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ generated-includes
2121
cmake_install.cmake
2222
cmake_uninstall.cmake
2323
cmake-build-*
24+
specification/vendor/bundle/
2425

2526
# Marker file for a snapshot build
2627
SNAPSHOT

.proclamation.json

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,6 @@
2222
"news_filename": "CHANGELOG.Docs.md",
2323
"template": "changes/template.md",
2424
"sections": {
25-
"Major Update": {
26-
"directory": "changes/major",
27-
"sort_by_prefix": true
28-
},
2925
"Registry": {
3026
"directory": "changes/registry",
3127
"sort_by_prefix": true

CHANGELOG.SDK.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,56 @@ 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.37 (2024-05-23)
25+
26+
This release primarily adds new defines for easier use of both OpenXR 1.0 and
27+
1.1 with up-to-date headers, some documentation improvements, and improvements
28+
for Android, including support for using the "API Dump" and "Validation" API
29+
layers in your own APK during the development process.
30+
31+
- Registry
32+
- Addition: New `XR_API_VERSION_1_0` and `XR_API_VERSION_1_1` defines to allow
33+
applications to easily specify OpenXR "major" and "minor" version while passing
34+
through the "patch" version.
35+
([internal MR 3329](https://gitlab.khronos.org/openxr/openxr/merge_requests/3329),
36+
[internal MR 3354](https://gitlab.khronos.org/openxr/openxr/merge_requests/3354),
37+
[internal issue 2254](https://gitlab.khronos.org/openxr/openxr/issues/2254))
38+
- Addition: Register Razer vendor ID.
39+
([internal MR 3340](https://gitlab.khronos.org/openxr/openxr/merge_requests/3340))
40+
- Fix: Add "palm_pose" to "touch_controller_pro" and "touch_controller_plus" in
41+
XML.
42+
([internal MR 3363](https://gitlab.khronos.org/openxr/openxr/merge_requests/3363))
43+
- Improvement: Add Schematron rule to avoid triggering edge cases of vendor tags
44+
ending with X.
45+
([internal MR 3341](https://gitlab.khronos.org/openxr/openxr/merge_requests/3341))
46+
- Reservation: Reserve extension numbers for a few new EXT extensions.
47+
([internal MR 3285](https://gitlab.khronos.org/openxr/openxr/merge_requests/3285),
48+
[internal MR 3292](https://gitlab.khronos.org/openxr/openxr/merge_requests/3292))
49+
- Update: Bump version of `XR_FB_composition_layer_alpha_blend` due to spec text
50+
clarification.
51+
([internal MR 3317](https://gitlab.khronos.org/openxr/openxr/merge_requests/3317))
52+
- SDK
53+
- Addition: Ship `open-in-docker.sh` script for use building the loader design
54+
doc.
55+
([internal MR 3352](https://gitlab.khronos.org/openxr/openxr/merge_requests/3352),
56+
[internal issue 2283](https://gitlab.khronos.org/openxr/openxr/issues/2283),
57+
[OpenXR-SDK-Source issue 476](https://github.com/KhronosGroup/OpenXR-SDK-Source/issues/476))
58+
- Fix: Fix references to Docker container in spec build instructions and clarify
59+
that most parts do not apply to the SDK-Source repo.
60+
([internal MR 3352](https://gitlab.khronos.org/openxr/openxr/merge_requests/3352),
61+
[internal issue 2283](https://gitlab.khronos.org/openxr/openxr/issues/2283),
62+
[OpenXR-SDK-Source issue 476](https://github.com/KhronosGroup/OpenXR-SDK-Source/issues/476))
63+
- Fix: Do not load all Android app-supplied layers as explicit, but rather as
64+
their actual type.
65+
([OpenXR-SDK-Source PR 475](https://github.com/KhronosGroup/OpenXR-SDK-Source/pull/475),
66+
[internal issue 2284](https://gitlab.khronos.org/openxr/openxr/issues/2284))
67+
- Improvement: Use new `XR_API_VERSION_1_0` and `XR_API_VERSION_1_1` defines.
68+
([internal MR 3329](https://gitlab.khronos.org/openxr/openxr/merge_requests/3329),
69+
[internal issue 2254](https://gitlab.khronos.org/openxr/openxr/issues/2254))
70+
- Improvement: Add Android support to "api_dump" and "core_validation" API
71+
layers.
72+
([internal MR 3330](https://gitlab.khronos.org/openxr/openxr/merge_requests/3330))
73+
2474
## OpenXR SDK 1.1.36 (2024-04-15)
2575

2676
This is a substantial update to the OpenXR specification. The OpenXR loader in

changes/sdk/pr.475.gh.OpenXR-SDK-Source.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

maintainer-scripts/common.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ getSDKSourceFilenames() {
154154
checkCodespell \
155155
CMakeLists.txt \
156156
format_file.sh \
157+
open-in-docker.sh \
157158
LICENSE \
158159
openxr-codespell.exclude \
159160
runClangFormat.sh \

open-in-docker.sh

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/bin/bash
2+
# Copyright (c) 2019-2024, The Khronos Group Inc.
3+
# Copyright (c) 2019 Collabora, Ltd.
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
# Start the docker image named below, for spec generation, etc.
7+
# Mounts this directory as the mountpoint mentioned below,
8+
# and logs you in as a normal user whose user ID and group ID match
9+
# your outside-of-container user, thus avoiding mangling permissions.
10+
# Container is automatically removed when you exit it.
11+
12+
# The docker images used are published here:
13+
# https://hub.docker.com/r/khronosgroup/docker-images/tags
14+
#
15+
# with their dockerfile located at:
16+
# https://github.com/KhronosGroup/DockerContainers
17+
18+
# This image/tag is generated from https://github.com/KhronosGroup/DockerContainers/blob/main/openxr.Dockerfile
19+
# Purpose: Spec (pdf/html) generation
20+
IMAGE_NAME=khronosgroup/docker-images:openxr.20240412
21+
MOUNTPOINT=$(pwd)
22+
23+
set -e
24+
# docker pull $IMAGE_NAME
25+
uid=$(id -u)
26+
gid=$(id -g)
27+
docker run -it --rm \
28+
--entrypoint /root/entrypoint.openxr.sh \
29+
-e "USER_ID=$uid" \
30+
-e "GROUP_ID=$gid" \
31+
-e "CONTAINER_CWD=$MOUNTPOINT" \
32+
-v "$MOUNTPOINT:$MOUNTPOINT" \
33+
$IMAGE_NAME "$@"

specification/Makefile

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,13 @@ SHELL = /usr/bin/env bash
77
QUIET ?= @
88
VERYQUIET ?= @
99
PYTHON ?= python3
10+
ifneq (,$(strip $(BUNDLER)))
11+
ASCIIDOC ?= bundle exec asciidoctor --trace
12+
HEXAPDF ?= bundle exec hexapdf
13+
else
1014
ASCIIDOC ?= asciidoctor
15+
HEXAPDF ?= hexapdf
16+
endif
1117
RM = rm -f
1218
RMRF = rm -rf
1319
MKDIR = mkdir -p
@@ -33,7 +39,7 @@ endif
3339
VERSIONS := XR_VERSION_1_0 XR_VERSION_1_1 XR_LOADER_VERSION_1_0
3440
VERSIONOPTIONS := $(foreach version,$(VERSIONS),-feature $(version))
3541

36-
SPECREVISION = 1.1.36
42+
SPECREVISION = 1.1.37
3743
REVISION_COMPONENTS = $(subst ., ,$(SPECREVISION))
3844
MAJORMINORVER = $(word 1,$(REVISION_COMPONENTS)).$(word 2,$(REVISION_COMPONENTS))
3945

@@ -343,7 +349,7 @@ pdfA4: $(PDFA4SPEC)
343349
ASCIIDOCTOR_TARGETS += $(PDFSPEC) $(PDFA4SPEC)
344350

345351
# Target-specific variables and deps customizing the AsciiDoctor rule
346-
$(PDFSPEC) $(PDFA4SPEC): BACKEND_ARGS=--backend pdf --require asciidoctor-pdf -a compress -r ./scripts/pdf-index-customizer.rb
352+
$(PDFSPEC) $(PDFA4SPEC): BACKEND_ARGS=--backend pdf --require asciidoctor-pdf -a compress --require ./scripts/pdf-index-customizer.rb
347353
$(PDFSPEC): PAGESIZE=LETTER
348354
$(PDFA4SPEC): PAGESIZE=A4
349355
$(PDFSPEC) $(PDFA4SPEC): $(COMMONDOCS)
@@ -647,14 +653,17 @@ $(REGISTRYOUTDIR)/headers/openxr: | $(REGISTRYOUTDIR)/headers
647653
$(QUIET)$(MKDIR) "$@"
648654

649655
release-htmlpdf: html pdf $(REGISTRYOUTDIR)/pdf $(REGISTRYOUTDIR)/html
650-
-asciidoctor-pdf-optimize $(PDFSPEC)
651-
$(QUIET)$(CP) $(PDFSPEC) $(REGISTRYOUTDIR)/pdf/$(SPEC_FILENAME_STEM).pdf
656+
$(ECHO) "[hexapdf] $(call MAKE_RELATIVE,$(REGISTRYOUTDIR)/pdf/$(SPEC_FILENAME_STEM).pdf)"
657+
$(QUIET)$(HEXAPDF) optimize --force $(PDFSPEC) $(REGISTRYOUTDIR)/pdf/$(SPEC_FILENAME_STEM).pdf
658+
$(ECHO) "[cp] $(call MAKE_RELATIVE,$(REGISTRYOUTDIR)/html/$(SPEC_FILENAME_STEM).html)"
652659
$(QUIET)$(CP) $(HTMLSPEC) $(REGISTRYOUTDIR)/html/$(SPEC_FILENAME_STEM).html
653660
.PHONY: release-htmlpdf
654661

655662

656663
release: release-htmlpdf manhtmlpages loader styleguide extprocess | $(REGISTRYOUTDIR) $(REGISTRYOUTDIR)/man
664+
$(ECHO) "[cp] $(call MAKE_RELATIVE,$(REGISTRYOUTDIR))/{styleguide,extprocess,loader}.html"
657665
$(QUIET)$(CP) $(OUTDIR)/styleguide.html $(OUTDIR)/extprocess.html $(OUTDIR)/loader.html $(REGISTRYOUTDIR)
666+
$(ECHO) "[cp] $(REGISTRYOUTDIR)/man/html"
658667
$(QUIET)$(CP) -R $(MANHTMLDIR) $(REGISTRYOUTDIR)/man/html
659668
.PHONY: release
660669

specification/README.md

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,13 @@ SPDX-License-Identifier: CC-BY-4.0
88

99
Before building the specification, install the necessary prerequisite tools as described later in this document.
1010

11-
You may instead choose to use the `open-in-docker.sh` script,
12-
which will mount the repository in a container built from an image with all the necessary tools installed.
13-
See that script for more details.
14-
You can find the associated Dockerfile at https://github.com/KhronosGroup/DockerContainers/blob/master/Dockerfile.openxr
11+
You may instead choose to use the `open-in-docker.sh` script, available in the
12+
OpenXR-Docs (spec source) and OpenXR-SDK-Source (SDK, for loader docs build)
13+
repo as well as the internal monorepo. This script which will mount the
14+
repository in a container built from an image with all the necessary tools
15+
installed: these are regularly pushed to Docker Hub. See that script for more
16+
details. You can find the associated Dockerfile at
17+
<https://github.com/KhronosGroup/DockerContainers/blob/main/openxr.Dockerfile>
1518

1619
## Conditional Inclusion of Extensions
1720

@@ -91,6 +94,10 @@ specified by the Makefile variable `$(OUTDIR)` (by default,
9194
It is recommended to build these targets using a "helper" script from above,
9295
unless you want to only build the core spec without any extensions.
9396

97+
Most of these are not supported if building in `OpenXR-SDK-Source`: this
98+
repository is mostly software, and the only contained AsciiDoc content is the
99+
loader design document source.
100+
94101
These targets are currently supported.
95102

96103
* API spec:
@@ -119,6 +126,10 @@ For example:
119126
make styleguide
120127
```
121128

129+
Many of these are not supported if building in `OpenXR-SDK-Source`: this
130+
repository is mostly software, and the only contained AsciiDoc content is the
131+
loader design document source.
132+
122133
* "OpenXR Documentation and Extensions" guide (aka Style Guide):
123134
* `styleguide` - Single-file HTML5 in `$(OUTDIR)/styleguide.html`
124135
* OpenXR Extensions Process guide:
@@ -219,7 +230,8 @@ parts you don't use) completely before trying to install.
219230
> Asciidoctor-pdf versions before `1.5.0.alpha15` have issues with multi-page
220231
valid usage blocks, in that the background only renders for the first page.
221232
`alpha.15` fixes this issue (as well as a few others); do not use prior
222-
versions.
233+
versions. On the other hand, versions later than 1.6.2 break our index
234+
customization script, so 1.6.2 is ideal.
223235

224236
Only the `asciidoctor` and `rouge` gems (and their dependencies) are needed if
225237
you do not intend to build PDF versions of the spec and supporting documents.
@@ -230,6 +242,14 @@ people submitting MRs with substantial changes to the Specification are
230242
responsible for verifying that their branches build *both* `html` and `pdf`
231243
targets.
232244

245+
The easiest way to get the right version of these gems is to use "bundler":
246+
247+
```sh
248+
bundle install
249+
```
250+
251+
Then, pass `BUNDLER=1` to each `make` (or wrapper script) invocation.
252+
233253
### Platforms and System Packages
234254

235255
#### Windows

0 commit comments

Comments
 (0)