Skip to content

Commit

Permalink
OpenXR Specification 1.0.27 (2023-03-21)
Browse files Browse the repository at this point in the history
This release contains a large list of improvements, including
interaction profile definitions in machine-readable format in the XML,
consistent tool-based formatting of the XML, several spec cleanups and
clarifications, and a wide variety of new vendor and multi-vendor
extensions.

-   Registry
    -   Add interaction profile definitions to xr.xml (internal MR 2485)
    -   Chore: Format the full XML API registry with PrettyRegistryXML,
        making some small changes by hand to clean up. (internal MR
        2540, internal MR 2329, OpenXR-SDK-Source PR 373, OpenXR-Docs PR
        14, OpenXR-CTS PR 50, OpenXR-SDK PR 12)
    -   Document how to generate a standalone header file for an
        extension. (internal MR 2627)
    -   Extension reservation: Register author ID and reserve vendor
        extensions for Logitech. (internal MR 2504)
    -   Extension reservation: Reserve an extension number for a
        multi-vendor extension. (internal MR 2520)
    -   Extension reservation: Reserve an extension for
        XR_EXT_hand_tracking_usage (internal MR 2550)
    -   Extension reservation: Reserve extension id 430 for
        XR_EXT_plane_detection (internal MR 2565)
    -   Extension reservation: Reserve vendor extensions for Monado.
        (internal MR 2613)
    -   Extension reservation: Reserve vendor extensions for ACER.
        (OpenXR-Docs PR 142)
    -   Extension reservation: Reserve a vendor extension for OPPO.
        (OpenXR-Docs PR 145)
    -   New vendor extension: XR_FB_composition_layer_depth_test
        (internal MR 2208, internal issue 1657)
    -   New vendor extension: XR_META_foveation_eye_tracked (internal MR
        2239, internal MR 2273, internal MR 2332)
    -   New vendor extension: XR_QCOM_tracking_optimization_settings
        (internal MR 2261, internal issue 1703)
    -   New vendor extension: XR_META_local_dimming (internal MR 2267,
        internal MR 2595)
    -   New vendor extension: XR_FB_spatial_entity_sharing (internal MR
        2274)
    -   New vendor extension: XR_FB_scene_capture (internal MR 2286)
    -   New vendor extension: XR_FB_spatial_entity_storage_batch
        (internal MR 2312)
    -   New vendor extension: XR_FB_haptic_amplitude_envelope (internal
        MR 2326)
    -   New vendor extension: XR_FB_touch_controller_pro (internal MR
        2327, internal issue 1916)
    -   New vendor extension: XR_FB_haptic_pcm (internal MR 2329)
    -   New vendor extension: FB_face_tracking (internal MR 2334,
        internal MR 2539)
    -   New vendor extension: XR_FB_eye_tracking_social (internal MR
        2336, internal MR 2576)
    -   New vendor extension: XR_FB_body_tracking (internal MR 2339,
        internal MR 2575)
    -   New vendor extension: XR_OCULUS_external_camera (internal MR
        2397, internal MR 2344)
    -   New vendor extension: XR_FB_spatial_entity_user (internal MR
        2407)
    -   New vendor extension: XR_FB_touch_controller_proximity (internal
        MR 2412)
    -   New vendor extension: XR_ML_global_dimmer (internal MR 2461)
    -   New vendor extension: XR_ML_frame_end_info (internal MR 2462,
        internal MR 2536)
    -   New vendor extension: XR_ML_compat (internal MR 2473)
    -   New vendor extension: XR_EXT_local_floor (internal MR 2503,
        internal issue 746, internal issue 1606, OpenXR-Docs issue 103)
    -   New vendor extension: XR_BD_controller_interaction (internal MR
        2527)
    -   New vendor extension: XR_MNDX_force_feedback_curl (OpenXR-Docs
        PR 136)
    -   Register author ID for Matthieu Bucchianeri. (OpenXR-Docs PR
        143)
    -   Rename tag name to a short one for ByteDance. (internal MR 2502)
    -   Schema: Add initial tests for Schematron rules. (internal MR
        2512)
    -   Schema: Add author ID schematron checks and change duplicate
        name/number report to an assert (internal MR 2514)
    -   Schema: Fix Relax-NG checks of naming convention, and add naming
        convention checks to Schematron. (internal MR 2538)
    -   Schematron: Update extension naming rule to allow for vendor
        tags to be followed by an X for experimental and a version
        number (internal MR 2518)
    -   scripts: Let deprecated override provisional when choosing
        extension table of contents section. (internal MR 2547)
    -   scripts: Fix leftover exclusion of extensions/meta from
        checkMarkup now that it no longer generated files. (internal MR
        2560)
