Skip to content

Commit

Permalink
OpenXR Specification 1.1.42 (2024-10-25)
Browse files Browse the repository at this point in the history
This release contains a collection of specification clarifications, an
updated vendor extension with renamed enumerants, and substantial
improvements and fixes to the XML registry, particularly the description
of interaction profiles.

-   Registry
    -   Fix: Update schema to reflect that XrPathString_t should allow
        dash in interaction profile paths. (internal MR 3493)
    -   Fix: XR_VARJO_xr4_controller_interaction did not properly define
        its interaction profile in XML. (internal MR 3493, internal MR
        3548)
    -   Fix: Correct XML description of OpenXR 1.1 related additions to
        the promoted Meta Touch Plus, Touch Pro, and Touch (Rift CV1)
        controller interaction profiles. (internal MR 3513, internal
        issue 2350, internal issue 2375)
    -   Fix: Add missing XML description of EXT_hand_interaction
        additions to several interaction profiles, and add comments to
        clarify where profile additions should be located. (internal MR
        3517, internal MR 3541, internal MR 3552)
    -   Fix: Corrections to the Schema chapter of the style guide.
        (internal MR 3521)
    -   Improvement: Small consistency clean-up. (internal MR 3512)
    -   Improvement: Clean up .rnc schema to improve readability.
        (internal MR 3521)
    -   Scripts: Improve update_version.py used in release process.
        (internal MR 3543)
    -   Update: Change naming convention in XR_HTC_facial_expression:
        rename XR_LIP_EXPRESSION_MOUTH_SMILE_RIGHT_HTC to
        XR_LIP_EXPRESSION_MOUTH_RAISER_RIGHT_HTC,
        XR_LIP_EXPRESSION_MOUTH_SMILE_LEFT_HTC to
        XR_LIP_EXPRESSION_MOUTH_RAISER_LEFT_HTC,
        XR_LIP_EXPRESSION_MOUTH_SAD_RIGHT_HTC to
        XR_LIP_EXPRESSION_MOUTH_STRETCHER_RIGHT_HTC and
        XR_LIP_EXPRESSION_MOUTH_SAD_LEFT_HTC to
        XR_LIP_EXPRESSION_MOUTH_STRETCHER_LEFT_HTC, providing the old
        names as compatibility aliases. (internal MR 3408)
-   Specification
    -   Clarify: In “Fundamentals,” improve the language regarding
        forward/backward prediction/history time limits, without
        affecting behavior. (internal MR 3063)
    -   Clarify: The path(s) returned by
        xrEnumerateBoundSourcesForAction have no inherent semantic
        meaning nor association with other paths in the specification.
        They are opaque and only suitable for use with
        xrGetInputSourceLocalizedName. (internal MR 3495)
    -   Fix: Show the correct ratified-specific text in the copyright
        section for the KHR-only spec build. (internal MR 3568, internal
        issue 2388)
    -   Improvement: Clarify XR_VARJO_xr4_controller_interaction
        interaction with palm pose extension and grip surface. (internal
        MR 3493)
    -   Improvement: Clarify text and normatives related to
        xrGetInstanceProcAddr, without changing required behavior.
        (internal MR 3512)
    -   Update: Change naming convention in XR_HTC_facial_expression:
        rename XR_LIP_EXPRESSION_MOUTH_SMILE_RIGHT_HTC to
        XR_LIP_EXPRESSION_MOUTH_RAISER_RIGHT_HTC,
        XR_LIP_EXPRESSION_MOUTH_SMILE_LEFT_HTC to
        XR_LIP_EXPRESSION_MOUTH_RAISER_LEFT_HTC,
        XR_LIP_EXPRESSION_MOUTH_SAD_RIGHT_HTC to
        XR_LIP_EXPRESSION_MOUTH_STRETCHER_RIGHT_HTC and
        XR_LIP_EXPRESSION_MOUTH_SAD_LEFT_HTC to
        XR_LIP_EXPRESSION_MOUTH_STRETCHER_LEFT_HTC, providing the old
        names as compatibility aliases. (internal MR 3408)

GitOrigin-RevId: 38dd67e911b3578f6d1c2da497b8c3d3b605c354
  • Loading branch information
