Rémi Verschelde 3 месяцев назад
Родитель
Сommit
9a583485e2

+ 2 - 1
modules/openxr/SCsub

@@ -28,7 +28,8 @@ elif env["platform"] == "linuxbsd":
         env_openxr.AppendUnique(CPPDEFINES=["XR_USE_PLATFORM_XLIB"])
 
     if env["wayland"] and env["opengl3"]:
-        env_openxr.AppendUnique(CPPDEFINES=["XR_USE_PLATFORM_EGL"])
+        env_openxr.AppendUnique(CPPDEFINES=["XR_USE_PLATFORM_EGL", "XRDEPENDENCIES_USE_GLAD"])
+        env_openxr.Prepend(CPPEXTPATH=["#thirdparty/glad"])
 
     # FIXME: Review what needs to be set for Android and macOS.
     # FreeBSD uses non-standard getenv functions.

+ 1 - 5
thirdparty/README.md

@@ -846,7 +846,7 @@ Files extracted from the upstream source:
 ## openxr
 
 - Upstream: https://github.com/KhronosGroup/OpenXR-SDK
-- Version: 1.1.47 (858912260ca616f4c23f7fb61c89228c353eb124, 2025)
+- Version: 1.1.48 (6eed4f4d6dd17c10acc11c0a3b1f55d9eabe1593, 2025)
 - License: Apache 2.0
 
 Files extracted from upstream source:
@@ -870,10 +870,6 @@ Exclude:
   `*.{def,expsym,in,json,map,pom,rc,txt}`
 - All dotfiles
 
-Patches:
-
-- `0001-glad-egl.patch` (GH-98824)
-
 
 ## pcre2
 

+ 162 - 2
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, 47)
+#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 1, 48)
 
 // OpenXR 1.0 version number
 #define XR_API_VERSION_1_0 XR_MAKE_VERSION(1, 0, XR_VERSION_PATCH(XR_CURRENT_API_VERSION))