-   Specification
    -   Add missing “IP Status” data to XR_FB_display_refresh_rate.
        (internal MR 2439)
    -   Added the function call for xrPollEvent to the typical XR app
        sample. (internal MR 2605)
    -   Clarify that passing 0 for elementCapacityInput in two-call
        idiom functions is explicitly valid usage, but there may be
        other reasons that an error is returned. (internal MR 2492)
    -   Clarify that system vendor ids match USB vendor ids. (internal
        MR 2634)
    -   Clean up markup of various two-call idiom mentions in the core.
        (internal MR 2619)
    -   Fix use of normatives in paragraph introducing the concept of
        extensions. (internal MR 2466)
    -   Fix a language error in xrDestroySpace description language: it
        destroys a space, not creates one. (internal MR 2516)
    -   Fix broken internal links in XR_FB_triangle_mesh specification.
        (internal MR 2593)
    -   Fix typo in description of function pointer naming in Appendix.
        (internal MR 2599)
    -   Fix typos in Fundamentals chapter (internal MR 2608)
    -   Fixed sample code which was missing specifying the view
        configuration type to locate with xrLocateViews (internal MR
        2624)
    -   Include documentation of XR_TRUE and XR_FALSE values in spec and
        reference pages. (internal MR 2466)
    -   Make structure initialization in sample code more consistent.
        (internal MR 2557)
    -   New vendor extension specification:
        XR_FB_composition_layer_depth_test (internal MR 2208, internal
        issue 1657)
    -   New vendor extension specification:
        XR_META_foveation_eye_tracked (internal MR 2239, internal MR
        2273, internal MR 2332)
    -   New vendor extension specification:
        XR_QCOM_tracking_optimization_settings (internal MR 2261,
        internal issue 1703)
    -   New vendor extension specification: XR_META_local_dimming
        (internal MR 2267)
    -   New vendor extension specification: XR_FB_spatial_entity_sharing
        (internal MR 2274)
    -   New vendor extension specification: XR_FB_scene_capture
        (internal MR 2286)
    -   New vendor extension specification:
        XR_FB_spatial_entity_storage_batch (internal MR 2312)
    -   New vendor extension specification:
        XR_FB_haptic_amplitude_envelope (internal MR 2326)
    -   New vendor extension specification: XR_FB_touch_controller_pro
        (internal MR 2327)
    -   New vendor extension specification: XR_FB_haptic_pcm (internal
        MR 2329)
    -   New vendor extension specification: XR_FB_face_tracking
        (internal MR 2334, internal MR 2608)
    -   New vendor extension specification: XR_FB_eye_tracking_social
        (internal MR 2336)
    -   New vendor extension specification: XR_FB_body_tracking
        (internal MR 2339)
    -   New vendor extension specification: XR_OCULUS_external_camera
        (internal MR 2397)
    -   New vendor extension specification: XR_FB_spatial_entity_user
        (internal MR 2407)
    -   New vendor extension specification:
        XR_FB_touch_controller_proximity (internal MR 2412)
    -   New vendor extension specification: XR_ML_global_dimmer
        (internal MR 2461)
    -   New vendor extension specification: XR_ML_frame_end_info
        (internal MR 2462, internal MR 2536, internal MR 2561)
    -   New vendor extension specification: XR_ML_compat (internal MR
        2473)
    -   New vendor extension specification: XR_EXT_local_floor (internal
        MR 2503, internal issue 746, internal issue 1606, OpenXR-Docs
        issue 103)
    -   New vendor extension specification: XR_BD_controller_interaction
        (internal MR 2527)
    -   New vendor extension specification: XR_MNDX_force_feedback_curl
        (OpenXR-Docs PR 136)
    -   Reserve Monado vendor ID (internal MR 2633)
    -   Style guide: Adjust examples to avoid broken links. (internal MR
        2597)
    -   Style guide: Make vendor IDs start above 0x10000. (internal MR
        2633)
    -   Update specification license to the most recent v10
        “KhronosSpecCopyright”, with notice about vendor extensions
        conditionally included. (internal MR 2573, internal issue 1880,
        internal MR 2612)
    -   Update spec PDF diff tool for PyPDF2 v3 (internal MR 2608)
    -   Update XR_VARJO_foveated_rendering sample code with a missing
        initialization (internal MR 2636)
    -   Update URL for glTF 2.0 specification in vendor extensions.
        (internal MR 2648)
    -   Update URLs with branch names in scripts. (internal MR 2648)
    -   Updated session lifecycle diagram to clarify the exiting
        conditions when app is running without non-XR experience.
        (internal MR 2594, internal issue 1729)
    -   scripts: Fix generating wrong alias when having enum with
        extends in xr.xml using genxr.py (internal MR 2509)
    -   scripts: Clean up makefile and update link to Vulkan spec.
        (internal MR 2596)
  • Loading branch information