rpavlik committed Oct 25, 2024
1 parent 45d95a6 commit f6e201c
Show file tree
Hide file tree
Showing 32 changed files with 404 additions and 147 deletions.
2 changes: 1 addition & 1 deletion .reuse/dep5
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ Files: src/external/tinygltf/README.md
src/external/tinygltf/tiny_gltf.h
Copyright: 2015-Present, 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
Comment: Unmodified, vendored copy of a subset of the tiny-gltf repo v2.9.3

Files: src/external/d3dx12/*
Copyright: Copyright (c) Microsoft Corporation.
Expand Down
76 changes: 76 additions & 0 deletions CHANGELOG.Docs.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,82 @@ any public pull requests that have been accepted.
This changelog only lists changes that affect the registry,
headers, and/or specification text.

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

This release contains a collection of specification clarifications, an updated
vendor extension with renamed enumerants, and substantial improvements and fixes
to the XML registry, particularly the description of interaction profiles.

- Registry
- Fix: Update schema to reflect that `XrPathString_t` should allow dash in
interaction profile paths.
([internal MR 3493](https://gitlab.khronos.org/openxr/openxr/merge_requests/3493))
- Fix: `XR_VARJO_xr4_controller_interaction` did not properly define its
interaction profile in XML.
([internal MR 3493](https://gitlab.khronos.org/openxr/openxr/merge_requests/3493),
[internal MR 3548](https://gitlab.khronos.org/openxr/openxr/merge_requests/3548))
- Fix: Correct XML description of OpenXR 1.1 related additions to the promoted
Meta Touch Plus, Touch Pro, and Touch (Rift CV1) controller interaction
profiles.
([internal MR 3513](https://gitlab.khronos.org/openxr/openxr/merge_requests/3513),
[internal issue 2350](https://gitlab.khronos.org/openxr/openxr/issues/2350),
[internal issue 2375](https://gitlab.khronos.org/openxr/openxr/issues/2375))
- Fix: Add missing XML description of `EXT_hand_interaction` additions to several
interaction profiles, and add comments to clarify where profile additions
should be located.
([internal MR 3517](https://gitlab.khronos.org/openxr/openxr/merge_requests/3517),
[internal MR 3541](https://gitlab.khronos.org/openxr/openxr/merge_requests/3541),
[internal MR 3552](https://gitlab.khronos.org/openxr/openxr/merge_requests/3552))
- Fix: Corrections to the Schema chapter of the style guide.
([internal MR 3521](https://gitlab.khronos.org/openxr/openxr/merge_requests/3521))
- Improvement: Small consistency clean-up.
([internal MR 3512](https://gitlab.khronos.org/openxr/openxr/merge_requests/3512))
- Improvement: Clean up `.rnc` schema to improve readability.
([internal MR 3521](https://gitlab.khronos.org/openxr/openxr/merge_requests/3521))
- Scripts: Improve `update_version.py` used in release process.
([internal MR 3543](https://gitlab.khronos.org/openxr/openxr/merge_requests/3543))
- Update: Change naming convention in `XR_HTC_facial_expression`: rename
`XR_LIP_EXPRESSION_MOUTH_SMILE_RIGHT_HTC` to
`XR_LIP_EXPRESSION_MOUTH_RAISER_RIGHT_HTC`,
`XR_LIP_EXPRESSION_MOUTH_SMILE_LEFT_HTC` to
`XR_LIP_EXPRESSION_MOUTH_RAISER_LEFT_HTC`,
`XR_LIP_EXPRESSION_MOUTH_SAD_RIGHT_HTC` to
`XR_LIP_EXPRESSION_MOUTH_STRETCHER_RIGHT_HTC` and
`XR_LIP_EXPRESSION_MOUTH_SAD_LEFT_HTC` to
`XR_LIP_EXPRESSION_MOUTH_STRETCHER_LEFT_HTC`, providing the old names as
compatibility aliases.
([internal MR 3408](https://gitlab.khronos.org/openxr/openxr/merge_requests/3408))
- Specification
- Clarify: In "Fundamentals," improve the language regarding forward/backward
prediction/history time limits, without affecting behavior.
([internal MR 3063](https://gitlab.khronos.org/openxr/openxr/merge_requests/3063))
- Clarify: The path(s) returned by `xrEnumerateBoundSourcesForAction` have no
inherent semantic meaning nor association with other paths in the
specification. They are opaque and only suitable for use with
`xrGetInputSourceLocalizedName`.
([internal MR 3495](https://gitlab.khronos.org/openxr/openxr/merge_requests/3495))
- Fix: Show the correct ratified-specific text in the copyright section for the
KHR-only spec build.
([internal MR 3568](https://gitlab.khronos.org/openxr/openxr/merge_requests/3568),
[internal issue 2388](https://gitlab.khronos.org/openxr/openxr/issues/2388))
- Improvement: Clarify `XR_VARJO_xr4_controller_interaction` interaction with
palm pose extension and grip surface.
([internal MR 3493](https://gitlab.khronos.org/openxr/openxr/merge_requests/3493))
- Improvement: Clarify text and normatives related to `xrGetInstanceProcAddr`,
without changing required behavior.
([internal MR 3512](https://gitlab.khronos.org/openxr/openxr/merge_requests/3512))
- Update: Change naming convention in `XR_HTC_facial_expression`: rename
`XR_LIP_EXPRESSION_MOUTH_SMILE_RIGHT_HTC` to
`XR_LIP_EXPRESSION_MOUTH_RAISER_RIGHT_HTC`,
`XR_LIP_EXPRESSION_MOUTH_SMILE_LEFT_HTC` to
`XR_LIP_EXPRESSION_MOUTH_RAISER_LEFT_HTC`,
`XR_LIP_EXPRESSION_MOUTH_SAD_RIGHT_HTC` to
`XR_LIP_EXPRESSION_MOUTH_STRETCHER_RIGHT_HTC` and
`XR_LIP_EXPRESSION_MOUTH_SAD_LEFT_HTC` to
`XR_LIP_EXPRESSION_MOUTH_STRETCHER_LEFT_HTC`, providing the old names as
compatibility aliases.
([internal MR 3408](https://gitlab.khronos.org/openxr/openxr/merge_requests/3408))

## OpenXR Specification 1.1.41 (2024-09-25)

This release features several new vendor extensions, as well as several
Expand Down
8 changes: 5 additions & 3 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.41
SPECREVISION = 1.1.42
REVISION_COMPONENTS = $(subst ., ,$(SPECREVISION))
MAJORMINORVER = $(word 1,$(REVISION_COMPONENTS)).$(word 2,$(REVISION_COMPONENTS))

Expand Down Expand Up @@ -334,7 +334,8 @@ html: $(HTMLSPEC)
ASCIIDOCTOR_TARGETS += $(HTMLSPEC)

# Target-specific variables and deps customizing the AsciiDoctor rule
$(HTMLSPEC): ATTRIBOPTS += -a sectanchors
# EXTRAATRIBS is for build-time customization
$(HTMLSPEC): ATTRIBOPTS += -a sectanchors $(EXTRAATTRIBS)
$(HTMLSPEC): ADOCOPTS += $(ADOCHTMLOPTS)
$(HTMLSPEC): $(COMMONDOCS)

Expand All @@ -349,7 +350,8 @@ pdfA4: $(PDFA4SPEC)
ASCIIDOCTOR_TARGETS += $(PDFSPEC) $(PDFA4SPEC)

# Target-specific variables and deps customizing the AsciiDoctor rule
$(PDFSPEC) $(PDFA4SPEC): BACKEND_ARGS=--backend pdf --require asciidoctor-pdf -a compress --require ./scripts/pdf-index-customizer.rb
# 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): PAGESIZE=LETTER
$(PDFA4SPEC): PAGESIZE=A4
$(PDFSPEC) $(PDFA4SPEC): $(COMMONDOCS)
Expand Down
2 changes: 1 addition & 1 deletion specification/current_version.ini
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@
# Similarly, update specification/scripts/extensionmetadocgenerator.py as well.
MAJOR=1
MINOR=1
PATCH=41
PATCH=42
37 changes: 24 additions & 13 deletions specification/registry/registry.rnc
Original file line number Diff line number Diff line change
Expand Up @@ -322,8 +322,9 @@ Command =

# <interaction_profiles> defines a group of interaction profiles
InteractionProfiles =
element interaction_profiles { CommentAttr?, InteractionProfile* }

element interaction_profiles {
CommentAttr?, InteractionProfileElt*
}
# <interaction_profile> defines a single component path in an interaction profile
InteractionProfileComponentElt =
element component {
Expand All @@ -333,19 +334,23 @@ InteractionProfileComponentElt =
attribute system { "true" }?
}

# <user_path> defines a single top-level /user path valid for a given interaction profile
InteractionProfileUserPathElt =
element user_path {
attribute path { XrPathString_t }
}

# <interaction_profile> defines a single interaction profile path
InteractionProfile =
InteractionProfileElt =
element interaction_profile {
# actually the path
attribute name { XrPathString_t },
attribute title { text },
CommentAttr?,

element user_path {
attribute path { XrPathString_t }
}*,
InteractionProfileUserPathElt+,

InteractionProfileComponentElt*
InteractionProfileComponentElt+
}

ExtendInteractionProfileElt =
Expand Down Expand Up @@ -471,7 +476,10 @@ PlatformDefinesName = "openxr_platform_defines"
# Data types - all end in _t
# exception: settings_file_location name predates validation
MemberOrParamName_t =
xsd:NCName { pattern = "settings_file_location|[a-z]([a-z0-9]*)([A-Z][a-z0-9]*)*" }
xsd:NCName {
pattern =
"settings_file_location|[a-z]([a-z0-9]*)([A-Z][a-z0-9]*)*"
}
VendorId_t = xsd:ID { pattern = "[A-Z]+" }
VendorIdRef_t = xsd:IDREF { pattern = "[A-Z]+" }
HexValue_t = xsd:token { pattern = "0[xX][0-9a-fA-F]+" }
Expand All @@ -489,9 +497,9 @@ XrPFNName_t = xsd:NCName { pattern = "PFN_xr([A-Z]+[a-z0-9]*)+" }

XrTypeName_t = xsd:NCName { pattern = "Xr([A-Z]+[a-z0-9]*)+" }
XrTypeNameRef_t = xsd:NCName { pattern = "Xr([A-Z]+[a-z0-9]*)+" }
XrTypeNameListRef_t = xsd:token {
pattern =
"Xr([A-Z]+[a-z0-9]*)+(,Xr([A-Z]+[a-z0-9]*)+)*"
XrTypeNameListRef_t =
xsd:token {
pattern = "Xr([A-Z]+[a-z0-9]*)+(,Xr([A-Z]+[a-z0-9]*)+)*"
}

XrExtName_t = xsd:NCName { pattern = "XR_[A-Z]+(_[A-Za-z0-9]+)+" }
Expand All @@ -501,7 +509,7 @@ XrExtNameExpression_t =
"XR_[A-Z]+(_[A-Za-z0-9]+)+([+,]XR_[A-Z]+(_[A-Za-z0-9]+)+)*"
}

XrPathString_t = xsd:token { pattern = "/[a-z0-9_]+(/[a-z0-9_]+)*" }
XrPathString_t = xsd:token { pattern = "/[a-z0-9_\-]+(/[a-z0-9_\-]+)*" }
XrInteractionComponentType_t =
xsd:NCName { pattern = "XR_ACTION_TYPE_[A-Z0-9]+(_INPUT|_OUTPUT)" }

Expand All @@ -518,7 +526,10 @@ XrEntityName_t =
XrUpperSnakeCase_t | XrFuncName_t | XrPFNName_t | XrTypeName_t

# Repeatedly used attributes
DependsAttr = attribute depends { XrExtNameExpression_t | "XR_VERSION_1_0" | "XR_VERSION_1_1"}
DependsAttr =
attribute depends {
XrExtNameExpression_t | "XR_VERSION_1_0" | "XR_VERSION_1_1"
}
ExtensionNameAttr = attribute extension { XrExtName_t }
VendorAttr = attribute vendor { VendorIdRef_t }
CommentAttr = attribute comment { text }
Expand Down
3 changes: 2 additions & 1 deletion specification/registry/registry.sch
Original file line number Diff line number Diff line change
Expand Up @@ -978,7 +978,8 @@
'/interaction_profiles/bytedance/pico4_controller',
'/interaction_profiles/bytedance/pico_g3_controller',
'/interaction_profiles/facebook/touch_controller_pro',
'/interaction_profiles/meta/touch_controller_plus'
'/interaction_profiles/meta/touch_controller_plus',
'/interaction_profiles/varjo/xr-4_controller'
)"/>
<sch:let name="is_khr" value="$vendor-tag = '_khr'"/>
<sch:assert test="ends-with(@name, $vendor-tag) or $is_exception or $is_khr">
Expand Down
Loading

0 comments on commit f6e201c

Please sign in to comment.