@@ -624,6 +624,7 @@ typedef enum XrStructureType {
     XR_TYPE_PASSTHROUGH_COLOR_MAP_INTERPOLATED_LUT_META = 1000266101,
     XR_TYPE_SPACE_TRIANGLE_MESH_GET_INFO_META = 1000269001,
     XR_TYPE_SPACE_TRIANGLE_MESH_META = 1000269002,
+    XR_TYPE_SYSTEM_PROPERTIES_BODY_TRACKING_FULL_BODY_META = 1000274000,
     XR_TYPE_EVENT_DATA_PASSTHROUGH_LAYER_RESUMED_META = 1000282000,
     XR_TYPE_SYSTEM_FACE_TRACKING_PROPERTIES2_FB = 1000287013,
     XR_TYPE_FACE_TRACKER_CREATE_INFO2_FB = 1000287014,
@@ -695,6 +696,7 @@ typedef enum XrStructureType {
     XR_TYPE_SCENE_CAPTURE_INFO_BD = 1000392001,
     XR_TYPE_SYSTEM_SPATIAL_MESH_PROPERTIES_BD = 1000393000,
     XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_SPATIAL_MESH_BD = 1000393001,
+    XR_TYPE_FUTURE_POLL_RESULT_PROGRESS_BD = 1000394001,
     XR_TYPE_HAND_TRACKING_DATA_SOURCE_INFO_EXT = 1000428000,
     XR_TYPE_HAND_TRACKING_DATA_SOURCE_STATE_EXT = 1000428001,
     XR_TYPE_PLANE_DETECTOR_CREATE_INFO_EXT = 1000429001,
@@ -727,6 +729,9 @@ typedef enum XrStructureType {
     XR_TYPE_FACIAL_EXPRESSION_CLIENT_CREATE_INFO_ML = 1000482005,
     XR_TYPE_FACIAL_EXPRESSION_BLEND_SHAPE_GET_INFO_ML = 1000482006,
     XR_TYPE_FACIAL_EXPRESSION_BLEND_SHAPE_PROPERTIES_ML = 1000482007,
+    XR_TYPE_SYSTEM_SIMULTANEOUS_HANDS_AND_CONTROLLERS_PROPERTIES_META = 1000532001,
+    XR_TYPE_SIMULTANEOUS_HANDS_AND_CONTROLLERS_TRACKING_RESUME_INFO_META = 1000532002,
+    XR_TYPE_SIMULTANEOUS_HANDS_AND_CONTROLLERS_TRACKING_PAUSE_INFO_META = 1000532003,
     XR_TYPE_COLOCATION_DISCOVERY_START_INFO_META = 1000571010,
     XR_TYPE_COLOCATION_DISCOVERY_STOP_INFO_META = 1000571011,
     XR_TYPE_COLOCATION_ADVERTISEMENT_START_INFO_META = 1000571012,
@@ -3119,6 +3124,7 @@ typedef enum XrBodyJointFB {
 
 typedef enum XrBodyJointSetFB {
     XR_BODY_JOINT_SET_DEFAULT_FB = 0,
+    XR_BODY_JOINT_SET_FULL_BODY_META = 1000274000,
     XR_BODY_JOINT_SET_MAX_ENUM_FB = 0x7FFFFFFF
 } XrBodyJointSetFB;
 typedef struct XrBodyJointLocationFB {
@@ -6993,6 +6999,109 @@ XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceTriangleMeshMETA(
 #define XR_META_AUTOMATIC_LAYER_FILTER_EXTENSION_NAME "XR_META_automatic_layer_filter"
 
 
+// XR_META_body_tracking_full_body is a preprocessor guard. Do not pass it to API calls.
+#define XR_META_body_tracking_full_body 1
+#define XR_META_body_tracking_full_body_SPEC_VERSION 1
+#define XR_META_BODY_TRACKING_FULL_BODY_EXTENSION_NAME "XR_META_body_tracking_full_body"
+
+typedef enum XrFullBodyJointMETA {
+    XR_FULL_BODY_JOINT_ROOT_META = 0,
+    XR_FULL_BODY_JOINT_HIPS_META = 1,
+    XR_FULL_BODY_JOINT_SPINE_LOWER_META = 2,
+    XR_FULL_BODY_JOINT_SPINE_MIDDLE_META = 3,
+    XR_FULL_BODY_JOINT_SPINE_UPPER_META = 4,
+    XR_FULL_BODY_JOINT_CHEST_META = 5,
+    XR_FULL_BODY_JOINT_NECK_META = 6,
+    XR_FULL_BODY_JOINT_HEAD_META = 7,
+    XR_FULL_BODY_JOINT_LEFT_SHOULDER_META = 8,
+    XR_FULL_BODY_JOINT_LEFT_SCAPULA_META = 9,
+    XR_FULL_BODY_JOINT_LEFT_ARM_UPPER_META = 10,
+    XR_FULL_BODY_JOINT_LEFT_ARM_LOWER_META = 11,
+    XR_FULL_BODY_JOINT_LEFT_HAND_WRIST_TWIST_META = 12,
+    XR_FULL_BODY_JOINT_RIGHT_SHOULDER_META = 13,
+    XR_FULL_BODY_JOINT_RIGHT_SCAPULA_META = 14,
+    XR_FULL_BODY_JOINT_RIGHT_ARM_UPPER_META = 15,
+    XR_FULL_BODY_JOINT_RIGHT_ARM_LOWER_META = 16,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_WRIST_TWIST_META = 17,
+    XR_FULL_BODY_JOINT_LEFT_HAND_PALM_META = 18,
+    XR_FULL_BODY_JOINT_LEFT_HAND_WRIST_META = 19,
+    XR_FULL_BODY_JOINT_LEFT_HAND_THUMB_METACARPAL_META = 20,
+    XR_FULL_BODY_JOINT_LEFT_HAND_THUMB_PROXIMAL_META = 21,
+    XR_FULL_BODY_JOINT_LEFT_HAND_THUMB_DISTAL_META = 22,
+    XR_FULL_BODY_JOINT_LEFT_HAND_THUMB_TIP_META = 23,
+    XR_FULL_BODY_JOINT_LEFT_HAND_INDEX_METACARPAL_META = 24,
+    XR_FULL_BODY_JOINT_LEFT_HAND_INDEX_PROXIMAL_META = 25,
+    XR_FULL_BODY_JOINT_LEFT_HAND_INDEX_INTERMEDIATE_META = 26,
+    XR_FULL_BODY_JOINT_LEFT_HAND_INDEX_DISTAL_META = 27,
+    XR_FULL_BODY_JOINT_LEFT_HAND_INDEX_TIP_META = 28,
+    XR_FULL_BODY_JOINT_LEFT_HAND_MIDDLE_METACARPAL_META = 29,
+    XR_FULL_BODY_JOINT_LEFT_HAND_MIDDLE_PROXIMAL_META = 30,
+    XR_FULL_BODY_JOINT_LEFT_HAND_MIDDLE_INTERMEDIATE_META = 31,
+    XR_FULL_BODY_JOINT_LEFT_HAND_MIDDLE_DISTAL_META = 32,
+    XR_FULL_BODY_JOINT_LEFT_HAND_MIDDLE_TIP_META = 33,
+    XR_FULL_BODY_JOINT_LEFT_HAND_RING_METACARPAL_META = 34,
+    XR_FULL_BODY_JOINT_LEFT_HAND_RING_PROXIMAL_META = 35,
+    XR_FULL_BODY_JOINT_LEFT_HAND_RING_INTERMEDIATE_META = 36,
+    XR_FULL_BODY_JOINT_LEFT_HAND_RING_DISTAL_META = 37,
+    XR_FULL_BODY_JOINT_LEFT_HAND_RING_TIP_META = 38,
+    XR_FULL_BODY_JOINT_LEFT_HAND_LITTLE_METACARPAL_META = 39,
+    XR_FULL_BODY_JOINT_LEFT_HAND_LITTLE_PROXIMAL_META = 40,
+    XR_FULL_BODY_JOINT_LEFT_HAND_LITTLE_INTERMEDIATE_META = 41,
+    XR_FULL_BODY_JOINT_LEFT_HAND_LITTLE_DISTAL_META = 42,
+    XR_FULL_BODY_JOINT_LEFT_HAND_LITTLE_TIP_META = 43,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_PALM_META = 44,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_WRIST_META = 45,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_THUMB_METACARPAL_META = 46,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_THUMB_PROXIMAL_META = 47,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_THUMB_DISTAL_META = 48,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_THUMB_TIP_META = 49,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_INDEX_METACARPAL_META = 50,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_INDEX_PROXIMAL_META = 51,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_INDEX_INTERMEDIATE_META = 52,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_INDEX_DISTAL_META = 53,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_INDEX_TIP_META = 54,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_MIDDLE_METACARPAL_META = 55,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_MIDDLE_PROXIMAL_META = 56,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_MIDDLE_INTERMEDIATE_META = 57,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_MIDDLE_DISTAL_META = 58,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_MIDDLE_TIP_META = 59,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_RING_METACARPAL_META = 60,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_RING_PROXIMAL_META = 61,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_RING_INTERMEDIATE_META = 62,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_RING_DISTAL_META = 63,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_RING_TIP_META = 64,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_LITTLE_METACARPAL_META = 65,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_LITTLE_PROXIMAL_META = 66,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_LITTLE_INTERMEDIATE_META = 67,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_LITTLE_DISTAL_META = 68,
+    XR_FULL_BODY_JOINT_RIGHT_HAND_LITTLE_TIP_META = 69,
+    XR_FULL_BODY_JOINT_LEFT_UPPER_LEG_META = 70,
+    XR_FULL_BODY_JOINT_LEFT_LOWER_LEG_META = 71,
+    XR_FULL_BODY_JOINT_LEFT_FOOT_ANKLE_TWIST_META = 72,
+    XR_FULL_BODY_JOINT_LEFT_FOOT_ANKLE_META = 73,
+    XR_FULL_BODY_JOINT_LEFT_FOOT_SUBTALAR_META = 74,
+    XR_FULL_BODY_JOINT_LEFT_FOOT_TRANSVERSE_META = 75,
+    XR_FULL_BODY_JOINT_LEFT_FOOT_BALL_META = 76,
+    XR_FULL_BODY_JOINT_RIGHT_UPPER_LEG_META = 77,
+    XR_FULL_BODY_JOINT_RIGHT_LOWER_LEG_META = 78,
+    XR_FULL_BODY_JOINT_RIGHT_FOOT_ANKLE_TWIST_META = 79,
+    XR_FULL_BODY_JOINT_RIGHT_FOOT_ANKLE_META = 80,
+    XR_FULL_BODY_JOINT_RIGHT_FOOT_SUBTALAR_META = 81,
+    XR_FULL_BODY_JOINT_RIGHT_FOOT_TRANSVERSE_META = 82,
+    XR_FULL_BODY_JOINT_RIGHT_FOOT_BALL_META = 83,
+    XR_FULL_BODY_JOINT_COUNT_META = 84,
+    XR_FULL_BODY_JOINT_NONE_META = 85,
+    XR_FULL_BODY_JOINT_MAX_ENUM_META = 0x7FFFFFFF
+} XrFullBodyJointMETA;
+// XrSystemPropertiesBodyTrackingFullBodyMETA extends XrSystemProperties
+typedef struct XrSystemPropertiesBodyTrackingFullBodyMETA {
+    XrStructureType       type;
+    void* XR_MAY_ALIAS    next;
+    XrBool32              supportsFullBodyTracking;
+} XrSystemPropertiesBodyTrackingFullBodyMETA;
+
+
+
 // XR_META_touch_controller_plus is a preprocessor guard. Do not pass it to API calls.
 #define XR_META_touch_controller_plus 1
 #define XR_META_touch_controller_plus_SPEC_VERSION 1
@@ -8263,7 +8372,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrUnpersistSpatialAnchorCompleteBD(
 
 // XR_BD_spatial_anchor_sharing is a preprocessor guard. Do not pass it to API calls.
 #define XR_BD_spatial_anchor_sharing 1
-#define XR_BD_spatial_anchor_sharing_SPEC_VERSION 1
+#define XR_BD_spatial_anchor_sharing_SPEC_VERSION 2
 #define XR_BD_SPATIAL_ANCHOR_SHARING_EXTENSION_NAME "XR_BD_spatial_anchor_sharing"
 // XrSystemSpatialAnchorSharingPropertiesBD extends XrSystemProperties
 typedef struct XrSystemSpatialAnchorSharingPropertiesBD {
@@ -8382,6 +8491,20 @@ typedef struct XrSenseDataProviderCreateInfoSpatialMeshBD {
 
 
 
+// XR_BD_future_progress is a preprocessor guard. Do not pass it to API calls.
+#define XR_BD_future_progress 1
+#define XR_BD_future_progress_SPEC_VERSION 1
+#define XR_BD_FUTURE_PROGRESS_EXTENSION_NAME "XR_BD_future_progress"
+// XrFuturePollResultProgressBD extends XrFuturePollResultEXT
+typedef struct XrFuturePollResultProgressBD {
+    XrStructureType       type;
+    void* XR_MAY_ALIAS    next;
+    XrBool32              isSupported;
+    uint32_t              progressPercentage;
+} XrFuturePollResultProgressBD;
+
+
+
 // XR_EXT_local_floor is a preprocessor guard. Do not pass it to API calls.
 #define XR_EXT_local_floor 1
 #define XR_EXT_local_floor_SPEC_VERSION   1
@@ -9039,6 +9162,43 @@ XRAPI_ATTR XrResult XRAPI_CALL xrGetFacialExpressionBlendShapePropertiesML(
 #define XR_YVR_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_YVR_controller_interaction"
 
 
+// XR_META_simultaneous_hands_and_controllers is a preprocessor guard. Do not pass it to API calls.
+#define XR_META_simultaneous_hands_and_controllers 1
+#define XR_META_simultaneous_hands_and_controllers_SPEC_VERSION 1
+#define XR_META_SIMULTANEOUS_HANDS_AND_CONTROLLERS_EXTENSION_NAME "XR_META_simultaneous_hands_and_controllers"
+// XrSystemSimultaneousHandsAndControllersPropertiesMETA extends XrSystemProperties
+typedef struct XrSystemSimultaneousHandsAndControllersPropertiesMETA {
+    XrStructureType       type;
+    void* XR_MAY_ALIAS    next;
+    XrBool32              supportsSimultaneousHandsAndControllers;
+} XrSystemSimultaneousHandsAndControllersPropertiesMETA;
+
+typedef struct XrSimultaneousHandsAndControllersTrackingResumeInfoMETA {
+    XrStructureType             type;
+    const void* XR_MAY_ALIAS    next;
+} XrSimultaneousHandsAndControllersTrackingResumeInfoMETA;
+
+typedef struct XrSimultaneousHandsAndControllersTrackingPauseInfoMETA {
+    XrStructureType             type;
+    const void* XR_MAY_ALIAS    next;
+} XrSimultaneousHandsAndControllersTrackingPauseInfoMETA;
+
+typedef XrResult (XRAPI_PTR *PFN_xrResumeSimultaneousHandsAndControllersTrackingMETA)(XrSession session, const XrSimultaneousHandsAndControllersTrackingResumeInfoMETA* resumeInfo);
+typedef XrResult (XRAPI_PTR *PFN_xrPauseSimultaneousHandsAndControllersTrackingMETA)(XrSession session, const XrSimultaneousHandsAndControllersTrackingPauseInfoMETA* pauseInfo);
+
+#ifndef XR_NO_PROTOTYPES
+#ifdef XR_EXTENSION_PROTOTYPES
+XRAPI_ATTR XrResult XRAPI_CALL xrResumeSimultaneousHandsAndControllersTrackingMETA(
+    XrSession                                   session,
+    const XrSimultaneousHandsAndControllersTrackingResumeInfoMETA* resumeInfo);
+
+XRAPI_ATTR XrResult XRAPI_CALL xrPauseSimultaneousHandsAndControllersTrackingMETA(
+    XrSession                                   session,
+    const XrSimultaneousHandsAndControllersTrackingPauseInfoMETA* pauseInfo);
+#endif /* XR_EXTENSION_PROTOTYPES */
+#endif /* !XR_NO_PROTOTYPES */
+
+
 // XR_EXT_composition_layer_inverted_alpha is a preprocessor guard. Do not pass it to API calls.
 #define XR_EXT_composition_layer_inverted_alpha 1
 #define XR_EXT_composition_layer_inverted_alpha_SPEC_VERSION 1

+ 7 - 7
thirdparty/openxr/include/openxr/openxr_platform.h

@@ -99,7 +99,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 10
+#define XR_KHR_opengl_enable_SPEC_VERSION 11
 #define XR_KHR_OPENGL_ENABLE_EXTENSION_NAME "XR_KHR_opengl_enable"
 #ifdef XR_USE_PLATFORM_WIN32
 // XrGraphicsBindingOpenGLWin32KHR extends XrSessionCreateInfo
@@ -176,7 +176,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 8
+#define XR_KHR_opengl_es_enable_SPEC_VERSION 9
 #define XR_KHR_OPENGL_ES_ENABLE_EXTENSION_NAME "XR_KHR_opengl_es_enable"
 #ifdef XR_USE_PLATFORM_ANDROID
 // XrGraphicsBindingOpenGLESAndroidKHR extends XrSessionCreateInfo
@@ -218,7 +218,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 8
+#define XR_KHR_vulkan_enable_SPEC_VERSION 9
 #define XR_KHR_VULKAN_ENABLE_EXTENSION_NAME "XR_KHR_vulkan_enable"
 // XrGraphicsBindingVulkanKHR extends XrSessionCreateInfo
 typedef struct XrGraphicsBindingVulkanKHR {
@@ -283,7 +283,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  9
+#define XR_KHR_D3D11_enable_SPEC_VERSION  10
 #define XR_KHR_D3D11_ENABLE_EXTENSION_NAME "XR_KHR_D3D11_enable"
 // XrGraphicsBindingD3D11KHR extends XrSessionCreateInfo
 typedef struct XrGraphicsBindingD3D11KHR {
@@ -321,7 +321,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  9
+#define XR_KHR_D3D12_enable_SPEC_VERSION  10
 #define XR_KHR_D3D12_ENABLE_EXTENSION_NAME "XR_KHR_D3D12_enable"
 // XrGraphicsBindingD3D12KHR extends XrSessionCreateInfo
 typedef struct XrGraphicsBindingD3D12KHR {
@@ -360,7 +360,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  1
+#define XR_KHR_metal_enable_SPEC_VERSION  2
 #define XR_KHR_METAL_ENABLE_EXTENSION_NAME "XR_KHR_metal_enable"
 // XrGraphicsBindingMetalKHR extends XrSessionCreateInfo
 typedef struct XrGraphicsBindingMetalKHR {
@@ -460,7 +460,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 2
+#define XR_KHR_vulkan_enable2_SPEC_VERSION 3
 #define XR_KHR_VULKAN_ENABLE2_EXTENSION_NAME "XR_KHR_vulkan_enable2"
 typedef XrFlags64 XrVulkanInstanceCreateFlagsKHR;
 

+ 141 - 0
thirdparty/openxr/include/openxr/openxr_reflection.h

@@ -507,6 +507,7 @@ XR_ENUM_STR(XrResult);
     _(XR_TYPE_PASSTHROUGH_COLOR_MAP_INTERPOLATED_LUT_META, 1000266101) \
     _(XR_TYPE_SPACE_TRIANGLE_MESH_GET_INFO_META, 1000269001) \
     _(XR_TYPE_SPACE_TRIANGLE_MESH_META, 1000269002) \
+    _(XR_TYPE_SYSTEM_PROPERTIES_BODY_TRACKING_FULL_BODY_META, 1000274000) \
     _(XR_TYPE_EVENT_DATA_PASSTHROUGH_LAYER_RESUMED_META, 1000282000) \
     _(XR_TYPE_SYSTEM_FACE_TRACKING_PROPERTIES2_FB, 1000287013) \
     _(XR_TYPE_FACE_TRACKER_CREATE_INFO2_FB, 1000287014) \
@@ -578,6 +579,7 @@ XR_ENUM_STR(XrResult);
     _(XR_TYPE_SCENE_CAPTURE_INFO_BD, 1000392001) \
     _(XR_TYPE_SYSTEM_SPATIAL_MESH_PROPERTIES_BD, 1000393000) \
     _(XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_SPATIAL_MESH_BD, 1000393001) \
+    _(XR_TYPE_FUTURE_POLL_RESULT_PROGRESS_BD, 1000394001) \
     _(XR_TYPE_HAND_TRACKING_DATA_SOURCE_INFO_EXT, 1000428000) \
     _(XR_TYPE_HAND_TRACKING_DATA_SOURCE_STATE_EXT, 1000428001) \
     _(XR_TYPE_PLANE_DETECTOR_CREATE_INFO_EXT, 1000429001) \
@@ -610,6 +612,9 @@ XR_ENUM_STR(XrResult);
     _(XR_TYPE_FACIAL_EXPRESSION_CLIENT_CREATE_INFO_ML, 1000482005) \
     _(XR_TYPE_FACIAL_EXPRESSION_BLEND_SHAPE_GET_INFO_ML, 1000482006) \
     _(XR_TYPE_FACIAL_EXPRESSION_BLEND_SHAPE_PROPERTIES_ML, 1000482007) \
+    _(XR_TYPE_SYSTEM_SIMULTANEOUS_HANDS_AND_CONTROLLERS_PROPERTIES_META, 1000532001) \
+    _(XR_TYPE_SIMULTANEOUS_HANDS_AND_CONTROLLERS_TRACKING_RESUME_INFO_META, 1000532002) \
+    _(XR_TYPE_SIMULTANEOUS_HANDS_AND_CONTROLLERS_TRACKING_PAUSE_INFO_META, 1000532003) \
     _(XR_TYPE_COLOCATION_DISCOVERY_START_INFO_META, 1000571010) \
     _(XR_TYPE_COLOCATION_DISCOVERY_STOP_INFO_META, 1000571011) \
     _(XR_TYPE_COLOCATION_ADVERTISEMENT_START_INFO_META, 1000571012) \
@@ -913,6 +918,7 @@ XR_ENUM_STR(XrResult);
 
 #define XR_LIST_ENUM_XrBodyJointSetFB(_) \
     _(XR_BODY_JOINT_SET_DEFAULT_FB, 0) \
+    _(XR_BODY_JOINT_SET_FULL_BODY_META, 1000274000) \
     _(XR_BODY_JOINT_SET_MAX_ENUM_FB, 0x7FFFFFFF)
 
 #define XR_LIST_ENUM_XrHandJointsMotionRangeEXT(_) \
@@ -1382,6 +1388,95 @@ XR_ENUM_STR(XrResult);
     _(XR_PASSTHROUGH_COLOR_LUT_CHANNELS_RGBA_META, 2) \
     _(XR_PASSTHROUGH_COLOR_LUT_CHANNELS_MAX_ENUM_META, 0x7FFFFFFF)
 
+#define XR_LIST_ENUM_XrFullBodyJointMETA(_) \
+    _(XR_FULL_BODY_JOINT_ROOT_META, 0) \
+    _(XR_FULL_BODY_JOINT_HIPS_META, 1) \
+    _(XR_FULL_BODY_JOINT_SPINE_LOWER_META, 2) \
+    _(XR_FULL_BODY_JOINT_SPINE_MIDDLE_META, 3) \
+    _(XR_FULL_BODY_JOINT_SPINE_UPPER_META, 4) \
+    _(XR_FULL_BODY_JOINT_CHEST_META, 5) \
+    _(XR_FULL_BODY_JOINT_NECK_META, 6) \
+    _(XR_FULL_BODY_JOINT_HEAD_META, 7) \
+    _(XR_FULL_BODY_JOINT_LEFT_SHOULDER_META, 8) \
+    _(XR_FULL_BODY_JOINT_LEFT_SCAPULA_META, 9) \
+    _(XR_FULL_BODY_JOINT_LEFT_ARM_UPPER_META, 10) \
+    _(XR_FULL_BODY_JOINT_LEFT_ARM_LOWER_META, 11) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_WRIST_TWIST_META, 12) \
+    _(XR_FULL_BODY_JOINT_RIGHT_SHOULDER_META, 13) \
+    _(XR_FULL_BODY_JOINT_RIGHT_SCAPULA_META, 14) \
+    _(XR_FULL_BODY_JOINT_RIGHT_ARM_UPPER_META, 15) \
+    _(XR_FULL_BODY_JOINT_RIGHT_ARM_LOWER_META, 16) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_WRIST_TWIST_META, 17) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_PALM_META, 18) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_WRIST_META, 19) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_THUMB_METACARPAL_META, 20) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_THUMB_PROXIMAL_META, 21) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_THUMB_DISTAL_META, 22) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_THUMB_TIP_META, 23) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_INDEX_METACARPAL_META, 24) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_INDEX_PROXIMAL_META, 25) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_INDEX_INTERMEDIATE_META, 26) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_INDEX_DISTAL_META, 27) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_INDEX_TIP_META, 28) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_MIDDLE_METACARPAL_META, 29) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_MIDDLE_PROXIMAL_META, 30) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_MIDDLE_INTERMEDIATE_META, 31) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_MIDDLE_DISTAL_META, 32) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_MIDDLE_TIP_META, 33) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_RING_METACARPAL_META, 34) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_RING_PROXIMAL_META, 35) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_RING_INTERMEDIATE_META, 36) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_RING_DISTAL_META, 37) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_RING_TIP_META, 38) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_LITTLE_METACARPAL_META, 39) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_LITTLE_PROXIMAL_META, 40) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_LITTLE_INTERMEDIATE_META, 41) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_LITTLE_DISTAL_META, 42) \
+    _(XR_FULL_BODY_JOINT_LEFT_HAND_LITTLE_TIP_META, 43) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_PALM_META, 44) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_WRIST_META, 45) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_THUMB_METACARPAL_META, 46) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_THUMB_PROXIMAL_META, 47) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_THUMB_DISTAL_META, 48) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_THUMB_TIP_META, 49) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_INDEX_METACARPAL_META, 50) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_INDEX_PROXIMAL_META, 51) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_INDEX_INTERMEDIATE_META, 52) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_INDEX_DISTAL_META, 53) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_INDEX_TIP_META, 54) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_MIDDLE_METACARPAL_META, 55) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_MIDDLE_PROXIMAL_META, 56) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_MIDDLE_INTERMEDIATE_META, 57) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_MIDDLE_DISTAL_META, 58) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_MIDDLE_TIP_META, 59) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_RING_METACARPAL_META, 60) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_RING_PROXIMAL_META, 61) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_RING_INTERMEDIATE_META, 62) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_RING_DISTAL_META, 63) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_RING_TIP_META, 64) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_LITTLE_METACARPAL_META, 65) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_LITTLE_PROXIMAL_META, 66) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_LITTLE_INTERMEDIATE_META, 67) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_LITTLE_DISTAL_META, 68) \
+    _(XR_FULL_BODY_JOINT_RIGHT_HAND_LITTLE_TIP_META, 69) \
+    _(XR_FULL_BODY_JOINT_LEFT_UPPER_LEG_META, 70) \
+    _(XR_FULL_BODY_JOINT_LEFT_LOWER_LEG_META, 71) \
+    _(XR_FULL_BODY_JOINT_LEFT_FOOT_ANKLE_TWIST_META, 72) \
+    _(XR_FULL_BODY_JOINT_LEFT_FOOT_ANKLE_META, 73) \
+    _(XR_FULL_BODY_JOINT_LEFT_FOOT_SUBTALAR_META, 74) \
+    _(XR_FULL_BODY_JOINT_LEFT_FOOT_TRANSVERSE_META, 75) \
+    _(XR_FULL_BODY_JOINT_LEFT_FOOT_BALL_META, 76) \
+    _(XR_FULL_BODY_JOINT_RIGHT_UPPER_LEG_META, 77) \
+    _(XR_FULL_BODY_JOINT_RIGHT_LOWER_LEG_META, 78) \
+    _(XR_FULL_BODY_JOINT_RIGHT_FOOT_ANKLE_TWIST_META, 79) \
+    _(XR_FULL_BODY_JOINT_RIGHT_FOOT_ANKLE_META, 80) \
+    _(XR_FULL_BODY_JOINT_RIGHT_FOOT_SUBTALAR_META, 81) \
+    _(XR_FULL_BODY_JOINT_RIGHT_FOOT_TRANSVERSE_META, 82) \
+    _(XR_FULL_BODY_JOINT_RIGHT_FOOT_BALL_META, 83) \
+    _(XR_FULL_BODY_JOINT_COUNT_META, 84) \
+    _(XR_FULL_BODY_JOINT_NONE_META, 85) \
+    _(XR_FULL_BODY_JOINT_MAX_ENUM_META, 0x7FFFFFFF)
+
 #define XR_LIST_ENUM_XrFaceExpression2FB(_) \
     _(XR_FACE_EXPRESSION2_BROW_LOWERER_L_FB, 0) \
     _(XR_FACE_EXPRESSION2_BROW_LOWERER_R_FB, 1) \