rpavlik committed Mar 22, 2023
1 parent cfdb9f7 commit cc81ecb
Show file tree
Hide file tree
Showing 287 changed files with 7,891 additions and 1,447 deletions.
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2017-2022, The Khronos Group Inc.
# Copyright (c) 2017-2023, The Khronos Group Inc.
#
# SPDX-License-Identifier: Apache-2.0

Expand Down
23 changes: 22 additions & 1 deletion .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2021-2022, The Khronos Group Inc. Inc.
# Copyright 2021-2023, The Khronos Group Inc. Inc.
#
# SPDX-License-Identifier: CC-BY-4.0

Expand Down Expand Up @@ -40,3 +40,24 @@ bd1f05a6f5da8662c6969996177063a5a98bf0ea

# OpenXR-CTS
1224c0ba88b6f000a5f00f56c0dbb8265a6c6350


## 1.0.27 - Bulk-apply PrettyRegistryXML

# Khronos GitLab (commit also includes adding an extension)
ff2037bc6aa951610f4e21d133056d3f547d2374

# Khronos GitLab (finishing formatting)
4bb0766ec6d7101b17b0bc02ba04c86c4159bd16

# OpenXR-Docs
09b6b4bae7d691e1406ee6951e5ab8ed4e620ff3

# OpenXR-SDK-Source
2c1b77dcdc6ace701e4b08477e5fae5312a866b4

# OpenXR-CTS
e774b36cfc7bfc721e97de6c8435fcb14866e6fa

# OpenXR-SDK
db11d03216666f2b574da46a39c4b565dbe90124
2 changes: 1 addition & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2017-2022, The Khronos Group Inc.
# Copyright (c) 2017-2023, The Khronos Group Inc.
#
# SPDX-License-Identifier: Apache-2.0

Expand Down
10 changes: 9 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
# Copyright (c) 2017-2022, The Khronos Group Inc.
# Copyright (c) 2017-2023, The Khronos Group Inc.
#
# SPDX-License-Identifier: Apache-2.0

/build/
build*/
CMakeLists.txt.user
CMakeCache.txt
CMakeFiles
*/CMakeFiles
*.orig
.*
*~
*.tar
*.tar.gz
*.log
pregen/
generated-includes
cmake_install.cmake
cmake_uninstall.cmake

# Marker file for a snapshot build
SNAPSHOT
Expand All @@ -35,6 +41,8 @@ out/build/
# VS misc
*.sln
*.pyproj
*.vcxproj
*.vcxproj.filters
CMakeSettings.json
CppProperties.json

Expand Down
2 changes: 1 addition & 1 deletion .proclamation.json.license
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2020 Collabora, Ltd. and the Proclamation contributors
Copyright (c) 2020-2022, The Khronos Group Inc.
Copyright (c) 2020-2023, The Khronos Group Inc.

SPDX-License-Identifier: CC0-1.0
17 changes: 13 additions & 4 deletions .reuse/dep5
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,13 @@ Upstream-Contact: Ryan Pavlik <openxr-speceditor AT khronos DOT org>
Source: https://khronos.org/registry/OpenXR/

