diff options
| author | Bastiaan Olij <mux213@gmail.com> | 2022-06-23 17:04:38 +1000 | 
|---|---|---|
| committer | Bastiaan Olij <mux213@gmail.com> | 2022-06-23 17:07:22 +1000 | 
| commit | a740a6eda101a08e69cd8987e76d08dcdf1a719c (patch) | |
| tree | 9273ab4a9369e7cd1ef6c72b9f3f29da8ac4d243 | |
| parent | abb92861f44427e9376fab9ee2f414f14848d6b5 (diff) | |
Update OpenXR to 1.0.23
| -rw-r--r-- | thirdparty/README.md | 2 | ||||
| -rw-r--r-- | thirdparty/openxr/include/openxr/openxr.h | 595 | ||||
| -rw-r--r-- | thirdparty/openxr/include/openxr/openxr_platform.h | 19 | ||||
| -rw-r--r-- | thirdparty/openxr/include/openxr/openxr_reflection.h | 357 | ||||
| -rw-r--r-- | thirdparty/openxr/src/common/xr_linear.h | 6 | ||||
| -rw-r--r-- | thirdparty/openxr/src/xr_generated_dispatch_table.c | 30 | ||||
| -rw-r--r-- | thirdparty/openxr/src/xr_generated_dispatch_table.h | 30 | 
7 files changed, 1002 insertions, 37 deletions
diff --git a/thirdparty/README.md b/thirdparty/README.md index f56a97d25b..1cc272b1bf 100644 --- a/thirdparty/README.md +++ b/thirdparty/README.md @@ -526,7 +526,7 @@ Patch files are provided in `oidn/patches/`.  ## openxr  - Upstream: https://github.com/KhronosGroup/OpenXR-SDK -- Version: 1.0.22 (458984d7f59d1ae6dc1b597d94b02e4f7132eaba, 2022) +- Version: 1.0.23 (885a90f8934d84121344ba8e4aa5159d5b496e08, 2022)  - 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 8798e5a6e0..6c6a52d27e 100644 --- a/thirdparty/openxr/include/openxr/openxr.h +++ b/thirdparty/openxr/include/openxr/openxr.h @@ -25,12 +25,15 @@ extern "C" {      ((((major) & 0xffffULL) << 48) | (((minor) & 0xffffULL) << 32) | ((patch) & 0xffffffffULL))  // OpenXR current version number. -#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 0, 22) +#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 0, 23)  #define XR_VERSION_MAJOR(version) (uint16_t)(((uint64_t)(version) >> 48)& 0xffffULL)  #define XR_VERSION_MINOR(version) (uint16_t)(((uint64_t)(version) >> 32) & 0xffffULL)  #define XR_VERSION_PATCH(version) (uint32_t)((uint64_t)(version) & 0xffffffffULL) +#define XR_MIN_COMPOSITION_LAYERS_SUPPORTED 16 + +  #if !defined(XR_NULL_HANDLE)  #if (XR_PTR_SIZE == 8) && XR_CPP_NULLPTR_SUPPORTED      #define XR_NULL_HANDLE nullptr @@ -120,7 +123,6 @@ XR_DEFINE_HANDLE(XrActionSet)  #define XR_MAX_PATH_LENGTH                256  #define XR_MAX_STRUCTURE_NAME_SIZE        64  #define XR_MAX_RESULT_STRING_SIZE         64 -#define XR_MIN_COMPOSITION_LAYERS_SUPPORTED 16  #define XR_MAX_ACTION_SET_NAME_SIZE       64  #define XR_MAX_LOCALIZED_ACTION_SET_NAME_SIZE 128  #define XR_MAX_ACTION_NAME_SIZE           64 @@ -196,6 +198,10 @@ typedef enum XrResult {      XR_ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT = -1000097005,      XR_ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB = -1000101000,      XR_ERROR_COLOR_SPACE_UNSUPPORTED_FB = -1000108000, +    XR_ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB = -1000113000, +    XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB = -1000113001, +    XR_ERROR_SPACE_COMPONENT_STATUS_PENDING_FB = -1000113002, +    XR_ERROR_SPACE_COMPONENT_STATUS_ALREADY_SET_FB = -1000113003,      XR_ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB = -1000118000,      XR_ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB = -1000118001,      XR_ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB = -1000118002, @@ -305,6 +311,9 @@ typedef enum XrStructureType {      XR_TYPE_VIEW_CONFIGURATION_DEPTH_RANGE_EXT = 1000046000,      XR_TYPE_GRAPHICS_BINDING_EGL_MNDX = 1000048004,      XR_TYPE_SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT = 1000049000, +    XR_TYPE_SPATIAL_GRAPH_STATIC_NODE_BINDING_CREATE_INFO_MSFT = 1000049001, +    XR_TYPE_SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT = 1000049002, +    XR_TYPE_SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_MSFT = 1000049003,      XR_TYPE_SYSTEM_HAND_TRACKING_PROPERTIES_EXT = 1000051000,      XR_TYPE_HAND_TRACKER_CREATE_INFO_EXT = 1000051001,      XR_TYPE_HAND_JOINTS_LOCATE_INFO_EXT = 1000051002, @@ -332,6 +341,7 @@ typedef enum XrStructureType {      XR_TYPE_COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT = 1000066001,      XR_TYPE_ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB = 1000070000,      XR_TYPE_COMPOSITION_LAYER_SECURE_CONTENT_FB = 1000072000, +    XR_TYPE_INTERACTION_PROFILE_DPAD_BINDING_EXT = 1000078000,      XR_TYPE_INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE = 1000079000,      XR_TYPE_HAND_JOINTS_MOTION_RANGE_INFO_EXT = 1000080000,      XR_TYPE_LOADER_INIT_INFO_ANDROID_KHR = 1000089000, @@ -371,6 +381,12 @@ typedef enum XrStructureType {      XR_TYPE_HAND_TRACKING_SCALE_FB = 1000110003,      XR_TYPE_HAND_TRACKING_AIM_STATE_FB = 1000111001,      XR_TYPE_HAND_TRACKING_CAPSULES_STATE_FB = 1000112000, +    XR_TYPE_SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB = 1000113004, +    XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_FB = 1000113003, +    XR_TYPE_SPACE_COMPONENT_STATUS_SET_INFO_FB = 1000113007, +    XR_TYPE_SPACE_COMPONENT_STATUS_FB = 1000113001, +    XR_TYPE_EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB = 1000113005, +    XR_TYPE_EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB = 1000113006,      XR_TYPE_FOVEATION_PROFILE_CREATE_INFO_FB = 1000114000,      XR_TYPE_SWAPCHAIN_CREATE_INFO_FOVEATION_FB = 1000114001,      XR_TYPE_SWAPCHAIN_STATE_FOVEATION_FB = 1000114002, @@ -388,12 +404,14 @@ typedef enum XrStructureType {      XR_TYPE_PASSTHROUGH_STYLE_FB = 1000118020,      XR_TYPE_PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB = 1000118021,      XR_TYPE_PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB = 1000118022, +    XR_TYPE_PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB = 1000118023,      XR_TYPE_EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB = 1000118030,      XR_TYPE_RENDER_MODEL_PATH_INFO_FB = 1000119000,      XR_TYPE_RENDER_MODEL_PROPERTIES_FB = 1000119001,      XR_TYPE_RENDER_MODEL_BUFFER_FB = 1000119002,      XR_TYPE_RENDER_MODEL_LOAD_INFO_FB = 1000119003,      XR_TYPE_SYSTEM_RENDER_MODEL_PROPERTIES_FB = 1000119004, +    XR_TYPE_RENDER_MODEL_CAPABILITIES_REQUEST_FB = 1000119005,      XR_TYPE_BINDING_MODIFICATIONS_KHR = 1000120000,      XR_TYPE_VIEW_LOCATE_FOVEATED_RENDERING_VARJO = 1000121000,      XR_TYPE_FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO = 1000121001, @@ -404,6 +422,17 @@ typedef enum XrStructureType {      XR_TYPE_MARKER_SPACE_CREATE_INFO_VARJO = 1000124002,      XR_TYPE_SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT = 1000142000,      XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT = 1000142001, +    XR_TYPE_SPACE_QUERY_INFO_FB = 1000156001, +    XR_TYPE_SPACE_QUERY_RESULTS_FB = 1000156002, +    XR_TYPE_SPACE_STORAGE_LOCATION_FILTER_INFO_FB = 1000156003, +    XR_TYPE_SPACE_UUID_FILTER_INFO_FB = 1000156054, +    XR_TYPE_SPACE_COMPONENT_FILTER_INFO_FB = 1000156052, +    XR_TYPE_EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB = 1000156103, +    XR_TYPE_EVENT_DATA_SPACE_QUERY_COMPLETE_FB = 1000156104, +    XR_TYPE_SPACE_SAVE_INFO_FB = 1000158000, +    XR_TYPE_SPACE_ERASE_INFO_FB = 1000158001, +    XR_TYPE_EVENT_DATA_SPACE_SAVE_COMPLETE_FB = 1000158106, +    XR_TYPE_EVENT_DATA_SPACE_ERASE_COMPLETE_FB = 1000158107,      XR_TYPE_SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB = 1000160000,      XR_TYPE_SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB = 1000161000,      XR_TYPE_SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB = 1000162000, @@ -411,7 +440,12 @@ typedef enum XrStructureType {      XR_TYPE_COMPOSITION_LAYER_SPACE_WARP_INFO_FB = 1000171000,      XR_TYPE_SYSTEM_SPACE_WARP_PROPERTIES_FB = 1000171001,      XR_TYPE_DIGITAL_LENS_CONTROL_ALMALENCE = 1000196000, +    XR_TYPE_SPACE_CONTAINER_FB = 1000199000,      XR_TYPE_PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB = 1000203002, +    XR_TYPE_COMPOSITION_LAYER_SETTINGS_FB = 1000204000, +    XR_TYPE_VULKAN_SWAPCHAIN_CREATE_INFO_META = 1000227000, +    XR_TYPE_PERFORMANCE_METRICS_STATE_META = 1000232001, +    XR_TYPE_PERFORMANCE_METRICS_COUNTER_META = 1000232002,      XR_TYPE_GRAPHICS_BINDING_VULKAN2_KHR = XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR,      XR_TYPE_SWAPCHAIN_IMAGE_VULKAN2_KHR = XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR,      XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN2_KHR = XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR, @@ -487,6 +521,7 @@ typedef enum XrObjectType {      XR_OBJECT_TYPE_ACTION = 6,      XR_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000019000,      XR_OBJECT_TYPE_SPATIAL_ANCHOR_MSFT = 1000039000, +    XR_OBJECT_TYPE_SPATIAL_GRAPH_NODE_BINDING_MSFT = 1000049000,      XR_OBJECT_TYPE_HAND_TRACKER_EXT = 1000051000,      XR_OBJECT_TYPE_SCENE_OBSERVER_MSFT = 1000097000,      XR_OBJECT_TYPE_SCENE_MSFT = 1000097001, @@ -1424,7 +1459,7 @@ typedef struct XrCompositionLayerCubeKHR {  #define XR_KHR_composition_layer_depth 1 -#define XR_KHR_composition_layer_depth_SPEC_VERSION 5 +#define XR_KHR_composition_layer_depth_SPEC_VERSION 6  #define XR_KHR_COMPOSITION_LAYER_DEPTH_EXTENSION_NAME "XR_KHR_composition_layer_depth"  // XrCompositionLayerDepthInfoKHR extends XrCompositionLayerProjectionView  typedef struct XrCompositionLayerDepthInfoKHR { @@ -1766,7 +1801,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrSessionInsertDebugUtilsLabelEXT(  #define XR_EXT_eye_gaze_interaction 1 -#define XR_EXT_eye_gaze_interaction_SPEC_VERSION 1 +#define XR_EXT_eye_gaze_interaction_SPEC_VERSION 2  #define XR_EXT_EYE_GAZE_INTERACTION_EXTENSION_NAME "XR_EXT_eye_gaze_interaction"  // XrSystemEyeGazeInteractionPropertiesEXT extends XrSystemProperties  typedef struct XrSystemEyeGazeInteractionPropertiesEXT { @@ -1977,8 +2012,10 @@ XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceLocationEXT(  #define XR_MSFT_spatial_graph_bridge 1 -#define XR_MSFT_spatial_graph_bridge_SPEC_VERSION 1 +XR_DEFINE_HANDLE(XrSpatialGraphNodeBindingMSFT) +#define XR_MSFT_spatial_graph_bridge_SPEC_VERSION 2  #define XR_MSFT_SPATIAL_GRAPH_BRIDGE_EXTENSION_NAME "XR_MSFT_spatial_graph_bridge" +#define XR_GUID_SIZE_MSFT                 16  typedef enum XrSpatialGraphNodeTypeMSFT {      XR_SPATIAL_GRAPH_NODE_TYPE_STATIC_MSFT = 1, @@ -1989,11 +2026,34 @@ typedef struct XrSpatialGraphNodeSpaceCreateInfoMSFT {      XrStructureType               type;      const void* XR_MAY_ALIAS      next;      XrSpatialGraphNodeTypeMSFT    nodeType; -    uint8_t                       nodeId[16]; +    uint8_t                       nodeId[XR_GUID_SIZE_MSFT];      XrPosef                       pose;  } XrSpatialGraphNodeSpaceCreateInfoMSFT; +typedef struct XrSpatialGraphStaticNodeBindingCreateInfoMSFT { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +    XrSpace                     space; +    XrPosef                     poseInSpace; +    XrTime                      time; +} XrSpatialGraphStaticNodeBindingCreateInfoMSFT; + +typedef struct XrSpatialGraphNodeBindingPropertiesGetInfoMSFT { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +} XrSpatialGraphNodeBindingPropertiesGetInfoMSFT; + +typedef struct XrSpatialGraphNodeBindingPropertiesMSFT { +    XrStructureType       type; +    void* XR_MAY_ALIAS    next; +    uint8_t               nodeId[XR_GUID_SIZE_MSFT]; +    XrPosef               poseInNodeSpace; +} XrSpatialGraphNodeBindingPropertiesMSFT; +  typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialGraphNodeSpaceMSFT)(XrSession session, const XrSpatialGraphNodeSpaceCreateInfoMSFT* createInfo, XrSpace* space); +typedef XrResult (XRAPI_PTR *PFN_xrTryCreateSpatialGraphStaticNodeBindingMSFT)(XrSession session, const XrSpatialGraphStaticNodeBindingCreateInfoMSFT* createInfo, XrSpatialGraphNodeBindingMSFT* nodeBinding); +typedef XrResult (XRAPI_PTR *PFN_xrDestroySpatialGraphNodeBindingMSFT)(XrSpatialGraphNodeBindingMSFT nodeBinding); +typedef XrResult (XRAPI_PTR *PFN_xrGetSpatialGraphNodeBindingPropertiesMSFT)(XrSpatialGraphNodeBindingMSFT nodeBinding, const XrSpatialGraphNodeBindingPropertiesGetInfoMSFT* getInfo, XrSpatialGraphNodeBindingPropertiesMSFT* properties);  #ifndef XR_NO_PROTOTYPES  #ifdef XR_EXTENSION_PROTOTYPES @@ -2001,6 +2061,19 @@ XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialGraphNodeSpaceMSFT(      XrSession                                   session,      const XrSpatialGraphNodeSpaceCreateInfoMSFT* createInfo,      XrSpace*                                    space); + +XRAPI_ATTR XrResult XRAPI_CALL xrTryCreateSpatialGraphStaticNodeBindingMSFT( +    XrSession                                   session, +    const XrSpatialGraphStaticNodeBindingCreateInfoMSFT* createInfo, +    XrSpatialGraphNodeBindingMSFT*              nodeBinding); + +XRAPI_ATTR XrResult XRAPI_CALL xrDestroySpatialGraphNodeBindingMSFT( +    XrSpatialGraphNodeBindingMSFT               nodeBinding); + +XRAPI_ATTR XrResult XRAPI_CALL xrGetSpatialGraphNodeBindingPropertiesMSFT( +    XrSpatialGraphNodeBindingMSFT               nodeBinding, +    const XrSpatialGraphNodeBindingPropertiesGetInfoMSFT* getInfo, +    XrSpatialGraphNodeBindingPropertiesMSFT*    properties);  #endif /* XR_EXTENSION_PROTOTYPES */  #endif /* !XR_NO_PROTOTYPES */ @@ -2056,6 +2129,7 @@ typedef enum XrHandJointEXT {  typedef enum XrHandJointSetEXT {      XR_HAND_JOINT_SET_DEFAULT_EXT = 0, +    XR_HAND_JOINT_SET_HAND_WITH_FOREARM_ULTRALEAP = 1000149000,      XR_HAND_JOINT_SET_MAX_ENUM_EXT = 0x7FFFFFFF  } XrHandJointSetEXT;  // XrSystemHandTrackingPropertiesEXT extends XrSystemProperties @@ -2454,6 +2528,25 @@ typedef struct XrCompositionLayerSecureContentFB { +#define XR_EXT_dpad_binding 1 +#define XR_EXT_dpad_binding_SPEC_VERSION  1 +#define XR_EXT_DPAD_BINDING_EXTENSION_NAME "XR_EXT_dpad_binding" +typedef struct XrInteractionProfileDpadBindingEXT { +    XrStructureType              type; +    const void* XR_MAY_ALIAS     next; +    XrPath                       binding; +    XrActionSet                  actionSet; +    float                        forceThreshold; +    float                        forceThresholdReleased; +    float                        centerRegion; +    float                        wedgeAngle; +    XrBool32                     isSticky; +    const XrHapticBaseHeader*    onHaptic; +    const XrHapticBaseHeader*    offHaptic; +} XrInteractionProfileDpadBindingEXT; + + +  #define XR_VALVE_analog_threshold 1  #define XR_VALVE_analog_threshold_SPEC_VERSION 2  #define XR_VALVE_ANALOG_THRESHOLD_EXTENSION_NAME "XR_VALVE_analog_threshold" @@ -3058,10 +3151,20 @@ XRAPI_ATTR XrResult XRAPI_CALL xrGetFacialExpressionsHTC(  #define XR_HTC_vive_focus3_controller_interaction 1 -#define XR_HTC_vive_focus3_controller_interaction_SPEC_VERSION 1 +#define XR_HTC_vive_focus3_controller_interaction_SPEC_VERSION 2  #define XR_HTC_VIVE_FOCUS3_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_HTC_vive_focus3_controller_interaction" +#define XR_HTC_hand_interaction 1 +#define XR_HTC_hand_interaction_SPEC_VERSION 1 +#define XR_HTC_HAND_INTERACTION_EXTENSION_NAME "XR_HTC_hand_interaction" + + +#define XR_HTC_vive_wrist_tracker_interaction 1 +#define XR_HTC_vive_wrist_tracker_interaction_SPEC_VERSION 1 +#define XR_HTC_VIVE_WRIST_TRACKER_INTERACTION_EXTENSION_NAME "XR_HTC_vive_wrist_tracker_interaction" + +  #define XR_FB_color_space 1  #define XR_FB_color_space_SPEC_VERSION    2  #define XR_FB_COLOR_SPACE_EXTENSION_NAME  "XR_FB_color_space" @@ -3103,7 +3206,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrSetColorSpaceFB(  #define XR_FB_hand_tracking_mesh 1 -#define XR_FB_hand_tracking_mesh_SPEC_VERSION 1 +#define XR_FB_hand_tracking_mesh_SPEC_VERSION 2  #define XR_FB_HAND_TRACKING_MESH_EXTENSION_NAME "XR_FB_hand_tracking_mesh"  typedef struct XrVector4sFB {      int16_t    x; @@ -3132,7 +3235,7 @@ typedef struct XrHandTrackingMeshFB {      int16_t*              indices;  } XrHandTrackingMeshFB; -// XrHandTrackingScaleFB extends XrHandJointsLocateInfoEXT +// XrHandTrackingScaleFB extends XrHandJointLocationsEXT  typedef struct XrHandTrackingScaleFB {      XrStructureType       type;      void* XR_MAY_ALIAS    next; @@ -3154,7 +3257,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrGetHandMeshFB(  #define XR_FB_hand_tracking_aim 1 -#define XR_FB_hand_tracking_aim_SPEC_VERSION 1 +#define XR_FB_hand_tracking_aim_SPEC_VERSION 2  #define XR_FB_HAND_TRACKING_AIM_EXTENSION_NAME "XR_FB_hand_tracking_aim"  typedef XrFlags64 XrHandTrackingAimFlagsFB; @@ -3169,7 +3272,7 @@ static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_SYSTEM_GESTURE_BIT_FB  static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_DOMINANT_HAND_BIT_FB = 0x00000080;  static const XrHandTrackingAimFlagsFB XR_HAND_TRACKING_AIM_MENU_PRESSED_BIT_FB = 0x00000100; -// XrHandTrackingAimStateFB extends XrHandJointsLocateInfoEXT +// XrHandTrackingAimStateFB extends XrHandJointLocationsEXT  typedef struct XrHandTrackingAimStateFB {      XrStructureType             type;      void* XR_MAY_ALIAS          next; @@ -3185,26 +3288,128 @@ typedef struct XrHandTrackingAimStateFB {  #define XR_FB_hand_tracking_capsules 1  #define XR_HAND_TRACKING_CAPSULE_POINT_COUNT_FB 2 -#define XR_FB_HAND_TRACKING_CAPSULE_POINT_COUNT XR_HAND_TRACKING_CAPSULE_POINT_COUNT_FB  #define XR_HAND_TRACKING_CAPSULE_COUNT_FB 19 -#define XR_FB_HAND_TRACKING_CAPSULE_COUNT XR_HAND_TRACKING_CAPSULE_COUNT_FB -#define XR_FB_hand_tracking_capsules_SPEC_VERSION 2 +#define XR_FB_hand_tracking_capsules_SPEC_VERSION 3  #define XR_FB_HAND_TRACKING_CAPSULES_EXTENSION_NAME "XR_FB_hand_tracking_capsules" +#define XR_FB_HAND_TRACKING_CAPSULE_POINT_COUNT XR_HAND_TRACKING_CAPSULE_POINT_COUNT_FB +#define XR_FB_HAND_TRACKING_CAPSULE_COUNT XR_HAND_TRACKING_CAPSULE_COUNT_FB  typedef struct XrHandCapsuleFB { -    XrVector3f        points[XR_FB_HAND_TRACKING_CAPSULE_POINT_COUNT]; +    XrVector3f        points[XR_HAND_TRACKING_CAPSULE_POINT_COUNT_FB];      float             radius;      XrHandJointEXT    joint;  } XrHandCapsuleFB; -// XrHandTrackingCapsulesStateFB extends XrHandJointsLocateInfoEXT +// XrHandTrackingCapsulesStateFB extends XrHandJointLocationsEXT  typedef struct XrHandTrackingCapsulesStateFB {      XrStructureType       type;      void* XR_MAY_ALIAS    next; -    XrHandCapsuleFB       capsules[XR_FB_HAND_TRACKING_CAPSULE_COUNT]; +    XrHandCapsuleFB       capsules[XR_HAND_TRACKING_CAPSULE_COUNT_FB];  } XrHandTrackingCapsulesStateFB; +#define XR_FB_spatial_entity 1 +XR_DEFINE_ATOM(XrAsyncRequestIdFB) +#define XR_UUID_SIZE_EXT                  16 +#define XR_FB_spatial_entity_SPEC_VERSION 1 +#define XR_FB_SPATIAL_ENTITY_EXTENSION_NAME "XR_FB_spatial_entity" + +typedef enum XrSpaceComponentTypeFB { +    XR_SPACE_COMPONENT_TYPE_LOCATABLE_FB = 0, +    XR_SPACE_COMPONENT_TYPE_STORABLE_FB = 1, +    XR_SPACE_COMPONENT_TYPE_SPACE_CONTAINER_FB = 7, +    XR_SPACE_COMPONENT_TYPE_MAX_ENUM_FB = 0x7FFFFFFF +} XrSpaceComponentTypeFB; +// XrSystemSpatialEntityPropertiesFB extends XrSystemProperties +typedef struct XrSystemSpatialEntityPropertiesFB { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +    XrBool32                    supportsSpatialEntity; +} XrSystemSpatialEntityPropertiesFB; + +typedef struct XrSpatialAnchorCreateInfoFB { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +    XrSpace                     space; +    XrPosef                     poseInSpace; +    XrTime                      time; +} XrSpatialAnchorCreateInfoFB; + +typedef struct XrSpaceComponentStatusSetInfoFB { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +    XrSpaceComponentTypeFB      componentType; +    XrBool32                    enabled; +    XrDuration                  timeout; +} XrSpaceComponentStatusSetInfoFB; + +typedef struct XrSpaceComponentStatusFB { +    XrStructureType       type; +    void* XR_MAY_ALIAS    next; +    XrBool32              enabled; +    XrBool32              changePending; +} XrSpaceComponentStatusFB; + +typedef struct XrUuidEXT { +    uint8_t    data[XR_UUID_SIZE_EXT]; +} XrUuidEXT; + +typedef struct XrEventDataSpatialAnchorCreateCompleteFB { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +    XrAsyncRequestIdFB          requestId; +    XrResult                    result; +    XrSpace                     space; +    XrUuidEXT                   uuid; +} XrEventDataSpatialAnchorCreateCompleteFB; + +typedef struct XrEventDataSpaceSetStatusCompleteFB { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +    XrAsyncRequestIdFB          requestId; +    XrResult                    result; +    XrSpace                     space; +    XrUuidEXT                   uuid; +    XrSpaceComponentTypeFB      componentType; +    XrBool32                    enabled; +} XrEventDataSpaceSetStatusCompleteFB; + +typedef XrResult (XRAPI_PTR *PFN_xrCreateSpatialAnchorFB)(XrSession session, const XrSpatialAnchorCreateInfoFB* info, XrAsyncRequestIdFB* requestId); +typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceUuidFB)(XrSpace space, XrUuidEXT* uuid); +typedef XrResult (XRAPI_PTR *PFN_xrEnumerateSpaceSupportedComponentsFB)(XrSpace space, uint32_t componentTypeCapacityInput, uint32_t* componentTypeCountOutput, XrSpaceComponentTypeFB* componentTypes); +typedef XrResult (XRAPI_PTR *PFN_xrSetSpaceComponentStatusFB)(XrSpace space, const XrSpaceComponentStatusSetInfoFB* info, XrAsyncRequestIdFB* requestId); +typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceComponentStatusFB)(XrSpace space, XrSpaceComponentTypeFB componentType, XrSpaceComponentStatusFB* status); + +#ifndef XR_NO_PROTOTYPES +#ifdef XR_EXTENSION_PROTOTYPES +XRAPI_ATTR XrResult XRAPI_CALL xrCreateSpatialAnchorFB( +    XrSession                                   session, +    const XrSpatialAnchorCreateInfoFB*          info, +    XrAsyncRequestIdFB*                         requestId); + +XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceUuidFB( +    XrSpace                                     space, +    XrUuidEXT*                                  uuid); + +XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateSpaceSupportedComponentsFB( +    XrSpace                                     space, +    uint32_t                                    componentTypeCapacityInput, +    uint32_t*                                   componentTypeCountOutput, +    XrSpaceComponentTypeFB*                     componentTypes); + +XRAPI_ATTR XrResult XRAPI_CALL xrSetSpaceComponentStatusFB( +    XrSpace                                     space, +    const XrSpaceComponentStatusSetInfoFB*      info, +    XrAsyncRequestIdFB*                         requestId); + +XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceComponentStatusFB( +    XrSpace                                     space, +    XrSpaceComponentTypeFB                      componentType, +    XrSpaceComponentStatusFB*                   status); +#endif /* XR_EXTENSION_PROTOTYPES */ +#endif /* !XR_NO_PROTOTYPES */ + +  #define XR_FB_foveation 1  XR_DEFINE_HANDLE(XrFoveationProfileFB)  #define XR_FB_foveation_SPEC_VERSION      1 @@ -3346,7 +3551,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrCreateKeyboardSpaceFB(  #define XR_FB_triangle_mesh 1  XR_DEFINE_HANDLE(XrTriangleMeshFB) -#define XR_FB_triangle_mesh_SPEC_VERSION  1 +#define XR_FB_triangle_mesh_SPEC_VERSION  2  #define XR_FB_TRIANGLE_MESH_EXTENSION_NAME "XR_FB_triangle_mesh"  typedef enum XrWindingOrderFB { @@ -3420,7 +3625,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshEndVertexBufferUpdateFB(  XR_DEFINE_HANDLE(XrPassthroughFB)  XR_DEFINE_HANDLE(XrPassthroughLayerFB)  XR_DEFINE_HANDLE(XrGeometryInstanceFB) -#define XR_FB_passthrough_SPEC_VERSION    1 +#define XR_FB_passthrough_SPEC_VERSION    2  #define XR_FB_PASSTHROUGH_EXTENSION_NAME  "XR_FB_passthrough"  #define XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB 256 @@ -3428,6 +3633,7 @@ typedef enum XrPassthroughLayerPurposeFB {      XR_PASSTHROUGH_LAYER_PURPOSE_RECONSTRUCTION_FB = 0,      XR_PASSTHROUGH_LAYER_PURPOSE_PROJECTED_FB = 1,      XR_PASSTHROUGH_LAYER_PURPOSE_TRACKED_KEYBOARD_HANDS_FB = 1000203001, +    XR_PASSTHROUGH_LAYER_PURPOSE_TRACKED_KEYBOARD_MASKED_HANDS_FB = 1000203002,      XR_PASSTHROUGH_LAYER_PURPOSE_MAX_ENUM_FB = 0x7FFFFFFF  } XrPassthroughLayerPurposeFB;  typedef XrFlags64 XrPassthroughFlagsFB; @@ -3499,18 +3705,29 @@ typedef struct XrPassthroughStyleFB {      XrColor4f                   edgeColor;  } XrPassthroughStyleFB; +// XrPassthroughColorMapMonoToRgbaFB extends XrPassthroughStyleFB  typedef struct XrPassthroughColorMapMonoToRgbaFB {      XrStructureType             type;      const void* XR_MAY_ALIAS    next;      XrColor4f                   textureColorMap[XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB];  } XrPassthroughColorMapMonoToRgbaFB; +// XrPassthroughColorMapMonoToMonoFB extends XrPassthroughStyleFB  typedef struct XrPassthroughColorMapMonoToMonoFB {      XrStructureType             type;      const void* XR_MAY_ALIAS    next;      uint8_t                     textureColorMap[XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB];  } XrPassthroughColorMapMonoToMonoFB; +// XrPassthroughBrightnessContrastSaturationFB extends XrPassthroughStyleFB +typedef struct XrPassthroughBrightnessContrastSaturationFB { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +    float                       brightness; +    float                       contrast; +    float                       saturation; +} XrPassthroughBrightnessContrastSaturationFB; +  typedef struct XrEventDataPassthroughStateChangedFB {      XrStructureType                     type;      const void* XR_MAY_ALIAS            next; @@ -3584,12 +3801,14 @@ XRAPI_ATTR XrResult XRAPI_CALL xrGeometryInstanceSetTransformFB(  #define XR_NULL_RENDER_MODEL_KEY_FB 0  XR_DEFINE_ATOM(XrRenderModelKeyFB) -#define XR_FB_render_model_SPEC_VERSION   1 +#define XR_FB_render_model_SPEC_VERSION   2  #define XR_FB_RENDER_MODEL_EXTENSION_NAME "XR_FB_render_model"  #define XR_MAX_RENDER_MODEL_NAME_SIZE_FB  64  typedef XrFlags64 XrRenderModelFlagsFB;  // Flag bits for XrRenderModelFlagsFB +static const XrRenderModelFlagsFB XR_RENDER_MODEL_SUPPORTS_GLTF_2_0_SUBSET_1_BIT_FB = 0x00000001; +static const XrRenderModelFlagsFB XR_RENDER_MODEL_SUPPORTS_GLTF_2_0_SUBSET_2_BIT_FB = 0x00000002;  typedef struct XrRenderModelPathInfoFB {      XrStructureType       type; @@ -3628,6 +3847,13 @@ typedef struct XrSystemRenderModelPropertiesFB {      XrBool32              supportsRenderModelLoading;  } XrSystemRenderModelPropertiesFB; +// XrRenderModelCapabilitiesRequestFB extends XrSystemProperties +typedef struct XrRenderModelCapabilitiesRequestFB { +    XrStructureType         type; +    void* XR_MAY_ALIAS      next; +    XrRenderModelFlagsFB    flags; +} XrRenderModelCapabilitiesRequestFB; +  typedef XrResult (XRAPI_PTR *PFN_xrEnumerateRenderModelPathsFB)(XrSession session, uint32_t pathCapacityInput, uint32_t* pathCountOutput, XrRenderModelPathInfoFB* paths);  typedef XrResult (XRAPI_PTR *PFN_xrGetRenderModelPropertiesFB)(XrSession session, XrPath path, XrRenderModelPropertiesFB* properties);  typedef XrResult (XRAPI_PTR *PFN_xrLoadRenderModelFB)(XrSession session, const XrRenderModelLoadInfoFB* info, XrRenderModelBufferFB* buffer); @@ -3767,6 +3993,20 @@ XRAPI_ATTR XrResult XRAPI_CALL xrCreateMarkerSpaceVARJO(  #endif /* !XR_NO_PROTOTYPES */ +#define XR_VARJO_view_offset 1 +#define XR_VARJO_view_offset_SPEC_VERSION 1 +#define XR_VARJO_VIEW_OFFSET_EXTENSION_NAME "XR_VARJO_view_offset" +typedef XrResult  (XRAPI_PTR *PFN_xrSetViewOffsetVARJO)(XrSession session, float offset); + +#ifndef XR_NO_PROTOTYPES +#ifdef XR_EXTENSION_PROTOTYPES +XRAPI_ATTR XrResult  XRAPI_CALL xrSetViewOffsetVARJO( +    XrSession                                   session, +    float                                       offset); +#endif /* XR_EXTENSION_PROTOTYPES */ +#endif /* !XR_NO_PROTOTYPES */ + +  #define XR_MSFT_spatial_anchor_persistence 1  XR_DEFINE_HANDLE(XrSpatialAnchorStoreConnectionMSFT)  #define XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT 256 @@ -3832,12 +4072,212 @@ XRAPI_ATTR XrResult XRAPI_CALL xrClearSpatialAnchorStoreMSFT(  #endif /* !XR_NO_PROTOTYPES */ +#define XR_ULTRALEAP_hand_tracking_forearm 1 + +#define XR_HAND_FOREARM_JOINT_COUNT_ULTRALEAP 27 + +#define XR_ULTRALEAP_hand_tracking_forearm_SPEC_VERSION 1 +#define XR_ULTRALEAP_HAND_TRACKING_FOREARM_EXTENSION_NAME "XR_ULTRALEAP_hand_tracking_forearm" + +typedef enum XrHandForearmJointULTRALEAP { +    XR_HAND_FOREARM_JOINT_PALM_ULTRALEAP = 0, +    XR_HAND_FOREARM_JOINT_WRIST_ULTRALEAP = 1, +    XR_HAND_FOREARM_JOINT_THUMB_METACARPAL_ULTRALEAP = 2, +    XR_HAND_FOREARM_JOINT_THUMB_PROXIMAL_ULTRALEAP = 3, +    XR_HAND_FOREARM_JOINT_THUMB_DISTAL_ULTRALEAP = 4, +    XR_HAND_FOREARM_JOINT_THUMB_TIP_ULTRALEAP = 5, +    XR_HAND_FOREARM_JOINT_INDEX_METACARPAL_ULTRALEAP = 6, +    XR_HAND_FOREARM_JOINT_INDEX_PROXIMAL_ULTRALEAP = 7, +    XR_HAND_FOREARM_JOINT_INDEX_INTERMEDIATE_ULTRALEAP = 8, +    XR_HAND_FOREARM_JOINT_INDEX_DISTAL_ULTRALEAP = 9, +    XR_HAND_FOREARM_JOINT_INDEX_TIP_ULTRALEAP = 10, +    XR_HAND_FOREARM_JOINT_MIDDLE_METACARPAL_ULTRALEAP = 11, +    XR_HAND_FOREARM_JOINT_MIDDLE_PROXIMAL_ULTRALEAP = 12, +    XR_HAND_FOREARM_JOINT_MIDDLE_INTERMEDIATE_ULTRALEAP = 13, +    XR_HAND_FOREARM_JOINT_MIDDLE_DISTAL_ULTRALEAP = 14, +    XR_HAND_FOREARM_JOINT_MIDDLE_TIP_ULTRALEAP = 15, +    XR_HAND_FOREARM_JOINT_RING_METACARPAL_ULTRALEAP = 16, +    XR_HAND_FOREARM_JOINT_RING_PROXIMAL_ULTRALEAP = 17, +    XR_HAND_FOREARM_JOINT_RING_INTERMEDIATE_ULTRALEAP = 18, +    XR_HAND_FOREARM_JOINT_RING_DISTAL_ULTRALEAP = 19, +    XR_HAND_FOREARM_JOINT_RING_TIP_ULTRALEAP = 20, +    XR_HAND_FOREARM_JOINT_LITTLE_METACARPAL_ULTRALEAP = 21, +    XR_HAND_FOREARM_JOINT_LITTLE_PROXIMAL_ULTRALEAP = 22, +    XR_HAND_FOREARM_JOINT_LITTLE_INTERMEDIATE_ULTRALEAP = 23, +    XR_HAND_FOREARM_JOINT_LITTLE_DISTAL_ULTRALEAP = 24, +    XR_HAND_FOREARM_JOINT_LITTLE_TIP_ULTRALEAP = 25, +    XR_HAND_FOREARM_JOINT_ELBOW_ULTRALEAP = 26, +    XR_HAND_FOREARM_JOINT_MAX_ENUM_ULTRALEAP = 0x7FFFFFFF +} XrHandForearmJointULTRALEAP; + + +#define XR_FB_spatial_entity_query 1 +#define XR_FB_spatial_entity_query_SPEC_VERSION 1 +#define XR_FB_SPATIAL_ENTITY_QUERY_EXTENSION_NAME "XR_FB_spatial_entity_query" + +typedef enum XrSpaceQueryActionFB { +    XR_SPACE_QUERY_ACTION_LOAD_FB = 0, +    XR_SPACE_QUERY_ACTION_MAX_ENUM_FB = 0x7FFFFFFF +} XrSpaceQueryActionFB; + +typedef enum XrSpaceStorageLocationFB { +    XR_SPACE_STORAGE_LOCATION_INVALID_FB = 0, +    XR_SPACE_STORAGE_LOCATION_LOCAL_FB = 1, +    XR_SPACE_STORAGE_LOCATION_MAX_ENUM_FB = 0x7FFFFFFF +} XrSpaceStorageLocationFB; +typedef struct XR_MAY_ALIAS XrSpaceQueryInfoBaseHeaderFB { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +} XrSpaceQueryInfoBaseHeaderFB; + +typedef struct XR_MAY_ALIAS XrSpaceFilterInfoBaseHeaderFB { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +} XrSpaceFilterInfoBaseHeaderFB; + +typedef struct XrSpaceQueryInfoFB { +    XrStructureType                         type; +    const void* XR_MAY_ALIAS                next; +    XrSpaceQueryActionFB                    queryAction; +    uint32_t                                maxResultCount; +    XrDuration                              timeout; +    const XrSpaceFilterInfoBaseHeaderFB*    filter; +    const XrSpaceFilterInfoBaseHeaderFB*    excludeFilter; +} XrSpaceQueryInfoFB; + +// XrSpaceStorageLocationFilterInfoFB extends XrSpaceFilterInfoBaseHeaderFB +typedef struct XrSpaceStorageLocationFilterInfoFB { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +    XrSpaceStorageLocationFB    location; +} XrSpaceStorageLocationFilterInfoFB; + +typedef struct XrSpaceUuidFilterInfoFB { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +    uint32_t                    uuidCount; +    XrUuidEXT*                  uuids; +} XrSpaceUuidFilterInfoFB; + +typedef struct XrSpaceComponentFilterInfoFB { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +    XrSpaceComponentTypeFB      componentType; +} XrSpaceComponentFilterInfoFB; + +typedef struct XrSpaceQueryResultFB { +    XrSpace      space; +    XrUuidEXT    uuid; +} XrSpaceQueryResultFB; + +typedef struct XrSpaceQueryResultsFB { +    XrStructureType          type; +    void* XR_MAY_ALIAS       next; +    uint32_t                 resultCapacityInput; +    uint32_t                 resultCountOutput; +    XrSpaceQueryResultFB*    results; +} XrSpaceQueryResultsFB; + +typedef struct XrEventDataSpaceQueryResultsAvailableFB { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +    XrAsyncRequestIdFB          requestId; +} XrEventDataSpaceQueryResultsAvailableFB; + +typedef struct XrEventDataSpaceQueryCompleteFB { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +    XrAsyncRequestIdFB          requestId; +    XrResult                    result; +} XrEventDataSpaceQueryCompleteFB; + +typedef XrResult (XRAPI_PTR *PFN_xrQuerySpacesFB)(XrSession session, const XrSpaceQueryInfoBaseHeaderFB* info, XrAsyncRequestIdFB* requestId); +typedef XrResult (XRAPI_PTR *PFN_xrRetrieveSpaceQueryResultsFB)(XrSession session, XrAsyncRequestIdFB requestId, XrSpaceQueryResultsFB* results); + +#ifndef XR_NO_PROTOTYPES +#ifdef XR_EXTENSION_PROTOTYPES +XRAPI_ATTR XrResult XRAPI_CALL xrQuerySpacesFB( +    XrSession                                   session, +    const XrSpaceQueryInfoBaseHeaderFB*         info, +    XrAsyncRequestIdFB*                         requestId); + +XRAPI_ATTR XrResult XRAPI_CALL xrRetrieveSpaceQueryResultsFB( +    XrSession                                   session, +    XrAsyncRequestIdFB                          requestId, +    XrSpaceQueryResultsFB*                      results); +#endif /* XR_EXTENSION_PROTOTYPES */ +#endif /* !XR_NO_PROTOTYPES */ + + +#define XR_FB_spatial_entity_storage 1 +#define XR_FB_spatial_entity_storage_SPEC_VERSION 1 +#define XR_FB_SPATIAL_ENTITY_STORAGE_EXTENSION_NAME "XR_FB_spatial_entity_storage" + +typedef enum XrSpacePersistenceModeFB { +    XR_SPACE_PERSISTENCE_MODE_INVALID_FB = 0, +    XR_SPACE_PERSISTENCE_MODE_INDEFINITE_FB = 1, +    XR_SPACE_PERSISTENCE_MODE_MAX_ENUM_FB = 0x7FFFFFFF +} XrSpacePersistenceModeFB; +typedef struct XrSpaceSaveInfoFB { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +    XrSpace                     space; +    XrSpaceStorageLocationFB    location; +    XrSpacePersistenceModeFB    persistenceMode; +} XrSpaceSaveInfoFB; + +typedef struct XrSpaceEraseInfoFB { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +    XrSpace                     space; +    XrSpaceStorageLocationFB    location; +} XrSpaceEraseInfoFB; + +typedef struct XrEventDataSpaceSaveCompleteFB { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +    XrAsyncRequestIdFB          requestId; +    XrResult                    result; +    XrSpace                     space; +    XrUuidEXT                   uuid; +    XrSpaceStorageLocationFB    location; +} XrEventDataSpaceSaveCompleteFB; + +typedef struct XrEventDataSpaceEraseCompleteFB { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +    XrAsyncRequestIdFB          requestId; +    XrResult                    result; +    XrSpace                     space; +    XrUuidEXT                   uuid; +    XrSpaceStorageLocationFB    location; +} XrEventDataSpaceEraseCompleteFB; + +typedef XrResult (XRAPI_PTR *PFN_xrSaveSpaceFB)(XrSession session, const XrSpaceSaveInfoFB* info, XrAsyncRequestIdFB* requestId); +typedef XrResult (XRAPI_PTR *PFN_xrEraseSpaceFB)(XrSession session, const XrSpaceEraseInfoFB* info, XrAsyncRequestIdFB* requestId); + +#ifndef XR_NO_PROTOTYPES +#ifdef XR_EXTENSION_PROTOTYPES +XRAPI_ATTR XrResult XRAPI_CALL xrSaveSpaceFB( +    XrSession                                   session, +    const XrSpaceSaveInfoFB*                    info, +    XrAsyncRequestIdFB*                         requestId); + +XRAPI_ATTR XrResult XRAPI_CALL xrEraseSpaceFB( +    XrSession                                   session, +    const XrSpaceEraseInfoFB*                   info, +    XrAsyncRequestIdFB*                         requestId); +#endif /* XR_EXTENSION_PROTOTYPES */ +#endif /* !XR_NO_PROTOTYPES */ + +  #define XR_FB_space_warp 1 -#define XR_FB_space_warp_SPEC_VERSION     1 +#define XR_FB_space_warp_SPEC_VERSION     2  #define XR_FB_SPACE_WARP_EXTENSION_NAME   "XR_FB_space_warp"  typedef XrFlags64 XrCompositionLayerSpaceWarpInfoFlagsFB;  // Flag bits for XrCompositionLayerSpaceWarpInfoFlagsFB +static const XrCompositionLayerSpaceWarpInfoFlagsFB XR_COMPOSITION_LAYER_SPACE_WARP_INFO_FRAME_SKIP_BIT_FB = 0x00000001;  // XrCompositionLayerSpaceWarpInfoFB extends XrCompositionLayerProjectionView  typedef struct XrCompositionLayerSpaceWarpInfoFB { @@ -3888,8 +4328,31 @@ XRAPI_ATTR XrResult XRAPI_CALL xrSetDigitalLensControlALMALENCE(  #endif /* !XR_NO_PROTOTYPES */ +#define XR_FB_spatial_entity_container 1 +#define XR_FB_spatial_entity_container_SPEC_VERSION 1 +#define XR_FB_SPATIAL_ENTITY_CONTAINER_EXTENSION_NAME "XR_FB_spatial_entity_container" +typedef struct XrSpaceContainerFB { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +    uint32_t                    uuidCapacityInput; +    uint32_t*                   uuidCountOutput; +    XrUuidEXT*                  uuids; +} XrSpaceContainerFB; + +typedef XrResult (XRAPI_PTR *PFN_xrGetSpaceContainerFB)(XrSession session, XrSpace space, XrSpaceContainerFB* spaceContainerOutput); + +#ifndef XR_NO_PROTOTYPES +#ifdef XR_EXTENSION_PROTOTYPES +XRAPI_ATTR XrResult XRAPI_CALL xrGetSpaceContainerFB( +    XrSession                                   session, +    XrSpace                                     space, +    XrSpaceContainerFB*                         spaceContainerOutput); +#endif /* XR_EXTENSION_PROTOTYPES */ +#endif /* !XR_NO_PROTOTYPES */ + +  #define XR_FB_passthrough_keyboard_hands 1 -#define XR_FB_passthrough_keyboard_hands_SPEC_VERSION 1 +#define XR_FB_passthrough_keyboard_hands_SPEC_VERSION 2  #define XR_FB_PASSTHROUGH_KEYBOARD_HANDS_EXTENSION_NAME "XR_FB_passthrough_keyboard_hands"  typedef struct XrPassthroughKeyboardHandsIntensityFB {      XrStructureType             type; @@ -3909,14 +4372,92 @@ XRAPI_ATTR XrResult XRAPI_CALL xrPassthroughLayerSetKeyboardHandsIntensityFB(  #endif /* !XR_NO_PROTOTYPES */ +#define XR_FB_composition_layer_settings 1 +#define XR_FB_composition_layer_settings_SPEC_VERSION 1 +#define XR_FB_COMPOSITION_LAYER_SETTINGS_EXTENSION_NAME "XR_FB_composition_layer_settings" +typedef XrFlags64 XrCompositionLayerSettingsFlagsFB; + +// Flag bits for XrCompositionLayerSettingsFlagsFB +static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_NORMAL_SUPER_SAMPLING_BIT_FB = 0x00000001; +static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_QUALITY_SUPER_SAMPLING_BIT_FB = 0x00000002; +static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_NORMAL_SHARPENING_BIT_FB = 0x00000004; +static const XrCompositionLayerSettingsFlagsFB XR_COMPOSITION_LAYER_SETTINGS_QUALITY_SHARPENING_BIT_FB = 0x00000008; + +// XrCompositionLayerSettingsFB extends XrCompositionLayerBaseHeader +typedef struct XrCompositionLayerSettingsFB { +    XrStructureType                      type; +    const void* XR_MAY_ALIAS             next; +    XrCompositionLayerSettingsFlagsFB    layerFlags; +} XrCompositionLayerSettingsFB; + + + +#define XR_META_performance_metrics 1 +#define XR_META_performance_metrics_SPEC_VERSION 1 +#define XR_META_PERFORMANCE_METRICS_EXTENSION_NAME "XR_META_performance_metrics" + +typedef enum XrPerformanceMetricsCounterUnitMETA { +    XR_PERFORMANCE_METRICS_COUNTER_UNIT_GENERIC_META = 0, +    XR_PERFORMANCE_METRICS_COUNTER_UNIT_PERCENTAGE_META = 1, +    XR_PERFORMANCE_METRICS_COUNTER_UNIT_MILLISECONDS_META = 2, +    XR_PERFORMANCE_METRICS_COUNTER_UNIT_BYTES_META = 3, +    XR_PERFORMANCE_METRICS_COUNTER_UNIT_HERTZ_META = 4, +    XR_PERFORMANCE_METRICS_COUNTER_UNIT_MAX_ENUM_META = 0x7FFFFFFF +} XrPerformanceMetricsCounterUnitMETA; +typedef XrFlags64 XrPerformanceMetricsCounterFlagsMETA; + +// Flag bits for XrPerformanceMetricsCounterFlagsMETA +static const XrPerformanceMetricsCounterFlagsMETA XR_PERFORMANCE_METRICS_COUNTER_ANY_VALUE_VALID_BIT_META = 0x00000001; +static const XrPerformanceMetricsCounterFlagsMETA XR_PERFORMANCE_METRICS_COUNTER_UINT_VALUE_VALID_BIT_META = 0x00000002; +static const XrPerformanceMetricsCounterFlagsMETA XR_PERFORMANCE_METRICS_COUNTER_FLOAT_VALUE_VALID_BIT_META = 0x00000004; + +typedef struct XrPerformanceMetricsStateMETA { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +    XrBool32                    enabled; +} XrPerformanceMetricsStateMETA; + +typedef struct XrPerformanceMetricsCounterMETA { +    XrStructureType                         type; +    const void* XR_MAY_ALIAS                next; +    XrPerformanceMetricsCounterFlagsMETA    counterFlags; +    XrPerformanceMetricsCounterUnitMETA     counterUnit; +    uint32_t                                uintValue; +    float                                   floatValue; +} XrPerformanceMetricsCounterMETA; + +typedef XrResult (XRAPI_PTR *PFN_xrEnumeratePerformanceMetricsCounterPathsMETA)(XrInstance instance, uint32_t counterPathCapacityInput, uint32_t* counterPathCountOutput, XrPath* counterPaths); +typedef XrResult (XRAPI_PTR *PFN_xrSetPerformanceMetricsStateMETA)(XrSession session, const XrPerformanceMetricsStateMETA* state); +typedef XrResult (XRAPI_PTR *PFN_xrGetPerformanceMetricsStateMETA)(XrSession session, XrPerformanceMetricsStateMETA* state); +typedef XrResult (XRAPI_PTR *PFN_xrQueryPerformanceMetricsCounterMETA)(XrSession session, XrPath counterPath, XrPerformanceMetricsCounterMETA* counter); + +#ifndef XR_NO_PROTOTYPES +#ifdef XR_EXTENSION_PROTOTYPES +XRAPI_ATTR XrResult XRAPI_CALL xrEnumeratePerformanceMetricsCounterPathsMETA( +    XrInstance                                  instance, +    uint32_t                                    counterPathCapacityInput, +    uint32_t*                                   counterPathCountOutput, +    XrPath*                                     counterPaths); + +XRAPI_ATTR XrResult XRAPI_CALL xrSetPerformanceMetricsStateMETA( +    XrSession                                   session, +    const XrPerformanceMetricsStateMETA*        state); + +XRAPI_ATTR XrResult XRAPI_CALL xrGetPerformanceMetricsStateMETA( +    XrSession                                   session, +    XrPerformanceMetricsStateMETA*              state); + +XRAPI_ATTR XrResult XRAPI_CALL xrQueryPerformanceMetricsCounterMETA( +    XrSession                                   session, +    XrPath                                      counterPath, +    XrPerformanceMetricsCounterMETA*            counter); +#endif /* XR_EXTENSION_PROTOTYPES */ +#endif /* !XR_NO_PROTOTYPES */ + +  #define XR_EXT_uuid 1  #define XR_EXT_uuid_SPEC_VERSION          1  #define XR_EXT_UUID_EXTENSION_NAME        "XR_EXT_uuid" -#define XR_UUID_SIZE_EXT                  16 -typedef struct XrUuidEXT { -    uint8_t    data[XR_UUID_SIZE_EXT]; -} XrUuidEXT; -  #ifdef __cplusplus  } diff --git a/thirdparty/openxr/include/openxr/openxr_platform.h b/thirdparty/openxr/include/openxr/openxr_platform.h index eb5e5f8c4b..f0fbf6955a 100644 --- a/thirdparty/openxr/include/openxr/openxr_platform.h +++ b/thirdparty/openxr/include/openxr/openxr_platform.h @@ -275,7 +275,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrGetVulkanGraphicsRequirementsKHR(  #ifdef XR_USE_GRAPHICS_API_D3D11  #define XR_KHR_D3D11_enable 1 -#define XR_KHR_D3D11_enable_SPEC_VERSION  8 +#define XR_KHR_D3D11_enable_SPEC_VERSION  9  #define XR_KHR_D3D11_ENABLE_EXTENSION_NAME "XR_KHR_D3D11_enable"  // XrGraphicsBindingD3D11KHR extends XrSessionCreateInfo  typedef struct XrGraphicsBindingD3D11KHR { @@ -312,7 +312,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrGetD3D11GraphicsRequirementsKHR(  #ifdef XR_USE_GRAPHICS_API_D3D12  #define XR_KHR_D3D12_enable 1 -#define XR_KHR_D3D12_enable_SPEC_VERSION  8 +#define XR_KHR_D3D12_enable_SPEC_VERSION  9  #define XR_KHR_D3D12_ENABLE_EXTENSION_NAME "XR_KHR_D3D12_enable"  // XrGraphicsBindingD3D12KHR extends XrSessionCreateInfo  typedef struct XrGraphicsBindingD3D12KHR { @@ -668,6 +668,21 @@ typedef struct XrSwapchainStateSamplerVulkanFB {  #endif /* XR_USE_GRAPHICS_API_VULKAN */ +#ifdef XR_USE_GRAPHICS_API_VULKAN + +#define XR_META_vulkan_swapchain_create_info 1 +#define XR_META_vulkan_swapchain_create_info_SPEC_VERSION 1 +#define XR_META_VULKAN_SWAPCHAIN_CREATE_INFO_EXTENSION_NAME "XR_META_vulkan_swapchain_create_info" +// XrVulkanSwapchainCreateInfoMETA extends XrSwapchainCreateInfo +typedef struct XrVulkanSwapchainCreateInfoMETA { +    XrStructureType             type; +    const void* XR_MAY_ALIAS    next; +    VkImageCreateFlags          additionalCreateFlags; +    VkImageUsageFlags           additionalUsageFlags; +} XrVulkanSwapchainCreateInfoMETA; + +#endif /* XR_USE_GRAPHICS_API_VULKAN */ +  #ifdef __cplusplus  }  #endif diff --git a/thirdparty/openxr/include/openxr/openxr_reflection.h b/thirdparty/openxr/include/openxr/openxr_reflection.h index 2bc14be600..163b54e4e4 100644 --- a/thirdparty/openxr/include/openxr/openxr_reflection.h +++ b/thirdparty/openxr/include/openxr/openxr_reflection.h @@ -100,6 +100,10 @@ XR_ENUM_STR(XrResult);      _(XR_ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT, -1000097005) \      _(XR_ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB, -1000101000) \      _(XR_ERROR_COLOR_SPACE_UNSUPPORTED_FB, -1000108000) \ +    _(XR_ERROR_SPACE_COMPONENT_NOT_SUPPORTED_FB, -1000113000) \ +    _(XR_ERROR_SPACE_COMPONENT_NOT_ENABLED_FB, -1000113001) \ +    _(XR_ERROR_SPACE_COMPONENT_STATUS_PENDING_FB, -1000113002) \ +    _(XR_ERROR_SPACE_COMPONENT_STATUS_ALREADY_SET_FB, -1000113003) \      _(XR_ERROR_UNEXPECTED_STATE_PASSTHROUGH_FB, -1000118000) \      _(XR_ERROR_FEATURE_ALREADY_CREATED_PASSTHROUGH_FB, -1000118001) \      _(XR_ERROR_FEATURE_REQUIRED_PASSTHROUGH_FB, -1000118002) \ @@ -208,6 +212,9 @@ XR_ENUM_STR(XrResult);      _(XR_TYPE_VIEW_CONFIGURATION_DEPTH_RANGE_EXT, 1000046000) \      _(XR_TYPE_GRAPHICS_BINDING_EGL_MNDX, 1000048004) \      _(XR_TYPE_SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT, 1000049000) \ +    _(XR_TYPE_SPATIAL_GRAPH_STATIC_NODE_BINDING_CREATE_INFO_MSFT, 1000049001) \ +    _(XR_TYPE_SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT, 1000049002) \ +    _(XR_TYPE_SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_MSFT, 1000049003) \      _(XR_TYPE_SYSTEM_HAND_TRACKING_PROPERTIES_EXT, 1000051000) \      _(XR_TYPE_HAND_TRACKER_CREATE_INFO_EXT, 1000051001) \      _(XR_TYPE_HAND_JOINTS_LOCATE_INFO_EXT, 1000051002) \ @@ -235,6 +242,7 @@ XR_ENUM_STR(XrResult);      _(XR_TYPE_COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT, 1000066001) \      _(XR_TYPE_ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB, 1000070000) \      _(XR_TYPE_COMPOSITION_LAYER_SECURE_CONTENT_FB, 1000072000) \ +    _(XR_TYPE_INTERACTION_PROFILE_DPAD_BINDING_EXT, 1000078000) \      _(XR_TYPE_INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE, 1000079000) \      _(XR_TYPE_HAND_JOINTS_MOTION_RANGE_INFO_EXT, 1000080000) \      _(XR_TYPE_LOADER_INIT_INFO_ANDROID_KHR, 1000089000) \ @@ -274,6 +282,12 @@ XR_ENUM_STR(XrResult);      _(XR_TYPE_HAND_TRACKING_SCALE_FB, 1000110003) \      _(XR_TYPE_HAND_TRACKING_AIM_STATE_FB, 1000111001) \      _(XR_TYPE_HAND_TRACKING_CAPSULES_STATE_FB, 1000112000) \ +    _(XR_TYPE_SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB, 1000113004) \ +    _(XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_FB, 1000113003) \ +    _(XR_TYPE_SPACE_COMPONENT_STATUS_SET_INFO_FB, 1000113007) \ +    _(XR_TYPE_SPACE_COMPONENT_STATUS_FB, 1000113001) \ +    _(XR_TYPE_EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB, 1000113005) \ +    _(XR_TYPE_EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB, 1000113006) \      _(XR_TYPE_FOVEATION_PROFILE_CREATE_INFO_FB, 1000114000) \      _(XR_TYPE_SWAPCHAIN_CREATE_INFO_FOVEATION_FB, 1000114001) \      _(XR_TYPE_SWAPCHAIN_STATE_FOVEATION_FB, 1000114002) \ @@ -291,12 +305,14 @@ XR_ENUM_STR(XrResult);      _(XR_TYPE_PASSTHROUGH_STYLE_FB, 1000118020) \      _(XR_TYPE_PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB, 1000118021) \      _(XR_TYPE_PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB, 1000118022) \ +    _(XR_TYPE_PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB, 1000118023) \      _(XR_TYPE_EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB, 1000118030) \      _(XR_TYPE_RENDER_MODEL_PATH_INFO_FB, 1000119000) \      _(XR_TYPE_RENDER_MODEL_PROPERTIES_FB, 1000119001) \      _(XR_TYPE_RENDER_MODEL_BUFFER_FB, 1000119002) \      _(XR_TYPE_RENDER_MODEL_LOAD_INFO_FB, 1000119003) \      _(XR_TYPE_SYSTEM_RENDER_MODEL_PROPERTIES_FB, 1000119004) \ +    _(XR_TYPE_RENDER_MODEL_CAPABILITIES_REQUEST_FB, 1000119005) \      _(XR_TYPE_BINDING_MODIFICATIONS_KHR, 1000120000) \      _(XR_TYPE_VIEW_LOCATE_FOVEATED_RENDERING_VARJO, 1000121000) \      _(XR_TYPE_FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO, 1000121001) \ @@ -307,6 +323,17 @@ XR_ENUM_STR(XrResult);      _(XR_TYPE_MARKER_SPACE_CREATE_INFO_VARJO, 1000124002) \      _(XR_TYPE_SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT, 1000142000) \      _(XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT, 1000142001) \ +    _(XR_TYPE_SPACE_QUERY_INFO_FB, 1000156001) \ +    _(XR_TYPE_SPACE_QUERY_RESULTS_FB, 1000156002) \ +    _(XR_TYPE_SPACE_STORAGE_LOCATION_FILTER_INFO_FB, 1000156003) \ +    _(XR_TYPE_SPACE_UUID_FILTER_INFO_FB, 1000156054) \ +    _(XR_TYPE_SPACE_COMPONENT_FILTER_INFO_FB, 1000156052) \ +    _(XR_TYPE_EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB, 1000156103) \ +    _(XR_TYPE_EVENT_DATA_SPACE_QUERY_COMPLETE_FB, 1000156104) \ +    _(XR_TYPE_SPACE_SAVE_INFO_FB, 1000158000) \ +    _(XR_TYPE_SPACE_ERASE_INFO_FB, 1000158001) \ +    _(XR_TYPE_EVENT_DATA_SPACE_SAVE_COMPLETE_FB, 1000158106) \ +    _(XR_TYPE_EVENT_DATA_SPACE_ERASE_COMPLETE_FB, 1000158107) \      _(XR_TYPE_SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB, 1000160000) \      _(XR_TYPE_SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB, 1000161000) \      _(XR_TYPE_SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB, 1000162000) \ @@ -314,7 +341,12 @@ XR_ENUM_STR(XrResult);      _(XR_TYPE_COMPOSITION_LAYER_SPACE_WARP_INFO_FB, 1000171000) \      _(XR_TYPE_SYSTEM_SPACE_WARP_PROPERTIES_FB, 1000171001) \      _(XR_TYPE_DIGITAL_LENS_CONTROL_ALMALENCE, 1000196000) \ +    _(XR_TYPE_SPACE_CONTAINER_FB, 1000199000) \      _(XR_TYPE_PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB, 1000203002) \ +    _(XR_TYPE_COMPOSITION_LAYER_SETTINGS_FB, 1000204000) \ +    _(XR_TYPE_VULKAN_SWAPCHAIN_CREATE_INFO_META, 1000227000) \ +    _(XR_TYPE_PERFORMANCE_METRICS_STATE_META, 1000232001) \ +    _(XR_TYPE_PERFORMANCE_METRICS_COUNTER_META, 1000232002) \      _(XR_STRUCTURE_TYPE_MAX_ENUM, 0x7FFFFFFF)  #define XR_LIST_ENUM_XrFormFactor(_) \ @@ -379,6 +411,7 @@ XR_ENUM_STR(XrResult);      _(XR_OBJECT_TYPE_ACTION, 6) \      _(XR_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT, 1000019000) \      _(XR_OBJECT_TYPE_SPATIAL_ANCHOR_MSFT, 1000039000) \ +    _(XR_OBJECT_TYPE_SPATIAL_GRAPH_NODE_BINDING_MSFT, 1000049000) \      _(XR_OBJECT_TYPE_HAND_TRACKER_EXT, 1000051000) \      _(XR_OBJECT_TYPE_SCENE_OBSERVER_MSFT, 1000097000) \      _(XR_OBJECT_TYPE_SCENE_MSFT, 1000097001) \ @@ -478,6 +511,7 @@ XR_ENUM_STR(XrResult);  #define XR_LIST_ENUM_XrHandJointSetEXT(_) \      _(XR_HAND_JOINT_SET_DEFAULT_EXT, 0) \ +    _(XR_HAND_JOINT_SET_HAND_WITH_FOREARM_ULTRALEAP, 1000149000) \      _(XR_HAND_JOINT_SET_MAX_ENUM_EXT, 0x7FFFFFFF)  #define XR_LIST_ENUM_XrHandPoseTypeMSFT(_) \ @@ -623,6 +657,12 @@ XR_ENUM_STR(XrResult);      _(XR_COLOR_SPACE_ADOBE_RGB_FB, 7) \      _(XR_COLOR_SPACE_MAX_ENUM_FB, 0x7FFFFFFF) +#define XR_LIST_ENUM_XrSpaceComponentTypeFB(_) \ +    _(XR_SPACE_COMPONENT_TYPE_LOCATABLE_FB, 0) \ +    _(XR_SPACE_COMPONENT_TYPE_STORABLE_FB, 1) \ +    _(XR_SPACE_COMPONENT_TYPE_SPACE_CONTAINER_FB, 7) \ +    _(XR_SPACE_COMPONENT_TYPE_MAX_ENUM_FB, 0x7FFFFFFF) +  #define XR_LIST_ENUM_XrFoveationLevelFB(_) \      _(XR_FOVEATION_LEVEL_NONE_FB, 0) \      _(XR_FOVEATION_LEVEL_LOW_FB, 1) \ @@ -645,8 +685,61 @@ XR_ENUM_STR(XrResult);      _(XR_PASSTHROUGH_LAYER_PURPOSE_RECONSTRUCTION_FB, 0) \      _(XR_PASSTHROUGH_LAYER_PURPOSE_PROJECTED_FB, 1) \      _(XR_PASSTHROUGH_LAYER_PURPOSE_TRACKED_KEYBOARD_HANDS_FB, 1000203001) \ +    _(XR_PASSTHROUGH_LAYER_PURPOSE_TRACKED_KEYBOARD_MASKED_HANDS_FB, 1000203002) \      _(XR_PASSTHROUGH_LAYER_PURPOSE_MAX_ENUM_FB, 0x7FFFFFFF) +#define XR_LIST_ENUM_XrHandForearmJointULTRALEAP(_) \ +    _(XR_HAND_FOREARM_JOINT_PALM_ULTRALEAP, 0) \ +    _(XR_HAND_FOREARM_JOINT_WRIST_ULTRALEAP, 1) \ +    _(XR_HAND_FOREARM_JOINT_THUMB_METACARPAL_ULTRALEAP, 2) \ +    _(XR_HAND_FOREARM_JOINT_THUMB_PROXIMAL_ULTRALEAP, 3) \ +    _(XR_HAND_FOREARM_JOINT_THUMB_DISTAL_ULTRALEAP, 4) \ +    _(XR_HAND_FOREARM_JOINT_THUMB_TIP_ULTRALEAP, 5) \ +    _(XR_HAND_FOREARM_JOINT_INDEX_METACARPAL_ULTRALEAP, 6) \ +    _(XR_HAND_FOREARM_JOINT_INDEX_PROXIMAL_ULTRALEAP, 7) \ +    _(XR_HAND_FOREARM_JOINT_INDEX_INTERMEDIATE_ULTRALEAP, 8) \ +    _(XR_HAND_FOREARM_JOINT_INDEX_DISTAL_ULTRALEAP, 9) \ +    _(XR_HAND_FOREARM_JOINT_INDEX_TIP_ULTRALEAP, 10) \ +    _(XR_HAND_FOREARM_JOINT_MIDDLE_METACARPAL_ULTRALEAP, 11) \ +    _(XR_HAND_FOREARM_JOINT_MIDDLE_PROXIMAL_ULTRALEAP, 12) \ +    _(XR_HAND_FOREARM_JOINT_MIDDLE_INTERMEDIATE_ULTRALEAP, 13) \ +    _(XR_HAND_FOREARM_JOINT_MIDDLE_DISTAL_ULTRALEAP, 14) \ +    _(XR_HAND_FOREARM_JOINT_MIDDLE_TIP_ULTRALEAP, 15) \ +    _(XR_HAND_FOREARM_JOINT_RING_METACARPAL_ULTRALEAP, 16) \ +    _(XR_HAND_FOREARM_JOINT_RING_PROXIMAL_ULTRALEAP, 17) \ +    _(XR_HAND_FOREARM_JOINT_RING_INTERMEDIATE_ULTRALEAP, 18) \ +    _(XR_HAND_FOREARM_JOINT_RING_DISTAL_ULTRALEAP, 19) \ +    _(XR_HAND_FOREARM_JOINT_RING_TIP_ULTRALEAP, 20) \ +    _(XR_HAND_FOREARM_JOINT_LITTLE_METACARPAL_ULTRALEAP, 21) \ +    _(XR_HAND_FOREARM_JOINT_LITTLE_PROXIMAL_ULTRALEAP, 22) \ +    _(XR_HAND_FOREARM_JOINT_LITTLE_INTERMEDIATE_ULTRALEAP, 23) \ +    _(XR_HAND_FOREARM_JOINT_LITTLE_DISTAL_ULTRALEAP, 24) \ +    _(XR_HAND_FOREARM_JOINT_LITTLE_TIP_ULTRALEAP, 25) \ +    _(XR_HAND_FOREARM_JOINT_ELBOW_ULTRALEAP, 26) \ +    _(XR_HAND_FOREARM_JOINT_MAX_ENUM_ULTRALEAP, 0x7FFFFFFF) + +#define XR_LIST_ENUM_XrSpaceQueryActionFB(_) \ +    _(XR_SPACE_QUERY_ACTION_LOAD_FB, 0) \ +    _(XR_SPACE_QUERY_ACTION_MAX_ENUM_FB, 0x7FFFFFFF) + +#define XR_LIST_ENUM_XrSpaceStorageLocationFB(_) \ +    _(XR_SPACE_STORAGE_LOCATION_INVALID_FB, 0) \ +    _(XR_SPACE_STORAGE_LOCATION_LOCAL_FB, 1) \ +    _(XR_SPACE_STORAGE_LOCATION_MAX_ENUM_FB, 0x7FFFFFFF) + +#define XR_LIST_ENUM_XrSpacePersistenceModeFB(_) \ +    _(XR_SPACE_PERSISTENCE_MODE_INVALID_FB, 0) \ +    _(XR_SPACE_PERSISTENCE_MODE_INDEFINITE_FB, 1) \ +    _(XR_SPACE_PERSISTENCE_MODE_MAX_ENUM_FB, 0x7FFFFFFF) + +#define XR_LIST_ENUM_XrPerformanceMetricsCounterUnitMETA(_) \ +    _(XR_PERFORMANCE_METRICS_COUNTER_UNIT_GENERIC_META, 0) \ +    _(XR_PERFORMANCE_METRICS_COUNTER_UNIT_PERCENTAGE_META, 1) \ +    _(XR_PERFORMANCE_METRICS_COUNTER_UNIT_MILLISECONDS_META, 2) \ +    _(XR_PERFORMANCE_METRICS_COUNTER_UNIT_BYTES_META, 3) \ +    _(XR_PERFORMANCE_METRICS_COUNTER_UNIT_HERTZ_META, 4) \ +    _(XR_PERFORMANCE_METRICS_COUNTER_UNIT_MAX_ENUM_META, 0x7FFFFFFF) +  #define XR_LIST_BITS_XrInstanceCreateFlags(_)  #define XR_LIST_BITS_XrSessionCreateFlags(_) @@ -763,13 +856,27 @@ XR_ENUM_STR(XrResult);      _(XR_PASSTHROUGH_STATE_CHANGED_RECOVERABLE_ERROR_BIT_FB, 0x00000004) \      _(XR_PASSTHROUGH_STATE_CHANGED_RESTORED_ERROR_BIT_FB, 0x00000008) \ -#define XR_LIST_BITS_XrRenderModelFlagsFB(_) +#define XR_LIST_BITS_XrRenderModelFlagsFB(_) \ +    _(XR_RENDER_MODEL_SUPPORTS_GLTF_2_0_SUBSET_1_BIT_FB, 0x00000001) \ +    _(XR_RENDER_MODEL_SUPPORTS_GLTF_2_0_SUBSET_2_BIT_FB, 0x00000002) \ -#define XR_LIST_BITS_XrCompositionLayerSpaceWarpInfoFlagsFB(_) +#define XR_LIST_BITS_XrCompositionLayerSpaceWarpInfoFlagsFB(_) \ +    _(XR_COMPOSITION_LAYER_SPACE_WARP_INFO_FRAME_SKIP_BIT_FB, 0x00000001) \  #define XR_LIST_BITS_XrDigitalLensControlFlagsALMALENCE(_) \      _(XR_DIGITAL_LENS_CONTROL_PROCESSING_DISABLE_BIT_ALMALENCE, 0x00000001) \ +#define XR_LIST_BITS_XrCompositionLayerSettingsFlagsFB(_) \ +    _(XR_COMPOSITION_LAYER_SETTINGS_NORMAL_SUPER_SAMPLING_BIT_FB, 0x00000001) \ +    _(XR_COMPOSITION_LAYER_SETTINGS_QUALITY_SUPER_SAMPLING_BIT_FB, 0x00000002) \ +    _(XR_COMPOSITION_LAYER_SETTINGS_NORMAL_SHARPENING_BIT_FB, 0x00000004) \ +    _(XR_COMPOSITION_LAYER_SETTINGS_QUALITY_SHARPENING_BIT_FB, 0x00000008) \ + +#define XR_LIST_BITS_XrPerformanceMetricsCounterFlagsMETA(_) \ +    _(XR_PERFORMANCE_METRICS_COUNTER_ANY_VALUE_VALID_BIT_META, 0x00000001) \ +    _(XR_PERFORMANCE_METRICS_COUNTER_UINT_VALUE_VALID_BIT_META, 0x00000002) \ +    _(XR_PERFORMANCE_METRICS_COUNTER_FLOAT_VALUE_VALID_BIT_META, 0x00000004) \ +  #define XR_LIST_STRUCT_XrApiLayerProperties(_) \      _(type) \      _(next) \ @@ -1568,6 +1675,23 @@ XR_ENUM_STR(XrResult);      _(nodeId) \      _(pose) \ +#define XR_LIST_STRUCT_XrSpatialGraphStaticNodeBindingCreateInfoMSFT(_) \ +    _(type) \ +    _(next) \ +    _(space) \ +    _(poseInSpace) \ +    _(time) \ + +#define XR_LIST_STRUCT_XrSpatialGraphNodeBindingPropertiesGetInfoMSFT(_) \ +    _(type) \ +    _(next) \ + +#define XR_LIST_STRUCT_XrSpatialGraphNodeBindingPropertiesMSFT(_) \ +    _(type) \ +    _(next) \ +    _(nodeId) \ +    _(poseInNodeSpace) \ +  #define XR_LIST_STRUCT_XrSystemHandTrackingPropertiesEXT(_) \      _(type) \      _(next) \ @@ -1762,6 +1886,19 @@ XR_ENUM_STR(XrResult);      _(next) \      _(flags) \ +#define XR_LIST_STRUCT_XrInteractionProfileDpadBindingEXT(_) \ +    _(type) \ +    _(next) \ +    _(binding) \ +    _(actionSet) \ +    _(forceThreshold) \ +    _(forceThresholdReleased) \ +    _(centerRegion) \ +    _(wedgeAngle) \ +    _(isSticky) \ +    _(onHaptic) \ +    _(offHaptic) \ +  #define XR_LIST_STRUCT_XrInteractionProfileAnalogThresholdVALVE(_) \      _(type) \      _(next) \ @@ -2047,6 +2184,52 @@ XR_ENUM_STR(XrResult);      _(next) \      _(capsules) \ +#define XR_LIST_STRUCT_XrSystemSpatialEntityPropertiesFB(_) \ +    _(type) \ +    _(next) \ +    _(supportsSpatialEntity) \ + +#define XR_LIST_STRUCT_XrSpatialAnchorCreateInfoFB(_) \ +    _(type) \ +    _(next) \ +    _(space) \ +    _(poseInSpace) \ +    _(time) \ + +#define XR_LIST_STRUCT_XrSpaceComponentStatusSetInfoFB(_) \ +    _(type) \ +    _(next) \ +    _(componentType) \ +    _(enabled) \ +    _(timeout) \ + +#define XR_LIST_STRUCT_XrSpaceComponentStatusFB(_) \ +    _(type) \ +    _(next) \ +    _(enabled) \ +    _(changePending) \ + +#define XR_LIST_STRUCT_XrUuidEXT(_) \ +    _(data) \ + +#define XR_LIST_STRUCT_XrEventDataSpatialAnchorCreateCompleteFB(_) \ +    _(type) \ +    _(next) \ +    _(requestId) \ +    _(result) \ +    _(space) \ +    _(uuid) \ + +#define XR_LIST_STRUCT_XrEventDataSpaceSetStatusCompleteFB(_) \ +    _(type) \ +    _(next) \ +    _(requestId) \ +    _(result) \ +    _(space) \ +    _(uuid) \ +    _(componentType) \ +    _(enabled) \ +  #define XR_LIST_STRUCT_XrFoveationProfileCreateInfoFB(_) \      _(type) \      _(next) \ @@ -2157,6 +2340,13 @@ XR_ENUM_STR(XrResult);      _(next) \      _(textureColorMap) \ +#define XR_LIST_STRUCT_XrPassthroughBrightnessContrastSaturationFB(_) \ +    _(type) \ +    _(next) \ +    _(brightness) \ +    _(contrast) \ +    _(saturation) \ +  #define XR_LIST_STRUCT_XrEventDataPassthroughStateChangedFB(_) \      _(type) \      _(next) \ @@ -2193,6 +2383,11 @@ XR_ENUM_STR(XrResult);      _(next) \      _(supportsRenderModelLoading) \ +#define XR_LIST_STRUCT_XrRenderModelCapabilitiesRequestFB(_) \ +    _(type) \ +    _(next) \ +    _(flags) \ +  #define XR_LIST_STRUCT_XrViewLocateFoveatedRenderingVARJO(_) \      _(type) \      _(next) \ @@ -2248,6 +2443,92 @@ XR_ENUM_STR(XrResult);      _(spatialAnchorStore) \      _(spatialAnchorPersistenceName) \ +#define XR_LIST_STRUCT_XrSpaceQueryInfoBaseHeaderFB(_) \ +    _(type) \ +    _(next) \ + +#define XR_LIST_STRUCT_XrSpaceFilterInfoBaseHeaderFB(_) \ +    _(type) \ +    _(next) \ + +#define XR_LIST_STRUCT_XrSpaceQueryInfoFB(_) \ +    _(type) \ +    _(next) \ +    _(queryAction) \ +    _(maxResultCount) \ +    _(timeout) \ +    _(filter) \ +    _(excludeFilter) \ + +#define XR_LIST_STRUCT_XrSpaceStorageLocationFilterInfoFB(_) \ +    _(type) \ +    _(next) \ +    _(location) \ + +#define XR_LIST_STRUCT_XrSpaceUuidFilterInfoFB(_) \ +    _(type) \ +    _(next) \ +    _(uuidCount) \ +    _(uuids) \ + +#define XR_LIST_STRUCT_XrSpaceComponentFilterInfoFB(_) \ +    _(type) \ +    _(next) \ +    _(componentType) \ + +#define XR_LIST_STRUCT_XrSpaceQueryResultFB(_) \ +    _(space) \ +    _(uuid) \ + +#define XR_LIST_STRUCT_XrSpaceQueryResultsFB(_) \ +    _(type) \ +    _(next) \ +    _(resultCapacityInput) \ +    _(resultCountOutput) \ +    _(results) \ + +#define XR_LIST_STRUCT_XrEventDataSpaceQueryResultsAvailableFB(_) \ +    _(type) \ +    _(next) \ +    _(requestId) \ + +#define XR_LIST_STRUCT_XrEventDataSpaceQueryCompleteFB(_) \ +    _(type) \ +    _(next) \ +    _(requestId) \ +    _(result) \ + +#define XR_LIST_STRUCT_XrSpaceSaveInfoFB(_) \ +    _(type) \ +    _(next) \ +    _(space) \ +    _(location) \ +    _(persistenceMode) \ + +#define XR_LIST_STRUCT_XrSpaceEraseInfoFB(_) \ +    _(type) \ +    _(next) \ +    _(space) \ +    _(location) \ + +#define XR_LIST_STRUCT_XrEventDataSpaceSaveCompleteFB(_) \ +    _(type) \ +    _(next) \ +    _(requestId) \ +    _(result) \ +    _(space) \ +    _(uuid) \ +    _(location) \ + +#define XR_LIST_STRUCT_XrEventDataSpaceEraseCompleteFB(_) \ +    _(type) \ +    _(next) \ +    _(requestId) \ +    _(result) \ +    _(space) \ +    _(uuid) \ +    _(location) \ +  #define XR_LIST_STRUCT_XrSwapchainImageFoveationVulkanFB(_) \      _(type) \      _(next) \ @@ -2313,14 +2594,42 @@ XR_ENUM_STR(XrResult);      _(next) \      _(flags) \ +#define XR_LIST_STRUCT_XrSpaceContainerFB(_) \ +    _(type) \ +    _(next) \ +    _(uuidCapacityInput) \ +    _(uuidCountOutput) \ +    _(uuids) \ +  #define XR_LIST_STRUCT_XrPassthroughKeyboardHandsIntensityFB(_) \      _(type) \      _(next) \      _(leftHandIntensity) \      _(rightHandIntensity) \ -#define XR_LIST_STRUCT_XrUuidEXT(_) \ -    _(data) \ +#define XR_LIST_STRUCT_XrCompositionLayerSettingsFB(_) \ +    _(type) \ +    _(next) \ +    _(layerFlags) \ + +#define XR_LIST_STRUCT_XrVulkanSwapchainCreateInfoMETA(_) \ +    _(type) \ +    _(next) \ +    _(additionalCreateFlags) \ +    _(additionalUsageFlags) \ + +#define XR_LIST_STRUCT_XrPerformanceMetricsStateMETA(_) \ +    _(type) \ +    _(next) \ +    _(enabled) \ + +#define XR_LIST_STRUCT_XrPerformanceMetricsCounterMETA(_) \ +    _(type) \ +    _(next) \ +    _(counterFlags) \ +    _(counterUnit) \ +    _(uintValue) \ +    _(floatValue) \ @@ -2398,6 +2707,9 @@ XR_ENUM_STR(XrResult);      _(XrCompositionLayerAlphaBlendFB, XR_TYPE_COMPOSITION_LAYER_ALPHA_BLEND_FB) \      _(XrViewConfigurationDepthRangeEXT, XR_TYPE_VIEW_CONFIGURATION_DEPTH_RANGE_EXT) \      _(XrSpatialGraphNodeSpaceCreateInfoMSFT, XR_TYPE_SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT) \ +    _(XrSpatialGraphStaticNodeBindingCreateInfoMSFT, XR_TYPE_SPATIAL_GRAPH_STATIC_NODE_BINDING_CREATE_INFO_MSFT) \ +    _(XrSpatialGraphNodeBindingPropertiesGetInfoMSFT, XR_TYPE_SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_GET_INFO_MSFT) \ +    _(XrSpatialGraphNodeBindingPropertiesMSFT, XR_TYPE_SPATIAL_GRAPH_NODE_BINDING_PROPERTIES_MSFT) \      _(XrSystemHandTrackingPropertiesEXT, XR_TYPE_SYSTEM_HAND_TRACKING_PROPERTIES_EXT) \      _(XrHandTrackerCreateInfoEXT, XR_TYPE_HAND_TRACKER_CREATE_INFO_EXT) \      _(XrHandJointsLocateInfoEXT, XR_TYPE_HAND_JOINTS_LOCATE_INFO_EXT) \ @@ -2423,6 +2735,7 @@ XR_ENUM_STR(XrResult);      _(XrCompositionLayerReprojectionInfoMSFT, XR_TYPE_COMPOSITION_LAYER_REPROJECTION_INFO_MSFT) \      _(XrCompositionLayerReprojectionPlaneOverrideMSFT, XR_TYPE_COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT) \      _(XrCompositionLayerSecureContentFB, XR_TYPE_COMPOSITION_LAYER_SECURE_CONTENT_FB) \ +    _(XrInteractionProfileDpadBindingEXT, XR_TYPE_INTERACTION_PROFILE_DPAD_BINDING_EXT) \      _(XrInteractionProfileAnalogThresholdVALVE, XR_TYPE_INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE) \      _(XrHandJointsMotionRangeInfoEXT, XR_TYPE_HAND_JOINTS_MOTION_RANGE_INFO_EXT) \      _(XrSceneObserverCreateInfoMSFT, XR_TYPE_SCENE_OBSERVER_CREATE_INFO_MSFT) \ @@ -2457,6 +2770,12 @@ XR_ENUM_STR(XrResult);      _(XrHandTrackingScaleFB, XR_TYPE_HAND_TRACKING_SCALE_FB) \      _(XrHandTrackingAimStateFB, XR_TYPE_HAND_TRACKING_AIM_STATE_FB) \      _(XrHandTrackingCapsulesStateFB, XR_TYPE_HAND_TRACKING_CAPSULES_STATE_FB) \ +    _(XrSystemSpatialEntityPropertiesFB, XR_TYPE_SYSTEM_SPATIAL_ENTITY_PROPERTIES_FB) \ +    _(XrSpatialAnchorCreateInfoFB, XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_FB) \ +    _(XrSpaceComponentStatusSetInfoFB, XR_TYPE_SPACE_COMPONENT_STATUS_SET_INFO_FB) \ +    _(XrSpaceComponentStatusFB, XR_TYPE_SPACE_COMPONENT_STATUS_FB) \ +    _(XrEventDataSpatialAnchorCreateCompleteFB, XR_TYPE_EVENT_DATA_SPATIAL_ANCHOR_CREATE_COMPLETE_FB) \ +    _(XrEventDataSpaceSetStatusCompleteFB, XR_TYPE_EVENT_DATA_SPACE_SET_STATUS_COMPLETE_FB) \      _(XrFoveationProfileCreateInfoFB, XR_TYPE_FOVEATION_PROFILE_CREATE_INFO_FB) \      _(XrSwapchainCreateInfoFoveationFB, XR_TYPE_SWAPCHAIN_CREATE_INFO_FOVEATION_FB) \      _(XrSwapchainStateFoveationFB, XR_TYPE_SWAPCHAIN_STATE_FOVEATION_FB) \ @@ -2474,12 +2793,14 @@ XR_ENUM_STR(XrResult);      _(XrPassthroughStyleFB, XR_TYPE_PASSTHROUGH_STYLE_FB) \      _(XrPassthroughColorMapMonoToRgbaFB, XR_TYPE_PASSTHROUGH_COLOR_MAP_MONO_TO_RGBA_FB) \      _(XrPassthroughColorMapMonoToMonoFB, XR_TYPE_PASSTHROUGH_COLOR_MAP_MONO_TO_MONO_FB) \ +    _(XrPassthroughBrightnessContrastSaturationFB, XR_TYPE_PASSTHROUGH_BRIGHTNESS_CONTRAST_SATURATION_FB) \      _(XrEventDataPassthroughStateChangedFB, XR_TYPE_EVENT_DATA_PASSTHROUGH_STATE_CHANGED_FB) \      _(XrRenderModelPathInfoFB, XR_TYPE_RENDER_MODEL_PATH_INFO_FB) \      _(XrRenderModelPropertiesFB, XR_TYPE_RENDER_MODEL_PROPERTIES_FB) \      _(XrRenderModelBufferFB, XR_TYPE_RENDER_MODEL_BUFFER_FB) \      _(XrRenderModelLoadInfoFB, XR_TYPE_RENDER_MODEL_LOAD_INFO_FB) \      _(XrSystemRenderModelPropertiesFB, XR_TYPE_SYSTEM_RENDER_MODEL_PROPERTIES_FB) \ +    _(XrRenderModelCapabilitiesRequestFB, XR_TYPE_RENDER_MODEL_CAPABILITIES_REQUEST_FB) \      _(XrViewLocateFoveatedRenderingVARJO, XR_TYPE_VIEW_LOCATE_FOVEATED_RENDERING_VARJO) \      _(XrFoveatedViewConfigurationViewVARJO, XR_TYPE_FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO) \      _(XrSystemFoveatedRenderingPropertiesVARJO, XR_TYPE_SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO) \ @@ -2489,10 +2810,25 @@ XR_ENUM_STR(XrResult);      _(XrMarkerSpaceCreateInfoVARJO, XR_TYPE_MARKER_SPACE_CREATE_INFO_VARJO) \      _(XrSpatialAnchorPersistenceInfoMSFT, XR_TYPE_SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT) \      _(XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT, XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT) \ +    _(XrSpaceQueryInfoFB, XR_TYPE_SPACE_QUERY_INFO_FB) \ +    _(XrSpaceStorageLocationFilterInfoFB, XR_TYPE_SPACE_STORAGE_LOCATION_FILTER_INFO_FB) \ +    _(XrSpaceUuidFilterInfoFB, XR_TYPE_SPACE_UUID_FILTER_INFO_FB) \ +    _(XrSpaceComponentFilterInfoFB, XR_TYPE_SPACE_COMPONENT_FILTER_INFO_FB) \ +    _(XrSpaceQueryResultsFB, XR_TYPE_SPACE_QUERY_RESULTS_FB) \ +    _(XrEventDataSpaceQueryResultsAvailableFB, XR_TYPE_EVENT_DATA_SPACE_QUERY_RESULTS_AVAILABLE_FB) \ +    _(XrEventDataSpaceQueryCompleteFB, XR_TYPE_EVENT_DATA_SPACE_QUERY_COMPLETE_FB) \ +    _(XrSpaceSaveInfoFB, XR_TYPE_SPACE_SAVE_INFO_FB) \ +    _(XrSpaceEraseInfoFB, XR_TYPE_SPACE_ERASE_INFO_FB) \ +    _(XrEventDataSpaceSaveCompleteFB, XR_TYPE_EVENT_DATA_SPACE_SAVE_COMPLETE_FB) \ +    _(XrEventDataSpaceEraseCompleteFB, XR_TYPE_EVENT_DATA_SPACE_ERASE_COMPLETE_FB) \      _(XrCompositionLayerSpaceWarpInfoFB, XR_TYPE_COMPOSITION_LAYER_SPACE_WARP_INFO_FB) \      _(XrSystemSpaceWarpPropertiesFB, XR_TYPE_SYSTEM_SPACE_WARP_PROPERTIES_FB) \      _(XrDigitalLensControlALMALENCE, XR_TYPE_DIGITAL_LENS_CONTROL_ALMALENCE) \ +    _(XrSpaceContainerFB, XR_TYPE_SPACE_CONTAINER_FB) \      _(XrPassthroughKeyboardHandsIntensityFB, XR_TYPE_PASSTHROUGH_KEYBOARD_HANDS_INTENSITY_FB) \ +    _(XrCompositionLayerSettingsFB, XR_TYPE_COMPOSITION_LAYER_SETTINGS_FB) \ +    _(XrPerformanceMetricsStateMETA, XR_TYPE_PERFORMANCE_METRICS_STATE_META) \ +    _(XrPerformanceMetricsCounterMETA, XR_TYPE_PERFORMANCE_METRICS_COUNTER_META) \ @@ -2596,6 +2932,7 @@ XR_ENUM_STR(XrResult);      _(XrVulkanGraphicsDeviceGetInfoKHR, XR_TYPE_VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR) \      _(XrSwapchainImageFoveationVulkanFB, XR_TYPE_SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB) \      _(XrSwapchainStateSamplerVulkanFB, XR_TYPE_SWAPCHAIN_STATE_SAMPLER_VULKAN_FB) \ +    _(XrVulkanSwapchainCreateInfoMETA, XR_TYPE_VULKAN_SWAPCHAIN_CREATE_INFO_META) \  #else @@ -2698,6 +3035,7 @@ XR_ENUM_STR(XrResult);      _(XR_FB_android_surface_swapchain_create, 71) \      _(XR_FB_swapchain_update_state, 72) \      _(XR_FB_composition_layer_secure_content, 73) \ +    _(XR_EXT_dpad_binding, 79) \      _(XR_VALVE_analog_threshold, 80) \      _(XR_EXT_hand_joints_motion_range, 81) \      _(XR_KHR_loader_init, 89) \ @@ -2714,10 +3052,13 @@ XR_ENUM_STR(XrResult);      _(XR_HTCX_vive_tracker_interaction, 104) \      _(XR_HTC_facial_tracking, 105) \      _(XR_HTC_vive_focus3_controller_interaction, 106) \ +    _(XR_HTC_hand_interaction, 107) \ +    _(XR_HTC_vive_wrist_tracker_interaction, 108) \      _(XR_FB_color_space, 109) \      _(XR_FB_hand_tracking_mesh, 111) \      _(XR_FB_hand_tracking_aim, 112) \      _(XR_FB_hand_tracking_capsules, 113) \ +    _(XR_FB_spatial_entity, 114) \      _(XR_FB_foveation, 115) \      _(XR_FB_foveation_configuration, 116) \      _(XR_FB_keyboard_tracking, 117) \ @@ -2729,7 +3070,11 @@ XR_ENUM_STR(XrResult);      _(XR_VARJO_composition_layer_depth_test, 123) \      _(XR_VARJO_environment_depth_estimation, 124) \      _(XR_VARJO_marker_tracking, 125) \ +    _(XR_VARJO_view_offset, 126) \      _(XR_MSFT_spatial_anchor_persistence, 143) \ +    _(XR_ULTRALEAP_hand_tracking_forearm, 150) \ +    _(XR_FB_spatial_entity_query, 157) \ +    _(XR_FB_spatial_entity_storage, 159) \      _(XR_OCULUS_audio_device_guid, 160) \      _(XR_FB_foveation_vulkan, 161) \      _(XR_FB_swapchain_update_state_android_surface, 162) \ @@ -2738,7 +3083,11 @@ XR_ENUM_STR(XrResult);      _(XR_KHR_swapchain_usage_input_attachment_bit, 166) \      _(XR_FB_space_warp, 172) \      _(XR_ALMALENCE_digital_lens_control, 197) \ +    _(XR_FB_spatial_entity_container, 200) \      _(XR_FB_passthrough_keyboard_hands, 204) \ +    _(XR_FB_composition_layer_settings, 205) \ +    _(XR_META_vulkan_swapchain_create_info, 228) \ +    _(XR_META_performance_metrics, 233) \      _(XR_EXT_uuid, 300) \ diff --git a/thirdparty/openxr/src/common/xr_linear.h b/thirdparty/openxr/src/common/xr_linear.h index 9ffb49a4b6..1f0e803b7a 100644 --- a/thirdparty/openxr/src/common/xr_linear.h +++ b/thirdparty/openxr/src/common/xr_linear.h @@ -126,12 +126,12 @@ static const XrColor4f XrColorCyan = {0.0f, 1.0f, 1.0f, 1.0f};  static const XrColor4f XrColorLightGrey = {0.7f, 0.7f, 0.7f, 1.0f};  static const XrColor4f XrColorDarkGrey = {0.3f, 0.3f, 0.3f, 1.0f}; -enum GraphicsAPI { GRAPHICS_VULKAN, GRAPHICS_OPENGL, GRAPHICS_OPENGL_ES, GRAPHICS_D3D }; +typedef enum GraphicsAPI { GRAPHICS_VULKAN, GRAPHICS_OPENGL, GRAPHICS_OPENGL_ES, GRAPHICS_D3D } GraphicsAPI;  // Column-major, pre-multiplied. This type does not exist in the OpenXR API and is provided for convenience. -struct XrMatrix4x4f { +typedef struct XrMatrix4x4f {      float m[16]; -}; +} XrMatrix4x4f;  inline static float XrRcpSqrt(const float x) {      const float SMALLEST_NON_DENORMAL = 1.1754943508222875e-038f;  // ( 1U << 23 ) diff --git a/thirdparty/openxr/src/xr_generated_dispatch_table.c b/thirdparty/openxr/src/xr_generated_dispatch_table.c index 79fbefc52a..91fa0c3ca0 100644 --- a/thirdparty/openxr/src/xr_generated_dispatch_table.c +++ b/thirdparty/openxr/src/xr_generated_dispatch_table.c @@ -202,6 +202,9 @@ void GeneratedXrPopulateDispatchTable(struct XrGeneratedDispatchTable *table,      // ---- XR_MSFT_spatial_graph_bridge extension commands      (get_inst_proc_addr(instance, "xrCreateSpatialGraphNodeSpaceMSFT", (PFN_xrVoidFunction*)&table->CreateSpatialGraphNodeSpaceMSFT)); +    (get_inst_proc_addr(instance, "xrTryCreateSpatialGraphStaticNodeBindingMSFT", (PFN_xrVoidFunction*)&table->TryCreateSpatialGraphStaticNodeBindingMSFT)); +    (get_inst_proc_addr(instance, "xrDestroySpatialGraphNodeBindingMSFT", (PFN_xrVoidFunction*)&table->DestroySpatialGraphNodeBindingMSFT)); +    (get_inst_proc_addr(instance, "xrGetSpatialGraphNodeBindingPropertiesMSFT", (PFN_xrVoidFunction*)&table->GetSpatialGraphNodeBindingPropertiesMSFT));      // ---- XR_EXT_hand_tracking extension commands      (get_inst_proc_addr(instance, "xrCreateHandTrackerEXT", (PFN_xrVoidFunction*)&table->CreateHandTrackerEXT)); @@ -269,6 +272,13 @@ void GeneratedXrPopulateDispatchTable(struct XrGeneratedDispatchTable *table,      // ---- XR_FB_hand_tracking_mesh extension commands      (get_inst_proc_addr(instance, "xrGetHandMeshFB", (PFN_xrVoidFunction*)&table->GetHandMeshFB)); +    // ---- XR_FB_spatial_entity extension commands +    (get_inst_proc_addr(instance, "xrCreateSpatialAnchorFB", (PFN_xrVoidFunction*)&table->CreateSpatialAnchorFB)); +    (get_inst_proc_addr(instance, "xrGetSpaceUuidFB", (PFN_xrVoidFunction*)&table->GetSpaceUuidFB)); +    (get_inst_proc_addr(instance, "xrEnumerateSpaceSupportedComponentsFB", (PFN_xrVoidFunction*)&table->EnumerateSpaceSupportedComponentsFB)); +    (get_inst_proc_addr(instance, "xrSetSpaceComponentStatusFB", (PFN_xrVoidFunction*)&table->SetSpaceComponentStatusFB)); +    (get_inst_proc_addr(instance, "xrGetSpaceComponentStatusFB", (PFN_xrVoidFunction*)&table->GetSpaceComponentStatusFB)); +      // ---- XR_FB_foveation extension commands      (get_inst_proc_addr(instance, "xrCreateFoveationProfileFB", (PFN_xrVoidFunction*)&table->CreateFoveationProfileFB));      (get_inst_proc_addr(instance, "xrDestroyFoveationProfileFB", (PFN_xrVoidFunction*)&table->DestroyFoveationProfileFB)); @@ -316,6 +326,9 @@ void GeneratedXrPopulateDispatchTable(struct XrGeneratedDispatchTable *table,      (get_inst_proc_addr(instance, "xrGetMarkerSizeVARJO", (PFN_xrVoidFunction*)&table->GetMarkerSizeVARJO));      (get_inst_proc_addr(instance, "xrCreateMarkerSpaceVARJO", (PFN_xrVoidFunction*)&table->CreateMarkerSpaceVARJO)); +    // ---- XR_VARJO_view_offset extension commands +    (get_inst_proc_addr(instance, "xrSetViewOffsetVARJO", (PFN_xrVoidFunction*)&table->SetViewOffsetVARJO)); +      // ---- XR_MSFT_spatial_anchor_persistence extension commands      (get_inst_proc_addr(instance, "xrCreateSpatialAnchorStoreConnectionMSFT", (PFN_xrVoidFunction*)&table->CreateSpatialAnchorStoreConnectionMSFT));      (get_inst_proc_addr(instance, "xrDestroySpatialAnchorStoreConnectionMSFT", (PFN_xrVoidFunction*)&table->DestroySpatialAnchorStoreConnectionMSFT)); @@ -325,6 +338,14 @@ void GeneratedXrPopulateDispatchTable(struct XrGeneratedDispatchTable *table,      (get_inst_proc_addr(instance, "xrUnpersistSpatialAnchorMSFT", (PFN_xrVoidFunction*)&table->UnpersistSpatialAnchorMSFT));      (get_inst_proc_addr(instance, "xrClearSpatialAnchorStoreMSFT", (PFN_xrVoidFunction*)&table->ClearSpatialAnchorStoreMSFT)); +    // ---- XR_FB_spatial_entity_query extension commands +    (get_inst_proc_addr(instance, "xrQuerySpacesFB", (PFN_xrVoidFunction*)&table->QuerySpacesFB)); +    (get_inst_proc_addr(instance, "xrRetrieveSpaceQueryResultsFB", (PFN_xrVoidFunction*)&table->RetrieveSpaceQueryResultsFB)); + +    // ---- XR_FB_spatial_entity_storage extension commands +    (get_inst_proc_addr(instance, "xrSaveSpaceFB", (PFN_xrVoidFunction*)&table->SaveSpaceFB)); +    (get_inst_proc_addr(instance, "xrEraseSpaceFB", (PFN_xrVoidFunction*)&table->EraseSpaceFB)); +      // ---- XR_OCULUS_audio_device_guid extension commands  #if defined(XR_USE_PLATFORM_WIN32)      (get_inst_proc_addr(instance, "xrGetAudioOutputDeviceGuidOculus", (PFN_xrVoidFunction*)&table->GetAudioOutputDeviceGuidOculus)); @@ -336,8 +357,17 @@ void GeneratedXrPopulateDispatchTable(struct XrGeneratedDispatchTable *table,      // ---- XR_ALMALENCE_digital_lens_control extension commands      (get_inst_proc_addr(instance, "xrSetDigitalLensControlALMALENCE", (PFN_xrVoidFunction*)&table->SetDigitalLensControlALMALENCE)); +    // ---- XR_FB_spatial_entity_container extension commands +    (get_inst_proc_addr(instance, "xrGetSpaceContainerFB", (PFN_xrVoidFunction*)&table->GetSpaceContainerFB)); +      // ---- XR_FB_passthrough_keyboard_hands extension commands      (get_inst_proc_addr(instance, "xrPassthroughLayerSetKeyboardHandsIntensityFB", (PFN_xrVoidFunction*)&table->PassthroughLayerSetKeyboardHandsIntensityFB)); + +    // ---- XR_META_performance_metrics extension commands +    (get_inst_proc_addr(instance, "xrEnumeratePerformanceMetricsCounterPathsMETA", (PFN_xrVoidFunction*)&table->EnumeratePerformanceMetricsCounterPathsMETA)); +    (get_inst_proc_addr(instance, "xrSetPerformanceMetricsStateMETA", (PFN_xrVoidFunction*)&table->SetPerformanceMetricsStateMETA)); +    (get_inst_proc_addr(instance, "xrGetPerformanceMetricsStateMETA", (PFN_xrVoidFunction*)&table->GetPerformanceMetricsStateMETA)); +    (get_inst_proc_addr(instance, "xrQueryPerformanceMetricsCounterMETA", (PFN_xrVoidFunction*)&table->QueryPerformanceMetricsCounterMETA));  } diff --git a/thirdparty/openxr/src/xr_generated_dispatch_table.h b/thirdparty/openxr/src/xr_generated_dispatch_table.h index 34e0de93f5..51d48bef43 100644 --- a/thirdparty/openxr/src/xr_generated_dispatch_table.h +++ b/thirdparty/openxr/src/xr_generated_dispatch_table.h @@ -205,6 +205,9 @@ struct XrGeneratedDispatchTable {      // ---- XR_MSFT_spatial_graph_bridge extension commands      PFN_xrCreateSpatialGraphNodeSpaceMSFT CreateSpatialGraphNodeSpaceMSFT; +    PFN_xrTryCreateSpatialGraphStaticNodeBindingMSFT TryCreateSpatialGraphStaticNodeBindingMSFT; +    PFN_xrDestroySpatialGraphNodeBindingMSFT DestroySpatialGraphNodeBindingMSFT; +    PFN_xrGetSpatialGraphNodeBindingPropertiesMSFT GetSpatialGraphNodeBindingPropertiesMSFT;      // ---- XR_EXT_hand_tracking extension commands      PFN_xrCreateHandTrackerEXT CreateHandTrackerEXT; @@ -272,6 +275,13 @@ struct XrGeneratedDispatchTable {      // ---- XR_FB_hand_tracking_mesh extension commands      PFN_xrGetHandMeshFB GetHandMeshFB; +    // ---- XR_FB_spatial_entity extension commands +    PFN_xrCreateSpatialAnchorFB CreateSpatialAnchorFB; +    PFN_xrGetSpaceUuidFB GetSpaceUuidFB; +    PFN_xrEnumerateSpaceSupportedComponentsFB EnumerateSpaceSupportedComponentsFB; +    PFN_xrSetSpaceComponentStatusFB SetSpaceComponentStatusFB; +    PFN_xrGetSpaceComponentStatusFB GetSpaceComponentStatusFB; +      // ---- XR_FB_foveation extension commands      PFN_xrCreateFoveationProfileFB CreateFoveationProfileFB;      PFN_xrDestroyFoveationProfileFB DestroyFoveationProfileFB; @@ -319,6 +329,9 @@ struct XrGeneratedDispatchTable {      PFN_xrGetMarkerSizeVARJO GetMarkerSizeVARJO;      PFN_xrCreateMarkerSpaceVARJO CreateMarkerSpaceVARJO; +    // ---- XR_VARJO_view_offset extension commands +    PFN_xrSetViewOffsetVARJO SetViewOffsetVARJO; +      // ---- XR_MSFT_spatial_anchor_persistence extension commands      PFN_xrCreateSpatialAnchorStoreConnectionMSFT CreateSpatialAnchorStoreConnectionMSFT;      PFN_xrDestroySpatialAnchorStoreConnectionMSFT DestroySpatialAnchorStoreConnectionMSFT; @@ -328,6 +341,14 @@ struct XrGeneratedDispatchTable {      PFN_xrUnpersistSpatialAnchorMSFT UnpersistSpatialAnchorMSFT;      PFN_xrClearSpatialAnchorStoreMSFT ClearSpatialAnchorStoreMSFT; +    // ---- XR_FB_spatial_entity_query extension commands +    PFN_xrQuerySpacesFB QuerySpacesFB; +    PFN_xrRetrieveSpaceQueryResultsFB RetrieveSpaceQueryResultsFB; + +    // ---- XR_FB_spatial_entity_storage extension commands +    PFN_xrSaveSpaceFB SaveSpaceFB; +    PFN_xrEraseSpaceFB EraseSpaceFB; +      // ---- XR_OCULUS_audio_device_guid extension commands  #if defined(XR_USE_PLATFORM_WIN32)      PFN_xrGetAudioOutputDeviceGuidOculus GetAudioOutputDeviceGuidOculus; @@ -339,8 +360,17 @@ struct XrGeneratedDispatchTable {      // ---- XR_ALMALENCE_digital_lens_control extension commands      PFN_xrSetDigitalLensControlALMALENCE SetDigitalLensControlALMALENCE; +    // ---- XR_FB_spatial_entity_container extension commands +    PFN_xrGetSpaceContainerFB GetSpaceContainerFB; +      // ---- XR_FB_passthrough_keyboard_hands extension commands      PFN_xrPassthroughLayerSetKeyboardHandsIntensityFB PassthroughLayerSetKeyboardHandsIntensityFB; + +    // ---- XR_META_performance_metrics extension commands +    PFN_xrEnumeratePerformanceMetricsCounterPathsMETA EnumeratePerformanceMetricsCounterPathsMETA; +    PFN_xrSetPerformanceMetricsStateMETA SetPerformanceMetricsStateMETA; +    PFN_xrGetPerformanceMetricsStateMETA GetPerformanceMetricsStateMETA; +    PFN_xrQueryPerformanceMetricsCounterMETA QueryPerformanceMetricsCounterMETA;  };  |