@@ -4933,6 +5028,12 @@ XR_ENUM_STR(XrResult);
     _(indexCountOutput) \
     _(indices) \
 
+/// Calls your macro with the name of each member of XrSystemPropertiesBodyTrackingFullBodyMETA, in order.
+#define XR_LIST_STRUCT_XrSystemPropertiesBodyTrackingFullBodyMETA(_) \
+    _(type) \
+    _(next) \
+    _(supportsFullBodyTracking) \
+
 /// Calls your macro with the name of each member of XrEventDataPassthroughLayerResumedMETA, in order.
 #define XR_LIST_STRUCT_XrEventDataPassthroughLayerResumedMETA(_) \
     _(type) \
@@ -5478,6 +5579,13 @@ XR_ENUM_STR(XrResult);
     _(configFlags) \
     _(lod) \
 
+/// Calls your macro with the name of each member of XrFuturePollResultProgressBD, in order.
+#define XR_LIST_STRUCT_XrFuturePollResultProgressBD(_) \
+    _(type) \
+    _(next) \
+    _(isSupported) \
+    _(progressPercentage) \
+
 /// Calls your macro with the name of each member of XrHandTrackingDataSourceInfoEXT, in order.
 #define XR_LIST_STRUCT_XrHandTrackingDataSourceInfoEXT(_) \
     _(type) \