Files: changes/*
Copyright: 2019-2022, The Khronos Group Inc.
Copyright: 2019-2023, The Khronos Group Inc.
License: CC-BY-4.0

Files: specification/config/copyright-spec.adoc
Copyright: 2014-2023 The Khronos Group Inc
License: LicenseRef-KhronosSpecCopyright-WithNormativeWording-v10

Files: src/tests/hello_xr/android_resources/vulkan/mipmap-xxhdpi/ic_helloxr_launcher.png
src/tests/hello_xr/android_resources/vulkan/mipmap-mdpi/ic_helloxr_launcher.png
src/tests/hello_xr/android_resources/vulkan/mipmap-xhdpi/ic_helloxr_launcher.png
Expand All @@ -17,13 +21,18 @@ Files: src/tests/hello_xr/android_resources/vulkan/mipmap-xxhdpi/ic_helloxr_laun
src/tests/hello_xr/android_resources/opengles/mipmap-xhdpi/ic_helloxr_launcher.png
src/tests/hello_xr/android_resources/opengles/mipmap-hdpi/ic_helloxr_launcher.png
src/tests/hello_xr/android_resources/opengles/mipmap-xxxhdpi/ic_helloxr_launcher.png
Copyright: Copyright (c) 2020-2022, The Khronos Group Inc.
Copyright: Copyright (c) 2020-2023, The Khronos Group Inc.
Copyright (c) 2020, Google
License: Apache-2.0
Comment: Based on a Material Icons asset ("emoji-people") with added text
in "Miriam Libre" Bold, converted to path, and manually simplified.
Rasterized with Android Studio.

Files: src/external/catch2/*
Copyright: Copyright (c) 2022 Two Blue Cubes Ltd.
License: BSL-1.0
Comment: Unmodified, vendored copy of Catch2 3.1.1

Files: src/external/jsoncpp/*
Copyright: 2007-2010 Baptiste Lepilleur and The JsonCpp Authors
License: MIT OR LicenseRef-jsoncpp-public-domain
Expand All @@ -33,7 +42,7 @@ Files: src/external/jnipp/*
Copyright: 2016-2020, Mitchell Dowd
2020, Collabora, Ltd.
License: MIT
Comment: Ryan Pavlik at Collabora's fork
Comment: Unmodified, vendored copy of commit e6c415837c5a487809fdbb2f71f1080d454eb99a

Files: external/python/jinja2/*
external/python/Jinja2-2.10.3.dist-info/*
Expand Down Expand Up @@ -74,6 +83,6 @@ Comment: Generated .png versions of an icon, created in Android Studio
based on a Material Icons asset.

Files: specification/scripts/vuidCounts.py
Copyright: 2022 The Khronos Group Inc.
Copyright: 2022-2023, The Khronos Group Inc.
License: Apache-2.0
Comment: File automatically rewritten by VUID assignment.
235 changes: 233 additions & 2 deletions CHANGELOG.Docs.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

<!--
Copyright (c) 2014-2022, The Khronos Group Inc.
Copyright (c) 2014-2023, The Khronos Group Inc.
SPDX-License-Identifier: CC-BY-4.0
-->
Expand Down
2 changes: 1 addition & 1 deletion COPYING.adoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
= COPYING.adoc for the Khronos Group OpenXR projects

// Copyright (c) 2020-2022, The Khronos Group Inc.
// Copyright (c) 2020-2023, The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
Copyright (c) 2017-2023, The Khronos Group Inc.

This Specification is protected by copyright laws and contains material
proprietary to Khronos.
Except as described by these terms, it or any components may not be
reproduced, republished, distributed, transmitted, displayed, broadcast or
otherwise exploited in any manner without the express prior written
permission of Khronos.

Khronos grants a conditional copyright license to use and reproduce the
unmodified Specification for any purpose, without fee or royalty, EXCEPT no
licenses to any patent, trademark or other intellectual property rights are
granted under these terms.

Khronos makes no, and expressly disclaims any, representations or
warranties, express or implied, regarding this Specification, including,
without limitation: merchantability, fitness for a particular purpose,
non-infringement of any intellectual property, correctness, accuracy,
completeness, timeliness, and reliability.
Under no circumstances will Khronos, or any of its Promoters, Contributors
or Members, or their respective partners, officers, directors, employees,
agents or representatives be liable for any damages, whether direct,
indirect, special or consequential damages for lost revenues, lost profits,
or otherwise, arising from or in connection with these materials.

The Khronos Intellectual Property Rights Policy defines the terms 'Scope',
'Compliant Portion', and 'Necessary Patent Claims'.

Some parts of this Specification are purely informative and so are EXCLUDED
from the Scope of this Specification.
The <<introduction-document-conventions,Document Conventions>> section of
the <<introduction>> defines how these parts of the Specification are
identified.

Where this Specification uses technical terminology, defined in the
<<glossary, Glossary>> or otherwise, that refer to enabling technologies
that are not expressly set forth in this Specification, those enabling
technologies are EXCLUDED from the Scope of this Specification.
For clarity, enabling technologies not disclosed with particularity in this
Specification (e.g. semiconductor manufacturing technology, hardware
architecture, processor architecture or microarchitecture, memory
architecture, compiler technology, object oriented technology, basic
operating system technology, compression technology, algorithms, and so on)
are NOT to be considered expressly set forth; only those application program
interfaces and data structures disclosed with particularity are included in
the Scope of this Specification.

For purposes of the Khronos Intellectual Property Rights Policy as it
relates to the definition of Necessary Patent Claims, all recommended or
optional features, behaviors and functionality set forth in this
Specification, if implemented, are considered to be included as Compliant
Portions.

83 changes: 0 additions & 83 deletions LICENSES/LicenseRef-KhronosSpecCopyright.txt

This file was deleted.

10 changes: 5 additions & 5 deletions changes/registry/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,23 @@ following as templates.

For adding/enabling a vendor/multi-vendor extension:

> Add `XR_MYVENDOR_myextension` vendor extension.
> New vendor extension: `XR_MYVENDOR_myextension`
- Add "provisional" before "vendor" if required.
- If this is an EXT multi-vendor extension, change "vendor" to "multi-vendor".

For adding/enabling a KHR or KHX extension:

> Add ratified `XR_KHR_myextension` Khronos extension.
> New ratified Khronos extension: `XR_KHR_myextension`
- Add "provisional" before "Khronos" if it is a KHX extension.
- Note that these all require the review period and board ratification!

For reserving one or more extensions:

> Reserve a vendor extension for VendorName.
> Extension reservation: Reserve an extension for VendorName.
- Pluralize if reserving multiple extensions
- May pre-pend "Register author ID and" if applicable.
- Pluralize "an extension" if reserving multiple extensions
- May pre-pend "Register author ID and" if applicable (after the colon).
- You may optionally provide information about your plans for those extensions,
but this is not required, just permitted.
1 change: 0 additions & 1 deletion changes/registry/pr.136.gh.OpenXR-Docs.md

This file was deleted.

1 change: 0 additions & 1 deletion changes/registry/pr.142.gh.OpenXR-Docs.md

This file was deleted.

1 change: 0 additions & 1 deletion changes/registry/pr.145.gh.OpenXR-Docs.md

This file was deleted.

1 change: 0 additions & 1 deletion changes/registry/pr143.gh.OpenXR-Docs.md

This file was deleted.

4 changes: 2 additions & 2 deletions changes/specification/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ the following as templates.

For adding/enabling a vendor/multi-vendor extension:

> Document new `XR_MYVENDOR_myextension` vendor extension.
> New vendor extension specification: `XR_MYVENDOR_myextension`
- Add "provisional" before "vendor" if required.
- If this is an EXT multi-vendor extension, change "vendor" to "multi-vendor".

For adding/enabling a KHR or KHX extension:

> Document new ratified `XR_KHR_myextension` Khronos extension.
> New ratified Khronos extension specification: `XR_KHR_myextension`
- Add "provisional" before "Khronos" if it is a KHX extension.
- Note that these all require the review period and board ratification!
1 change: 0 additions & 1 deletion changes/specification/pr.136.gh.OpenXR-Docs.md

This file was deleted.

2 changes: 1 addition & 1 deletion checkCodespell
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (c) 2019-2022, The Khronos Group Inc.
# Copyright (c) 2019-2023, The Khronos Group Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
Expand Down
2 changes: 1 addition & 1 deletion include/generated_header_list.txt.license
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2017-2022, The Khronos Group Inc.
Copyright (c) 2017-2023, The Khronos Group Inc.

SPDX-License-Identifier: Apache-2.0

Expand Down
4 changes: 2 additions & 2 deletions include/openxr/openxr_platform_defines.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
** Copyright (c) 2017-2022, The Khronos Group Inc.
** Copyright (c) 2017-2023, The Khronos Group Inc.
**
** SPDX-License-Identifier: Apache-2.0 OR MIT
*/
Expand Down Expand Up @@ -65,7 +65,7 @@ typedef unsigned __int64 uint64_t;
#endif // !defined( XR_NO_STDINT_H )

// XR_PTR_SIZE (in bytes)
#if (defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__))
#if (defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined(_M_IA64) || defined(__aarch64__) || defined(__powerpc64__))
#define XR_PTR_SIZE 8
#else
#define XR_PTR_SIZE 4
Expand Down
Loading

0 comments on commit cc81ecb

Please sign in to comment.