From be7ec02dee6efa667516ce5ccb94dc97ce175eab Mon Sep 17 00:00:00 2001 From: Bastiaan Olij Date: Mon, 15 Dec 2025 11:37:23 +1100 Subject: [PATCH] OpenXR: Update thirdparty to 1.1.54 --- thirdparty/README.md | 2 +- thirdparty/openxr/include/openxr/openxr.h | 21 ++++++++++++++++--- .../openxr/include/openxr/openxr_platform.h | 21 ++++++++++--------- .../openxr/include/openxr/openxr_reflection.h | 8 +++++++ .../openxr/openxr_reflection_parent_structs.h | 11 ++++++++++ .../openxr/openxr_reflection_structs.h | 1 + .../openxr/src/loader/loader_instance.cpp | 4 ++-- .../openxr/src/loader/manifest_file.cpp | 2 ++ 8 files changed, 54 insertions(+), 16 deletions(-) diff --git a/thirdparty/README.md b/thirdparty/README.md index 62fe3e0f573..89fcc4c5b7a 100644 --- a/thirdparty/README.md +++ b/thirdparty/README.md @@ -863,7 +863,7 @@ Files extracted from the upstream source: ## openxr - Upstream: https://github.com/KhronosGroup/OpenXR-SDK -- Version: 1.1.53 (75c53b6e853dc12c7b3c771edc9c9c841b15faaa, 2025) +- Version: 1.1.54 (c15d38cb4bb10a5b7e075f74493ff13896e2597a, 2025) - License: Apache 2.0 Files extracted from upstream source: diff --git a/thirdparty/openxr/include/openxr/openxr.h b/thirdparty/openxr/include/openxr/openxr.h index 179e2aecbee..b1be081f83d 100644 --- a/thirdparty/openxr/include/openxr/openxr.h +++ b/thirdparty/openxr/include/openxr/openxr.h @@ -26,7 +26,7 @@ extern "C" { ((((major) & 0xffffULL) << 48) | (((minor) & 0xffffULL) << 32) | ((patch) & 0xffffffffULL)) // OpenXR current version number. -#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 1, 53) +#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 1, 54) // OpenXR 1.0 version number #define XR_API_VERSION_1_0 XR_MAKE_VERSION(1, 0, XR_VERSION_PATCH(XR_CURRENT_API_VERSION)) @@ -684,6 +684,7 @@ typedef enum XrStructureType { XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_META = 1000291005, XR_TYPE_ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META = 1000291006, XR_TYPE_SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META = 1000291007, + XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_TIMESTAMP_META = 1000291008, XR_TYPE_RENDER_MODEL_CREATE_INFO_EXT = 1000300000, XR_TYPE_RENDER_MODEL_PROPERTIES_GET_INFO_EXT = 1000300001, XR_TYPE_RENDER_MODEL_PROPERTIES_EXT = 1000300002, @@ -3671,6 +3672,7 @@ typedef struct XrSceneMeshBuffersMSFT { void* XR_MAY_ALIAS next; } XrSceneMeshBuffersMSFT; +// XrSceneMeshVertexBufferMSFT extends XrSceneMeshBuffersMSFT typedef struct XrSceneMeshVertexBufferMSFT { XrStructureType type; void* XR_MAY_ALIAS next; @@ -3679,6 +3681,7 @@ typedef struct XrSceneMeshVertexBufferMSFT { XrVector3f* vertices; } XrSceneMeshVertexBufferMSFT; +// XrSceneMeshIndicesUint32MSFT extends XrSceneMeshBuffersMSFT typedef struct XrSceneMeshIndicesUint32MSFT { XrStructureType type; void* XR_MAY_ALIAS next; @@ -3687,6 +3690,7 @@ typedef struct XrSceneMeshIndicesUint32MSFT { uint32_t* indices; } XrSceneMeshIndicesUint32MSFT; +// XrSceneMeshIndicesUint16MSFT extends XrSceneMeshBuffersMSFT typedef struct XrSceneMeshIndicesUint16MSFT { XrStructureType type; void* XR_MAY_ALIAS next; @@ -6012,6 +6016,7 @@ typedef struct XrBoundary2DFB { XrVector2f* vertices; } XrBoundary2DFB; +// XrSemanticLabelsSupportInfoFB extends XrSemanticLabelsFB typedef struct XrSemanticLabelsSupportInfoFB { XrStructureType type; const void* XR_MAY_ALIAS next; @@ -7657,7 +7662,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrShareSpacesMETA( #define XR_META_environment_depth 1 XR_DEFINE_HANDLE(XrEnvironmentDepthProviderMETA) XR_DEFINE_HANDLE(XrEnvironmentDepthSwapchainMETA) -#define XR_META_environment_depth_SPEC_VERSION 1 +#define XR_META_environment_depth_SPEC_VERSION 2 #define XR_META_ENVIRONMENT_DEPTH_EXTENSION_NAME "XR_META_environment_depth" typedef XrFlags64 XrEnvironmentDepthProviderCreateFlagsMETA; @@ -7709,6 +7714,13 @@ typedef struct XrEnvironmentDepthImageMETA { XrEnvironmentDepthImageViewMETA views[2]; } XrEnvironmentDepthImageMETA; +// XrEnvironmentDepthImageTimestampMETA extends XrEnvironmentDepthImageMETA +typedef struct XrEnvironmentDepthImageTimestampMETA { + XrStructureType type; + const void* XR_MAY_ALIAS next; + XrTime captureTime; +} XrEnvironmentDepthImageTimestampMETA; + typedef struct XrEnvironmentDepthHandRemovalSetInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; @@ -8612,6 +8624,7 @@ typedef struct XrFacialSimulationDataBD { XrTime time; } XrFacialSimulationDataBD; +// XrLipExpressionDataBD extends XrFacialSimulationDataBD typedef struct XrLipExpressionDataBD { XrStructureType type; void* XR_MAY_ALIAS next; @@ -8740,6 +8753,7 @@ typedef struct XrSpatialEntityComponentDataBaseHeaderBD { void* XR_MAY_ALIAS next; } XrSpatialEntityComponentDataBaseHeaderBD; +// XrSpatialEntityLocationGetInfoBD extends XrSpatialEntityComponentGetInfoBD typedef struct XrSpatialEntityLocationGetInfoBD { XrStructureType type; const void* XR_MAY_ALIAS next; @@ -9957,7 +9971,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrGetTrackableObjectANDROID( // XR_EXT_future is a preprocessor guard. Do not pass it to API calls. #define XR_EXT_future 1 -#define XR_EXT_future_SPEC_VERSION 1 +#define XR_EXT_future_SPEC_VERSION 2 #define XR_EXT_FUTURE_EXTENSION_NAME "XR_EXT_future" #define XR_NULL_FUTURE_EXT 0 @@ -10598,6 +10612,7 @@ typedef struct XrShareSpacesRecipientGroupsMETA { XrUuid* groups; } XrShareSpacesRecipientGroupsMETA; +// XrSpaceGroupUuidFilterInfoMETA extends XrSpaceQueryInfoBaseHeaderFB typedef struct XrSpaceGroupUuidFilterInfoMETA { XrStructureType type; const void* XR_MAY_ALIAS next; diff --git a/thirdparty/openxr/include/openxr/openxr_platform.h b/thirdparty/openxr/include/openxr/openxr_platform.h index 852b56736e6..9a39113055f 100644 --- a/thirdparty/openxr/include/openxr/openxr_platform.h +++ b/thirdparty/openxr/include/openxr/openxr_platform.h @@ -86,6 +86,7 @@ typedef struct XrInstanceCreateInfoAndroidKHR { #define XR_KHR_vulkan_swapchain_format_list 1 #define XR_KHR_vulkan_swapchain_format_list_SPEC_VERSION 5 #define XR_KHR_VULKAN_SWAPCHAIN_FORMAT_LIST_EXTENSION_NAME "XR_KHR_vulkan_swapchain_format_list" +// XrVulkanSwapchainFormatListCreateInfoKHR extends XrSwapchainCreateInfo typedef struct XrVulkanSwapchainFormatListCreateInfoKHR { XrStructureType type; const void* XR_MAY_ALIAS next; @@ -99,7 +100,7 @@ typedef struct XrVulkanSwapchainFormatListCreateInfoKHR { // XR_KHR_opengl_enable is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_opengl_enable 1 -#define XR_KHR_opengl_enable_SPEC_VERSION 11 +#define XR_KHR_opengl_enable_SPEC_VERSION 12 #define XR_KHR_OPENGL_ENABLE_EXTENSION_NAME "XR_KHR_opengl_enable" #ifdef XR_USE_PLATFORM_WIN32 // XrGraphicsBindingOpenGLWin32KHR extends XrSessionCreateInfo @@ -176,7 +177,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrGetOpenGLGraphicsRequirementsKHR( // XR_KHR_opengl_es_enable is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_opengl_es_enable 1 -#define XR_KHR_opengl_es_enable_SPEC_VERSION 9 +#define XR_KHR_opengl_es_enable_SPEC_VERSION 10 #define XR_KHR_OPENGL_ES_ENABLE_EXTENSION_NAME "XR_KHR_opengl_es_enable" #ifdef XR_USE_PLATFORM_ANDROID // XrGraphicsBindingOpenGLESAndroidKHR extends XrSessionCreateInfo @@ -218,7 +219,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrGetOpenGLESGraphicsRequirementsKHR( // XR_KHR_vulkan_enable is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_vulkan_enable 1 -#define XR_KHR_vulkan_enable_SPEC_VERSION 9 +#define XR_KHR_vulkan_enable_SPEC_VERSION 10 #define XR_KHR_VULKAN_ENABLE_EXTENSION_NAME "XR_KHR_vulkan_enable" // XrGraphicsBindingVulkanKHR extends XrSessionCreateInfo typedef struct XrGraphicsBindingVulkanKHR { @@ -283,7 +284,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrGetVulkanGraphicsRequirementsKHR( // XR_KHR_D3D11_enable is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_D3D11_enable 1 -#define XR_KHR_D3D11_enable_SPEC_VERSION 10 +#define XR_KHR_D3D11_enable_SPEC_VERSION 11 #define XR_KHR_D3D11_ENABLE_EXTENSION_NAME "XR_KHR_D3D11_enable" // XrGraphicsBindingD3D11KHR extends XrSessionCreateInfo typedef struct XrGraphicsBindingD3D11KHR { @@ -321,7 +322,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrGetD3D11GraphicsRequirementsKHR( // XR_KHR_D3D12_enable is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_D3D12_enable 1 -#define XR_KHR_D3D12_enable_SPEC_VERSION 10 +#define XR_KHR_D3D12_enable_SPEC_VERSION 11 #define XR_KHR_D3D12_ENABLE_EXTENSION_NAME "XR_KHR_D3D12_enable" // XrGraphicsBindingD3D12KHR extends XrSessionCreateInfo typedef struct XrGraphicsBindingD3D12KHR { @@ -360,7 +361,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrGetD3D12GraphicsRequirementsKHR( // XR_KHR_metal_enable is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_metal_enable 1 -#define XR_KHR_metal_enable_SPEC_VERSION 2 +#define XR_KHR_metal_enable_SPEC_VERSION 3 #define XR_KHR_METAL_ENABLE_EXTENSION_NAME "XR_KHR_metal_enable" // XrGraphicsBindingMetalKHR extends XrSessionCreateInfo typedef struct XrGraphicsBindingMetalKHR { @@ -370,9 +371,9 @@ typedef struct XrGraphicsBindingMetalKHR { } XrGraphicsBindingMetalKHR; typedef struct XrSwapchainImageMetalKHR { - XrStructureType type; - const void* XR_MAY_ALIAS next; - void* XR_MAY_ALIAS texture; + XrStructureType type; + void* XR_MAY_ALIAS next; + void* XR_MAY_ALIAS texture; } XrSwapchainImageMetalKHR; typedef struct XrGraphicsRequirementsMetalKHR { @@ -460,7 +461,7 @@ typedef struct XrLoaderInitInfoAndroidKHR { // XR_KHR_vulkan_enable2 is a preprocessor guard. Do not pass it to API calls. #define XR_KHR_vulkan_enable2 1 -#define XR_KHR_vulkan_enable2_SPEC_VERSION 3 +#define XR_KHR_vulkan_enable2_SPEC_VERSION 4 #define XR_KHR_VULKAN_ENABLE2_EXTENSION_NAME "XR_KHR_vulkan_enable2" typedef XrFlags64 XrVulkanInstanceCreateFlagsKHR; diff --git a/thirdparty/openxr/include/openxr/openxr_reflection.h b/thirdparty/openxr/include/openxr/openxr_reflection.h index 75aea1ca124..0b7f6d331f6 100644 --- a/thirdparty/openxr/include/openxr/openxr_reflection.h +++ b/thirdparty/openxr/include/openxr/openxr_reflection.h @@ -567,6 +567,7 @@ XR_ENUM_STR(XrResult); _(XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_META, 1000291005) \ _(XR_TYPE_ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META, 1000291006) \ _(XR_TYPE_SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META, 1000291007) \ + _(XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_TIMESTAMP_META, 1000291008) \ _(XR_TYPE_RENDER_MODEL_CREATE_INFO_EXT, 1000300000) \ _(XR_TYPE_RENDER_MODEL_PROPERTIES_GET_INFO_EXT, 1000300001) \ _(XR_TYPE_RENDER_MODEL_PROPERTIES_EXT, 1000300002) \ @@ -5758,6 +5759,12 @@ XR_ENUM_STR(XrResult); _(farZ) \ _(views) \ +/// Calls your macro with the name of each member of XrEnvironmentDepthImageTimestampMETA, in order. +#define XR_LIST_STRUCT_XrEnvironmentDepthImageTimestampMETA(_) \ + _(type) \ + _(next) \ + _(captureTime) \ + /// Calls your macro with the name of each member of XrEnvironmentDepthHandRemovalSetInfoMETA, in order. #define XR_LIST_STRUCT_XrEnvironmentDepthHandRemovalSetInfoMETA(_) \ _(type) \ @@ -7650,6 +7657,7 @@ XR_ENUM_STR(XrResult); _(XrEnvironmentDepthImageAcquireInfoMETA, XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_ACQUIRE_INFO_META) \ _(XrEnvironmentDepthImageViewMETA, XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_VIEW_META) \ _(XrEnvironmentDepthImageMETA, XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_META) \ + _(XrEnvironmentDepthImageTimestampMETA, XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_TIMESTAMP_META) \ _(XrEnvironmentDepthHandRemovalSetInfoMETA, XR_TYPE_ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META) \ _(XrSystemEnvironmentDepthPropertiesMETA, XR_TYPE_SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META) \ _(XrRenderModelCreateInfoEXT, XR_TYPE_RENDER_MODEL_CREATE_INFO_EXT) \ diff --git a/thirdparty/openxr/include/openxr/openxr_reflection_parent_structs.h b/thirdparty/openxr/include/openxr/openxr_reflection_parent_structs.h index 42255c138c0..3bbde155437 100644 --- a/thirdparty/openxr/include/openxr/openxr_reflection_parent_structs.h +++ b/thirdparty/openxr/include/openxr/openxr_reflection_parent_structs.h @@ -118,6 +118,7 @@ This file contains expansion macros (X Macros) for OpenXR structures that have a _impl_XR_LIST_ALL_CHILD_STRUCTURE_TYPES_XrSwapchainImageBaseHeader_CORE(_avail, _unavail) \ _impl_XR_LIST_ALL_CHILD_STRUCTURE_TYPES_XrSwapchainImageBaseHeader_XR_USE_GRAPHICS_API_D3D11(_avail, _unavail) \ _impl_XR_LIST_ALL_CHILD_STRUCTURE_TYPES_XrSwapchainImageBaseHeader_XR_USE_GRAPHICS_API_D3D12(_avail, _unavail) \ + _impl_XR_LIST_ALL_CHILD_STRUCTURE_TYPES_XrSwapchainImageBaseHeader_XR_USE_GRAPHICS_API_METAL(_avail, _unavail) \ _impl_XR_LIST_ALL_CHILD_STRUCTURE_TYPES_XrSwapchainImageBaseHeader_XR_USE_GRAPHICS_API_OPENGL(_avail, _unavail) \ _impl_XR_LIST_ALL_CHILD_STRUCTURE_TYPES_XrSwapchainImageBaseHeader_XR_USE_GRAPHICS_API_OPENGL_ES(_avail, _unavail) \ _impl_XR_LIST_ALL_CHILD_STRUCTURE_TYPES_XrSwapchainImageBaseHeader_XR_USE_GRAPHICS_API_VULKAN(_avail, _unavail) \ @@ -147,6 +148,16 @@ This file contains expansion macros (X Macros) for OpenXR structures that have a #endif +#if defined(XR_USE_GRAPHICS_API_METAL) +#define _impl_XR_LIST_ALL_CHILD_STRUCTURE_TYPES_XrSwapchainImageBaseHeader_XR_USE_GRAPHICS_API_METAL(_avail, _unavail) \ + _avail(XrSwapchainImageMetalKHR, XR_TYPE_SWAPCHAIN_IMAGE_METAL_KHR) \ + +#else +#define _impl_XR_LIST_ALL_CHILD_STRUCTURE_TYPES_XrSwapchainImageBaseHeader_XR_USE_GRAPHICS_API_METAL(_avail, _unavail) \ + _unavail(XrSwapchainImageMetalKHR, XR_TYPE_SWAPCHAIN_IMAGE_METAL_KHR) \ + +#endif + #if defined(XR_USE_GRAPHICS_API_OPENGL) #define _impl_XR_LIST_ALL_CHILD_STRUCTURE_TYPES_XrSwapchainImageBaseHeader_XR_USE_GRAPHICS_API_OPENGL(_avail, _unavail) \ _avail(XrSwapchainImageOpenGLKHR, XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_KHR) \ diff --git a/thirdparty/openxr/include/openxr/openxr_reflection_structs.h b/thirdparty/openxr/include/openxr/openxr_reflection_structs.h index 38d1806a54b..8836096dcce 100644 --- a/thirdparty/openxr/include/openxr/openxr_reflection_structs.h +++ b/thirdparty/openxr/include/openxr/openxr_reflection_structs.h @@ -369,6 +369,7 @@ This file contains expansion macros (X Macros) for OpenXR structures. _avail(XrEnvironmentDepthImageAcquireInfoMETA, XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_ACQUIRE_INFO_META) \ _avail(XrEnvironmentDepthImageViewMETA, XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_VIEW_META) \ _avail(XrEnvironmentDepthImageMETA, XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_META) \ + _avail(XrEnvironmentDepthImageTimestampMETA, XR_TYPE_ENVIRONMENT_DEPTH_IMAGE_TIMESTAMP_META) \ _avail(XrEnvironmentDepthHandRemovalSetInfoMETA, XR_TYPE_ENVIRONMENT_DEPTH_HAND_REMOVAL_SET_INFO_META) \ _avail(XrSystemEnvironmentDepthPropertiesMETA, XR_TYPE_SYSTEM_ENVIRONMENT_DEPTH_PROPERTIES_META) \ _avail(XrRenderModelCreateInfoEXT, XR_TYPE_RENDER_MODEL_CREATE_INFO_EXT) \ diff --git a/thirdparty/openxr/src/loader/loader_instance.cpp b/thirdparty/openxr/src/loader/loader_instance.cpp index 163ebc17d85..ff87ea840e0 100644 --- a/thirdparty/openxr/src/loader/loader_instance.cpp +++ b/thirdparty/openxr/src/loader/loader_instance.cpp @@ -66,8 +66,8 @@ void Remove() { GetSetCurrentLoaderInstance().reset(nullptr); } // Extensions that are supported by the loader, but may not be supported // the the runtime. const std::array& LoaderInstance::LoaderSpecificExtensions() { - static const std::array extensions = {XrExtensionProperties{ - XR_TYPE_EXTENSION_PROPERTIES, nullptr, XR_EXT_DEBUG_UTILS_EXTENSION_NAME, XR_EXT_debug_utils_SPEC_VERSION}}; + static const std::array extensions{{XrExtensionProperties{ + XR_TYPE_EXTENSION_PROPERTIES, nullptr, {XR_EXT_DEBUG_UTILS_EXTENSION_NAME}, XR_EXT_debug_utils_SPEC_VERSION}}}; return extensions; } diff --git a/thirdparty/openxr/src/loader/manifest_file.cpp b/thirdparty/openxr/src/loader/manifest_file.cpp index 4aa7c2fc001..bdea85d8ed6 100644 --- a/thirdparty/openxr/src/loader/manifest_file.cpp +++ b/thirdparty/openxr/src/loader/manifest_file.cpp @@ -979,6 +979,8 @@ XrResult ApiLayerManifestFile::FindManifestFiles(const std::string &openxr_comma registry_location = OPENXR_EXPLICIT_API_LAYER_REGISTRY_LOCATION; #endif break; + case MANIFEST_TYPE_UNDEFINED: + case MANIFEST_TYPE_RUNTIME: default: LoaderLogger::LogErrorMessage(openxr_command, "ApiLayerManifestFile::FindManifestFiles - unknown manifest file requested");