@@ -5745,6 +5853,22 @@ XR_ENUM_STR(XrResult);
     _(flags) \
     _(time) \
 
+/// Calls your macro with the name of each member of XrSystemSimultaneousHandsAndControllersPropertiesMETA, in order.
+#define XR_LIST_STRUCT_XrSystemSimultaneousHandsAndControllersPropertiesMETA(_) \
+    _(type) \
+    _(next) \
+    _(supportsSimultaneousHandsAndControllers) \
+
+/// Calls your macro with the name of each member of XrSimultaneousHandsAndControllersTrackingResumeInfoMETA, in order.
+#define XR_LIST_STRUCT_XrSimultaneousHandsAndControllersTrackingResumeInfoMETA(_) \
+    _(type) \
+    _(next) \
+
+/// Calls your macro with the name of each member of XrSimultaneousHandsAndControllersTrackingPauseInfoMETA, in order.
+#define XR_LIST_STRUCT_XrSimultaneousHandsAndControllersTrackingPauseInfoMETA(_) \
+    _(type) \
+    _(next) \
+
 /// Calls your macro with the name of each member of XrColocationDiscoveryStartInfoMETA, in order.
 #define XR_LIST_STRUCT_XrColocationDiscoveryStartInfoMETA(_) \
     _(type) \
@@ -6164,6 +6288,7 @@ XR_ENUM_STR(XrResult);
     _(XrSystemPassthroughColorLutPropertiesMETA, XR_TYPE_SYSTEM_PASSTHROUGH_COLOR_LUT_PROPERTIES_META) \
     _(XrSpaceTriangleMeshGetInfoMETA, XR_TYPE_SPACE_TRIANGLE_MESH_GET_INFO_META) \
     _(XrSpaceTriangleMeshMETA, XR_TYPE_SPACE_TRIANGLE_MESH_META) \
+    _(XrSystemPropertiesBodyTrackingFullBodyMETA, XR_TYPE_SYSTEM_PROPERTIES_BODY_TRACKING_FULL_BODY_META) \
     _(XrEventDataPassthroughLayerResumedMETA, XR_TYPE_EVENT_DATA_PASSTHROUGH_LAYER_RESUMED_META) \
     _(XrSystemFaceTrackingProperties2FB, XR_TYPE_SYSTEM_FACE_TRACKING_PROPERTIES2_FB) \
     _(XrFaceTrackerCreateInfo2FB, XR_TYPE_FACE_TRACKER_CREATE_INFO2_FB) \
@@ -6236,6 +6361,7 @@ XR_ENUM_STR(XrResult);
     _(XrSceneCaptureInfoBD, XR_TYPE_SCENE_CAPTURE_INFO_BD) \
     _(XrSystemSpatialMeshPropertiesBD, XR_TYPE_SYSTEM_SPATIAL_MESH_PROPERTIES_BD) \
     _(XrSenseDataProviderCreateInfoSpatialMeshBD, XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_SPATIAL_MESH_BD) \
+    _(XrFuturePollResultProgressBD, XR_TYPE_FUTURE_POLL_RESULT_PROGRESS_BD) \
     _(XrHandTrackingDataSourceInfoEXT, XR_TYPE_HAND_TRACKING_DATA_SOURCE_INFO_EXT) \
     _(XrHandTrackingDataSourceStateEXT, XR_TYPE_HAND_TRACKING_DATA_SOURCE_STATE_EXT) \
     _(XrSystemPlaneDetectionPropertiesEXT, XR_TYPE_SYSTEM_PLANE_DETECTION_PROPERTIES_EXT) \
@@ -6270,6 +6396,9 @@ XR_ENUM_STR(XrResult);
     _(XrFacialExpressionClientCreateInfoML, XR_TYPE_FACIAL_EXPRESSION_CLIENT_CREATE_INFO_ML) \
     _(XrFacialExpressionBlendShapeGetInfoML, XR_TYPE_FACIAL_EXPRESSION_BLEND_SHAPE_GET_INFO_ML) \
     _(XrFacialExpressionBlendShapePropertiesML, XR_TYPE_FACIAL_EXPRESSION_BLEND_SHAPE_PROPERTIES_ML) \
+    _(XrSystemSimultaneousHandsAndControllersPropertiesMETA, XR_TYPE_SYSTEM_SIMULTANEOUS_HANDS_AND_CONTROLLERS_PROPERTIES_META) \
+    _(XrSimultaneousHandsAndControllersTrackingResumeInfoMETA, XR_TYPE_SIMULTANEOUS_HANDS_AND_CONTROLLERS_TRACKING_RESUME_INFO_META) \
+    _(XrSimultaneousHandsAndControllersTrackingPauseInfoMETA, XR_TYPE_SIMULTANEOUS_HANDS_AND_CONTROLLERS_TRACKING_PAUSE_INFO_META) \
     _(XrColocationDiscoveryStartInfoMETA, XR_TYPE_COLOCATION_DISCOVERY_START_INFO_META) \
     _(XrColocationDiscoveryStopInfoMETA, XR_TYPE_COLOCATION_DISCOVERY_STOP_INFO_META) \
     _(XrColocationAdvertisementStartInfoMETA, XR_TYPE_COLOCATION_ADVERTISEMENT_START_INFO_META) \
@@ -6603,6 +6732,7 @@ XR_ENUM_STR(XrResult);
     _(XR_META_passthrough_color_lut, 267) \
     _(XR_META_spatial_entity_mesh, 270) \
     _(XR_META_automatic_layer_filter, 272) \
+    _(XR_META_body_tracking_full_body, 275) \
     _(XR_META_touch_controller_plus, 280) \
     _(XR_META_passthrough_layer_resumed_event, 283) \
     _(XR_FB_face_tracking2, 288) \
@@ -6624,6 +6754,7 @@ XR_ENUM_STR(XrResult);
     _(XR_BD_spatial_anchor_sharing, 392) \
     _(XR_BD_spatial_scene, 393) \
     _(XR_BD_spatial_mesh, 394) \
+    _(XR_BD_future_progress, 395) \
     _(XR_EXT_local_floor, 427) \
     _(XR_EXT_hand_tracking_data_source, 429) \
     _(XR_EXT_plane_detection, 430) \
@@ -6637,6 +6768,7 @@ XR_ENUM_STR(XrResult);
     _(XR_ML_facial_expression, 483) \
     _(XR_ML_view_configuration_depth_range_change, 484) \
     _(XR_YVR_controller_interaction, 498) \
+    _(XR_META_simultaneous_hands_and_controllers, 533) \
     _(XR_EXT_composition_layer_inverted_alpha, 555) \
     _(XR_META_colocation_discovery, 572) \
     _(XR_META_spatial_entity_group_sharing, 573) \
@@ -7659,6 +7791,15 @@ XR_ENUM_STR(XrResult);
     _(GetFacialExpressionBlendShapePropertiesML, ML_facial_expression) \
 
 
+/// For every function defined by XR_META_simultaneous_hands_and_controllers in this version of the spec,
+/// calls your macro with the function name and extension name.
+/// Trims the leading `xr` from the function name and the leading `XR_` from the feature name,
+/// because it is easy to add back but impossible to remove with the preprocessor.
+#define XR_LIST_FUNCTIONS_XR_META_simultaneous_hands_and_controllers(_) \
+    _(ResumeSimultaneousHandsAndControllersTrackingMETA, META_simultaneous_hands_and_controllers) \
+    _(PauseSimultaneousHandsAndControllersTrackingMETA, META_simultaneous_hands_and_controllers) \
+
+
 /// For every function defined by XR_META_colocation_discovery in this version of the spec,
 /// calls your macro with the function name and extension name.
 /// Trims the leading `xr` from the function name and the leading `XR_` from the feature name,

+ 5 - 0
thirdparty/openxr/include/openxr/openxr_reflection_structs.h

@@ -339,6 +339,7 @@ This file contains expansion macros (X Macros) for OpenXR structures.
     _avail(XrSystemPassthroughColorLutPropertiesMETA, XR_TYPE_SYSTEM_PASSTHROUGH_COLOR_LUT_PROPERTIES_META) \
     _avail(XrSpaceTriangleMeshGetInfoMETA, XR_TYPE_SPACE_TRIANGLE_MESH_GET_INFO_META) \
     _avail(XrSpaceTriangleMeshMETA, XR_TYPE_SPACE_TRIANGLE_MESH_META) \
+    _avail(XrSystemPropertiesBodyTrackingFullBodyMETA, XR_TYPE_SYSTEM_PROPERTIES_BODY_TRACKING_FULL_BODY_META) \
     _avail(XrEventDataPassthroughLayerResumedMETA, XR_TYPE_EVENT_DATA_PASSTHROUGH_LAYER_RESUMED_META) \
     _avail(XrSystemFaceTrackingProperties2FB, XR_TYPE_SYSTEM_FACE_TRACKING_PROPERTIES2_FB) \
     _avail(XrFaceTrackerCreateInfo2FB, XR_TYPE_FACE_TRACKER_CREATE_INFO2_FB) \
@@ -411,6 +412,7 @@ This file contains expansion macros (X Macros) for OpenXR structures.
     _avail(XrSceneCaptureInfoBD, XR_TYPE_SCENE_CAPTURE_INFO_BD) \
     _avail(XrSystemSpatialMeshPropertiesBD, XR_TYPE_SYSTEM_SPATIAL_MESH_PROPERTIES_BD) \
     _avail(XrSenseDataProviderCreateInfoSpatialMeshBD, XR_TYPE_SENSE_DATA_PROVIDER_CREATE_INFO_SPATIAL_MESH_BD) \
+    _avail(XrFuturePollResultProgressBD, XR_TYPE_FUTURE_POLL_RESULT_PROGRESS_BD) \
     _avail(XrHandTrackingDataSourceInfoEXT, XR_TYPE_HAND_TRACKING_DATA_SOURCE_INFO_EXT) \
     _avail(XrHandTrackingDataSourceStateEXT, XR_TYPE_HAND_TRACKING_DATA_SOURCE_STATE_EXT) \
     _avail(XrSystemPlaneDetectionPropertiesEXT, XR_TYPE_SYSTEM_PLANE_DETECTION_PROPERTIES_EXT) \
@@ -445,6 +447,9 @@ This file contains expansion macros (X Macros) for OpenXR structures.
     _avail(XrFacialExpressionClientCreateInfoML, XR_TYPE_FACIAL_EXPRESSION_CLIENT_CREATE_INFO_ML) \
     _avail(XrFacialExpressionBlendShapeGetInfoML, XR_TYPE_FACIAL_EXPRESSION_BLEND_SHAPE_GET_INFO_ML) \
     _avail(XrFacialExpressionBlendShapePropertiesML, XR_TYPE_FACIAL_EXPRESSION_BLEND_SHAPE_PROPERTIES_ML) \
+    _avail(XrSystemSimultaneousHandsAndControllersPropertiesMETA, XR_TYPE_SYSTEM_SIMULTANEOUS_HANDS_AND_CONTROLLERS_PROPERTIES_META) \
+    _avail(XrSimultaneousHandsAndControllersTrackingResumeInfoMETA, XR_TYPE_SIMULTANEOUS_HANDS_AND_CONTROLLERS_TRACKING_RESUME_INFO_META) \
+    _avail(XrSimultaneousHandsAndControllersTrackingPauseInfoMETA, XR_TYPE_SIMULTANEOUS_HANDS_AND_CONTROLLERS_TRACKING_PAUSE_INFO_META) \
     _avail(XrColocationDiscoveryStartInfoMETA, XR_TYPE_COLOCATION_DISCOVERY_START_INFO_META) \
     _avail(XrColocationDiscoveryStopInfoMETA, XR_TYPE_COLOCATION_DISCOVERY_STOP_INFO_META) \
     _avail(XrColocationAdvertisementStartInfoMETA, XR_TYPE_COLOCATION_ADVERTISEMENT_START_INFO_META) \

+ 0 - 28
thirdparty/openxr/patches/0001-glad-egl.patch

@@ -1,28 +0,0 @@
-diff --git a/thirdparty/openxr/src/common/xr_dependencies.h b/thirdparty/openxr/src/common/xr_dependencies.h
-index 55d93bfbac..a192a2ec6d 100644
---- a/thirdparty/openxr/src/common/xr_dependencies.h
-+++ b/thirdparty/openxr/src/common/xr_dependencies.h
-@@ -65,7 +65,11 @@
- #endif  // XR_USE_GRAPHICS_API_OPENGL
- 
- #ifdef XR_USE_GRAPHICS_API_OPENGL_ES
-+#ifdef GLAD_ENABLED
-+#include "thirdparty/glad/glad/egl.h"
-+#else
- #include <EGL/egl.h>
-+#endif
- #endif  // XR_USE_GRAPHICS_API_OPENGL_ES
- 
- #ifdef XR_USE_GRAPHICS_API_VULKAN
-@@ -77,7 +81,11 @@
- #endif  // XR_USE_PLATFORM_WAYLAND
- 
- #ifdef XR_USE_PLATFORM_EGL
-+#ifdef GLAD_ENABLED
-+#include "thirdparty/glad/glad/egl.h"
-+#else
- #include <EGL/egl.h>
-+#endif
- #endif  // XR_USE_PLATFORM_EGL
- 
- #if defined(XR_USE_PLATFORM_XLIB) || defined(XR_USE_PLATFORM_XCB)

+ 25 - 25
thirdparty/openxr/src/common/xr_dependencies.h

@@ -52,42 +52,38 @@
 #include <xcb/xcb.h>
 #endif  // XR_USE_PLATFORM_XCB
 
-#ifdef XR_USE_GRAPHICS_API_OPENGL
-#if defined(XR_USE_PLATFORM_XLIB) || defined(XR_USE_PLATFORM_XCB)
-#include <GL/glx.h>
-#endif  // (XR_USE_PLATFORM_XLIB || XR_USE_PLATFORM_XCB)
-#ifdef XR_USE_PLATFORM_XCB
-#include <xcb/glx.h>
-#endif  // XR_USE_PLATFORM_XCB
-#ifdef XR_USE_PLATFORM_MACOS
-#include <OpenCL/cl_gl_ext.h>
-#endif  // XR_USE_PLATFORM_MACOS
-#endif  // XR_USE_GRAPHICS_API_OPENGL
-
-#ifdef XR_USE_GRAPHICS_API_OPENGL_ES
-#ifdef GLAD_ENABLED
-#include "thirdparty/glad/glad/egl.h"
+#if defined(XR_USE_GRAPHICS_API_OPENGL_ES) || defined(XR_USE_PLATFORM_EGL) || defined(XR_USE_PLATFORM_ANDROID)
+#ifdef XRDEPENDENCIES_USE_GLAD
+#include <glad/egl.h>
 #else
 #include <EGL/egl.h>
 #endif
-#endif  // XR_USE_GRAPHICS_API_OPENGL_ES
+#endif  // XR_USE_GRAPHICS_API_OPENGL_ES || XR_USE_PLATFORM_EGL || XR_USE_PLATFORM_ANDROID
+
+#if defined(XR_USE_GRAPHICS_API_OPENGL) && (defined(XR_USE_PLATFORM_XLIB) || defined(XR_USE_PLATFORM_XCB))
+#ifdef XRDEPENDENCIES_USE_GLAD
+#include <glad/glx.h>
+#else
+#include <GL/glx.h>
+#endif
+#endif  // XR_USE_GRAPHICS_API_OPENGL && XR_USE_PLATFORM_XLIB || XR_USE_PLATFORM_XCB
+
+#if defined(XR_USE_GRAPHICS_API_OPENGL) && defined(XR_USE_PLATFORM_XCB)
+#include <xcb/glx.h>
+#endif  // XR_USE_GRAPHICS_API_OPENGL && XR_USE_PLATFORM_XCB
+
+#if defined(XR_USE_GRAPHICS_API_OPENGL) && defined(XR_USE_PLATFORM_MACOS) && !defined(XRDEPENDENCIES_USE_GLAD)
+#include <OpenCL/cl_gl_ext.h>
+#endif  // XR_USE_GRAPHICS_API_OPENGL && XR_USE_PLATFORM_MACOS && !XRDEPENDENCIES_USE_GLAD
 
 #ifdef XR_USE_GRAPHICS_API_VULKAN
 #include <vulkan/vulkan.h>
 #endif  // XR_USE_GRAPHICS_API_VULKAN
 
 #ifdef XR_USE_PLATFORM_WAYLAND
-#include "wayland-client.h"
+#include <wayland-client.h>
 #endif  // XR_USE_PLATFORM_WAYLAND
 
-#ifdef XR_USE_PLATFORM_EGL
-#ifdef GLAD_ENABLED
-#include "thirdparty/glad/glad/egl.h"
-#else
-#include <EGL/egl.h>
-#endif
-#endif  // XR_USE_PLATFORM_EGL
-
 #if defined(XR_USE_PLATFORM_XLIB) || defined(XR_USE_PLATFORM_XCB)
 #ifdef Success
 #undef Success
@@ -101,3 +97,7 @@
 #undef None
 #endif  // None
 #endif  // defined(XR_USE_PLATFORM_XLIB) || defined(XR_USE_PLATFORM_XCB)
+
+#ifdef XR_USE_TIMESPEC
+#include <time.h>
+#endif  // XR_USE_TIMESPEC