wineopenxr: Update to 1.0.18 registry version.

This commit is contained in:
Paul Gofman 2021-08-03 19:53:18 +03:00 committed by Andrew Eikum
parent 95b1dc2b0b
commit 9cf5ff5cec
7 changed files with 1396 additions and 612 deletions

View file

@ -183,6 +183,12 @@ FUNCTION_OVERRIDES = {
"xrDestroySceneObserverMSFT" : {"dispatch" : True, "driver" : True, "thunk" : False},
"xrCreateSceneMSFT" : {"dispatch" : True, "driver" : True, "thunk" : False},
"xrDestroySceneMSFT" : {"dispatch" : True, "driver" : True, "thunk" : False},
"xrCreateSpatialAnchorFromPersistedNameMSFT" : {"dispatch" : True, "driver" : True, "thunk" : False},
"xrCreateSpatialAnchorStoreConnectionMSFT" : {"dispatch" : True, "driver" : True, "thunk" : False},
"xrDestroySpatialAnchorStoreConnectionMSFT" : {"dispatch" : True, "driver" : True, "thunk" : False},
"xrCreateFoveationProfileFB" : {"dispatch" : True, "driver" : True, "thunk" : False},
"xrDestroyFoveationProfileFB" : {"dispatch" : True, "driver" : True, "thunk" : False},
}
STRUCT_CHAIN_CONVERSIONS = [
@ -892,6 +898,8 @@ class XrHandle(object):
native_handle_name = "scene_observer_msft"
if self.name == "XrSceneMSFT":
native_handle_name = "scene_msft"
if self.name == "XrSpatialAnchorStoreConnectionMSFT":
native_handle_name = "spatial_anchor_store_connection"
if native_handle_name:
return "((wine_{0} *){1})->{2}".format(self.name, name, native_handle_name)

View file

@ -1045,6 +1045,36 @@ XrResult WINAPI wine_xrCreateSpatialAnchorMSFT(XrSession session,
return XR_SUCCESS;
}
XrResult WINAPI wine_xrCreateSpatialAnchorFromPersistedNameMSFT(XrSession session,
const XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT *create_info,
XrSpatialAnchorMSFT *anchor)
{
wine_XrSession *wine_session = (wine_XrSession *)session;
wine_XrSpatialAnchorMSFT *wine_anchor;
XrResult res;
WINE_TRACE("%p, %p, %p\n", session, create_info, anchor);
wine_anchor = heap_alloc_zero(sizeof(*wine_anchor));
res = wine_session->wine_instance->funcs.p_xrCreateSpatialAnchorFromPersistedNameMSFT(wine_session->session,
create_info, &wine_anchor->spatial_anchor);
if(res != XR_SUCCESS){
WINE_WARN("xrCreateSpatialAnchorFromPersistedNameMSFT failed: %d\n", res);
heap_free(wine_anchor);
return res;
}
wine_anchor->wine_session = wine_session;
*anchor = (XrSpatialAnchorMSFT)wine_anchor;
WINE_TRACE("allocated wine spatialAnchor %p for native spatialAnchor %p\n",
wine_anchor, wine_anchor->spatial_anchor);
return XR_SUCCESS;
}
XrResult WINAPI wine_xrDestroySpatialAnchorMSFT(XrSpatialAnchorMSFT anchor)
{
wine_XrSpatialAnchorMSFT *wine_anchor = (wine_XrSpatialAnchorMSFT *)anchor;
@ -1063,6 +1093,55 @@ XrResult WINAPI wine_xrDestroySpatialAnchorMSFT(XrSpatialAnchorMSFT anchor)
return XR_SUCCESS;
}
XrResult WINAPI wine_xrCreateSpatialAnchorStoreConnectionMSFT(XrSession session, XrSpatialAnchorStoreConnectionMSFT *anchor_store)
{
wine_XrSpatialAnchorStoreConnectionMSFT *wine_anchor_store;
wine_XrSession *wine_session = (wine_XrSession *)session;
XrResult res;
WINE_TRACE("%p, %p\n", session, anchor_store);
wine_anchor_store = heap_alloc_zero(sizeof(*wine_anchor_store));
res = wine_session->wine_instance->funcs.p_xrCreateSpatialAnchorStoreConnectionMSFT(wine_session->session,
&wine_anchor_store->spatial_anchor_store_connection);
if(res != XR_SUCCESS){
WINE_WARN("xrCreateSpatialAnchorStoreConnectionMSFT failed: %d\n", res);
heap_free(wine_anchor_store);
return res;
}
wine_anchor_store->wine_session = wine_session;
*anchor_store = (XrSpatialAnchorStoreConnectionMSFT)wine_anchor_store;
WINE_TRACE("allocated wine_anchor_store %p for native spatial_anchor_store_connection %p\n",
wine_anchor_store, wine_anchor_store->spatial_anchor_store_connection);
return XR_SUCCESS;
}
XrResult WINAPI wine_xrDestroySpatialAnchorStoreConnectionMSFT(XrSpatialAnchorStoreConnectionMSFT anchor_store)
{
wine_XrSpatialAnchorStoreConnectionMSFT *wine_anchor_store
= (wine_XrSpatialAnchorStoreConnectionMSFT *)anchor_store;
XrResult res;
WINE_TRACE("%p\n", anchor_store);
res = wine_anchor_store->wine_session->wine_instance->funcs.p_xrDestroySpatialAnchorStoreConnectionMSFT
(wine_anchor_store->spatial_anchor_store_connection);
if(res != XR_SUCCESS){
WINE_WARN("xrDestroySpatialAnchorStoreConnectionMSFT failed: %d\n", res);
return res;
}
heap_free(wine_anchor_store);
return XR_SUCCESS;
}
XrResult WINAPI wine_xrCreateSceneObserverMSFT(XrSession session,
const XrSceneObserverCreateInfoMSFT *createInfo, XrSceneObserverMSFT *observer)
{
@ -1157,6 +1236,54 @@ XrResult WINAPI wine_xrDestroySceneMSFT(XrSceneMSFT scene)
return XR_SUCCESS;
}
XrResult WINAPI wine_xrCreateFoveationProfileFB(XrSession session, const XrFoveationProfileCreateInfoFB *create_info,
XrFoveationProfileFB *profile)
{
wine_XrSession *wine_session = (wine_XrSession *)session;
wine_XrFoveationProfileFB *wine_foveation_profile;
XrResult res;
WINE_TRACE("%p, %p\n", session, profile);
wine_foveation_profile = heap_alloc_zero(sizeof(*wine_foveation_profile));
res = wine_session->wine_instance->funcs.p_xrCreateFoveationProfileFB(wine_session->session, create_info,
&wine_foveation_profile->foveation_profile);
if(res != XR_SUCCESS){
WINE_WARN("xrCreateSpatialAnchorStoreConnectionMSFT failed: %d\n", res);
heap_free(wine_foveation_profile);
return res;
}
wine_foveation_profile->wine_session = wine_session;
*profile = (XrFoveationProfileFB)wine_foveation_profile;
WINE_TRACE("allocated wine_foveation_profile %p for native foveation_profile %p.\n",
wine_foveation_profile, wine_foveation_profile->foveation_profile);
return XR_SUCCESS;
}
XrResult WINAPI wine_xrDestroyFoveationProfileFB(XrFoveationProfileFB profile)
{
wine_XrFoveationProfileFB *wine_profile = (wine_XrFoveationProfileFB *)profile;
XrResult res;
WINE_TRACE("%p\n", profile);
res = wine_profile->wine_session->wine_instance->funcs.p_xrDestroyFoveationProfileFB(wine_profile->foveation_profile);
if(res != XR_SUCCESS){
WINE_WARN("rDestroyFoveationProfileFB failed: %d\n", res);
return res;
}
heap_free(wine_profile);
return XR_SUCCESS;
}
XrResult WINAPI wine_xrNegotiateLoaderRuntimeInterface(
const XrNegotiateLoaderInfo_win *loaderInfo,
XrNegotiateRuntimeRequest_win *runtimeRequest)

View file

@ -50,6 +50,11 @@ typedef struct wine_XrSpatialAnchorMSFT {
struct wine_XrSession *wine_session;
} wine_XrSpatialAnchorMSFT;
typedef struct XrSpatialAnchorStoreConnectionMSFT {
XrSpatialAnchorStoreConnectionMSFT spatial_anchor_store_connection;
struct wine_XrSession *wine_session;
} wine_XrSpatialAnchorStoreConnectionMSFT;
typedef struct wine_XrSceneObserverMSFT {
XrSceneObserverMSFT scene_observer_msft;
struct wine_XrSession *wine_session;
@ -60,6 +65,11 @@ typedef struct wine_XrSceneMSFT {
struct wine_XrSceneObserverMSFT *wine_scene_observer_msft;
} wine_XrSceneMSFT;
typedef struct wine_XrFoveationProfileFB {
XrFoveationProfileFB foveation_profile;
struct wine_XrSession *wine_session;
} wine_XrFoveationProfileFB;
typedef struct wine_XrSwapchain{
XrSwapchain swapchain;
struct wine_XrSession *wine_session;

View file

@ -107,6 +107,12 @@ XrResult WINAPI wine_xrBeginSession(XrSession session, const XrSessionBeginInfo
return xrBeginSession(((wine_XrSession *)session)->session, beginInfo);
}
static XrResult WINAPI wine_xrClearSpatialAnchorStoreMSFT(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore)
{
WINE_TRACE("%p\n", spatialAnchorStore);
return ((wine_XrSpatialAnchorStoreConnectionMSFT *)spatialAnchorStore)->wine_session->wine_instance->funcs.p_xrClearSpatialAnchorStoreMSFT(((wine_XrSpatialAnchorStoreConnectionMSFT *)spatialAnchorStore)->spatial_anchor_store_connection);
}
static XrResult WINAPI wine_xrComputeNewSceneMSFT(XrSceneObserverMSFT sceneObserver, const XrNewSceneComputeInfoMSFT *computeInfo)
{
WINE_TRACE("%p, %p\n", sceneObserver, computeInfo);
@ -215,6 +221,12 @@ XrResult WINAPI wine_xrEnumerateEnvironmentBlendModes(XrInstance instance, XrSys
return xrEnumerateEnvironmentBlendModes(((wine_XrInstance *)instance)->instance, systemId, viewConfigurationType, environmentBlendModeCapacityInput, environmentBlendModeCountOutput, environmentBlendModes);
}
static XrResult WINAPI wine_xrEnumeratePersistedSpatialAnchorNamesMSFT(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, uint32_t spatialAnchorNamesCapacityInput, uint32_t *spatialAnchorNamesCountOutput, XrSpatialAnchorPersistenceNameMSFT *persistedAnchorNames)
{
WINE_TRACE("%p, %u, %p, %p\n", spatialAnchorStore, spatialAnchorNamesCapacityInput, spatialAnchorNamesCountOutput, persistedAnchorNames);
return ((wine_XrSpatialAnchorStoreConnectionMSFT *)spatialAnchorStore)->wine_session->wine_instance->funcs.p_xrEnumeratePersistedSpatialAnchorNamesMSFT(((wine_XrSpatialAnchorStoreConnectionMSFT *)spatialAnchorStore)->spatial_anchor_store_connection, spatialAnchorNamesCapacityInput, spatialAnchorNamesCountOutput, persistedAnchorNames);
}
XrResult WINAPI wine_xrEnumerateReferenceSpaces(XrSession session, uint32_t spaceCapacityInput, uint32_t *spaceCountOutput, XrReferenceSpaceType *spaces)
{
WINE_TRACE("%p, %u, %p, %p\n", session, spaceCapacityInput, spaceCountOutput, spaces);
@ -448,6 +460,12 @@ static XrResult WINAPI wine_xrPerfSettingsSetPerformanceLevelEXT(XrSession sessi
return ((wine_XrSession *)session)->wine_instance->funcs.p_xrPerfSettingsSetPerformanceLevelEXT(((wine_XrSession *)session)->session, domain, level);
}
static XrResult WINAPI wine_xrPersistSpatialAnchorMSFT(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, const XrSpatialAnchorPersistenceInfoMSFT *spatialAnchorPersistenceInfo)
{
WINE_TRACE("%p, %p\n", spatialAnchorStore, spatialAnchorPersistenceInfo);
return ((wine_XrSpatialAnchorStoreConnectionMSFT *)spatialAnchorStore)->wine_session->wine_instance->funcs.p_xrPersistSpatialAnchorMSFT(((wine_XrSpatialAnchorStoreConnectionMSFT *)spatialAnchorStore)->spatial_anchor_store_connection, spatialAnchorPersistenceInfo);
}
XrResult WINAPI wine_xrReleaseSwapchainImage(XrSwapchain swapchain, const XrSwapchainImageReleaseInfo *releaseInfo)
{
WINE_TRACE("%p, %p\n", swapchain, releaseInfo);
@ -550,6 +568,12 @@ static XrResult WINAPI wine_xrThermalGetTemperatureTrendEXT(XrSession session, X
return ((wine_XrSession *)session)->wine_instance->funcs.p_xrThermalGetTemperatureTrendEXT(((wine_XrSession *)session)->session, domain, notificationLevel, tempHeadroom, tempSlope);
}
static XrResult WINAPI wine_xrUnpersistSpatialAnchorMSFT(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore, const XrSpatialAnchorPersistenceNameMSFT *spatialAnchorPersistenceName)
{
WINE_TRACE("%p, %p\n", spatialAnchorStore, spatialAnchorPersistenceName);
return ((wine_XrSpatialAnchorStoreConnectionMSFT *)spatialAnchorStore)->wine_session->wine_instance->funcs.p_xrUnpersistSpatialAnchorMSFT(((wine_XrSpatialAnchorStoreConnectionMSFT *)spatialAnchorStore)->spatial_anchor_store_connection, spatialAnchorPersistenceName);
}
static XrResult WINAPI wine_xrUpdateHandMeshMSFT(XrHandTrackerEXT handTracker, const XrHandMeshUpdateInfoMSFT *updateInfo, XrHandMeshMSFT *handMesh)
{
WINE_TRACE("%p, %p, %p\n", handTracker, updateInfo, handMesh);
@ -581,12 +605,14 @@ static const struct openxr_func xr_dispatch_table[] =
{"xrAttachSessionActionSets", &wine_xrAttachSessionActionSets},
{"xrBeginFrame", &wine_xrBeginFrame},
{"xrBeginSession", &wine_xrBeginSession},
{"xrClearSpatialAnchorStoreMSFT", &wine_xrClearSpatialAnchorStoreMSFT},
{"xrComputeNewSceneMSFT", &wine_xrComputeNewSceneMSFT},
{"xrConvertTimeToWin32PerformanceCounterKHR", &wine_xrConvertTimeToWin32PerformanceCounterKHR},
{"xrConvertWin32PerformanceCounterToTimeKHR", &wine_xrConvertWin32PerformanceCounterToTimeKHR},
{"xrCreateAction", &wine_xrCreateAction},
{"xrCreateActionSet", &wine_xrCreateActionSet},
{"xrCreateActionSpace", &wine_xrCreateActionSpace},
{"xrCreateFoveationProfileFB", &wine_xrCreateFoveationProfileFB},
{"xrCreateHandMeshSpaceMSFT", &wine_xrCreateHandMeshSpaceMSFT},
{"xrCreateHandTrackerEXT", &wine_xrCreateHandTrackerEXT},
{"xrCreateInstance", &wine_xrCreateInstance},
@ -594,8 +620,10 @@ static const struct openxr_func xr_dispatch_table[] =
{"xrCreateSceneMSFT", &wine_xrCreateSceneMSFT},
{"xrCreateSceneObserverMSFT", &wine_xrCreateSceneObserverMSFT},
{"xrCreateSession", &wine_xrCreateSession},
{"xrCreateSpatialAnchorFromPersistedNameMSFT", &wine_xrCreateSpatialAnchorFromPersistedNameMSFT},
{"xrCreateSpatialAnchorMSFT", &wine_xrCreateSpatialAnchorMSFT},
{"xrCreateSpatialAnchorSpaceMSFT", &wine_xrCreateSpatialAnchorSpaceMSFT},
{"xrCreateSpatialAnchorStoreConnectionMSFT", &wine_xrCreateSpatialAnchorStoreConnectionMSFT},
{"xrCreateSpatialGraphNodeSpaceMSFT", &wine_xrCreateSpatialGraphNodeSpaceMSFT},
{"xrCreateSwapchain", &wine_xrCreateSwapchain},
{"xrCreateVulkanDeviceKHR", &wine_xrCreateVulkanDeviceKHR},
@ -603,6 +631,7 @@ static const struct openxr_func xr_dispatch_table[] =
{"xrDeserializeSceneMSFT", &wine_xrDeserializeSceneMSFT},
{"xrDestroyAction", &wine_xrDestroyAction},
{"xrDestroyActionSet", &wine_xrDestroyActionSet},
{"xrDestroyFoveationProfileFB", &wine_xrDestroyFoveationProfileFB},
{"xrDestroyHandTrackerEXT", &wine_xrDestroyHandTrackerEXT},
{"xrDestroyInstance", &wine_xrDestroyInstance},
{"xrDestroySceneMSFT", &wine_xrDestroySceneMSFT},
@ -610,6 +639,7 @@ static const struct openxr_func xr_dispatch_table[] =
{"xrDestroySession", &wine_xrDestroySession},
{"xrDestroySpace", &wine_xrDestroySpace},
{"xrDestroySpatialAnchorMSFT", &wine_xrDestroySpatialAnchorMSFT},
{"xrDestroySpatialAnchorStoreConnectionMSFT", &wine_xrDestroySpatialAnchorStoreConnectionMSFT},
{"xrDestroySwapchain", &wine_xrDestroySwapchain},
{"xrEndFrame", &wine_xrEndFrame},
{"xrEndSession", &wine_xrEndSession},
@ -619,6 +649,7 @@ static const struct openxr_func xr_dispatch_table[] =
{"xrEnumerateDisplayRefreshRatesFB", &wine_xrEnumerateDisplayRefreshRatesFB},
{"xrEnumerateEnvironmentBlendModes", &wine_xrEnumerateEnvironmentBlendModes},
{"xrEnumerateInstanceExtensionProperties", &wine_xrEnumerateInstanceExtensionProperties},
{"xrEnumeratePersistedSpatialAnchorNamesMSFT", &wine_xrEnumeratePersistedSpatialAnchorNamesMSFT},
{"xrEnumerateReferenceSpaces", &wine_xrEnumerateReferenceSpaces},
{"xrEnumerateReprojectionModesMSFT", &wine_xrEnumerateReprojectionModesMSFT},
{"xrEnumerateSceneComputeFeaturesMSFT", &wine_xrEnumerateSceneComputeFeaturesMSFT},
@ -666,6 +697,7 @@ static const struct openxr_func xr_dispatch_table[] =
{"xrLocateViews", &wine_xrLocateViews},
{"xrPathToString", &wine_xrPathToString},
{"xrPerfSettingsSetPerformanceLevelEXT", &wine_xrPerfSettingsSetPerformanceLevelEXT},
{"xrPersistSpatialAnchorMSFT", &wine_xrPersistSpatialAnchorMSFT},
{"xrPollEvent", &wine_xrPollEvent},
{"xrReleaseSwapchainImage", &wine_xrReleaseSwapchainImage},
{"xrRequestDisplayRefreshRateFB", &wine_xrRequestDisplayRefreshRateFB},
@ -684,6 +716,7 @@ static const struct openxr_func xr_dispatch_table[] =
{"xrSuggestInteractionProfileBindings", &wine_xrSuggestInteractionProfileBindings},
{"xrSyncActions", &wine_xrSyncActions},
{"xrThermalGetTemperatureTrendEXT", &wine_xrThermalGetTemperatureTrendEXT},
{"xrUnpersistSpatialAnchorMSFT", &wine_xrUnpersistSpatialAnchorMSFT},
{"xrUpdateHandMeshMSFT", &wine_xrUpdateHandMeshMSFT},
{"xrUpdateSwapchainFB", &wine_xrUpdateSwapchainFB},
{"xrWaitFrame", &wine_xrWaitFrame},
@ -719,7 +752,13 @@ static const char * const xr_extensions[] =
"XR_EXT_view_configuration_depth_range",
"XR_EXT_win32_appcontainer_compatible",
"XR_FB_color_space",
"XR_FB_composition_layer_alpha_blend",
"XR_FB_composition_layer_image_layout",
"XR_FB_composition_layer_secure_content",
"XR_FB_display_refresh_rate",
"XR_FB_foveation",
"XR_FB_foveation_configuration",
"XR_FB_foveation_vulkan",
"XR_FB_swapchain_update_state",
"XR_FB_swapchain_update_state_vulkan",
"XR_HTC_vive_cosmos_controller_interaction",
@ -734,6 +773,7 @@ static const char * const xr_extensions[] =
"XR_KHR_composition_layer_equirect",
"XR_KHR_composition_layer_equirect2",
"XR_KHR_opengl_enable",
"XR_KHR_swapchain_usage_input_attachment_bit",
"XR_KHR_visibility_mask",
"XR_KHR_vulkan_enable",
"XR_KHR_vulkan_enable2",
@ -751,6 +791,7 @@ static const char * const xr_extensions[] =
"XR_MSFT_scene_understanding_serialization",
"XR_MSFT_secondary_view_configuration",
"XR_MSFT_spatial_anchor",
"XR_MSFT_spatial_anchor_persistence",
"XR_MSFT_spatial_graph_bridge",
"XR_MSFT_unbounded_reference_space",
"XR_OCULUS_android_session_state_enable",

View file

@ -27,21 +27,26 @@
/* Functions for which we have custom implementations outside of the thunks. */
XrResult WINAPI wine_xrConvertTimeToWin32PerformanceCounterKHR(XrInstance instance, XrTime time, LARGE_INTEGER *performanceCounter) DECLSPEC_HIDDEN;
XrResult WINAPI wine_xrConvertWin32PerformanceCounterToTimeKHR(XrInstance instance, const LARGE_INTEGER *performanceCounter, XrTime *time) DECLSPEC_HIDDEN;
XrResult WINAPI wine_xrCreateFoveationProfileFB(XrSession session, const XrFoveationProfileCreateInfoFB *createInfo, XrFoveationProfileFB *profile) DECLSPEC_HIDDEN;
XrResult WINAPI wine_xrCreateHandTrackerEXT(XrSession session, const XrHandTrackerCreateInfoEXT *createInfo, XrHandTrackerEXT *handTracker) DECLSPEC_HIDDEN;
XrResult WINAPI wine_xrCreateInstance(const XrInstanceCreateInfo *createInfo, XrInstance *instance);
XrResult WINAPI wine_xrCreateSceneMSFT(XrSceneObserverMSFT sceneObserver, const XrSceneCreateInfoMSFT *createInfo, XrSceneMSFT *scene) DECLSPEC_HIDDEN;
XrResult WINAPI wine_xrCreateSceneObserverMSFT(XrSession session, const XrSceneObserverCreateInfoMSFT *createInfo, XrSceneObserverMSFT *sceneObserver) DECLSPEC_HIDDEN;
XrResult WINAPI wine_xrCreateSession(XrInstance instance, const XrSessionCreateInfo *createInfo, XrSession *session);
XrResult WINAPI wine_xrCreateSpatialAnchorFromPersistedNameMSFT(XrSession session, const XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT *spatialAnchorCreateInfo, XrSpatialAnchorMSFT *spatialAnchor) DECLSPEC_HIDDEN;
XrResult WINAPI wine_xrCreateSpatialAnchorMSFT(XrSession session, const XrSpatialAnchorCreateInfoMSFT *createInfo, XrSpatialAnchorMSFT *anchor) DECLSPEC_HIDDEN;
XrResult WINAPI wine_xrCreateSpatialAnchorStoreConnectionMSFT(XrSession session, XrSpatialAnchorStoreConnectionMSFT *spatialAnchorStore) DECLSPEC_HIDDEN;
XrResult WINAPI wine_xrCreateSwapchain(XrSession session, const XrSwapchainCreateInfo *createInfo, XrSwapchain *swapchain);
XrResult WINAPI wine_xrCreateVulkanDeviceKHR(XrInstance instance, const XrVulkanDeviceCreateInfoKHR *createInfo, VkDevice *vulkanDevice, VkResult *vulkanResult) DECLSPEC_HIDDEN;
XrResult WINAPI wine_xrCreateVulkanInstanceKHR(XrInstance instance, const XrVulkanInstanceCreateInfoKHR *createInfo, VkInstance *vulkanInstance, VkResult *vulkanResult) DECLSPEC_HIDDEN;
XrResult WINAPI wine_xrDestroyFoveationProfileFB(XrFoveationProfileFB profile) DECLSPEC_HIDDEN;
XrResult WINAPI wine_xrDestroyHandTrackerEXT(XrHandTrackerEXT handTracker) DECLSPEC_HIDDEN;
XrResult WINAPI wine_xrDestroyInstance(XrInstance instance);
XrResult WINAPI wine_xrDestroySceneMSFT(XrSceneMSFT scene) DECLSPEC_HIDDEN;
XrResult WINAPI wine_xrDestroySceneObserverMSFT(XrSceneObserverMSFT sceneObserver) DECLSPEC_HIDDEN;
XrResult WINAPI wine_xrDestroySession(XrSession session);
XrResult WINAPI wine_xrDestroySpatialAnchorMSFT(XrSpatialAnchorMSFT anchor) DECLSPEC_HIDDEN;
XrResult WINAPI wine_xrDestroySpatialAnchorStoreConnectionMSFT(XrSpatialAnchorStoreConnectionMSFT spatialAnchorStore) DECLSPEC_HIDDEN;
XrResult WINAPI wine_xrDestroySwapchain(XrSwapchain swapchain);
XrResult WINAPI wine_xrEndFrame(XrSession session, const XrFrameEndInfo *frameEndInfo);
XrResult WINAPI wine_xrEnumerateInstanceExtensionProperties(const char *layerName, uint32_t propertyCapacityInput, uint32_t *propertyCountOutput, XrExtensionProperties *properties);
@ -79,18 +84,22 @@ struct openxr_instance_funcs
XrResult (*p_xrAttachSessionActionSets)(XrSession, const XrSessionActionSetsAttachInfo *);
XrResult (*p_xrBeginFrame)(XrSession, const XrFrameBeginInfo *);
XrResult (*p_xrBeginSession)(XrSession, const XrSessionBeginInfo *);
XrResult (*p_xrClearSpatialAnchorStoreMSFT)(XrSpatialAnchorStoreConnectionMSFT);
XrResult (*p_xrComputeNewSceneMSFT)(XrSceneObserverMSFT, const XrNewSceneComputeInfoMSFT *);
XrResult (*p_xrCreateAction)(XrActionSet, const XrActionCreateInfo *, XrAction *);
XrResult (*p_xrCreateActionSet)(XrInstance, const XrActionSetCreateInfo *, XrActionSet *);
XrResult (*p_xrCreateActionSpace)(XrSession, const XrActionSpaceCreateInfo *, XrSpace *);
XrResult (*p_xrCreateFoveationProfileFB)(XrSession, const XrFoveationProfileCreateInfoFB *, XrFoveationProfileFB *);
XrResult (*p_xrCreateHandMeshSpaceMSFT)(XrHandTrackerEXT, const XrHandMeshSpaceCreateInfoMSFT *, XrSpace *);
XrResult (*p_xrCreateHandTrackerEXT)(XrSession, const XrHandTrackerCreateInfoEXT *, XrHandTrackerEXT *);
XrResult (*p_xrCreateReferenceSpace)(XrSession, const XrReferenceSpaceCreateInfo *, XrSpace *);
XrResult (*p_xrCreateSceneMSFT)(XrSceneObserverMSFT, const XrSceneCreateInfoMSFT *, XrSceneMSFT *);
XrResult (*p_xrCreateSceneObserverMSFT)(XrSession, const XrSceneObserverCreateInfoMSFT *, XrSceneObserverMSFT *);
XrResult (*p_xrCreateSession)(XrInstance, const XrSessionCreateInfo *, XrSession *);
XrResult (*p_xrCreateSpatialAnchorFromPersistedNameMSFT)(XrSession, const XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT *, XrSpatialAnchorMSFT *);
XrResult (*p_xrCreateSpatialAnchorMSFT)(XrSession, const XrSpatialAnchorCreateInfoMSFT *, XrSpatialAnchorMSFT *);
XrResult (*p_xrCreateSpatialAnchorSpaceMSFT)(XrSession, const XrSpatialAnchorSpaceCreateInfoMSFT *, XrSpace *);
XrResult (*p_xrCreateSpatialAnchorStoreConnectionMSFT)(XrSession, XrSpatialAnchorStoreConnectionMSFT *);
XrResult (*p_xrCreateSpatialGraphNodeSpaceMSFT)(XrSession, const XrSpatialGraphNodeSpaceCreateInfoMSFT *, XrSpace *);
XrResult (*p_xrCreateSwapchain)(XrSession, const XrSwapchainCreateInfo *, XrSwapchain *);
XrResult (*p_xrCreateVulkanDeviceKHR)(XrInstance, const XrVulkanDeviceCreateInfoKHR *, VkDevice *, VkResult *);
@ -98,12 +107,14 @@ struct openxr_instance_funcs
XrResult (*p_xrDeserializeSceneMSFT)(XrSceneObserverMSFT, const XrSceneDeserializeInfoMSFT *);
XrResult (*p_xrDestroyAction)(XrAction);
XrResult (*p_xrDestroyActionSet)(XrActionSet);
XrResult (*p_xrDestroyFoveationProfileFB)(XrFoveationProfileFB);
XrResult (*p_xrDestroyHandTrackerEXT)(XrHandTrackerEXT);
XrResult (*p_xrDestroySceneMSFT)(XrSceneMSFT);
XrResult (*p_xrDestroySceneObserverMSFT)(XrSceneObserverMSFT);
XrResult (*p_xrDestroySession)(XrSession);
XrResult (*p_xrDestroySpace)(XrSpace);
XrResult (*p_xrDestroySpatialAnchorMSFT)(XrSpatialAnchorMSFT);
XrResult (*p_xrDestroySpatialAnchorStoreConnectionMSFT)(XrSpatialAnchorStoreConnectionMSFT);
XrResult (*p_xrDestroySwapchain)(XrSwapchain);
XrResult (*p_xrEndFrame)(XrSession, const XrFrameEndInfo *);
XrResult (*p_xrEndSession)(XrSession);
@ -112,6 +123,7 @@ struct openxr_instance_funcs
XrResult (*p_xrEnumerateColorSpacesFB)(XrSession, uint32_t, uint32_t *, XrColorSpaceFB *);
XrResult (*p_xrEnumerateDisplayRefreshRatesFB)(XrSession, uint32_t, uint32_t *, float *);
XrResult (*p_xrEnumerateEnvironmentBlendModes)(XrInstance, XrSystemId, XrViewConfigurationType, uint32_t, uint32_t *, XrEnvironmentBlendMode *);
XrResult (*p_xrEnumeratePersistedSpatialAnchorNamesMSFT)(XrSpatialAnchorStoreConnectionMSFT, uint32_t, uint32_t *, XrSpatialAnchorPersistenceNameMSFT *);
XrResult (*p_xrEnumerateReferenceSpaces)(XrSession, uint32_t, uint32_t *, XrReferenceSpaceType *);
XrResult (*p_xrEnumerateReprojectionModesMSFT)(XrInstance, XrSystemId, XrViewConfigurationType, uint32_t, uint32_t *, XrReprojectionModeMSFT *);
XrResult (*p_xrEnumerateSceneComputeFeaturesMSFT)(XrInstance, XrSystemId, uint32_t, uint32_t *, XrSceneComputeFeatureMSFT *);
@ -160,6 +172,7 @@ struct openxr_instance_funcs
XrResult (*p_xrLocateViews)(XrSession, const XrViewLocateInfo *, XrViewState *, uint32_t, uint32_t *, XrView *);
XrResult (*p_xrPathToString)(XrInstance, XrPath, uint32_t, uint32_t *, char *);
XrResult (*p_xrPerfSettingsSetPerformanceLevelEXT)(XrSession, XrPerfSettingsDomainEXT, XrPerfSettingsLevelEXT);
XrResult (*p_xrPersistSpatialAnchorMSFT)(XrSpatialAnchorStoreConnectionMSFT, const XrSpatialAnchorPersistenceInfoMSFT *);
XrResult (*p_xrPollEvent)(XrInstance, XrEventDataBuffer *);
XrResult (*p_xrReleaseSwapchainImage)(XrSwapchain, const XrSwapchainImageReleaseInfo *);
XrResult (*p_xrRequestDisplayRefreshRateFB)(XrSession, float);
@ -178,6 +191,7 @@ struct openxr_instance_funcs
XrResult (*p_xrSuggestInteractionProfileBindings)(XrInstance, const XrInteractionProfileSuggestedBinding *);
XrResult (*p_xrSyncActions)(XrSession, const XrActionsSyncInfo *);
XrResult (*p_xrThermalGetTemperatureTrendEXT)(XrSession, XrPerfSettingsDomainEXT, XrPerfSettingsNotificationLevelEXT *, float *, float *);
XrResult (*p_xrUnpersistSpatialAnchorMSFT)(XrSpatialAnchorStoreConnectionMSFT, const XrSpatialAnchorPersistenceNameMSFT *);
XrResult (*p_xrUpdateHandMeshMSFT)(XrHandTrackerEXT, const XrHandMeshUpdateInfoMSFT *, XrHandMeshMSFT *);
XrResult (*p_xrUpdateSwapchainFB)(XrSwapchain, const XrSwapchainStateBaseHeaderFB *);
XrResult (*p_xrWaitFrame)(XrSession, const XrFrameWaitInfo *, XrFrameState *);
@ -190,18 +204,22 @@ struct openxr_instance_funcs
USE_XR_FUNC(xrAttachSessionActionSets) \
USE_XR_FUNC(xrBeginFrame) \
USE_XR_FUNC(xrBeginSession) \
USE_XR_FUNC(xrClearSpatialAnchorStoreMSFT) \
USE_XR_FUNC(xrComputeNewSceneMSFT) \
USE_XR_FUNC(xrCreateAction) \
USE_XR_FUNC(xrCreateActionSet) \
USE_XR_FUNC(xrCreateActionSpace) \
USE_XR_FUNC(xrCreateFoveationProfileFB) \
USE_XR_FUNC(xrCreateHandMeshSpaceMSFT) \
USE_XR_FUNC(xrCreateHandTrackerEXT) \
USE_XR_FUNC(xrCreateReferenceSpace) \
USE_XR_FUNC(xrCreateSceneMSFT) \
USE_XR_FUNC(xrCreateSceneObserverMSFT) \
USE_XR_FUNC(xrCreateSession) \
USE_XR_FUNC(xrCreateSpatialAnchorFromPersistedNameMSFT) \
USE_XR_FUNC(xrCreateSpatialAnchorMSFT) \
USE_XR_FUNC(xrCreateSpatialAnchorSpaceMSFT) \
USE_XR_FUNC(xrCreateSpatialAnchorStoreConnectionMSFT) \
USE_XR_FUNC(xrCreateSpatialGraphNodeSpaceMSFT) \
USE_XR_FUNC(xrCreateSwapchain) \
USE_XR_FUNC(xrCreateVulkanDeviceKHR) \
@ -209,12 +227,14 @@ struct openxr_instance_funcs
USE_XR_FUNC(xrDeserializeSceneMSFT) \
USE_XR_FUNC(xrDestroyAction) \
USE_XR_FUNC(xrDestroyActionSet) \
USE_XR_FUNC(xrDestroyFoveationProfileFB) \
USE_XR_FUNC(xrDestroyHandTrackerEXT) \
USE_XR_FUNC(xrDestroySceneMSFT) \
USE_XR_FUNC(xrDestroySceneObserverMSFT) \
USE_XR_FUNC(xrDestroySession) \
USE_XR_FUNC(xrDestroySpace) \
USE_XR_FUNC(xrDestroySpatialAnchorMSFT) \
USE_XR_FUNC(xrDestroySpatialAnchorStoreConnectionMSFT) \
USE_XR_FUNC(xrDestroySwapchain) \
USE_XR_FUNC(xrEndFrame) \
USE_XR_FUNC(xrEndSession) \
@ -223,6 +243,7 @@ struct openxr_instance_funcs
USE_XR_FUNC(xrEnumerateColorSpacesFB) \
USE_XR_FUNC(xrEnumerateDisplayRefreshRatesFB) \
USE_XR_FUNC(xrEnumerateEnvironmentBlendModes) \
USE_XR_FUNC(xrEnumeratePersistedSpatialAnchorNamesMSFT) \
USE_XR_FUNC(xrEnumerateReferenceSpaces) \
USE_XR_FUNC(xrEnumerateReprojectionModesMSFT) \
USE_XR_FUNC(xrEnumerateSceneComputeFeaturesMSFT) \
@ -267,6 +288,7 @@ struct openxr_instance_funcs
USE_XR_FUNC(xrLocateViews) \
USE_XR_FUNC(xrPathToString) \
USE_XR_FUNC(xrPerfSettingsSetPerformanceLevelEXT) \
USE_XR_FUNC(xrPersistSpatialAnchorMSFT) \
USE_XR_FUNC(xrPollEvent) \
USE_XR_FUNC(xrReleaseSwapchainImage) \
USE_XR_FUNC(xrRequestDisplayRefreshRateFB) \
@ -285,6 +307,7 @@ struct openxr_instance_funcs
USE_XR_FUNC(xrSuggestInteractionProfileBindings) \
USE_XR_FUNC(xrSyncActions) \
USE_XR_FUNC(xrThermalGetTemperatureTrendEXT) \
USE_XR_FUNC(xrUnpersistSpatialAnchorMSFT) \
USE_XR_FUNC(xrUpdateHandMeshMSFT) \
USE_XR_FUNC(xrUpdateSwapchainFB) \
USE_XR_FUNC(xrWaitFrame) \

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<?xml-model href="registry.rnc" type="application/relax-ng-compact-syntax"?>
<?xml-model href="registry.sch" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<registry>
<comment>
Copyright (c) 2017-2021, The Khronos Group Inc.
@ -48,6 +51,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
<tag name="STARBREEZE" author="Starbreeze" contact="David Srour @dsrour"/>
<tag name="TOBII" author="Tobii" contact="Denny Rönngren @denron"/>
<tag name="ULTRALEAP" author="Ultraleap" contact="Robert Blenkinsopp @rblenkinsopp"/>
<tag name="UNITY" author="Unity Technologies" contact="Jack Pritz @jackpritz, Peter Kuhn @peterunity"/>
<tag name="VALVE" author="Valve" contact="Joe Ludwig @JoeLudwig"/>
<tag name="VARJO" author="Varjo" contact="Sergiy Dubovik @dubik, Rémi Arnaud @VarjoRemi"/>
</tags>
@ -116,7 +120,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
updates them automatically by processing a line at a time.
-->
<type category="define">// OpenXR current version number.
#define <name>XR_CURRENT_API_VERSION</name> <type>XR_MAKE_VERSION</type>(1, 0, 17)</type>
#define <name>XR_CURRENT_API_VERSION</name> <type>XR_MAKE_VERSION</type>(1, 0, 18)</type>
<!--
NOTE: For avoidance of ambiguity, there should only be 1 <name> tag immediately in
@ -251,6 +255,16 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
<!-- Bitmask types for XR_FB_android_surface_swapchain_create -->
<type bitvalues="XrAndroidSurfaceSwapchainFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrAndroidSurfaceSwapchainFlagsFB</name>;</type>
<!-- Bitmask types for XR_FB_composition_layer_image_layout -->
<type bitvalues="XrCompositionLayerImageLayoutFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrCompositionLayerImageLayoutFlagsFB</name>;</type>
<!-- Bitmask types for XR_FB_composition_layer_secure_content -->
<type bitvalues="XrCompositionLayerSecureContentFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrCompositionLayerSecureContentFlagsFB</name>;</type>
<!-- Bitmask types for XR_FB_foveation -->
<type bitvalues="XrSwapchainCreateFoveationFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrSwapchainCreateFoveationFlagsFB</name>;</type>
<type bitvalues="XrSwapchainStateFoveationFlagBitsFB" category="bitmask">typedef <type>XrFlags64</type> <name>XrSwapchainStateFoveationFlagsFB</name>;</type>
<!-- Handles referring to internally-maintained objects. -->
<!-- These types which can be 64-bit integers or opaque pointers, selected at compile time based on pointer size -->
<type category="handle"><type>XR_DEFINE_HANDLE</type>(<name>XrInstance</name>)</type>
@ -261,9 +275,13 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrSpace</name>)</type>
<type category="handle" parent="XrInstance"><type>XR_DEFINE_HANDLE</type>(<name>XrDebugUtilsMessengerEXT</name>)</type>
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrSpatialAnchorMSFT</name>)</type>
<!-- XR_EXT_hand_tracking -->
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrHandTrackerEXT</name>)</type>
<!-- XR_FB_foveation -->
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrFoveationProfileFB</name>)</type>
<!-- enums and flag bits generated from corresponding <enums> tags below -->
<type name="XrStructureType" category="enum"/>
<type name="XrResult" category="enum"/>
@ -308,9 +326,22 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
<!-- enums for XR_MSFT_spatial_graph_bridge -->
<type name="XrSpatialGraphNodeTypeMSFT" category="enum"/>
<!-- enums and flag bits for XR_FB_android_surface_swapchain_create -->
<!-- enums for XR_FB_android_surface_swapchain_create -->
<type name="XrAndroidSurfaceSwapchainFlagBitsFB" category="enum"/>
<!-- enums for XR_FB_composition_layer_image_layout -->
<type name="XrCompositionLayerImageLayoutFlagBitsFB" category="enum"/>
<!-- enums for XR_FB_composition_layer_alpha_blend -->
<type name="XrBlendFactorFB" category="enum"/>
<!-- enums for XR_FB_composition_layer_secure_content -->
<type name="XrCompositionLayerSecureContentFlagBitsFB" category="enum"/>
<!-- enums and flag bits for XR_FB_foveation -->
<type name="XrSwapchainCreateFoveationFlagBitsFB" category="enum"/>
<type name="XrSwapchainStateFoveationFlagBitsFB" category="enum"/>
<!-- Struct types -->
<type category="struct" name="XrVector2f">
<member><type>float</type> <name>x</name></member>
@ -1135,6 +1166,23 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
<member><type>XrPosef</type> <name>poseInAnchorSpace</name></member>
</type>
<!-- types for XR_FB_composition_layer_image_layout -->
<type category="struct" name="XrCompositionLayerImageLayoutFB" structextends="XrCompositionLayerBaseHeader">
<member values="XR_TYPE_COMPOSITION_LAYER_IMAGE_LAYOUT_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>XrCompositionLayerImageLayoutFlagsFB</type> <name>flags</name></member>
</type>
<!-- types for XR_FB_composition_layer_alpha_blend -->
<type category="struct" name="XrCompositionLayerAlphaBlendFB" structextends="XrCompositionLayerBaseHeader">
<member values="XR_TYPE_COMPOSITION_LAYER_ALPHA_BLEND_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBlendFactorFB</type> <name>srcFactorColor</name></member>
<member><type>XrBlendFactorFB</type> <name>dstFactorColor</name></member>
<member><type>XrBlendFactorFB</type> <name>srcFactorAlpha</name></member>
<member><type>XrBlendFactorFB</type> <name>dstFactorAlpha</name></member>
</type>
<!-- types for XR_MNDX_egl_enable -->
<type category="struct" name="XrGraphicsBindingEGLMNDX" structextends="XrSessionCreateInfo">
<member values="XR_TYPE_GRAPHICS_BINDING_EGL_MNDX"><type>XrStructureType</type> <name>type</name></member>
@ -1361,6 +1409,13 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
<member><type>XrColor4f</type> <name>borderColor</name></member>
</type>
<!-- XR_FB_composition_layer_secure_content structs -->
<type category="struct" name="XrCompositionLayerSecureContentFB" structextends="XrCompositionLayerBaseHeader">
<member values="XR_TYPE_COMPOSITION_LAYER_SECURE_CONTENT_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrCompositionLayerSecureContentFlagsFB</type> <name>flags</name></member>
</type>
<!-- XR_KHR_loader_init -->
<type category="struct" name="XrLoaderInitInfoBaseHeaderKHR">
<member><type>XrStructureType</type> <name>type</name></member>
@ -1629,6 +1684,43 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
<member><type>XrColorSpaceFB</type> <name>colorSpace</name></member>
</type>
<!-- XR_FB_foveation structs -->
<type category="struct" name="XrFoveationProfileCreateInfoFB">
<member values="XR_TYPE_FOVEATION_PROFILE_CREATE_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrSwapchainCreateInfoFoveationFB" structextends="XrSwapchainCreateInfo">
<member values="XR_TYPE_SWAPCHAIN_CREATE_INFO_FOVEATION_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>XrSwapchainCreateFoveationFlagsFB</type> <name>flags</name></member>
</type>
<type category="struct" name="XrSwapchainStateFoveationFB" parentstruct="XrSwapchainStateBaseHeaderFB">
<member values="XR_TYPE_SWAPCHAIN_STATE_FOVEATION_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>XrSwapchainStateFoveationFlagsFB</type> <name>flags</name></member>
<member><type>XrFoveationProfileFB</type> <name>profile</name></member>
</type>
<!-- XR_FB_foveation_vulkan structs -->
<type category="struct" name="XrSwapchainImageFoveationVulkanFB" structextends="XrSwapchainImageVulkanKHR" returnedonly="true">
<member values="XR_TYPE_SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>VkImage</type> <name>image</name></member>
<member><type>uint32_t</type> <name>width</name></member>
<member><type>uint32_t</type> <name>height</name></member>
</type>
<!-- XR_FB_foveation_configuration structs -->
<type name="XrFoveationLevelFB" category="enum"/>
<type name="XrFoveationDynamicFB" category="enum"/>
<type category="struct" name="XrFoveationLevelProfileCreateInfoFB" structextends="XrFoveationProfileCreateInfoFB">
<member values="XR_TYPE_FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrFoveationLevelFB</type> <name>level</name></member>
<member><type>float</type> <name>verticalOffset</name></member>
<member><type>XrFoveationDynamicFB</type> <name>dynamic</name></member>
</type>
<!-- XR_VARJO_composition_layer_depth_test -->
<type category="struct" name="XrCompositionLayerDepthTestVARJO" structextends="XrCompositionLayerProjection">
<member values="XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_VARJO"><type>XrStructureType</type> <name>type</name></member>
@ -1671,6 +1763,25 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
<member><type>XrVector3f</type> <name>velocity</name></member>
</type>
<!-- XR_MSFT_spatial_anchor_persistence -->
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrSpatialAnchorStoreConnectionMSFT</name>)</type>
<type category="struct" name="XrSpatialAnchorPersistenceNameMSFT">
<member><type>char</type> <name>name</name>[<enum>XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT</enum>]</member>
</type>
<type category="struct" name="XrSpatialAnchorPersistenceInfoMSFT">
<member values="XR_TYPE_SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSpatialAnchorPersistenceNameMSFT</type> <name>spatialAnchorPersistenceName</name></member>
<member><type>XrSpatialAnchorMSFT</type> <name>spatialAnchor</name></member>
</type>
<type category="struct" name="XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT">
<member values="XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSpatialAnchorStoreConnectionMSFT</type> <name>spatialAnchorStore</name></member>
<member><type>XrSpatialAnchorPersistenceNameMSFT</type> <name>spatialAnchorPersistenceName</name></member>
</type>
</types>
<!-- SECTION: OpenXR enumerant (token) definitions. -->
@ -1982,6 +2093,16 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
<enum value="7" name="XR_COLOR_SPACE_ADOBE_RGB_FB"/>
</enums>
<!-- XR_FB_composition_layer_alpha_blend -->
<enums name="XrBlendFactorFB" type="enum">
<enum value="0" name="XR_BLEND_FACTOR_ZERO_FB"/>
<enum value="1" name="XR_BLEND_FACTOR_ONE_FB"/>
<enum value="2" name="XR_BLEND_FACTOR_SRC_ALPHA_FB"/>
<enum value="3" name="XR_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA_FB"/>
<enum value="4" name="XR_BLEND_FACTOR_DST_ALPHA_FB"/>
<enum value="5" name="XR_BLEND_FACTOR_ONE_MINUS_DST_ALPHA_FB"/>
</enums>
<!-- XR_MSFT_composition_layer_reprojection -->
<enums name="XrReprojectionModeMSFT" type="enum">
<enum value="1" name="XR_REPROJECTION_MODE_DEPTH_MSFT"/>
@ -2126,6 +2247,38 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
<enum bitpos="1" name="XR_ANDROID_SURFACE_SWAPCHAIN_USE_TIMESTAMPS_BIT_FB" comment="Acquire most recent buffer whose presentation timestamp is not greater than display time of final composited frame"/>
</enums>
<!-- flags for XR_FB_composition_layer_image_layout -->
<enums name="XrCompositionLayerImageLayoutFlagBitsFB" type="bitmask">
<enum bitpos="0" name="XR_COMPOSITION_LAYER_IMAGE_LAYOUT_VERTICAL_FLIP_BIT_FB" comment="The coordinate origin of the swapchain image must be considered to be flipped vertically."/>
</enums>
<!-- flags for XR_FB_foveation -->
<enums name="XrSwapchainCreateFoveationFlagBitsFB" type="bitmask">
<enum bitpos="0" name="XR_SWAPCHAIN_CREATE_FOVEATION_SCALED_BIN_BIT_FB" comment="Explicitly create the swapchain with scaled bin foveation support. The application must ensure that the swapchain is using the OpenGL graphics API and that the QCOM_texture_foveated extension is supported and enabled."/>
<enum bitpos="1" name="XR_SWAPCHAIN_CREATE_FOVEATION_FRAGMENT_DENSITY_MAP_BIT_FB" comment="Explicitly create the swapchain with fragment density map foveation support. The application must ensure that the swapchain is using the Vulkan graphics API and that the VK_EXT_fragment_density_map extension is supported and enabled."/>
</enums>
<enums name="XrSwapchainStateFoveationFlagBitsFB" type="bitmask">
<!-- This is currently empty, awaiting future flags. -->
</enums>
<!-- flags for XR_FB_composition_layer_secure_content -->
<enums name="XrCompositionLayerSecureContentFlagBitsFB" type="bitmask">
<enum bitpos="0" name="XR_COMPOSITION_LAYER_SECURE_CONTENT_EXCLUDE_LAYER_BIT_FB" comment="Indicates the layer will only be visible inside the HMD, and not visible to external sources"/>
<enum bitpos="1" name="XR_COMPOSITION_LAYER_SECURE_CONTENT_REPLACE_LAYER_BIT_FB" comment="Indicates the layer will be displayed inside the HMD, but replaced by proxy content when written to external sources"/>
</enums>
<!-- enums for XR_FB_foveation_configuration -->
<enums name="XrFoveationLevelFB" type="enum">
<enum value="0" name="XR_FOVEATION_LEVEL_NONE_FB" comment="No foveation"/>
<enum value="1" name="XR_FOVEATION_LEVEL_LOW_FB" comment="Less foveation (higher periphery visual fidelity, lower performance)"/>
<enum value="2" name="XR_FOVEATION_LEVEL_MEDIUM_FB" comment="Medium foveation (medium periphery visual fidelity, medium performance)"/>
<enum value="3" name="XR_FOVEATION_LEVEL_HIGH_FB" comment="High foveation (lower periphery visual fidelity, higher performance)"/>
</enums>
<enums name="XrFoveationDynamicFB" type="enum">
<enum value="0" name="XR_FOVEATION_DYNAMIC_DISABLED_FB" comment="Static foveation at the maximum desired level"/>
<enum value="1" name="XR_FOVEATION_DYNAMIC_LEVEL_ENABLED_FB" comment="Dynamic changing foveation based on performance headroom available up to the maximum desired level"/>
</enums>
<!-- SECTION: OpenXR command definitions -->
<commands>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY">
@ -2652,7 +2805,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroySpatialAnchorMSFT</name></proto>
<param><type>XrSpatialAnchorMSFT</type> <name>anchor</name></param>
<param externsync="true_with_children"><type>XrSpatialAnchorMSFT</type> <name>anchor</name></param>
</command>
<!-- commands for XR_EXT_conformance_automation -->
@ -2900,6 +3053,18 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
<param>const <type>XrColorSpaceFB</type> <name>colorspace</name></param>
</command>
<!-- XR_FB_foveation -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED">
<proto><type>XrResult</type> <name>xrCreateFoveationProfileFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrFoveationProfileCreateInfoFB</type>* <name>createInfo</name></param>
<param><type>XrFoveationProfileFB</type>* <name>profile</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroyFoveationProfileFB</name></proto>
<param externsync="true_with_children"><type>XrFoveationProfileFB</type> <name>profile</name></param>
</command>
<!-- commands for XR_VARJO_environment_depth_estimation -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrSetEnvironmentDepthEstimationVARJO</name></proto>
@ -2930,6 +3095,45 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>wchar_t</type> <name>buffer</name>[<enum>XR_MAX_AUDIO_DEVICE_STR_SIZE_OCULUS</enum>]</param>
</command>
<!-- XR_MSFT_spatial_anchor_persistence -->
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED">
<proto><type>XrResult</type> <name>xrCreateSpatialAnchorStoreConnectionMSFT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrSpatialAnchorStoreConnectionMSFT</type>* <name>spatialAnchorStore</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID,XR_ERROR_OUT_OF_MEMORY">
<proto><type>XrResult</type> <name>xrDestroySpatialAnchorStoreConnectionMSFT</name></proto>
<param externsync="true_with_children"><type>XrSpatialAnchorStoreConnectionMSFT</type> <name>spatialAnchorStore</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT">
<proto><type>XrResult</type> <name>xrPersistSpatialAnchorMSFT</name></proto>
<param><type>XrSpatialAnchorStoreConnectionMSFT</type> <name>spatialAnchorStore</name></param>
<param>const <type>XrSpatialAnchorPersistenceInfoMSFT</type>* <name>spatialAnchorPersistenceInfo</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SIZE_INSUFFICIENT">
<proto><type>XrResult</type> <name>xrEnumeratePersistedSpatialAnchorNamesMSFT</name></proto>
<param><type>XrSpatialAnchorStoreConnectionMSFT</type> <name>spatialAnchorStore</name></param>
<param optional="true"><type>uint32_t</type> <name>spatialAnchorNamesCapacityInput</name></param>
<param optional="true"><type>uint32_t</type>* <name>spatialAnchorNamesCountOutput</name></param>
<param optional="true" len="spatialAnchorNamesCapacityInput"><type>XrSpatialAnchorPersistenceNameMSFT</type>* <name>persistedAnchorNames</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT,XR_ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT">
<proto><type>XrResult</type> <name>xrCreateSpatialAnchorFromPersistedNameMSFT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT</type>* <name>spatialAnchorCreateInfo</name></param>
<param><type>XrSpatialAnchorMSFT</type>* <name>spatialAnchor</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT,XR_ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT">
<proto><type>XrResult</type> <name>xrUnpersistSpatialAnchorMSFT</name></proto>
<param><type>XrSpatialAnchorStoreConnectionMSFT</type> <name>spatialAnchorStore</name></param>
<param>const <type>XrSpatialAnchorPersistenceNameMSFT</type>* <name>spatialAnchorPersistenceName</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_OUT_OF_MEMORY">
<proto><type>XrResult</type> <name>xrClearSpatialAnchorStoreMSFT</name></proto>
<param><type>XrSpatialAnchorStoreConnectionMSFT</type> <name>spatialAnchorStore</name></param>
</command>
</commands>
<!-- SECTION: OpenXR API interface definitions -->
@ -3090,7 +3294,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
<!-- Core-like basic data types, documented in core spec, though currently only used by KHR extensions: -->
<!-- used in XR_KHR_composition_layer_color_modulation -->
<!-- used in XR_KHR_composition_layer_color_scale_bias -->
<type name="XrColor4f"/>
<!-- used in XR_KHR_space bounds -->
<type name="XrExtent2Df"/>
@ -3452,7 +3656,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
<extension name="XR_MSFT_spatial_anchor" number="40" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_MSFT_spatial_anchor_SPEC_VERSION"/>
<enum value="2" name="XR_MSFT_spatial_anchor_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_spatial_anchor&quot;" name="XR_MSFT_SPATIAL_ANCHOR_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_MSFT"/>
@ -3465,17 +3669,22 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
</require>
</extension>
<extension name="XR_OCULUS_extension_41" number="41" type="instance" supported="disabled">
<extension name="XR_FB_composition_layer_image_layout" number="41" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_OCULUS_extension_41_SPEC_VERSION"/>
<enum value="&quot;XR_OCULUS_extension_41&quot;" name="XR_OCULUS_EXTENSION_41_EXTENSION_NAME"/>
<enum value="1" name="XR_FB_composition_layer_image_layout_SPEC_VERSION"/>
<enum value="&quot;XR_FB_composition_layer_image_layout&quot;" name="XR_FB_COMPOSITION_LAYER_IMAGE_LAYOUT_EXTENSION_NAME"/>
<type name="XrCompositionLayerImageLayoutFB"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_IMAGE_LAYOUT_FB"/>
</require>
</extension>
<extension name="XR_OCULUS_extension_42" number="42" type="instance" supported="disabled">
<extension name="XR_FB_composition_layer_alpha_blend" number="42" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_OCULUS_extension_42_SPEC_VERSION"/>
<enum value="&quot;XR_OCULUS_extension_42&quot;" name="XR_OCULUS_EXTENSION_42_EXTENSION_NAME"/>
<enum value="2" name="XR_FB_composition_layer_alpha_blend_SPEC_VERSION"/>
<enum value="&quot;XR_FB_composition_layer_alpha_blend&quot;" name="XR_FB_COMPOSITION_LAYER_ALPHA_BLEND_EXTENSION_NAME"/>
<type name="XrBlendFactorFB"/>
<type name="XrCompositionLayerAlphaBlendFB"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_ALPHA_BLEND_FB"/>
</require>
</extension>
@ -3797,10 +4006,13 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
</require>
</extension>
<extension name="XR_FB_extension_73" number="73" type="instance" supported="disabled">
<extension name="XR_FB_composition_layer_secure_content" number="73" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_FB_extension_73_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_73&quot;" name="XR_FB_extension_73_EXTENSION_NAME"/>
<enum value="1" name="XR_FB_composition_layer_secure_content_SPEC_VERSION"/>
<enum value="&quot;XR_FB_composition_layer_secure_content&quot;" name="XR_FB_COMPOSITION_LAYER_SECURE_CONTENT_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_SECURE_CONTENT_FB"/>
<type name="XrCompositionLayerSecureContentFB"/>
</require>
</extension>
@ -3994,11 +4206,11 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
</require>
</extension>
<extension name="XR_MND_swapchain_usage_input_attachment_bit" number="97" type="instance" supported="openxr">
<extension name="XR_MND_swapchain_usage_input_attachment_bit" number="97" type="instance" supported="openxr" promotedto="XR_KHR_swapchain_usage_input_attachment_bit">
<require>
<enum value="2" name="XR_MND_swapchain_usage_input_attachment_bit_SPEC_VERSION"/>
<enum value="&quot;XR_MND_swapchain_usage_input_attachment_bit&quot;" name="XR_MND_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME"/>
<!-- NOTE: This was added before the working group established a process. Future vendor extensions MUST NOT extend core bitmasks. -->
<!-- NOTE: This was added before the working group established a process, and has been normalized by promotion to KHR. Future vendor extensions MUST NOT extend core bitmasks. -->
<enum bitpos="7" extends="XrSwapchainUsageFlagBits" name="XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_MND" comment="Specifies that the image may: be used as a input attachment."/>
</require>
</extension>
@ -4222,17 +4434,36 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
</require>
</extension>
<extension name="XR_FB_extension_115" number="115" type="instance" supported="disabled">
<extension name="XR_FB_foveation" number="115" type="instance" requires="XR_FB_swapchain_update_state" supported="openxr">
<require>
<enum value="1" name="XR_FB_extension_115_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_115&quot;" name="XR_FB_extension_115_EXTENSION_NAME"/>
<enum value="1" name="XR_FB_foveation_SPEC_VERSION"/>
<enum value="&quot;XR_FB_foveation&quot;" name="XR_FB_FOVEATION_EXTENSION_NAME"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_FOVEATION_PROFILE_FB" comment="XrFoveationProfileFB"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_FOVEATION_PROFILE_CREATE_INFO_FB"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_CREATE_INFO_FOVEATION_FB"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_STATE_FOVEATION_FB"/>
<type name="XrFoveationProfileCreateInfoFB"/>
<type name="XrSwapchainCreateInfoFoveationFB"/>
<type name="XrSwapchainStateFoveationFB"/>
<command name="xrCreateFoveationProfileFB"/>
<command name="xrDestroyFoveationProfileFB"/>
</require>
</extension>
<extension name="XR_FB_extension_116" number="116" type="instance" supported="disabled">
<extension name="XR_FB_foveation_configuration" number="116" type="instance" requires="XR_FB_foveation" supported="openxr">
<require>
<enum value="1" name="XR_FB_extension_116_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_116&quot;" name="XR_FB_extension_116_EXTENSION_NAME"/>
<enum value="1" name="XR_FB_foveation_configuration_SPEC_VERSION"/>
<enum value="&quot;XR_FB_foveation_configuration&quot;" name="XR_FB_FOVEATION_CONFIGURATION_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_FOVEATION_LEVEL_PROFILE_CREATE_INFO_FB"/>
<type name="XrFoveationLevelFB"/>
<type name="XrFoveationDynamicFB"/>
<type name="XrFoveationLevelProfileCreateInfoFB"/>
</require>
</extension>
@ -4276,7 +4507,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
<extension name="XR_VARJO_foveated_rendering" number="122" type="instance" requires="XR_VARJO_quad_views" supported="openxr">
<require>
<enum value="1" name="XR_VARJO_foveated_rendering_SPEC_VERSION"/>
<enum value="2" name="XR_VARJO_foveated_rendering_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_foveated_rendering&quot;" name="XR_VARJO_FOVEATED_RENDERING_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_VIEW_LOCATE_FOVEATED_RENDERING_VARJO"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO"/>
@ -4292,7 +4523,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
<extension name="XR_VARJO_composition_layer_depth_test" number="123" type="instance" requires="XR_KHR_composition_layer_depth" supported="openxr">
<require>
<enum value="1" name="XR_VARJO_composition_layer_depth_test_SPEC_VERSION"/>
<enum value="2" name="XR_VARJO_composition_layer_depth_test_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_composition_layer_depth_test&quot;" name="XR_VARJO_COMPOSITION_LAYER_DEPTH_TEST_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_VARJO"/>
<type name="XrCompositionLayerDepthTestVARJO"/>
@ -4433,13 +4664,35 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
</require>
</extension>
<extension name="XR_MSFT_extension_143" number="143" type="instance" supported="disabled">
<extension name="XR_MSFT_spatial_anchor_persistence" number="143" requires="XR_MSFT_spatial_anchor" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_MSFT_extension_143_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_143&quot;" name="XR_MSFT_extension_143_EXTENSION_NAME"/>
<enum value="2" name="XR_MSFT_spatial_anchor_persistence_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_spatial_anchor_persistence&quot;" name="XR_MSFT_SPATIAL_ANCHOR_PERSISTENCE_EXTENSION_NAME"/>
<type name="XrSpatialAnchorStoreConnectionMSFT"/>
<type name="XrSpatialAnchorPersistenceNameMSFT"/>
<type name="XrSpatialAnchorPersistenceInfoMSFT"/>
<type name="XrSpatialAnchorFromPersistedAnchorCreateInfoMSFT"/>
<command name="xrCreateSpatialAnchorStoreConnectionMSFT"/>
<command name="xrDestroySpatialAnchorStoreConnectionMSFT"/>
<command name="xrPersistSpatialAnchorMSFT"/>
<command name="xrEnumeratePersistedSpatialAnchorNamesMSFT"/>
<command name="xrCreateSpatialAnchorFromPersistedNameMSFT"/>
<command name="xrUnpersistSpatialAnchorMSFT"/>
<command name="xrClearSpatialAnchorStoreMSFT"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_SPATIAL_ANCHOR_STORE_CONNECTION_MSFT" comment="XrSpatialAnchorStoreConnectionMSFT"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SPATIAL_ANCHOR_PERSISTENCE_INFO_MSFT"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SPATIAL_ANCHOR_FROM_PERSISTED_ANCHOR_CREATE_INFO_MSFT"/>
<enum offset="1" dir="-" extends="XrResult" name="XR_ERROR_SPATIAL_ANCHOR_NAME_NOT_FOUND_MSFT" comment="A spatial anchor was not found associated with the spatial anchor name provided"/>
<enum offset="2" dir="-" extends="XrResult" name="XR_ERROR_SPATIAL_ANCHOR_NAME_INVALID_MSFT" comment="The spatial anchor name provided was not valid"/>
<enum value="256" name="XR_MAX_SPATIAL_ANCHOR_NAME_SIZE_MSFT"/>
</require>
</extension>
<extension name="XR_MSFT_extension_144" number="144" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_144_SPEC_VERSION"/>
@ -4562,14 +4815,18 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
</require>
</extension>
<extension name="XR_FB_extension_161" number="161" type="instance" supported="disabled">
<extension name="XR_FB_foveation_vulkan" number="161" type="instance" requires="XR_FB_foveation" protect="XR_USE_GRAPHICS_API_VULKAN" supported="openxr">
<require>
<enum value="1" name="XR_FB_extension_161_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_161&quot;" name="XR_FB_extension_161_EXTENSION_NAME"/>
<enum value="1" name="XR_FB_foveation_vulkan_SPEC_VERSION"/>
<enum value="&quot;XR_FB_foveation_vulkan&quot;" name="XR_FB_FOVEATION_VULKAN_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_IMAGE_FOVEATION_VULKAN_FB"/>
<type name="XrSwapchainImageFoveationVulkanFB"/>
</require>
</extension>
<extension name="XR_FB_swapchain_update_state_android_surface" number="162" type="instance" supported="openxr" protect="XR_USE_PLATFORM_ANDROID" requires="XR_FB_swapchain_update_state">
<extension name="XR_FB_swapchain_update_state_android_surface" number="162" type="instance" supported="openxr" protect="XR_USE_PLATFORM_ANDROID" requires="XR_KHR_android_surface_swapchain,XR_FB_swapchain_update_state">
<require>
<enum value="1" name="XR_FB_swapchain_update_state_android_surface_SPEC_VERSION"/>
<enum value="&quot;XR_FB_swapchain_update_state_android_surface&quot;" name="XR_FB_SWAPCHAIN_UPDATE_STATE_ANDROID_SURFACE_EXTENSION_NAME"/>
@ -4578,7 +4835,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
</require>
</extension>
<extension name="XR_FB_swapchain_update_state_opengl_es" number="163" type="instance" supported="openxr" protect="XR_USE_GRAPHICS_API_OPENGL_ES" requires="XR_FB_swapchain_update_state">
<extension name="XR_FB_swapchain_update_state_opengl_es" number="163" type="instance" supported="openxr" protect="XR_USE_GRAPHICS_API_OPENGL_ES" requires="XR_KHR_opengl_es_enable,XR_FB_swapchain_update_state">
<require>
<enum value="1" name="XR_FB_swapchain_update_state_opengl_es_SPEC_VERSION"/>
<enum value="&quot;XR_FB_swapchain_update_state_opengl_es&quot;" name="XR_FB_SWAPCHAIN_UPDATE_STATE_OPENGL_ES_EXTENSION_NAME"/>
@ -4587,7 +4844,7 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
</require>
</extension>
<extension name="XR_FB_swapchain_update_state_vulkan" number="164" type="instance" supported="openxr" protect="XR_USE_GRAPHICS_API_VULKAN" requires="XR_FB_swapchain_update_state">
<extension name="XR_FB_swapchain_update_state_vulkan" number="164" type="instance" supported="openxr" protect="XR_USE_GRAPHICS_API_VULKAN" requires="XR_KHR_vulkan_enable,XR_FB_swapchain_update_state">
<require>
<enum value="1" name="XR_FB_swapchain_update_state_vulkan_SPEC_VERSION"/>
<enum value="&quot;XR_FB_swapchain_update_state_vulkan&quot;" name="XR_FB_SWAPCHAIN_UPDATE_STATE_VULKAN_EXTENSION_NAME"/>
@ -4603,10 +4860,11 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
</require>
</extension>
<extension name="XR_KHR_extension_166" number="166" type="instance" supported="disabled">
<extension name="XR_KHR_swapchain_usage_input_attachment_bit" number="166" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_KHR_extension_166_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_extension_166&quot;" name="XR_KHR_extension_166_EXTENSION_NAME"/>
<enum value="3" name="XR_KHR_swapchain_usage_input_attachment_bit_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_swapchain_usage_input_attachment_bit&quot;" name="XR_KHR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_EXTENSION_NAME"/>
<enum extends="XrSwapchainUsageFlagBits" name="XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_KHR" alias="XR_SWAPCHAIN_USAGE_INPUT_ATTACHMENT_BIT_MND" comment="Specifies that the image may: be used as a input attachment."/>
</require>
</extension>
@ -4680,6 +4938,146 @@ maintained in the default branch of the Khronos OpenXR GitHub project.
</require>
</extension>
<extension name="XR_UNITY_hand_model_pose" number="177" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_UNITY_hand_model_pose_SPEC_VERSION"/>
<enum value="&quot;XR_UNITY_hand_model_pose&quot;" name="XR_UNITY_HAND_MODEL_POSE_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_UNITY_extension_178" number="178" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_UNITY_extension_178_SPEC_VERSION"/>
<enum value="&quot;XR_UNITY_extension_178&quot;" name="XR_UNITY_EXTENSION_178_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_UNITY_extension_179" number="179" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_UNITY_extension_179_SPEC_VERSION"/>
<enum value="&quot;XR_UNITY_extension_179&quot;" name="XR_UNITY_EXTENSION_179_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_UNITY_extension_180" number="180" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_UNITY_extension_180_SPEC_VERSION"/>
<enum value="&quot;XR_UNITY_extension_180&quot;" name="XR_UNITY_EXTENSION_180_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_UNITY_extension_181" number="181" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_UNITY_extension_181_SPEC_VERSION"/>
<enum value="&quot;XR_UNITY_extension_181&quot;" name="XR_UNITY_EXTENSION_181_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_UNITY_extension_182" number="182" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_UNITY_extension_182_SPEC_VERSION"/>
<enum value="&quot;XR_UNITY_extension_182&quot;" name="XR_UNITY_EXTENSION_182_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_UNITY_extension_183" number="183" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_UNITY_extension_183_SPEC_VERSION"/>
<enum value="&quot;XR_UNITY_extension_183&quot;" name="XR_UNITY_EXTENSION_183_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_UNITY_extension_184" number="184" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_UNITY_extension_184_SPEC_VERSION"/>
<enum value="&quot;XR_UNITY_extension_184&quot;" name="XR_UNITY_EXTENSION_184_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_UNITY_extension_185" number="185" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_UNITY_extension_185_SPEC_VERSION"/>
<enum value="&quot;XR_UNITY_extension_185&quot;" name="XR_UNITY_EXTENSION_185_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_UNITY_extension_186" number="186" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_UNITY_extension_186_SPEC_VERSION"/>
<enum value="&quot;XR_UNITY_extension_186&quot;" name="XR_UNITY_EXTENSION_186_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LIV_extension_187" number="187" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LIV_extension_187_SPEC_VERSION"/>
<enum value="&quot;XR_LIV_extension_187&quot;" name="XR_LIV_EXTENSION_187_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LIV_extension_188" number="188" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LIV_extension_188_SPEC_VERSION"/>
<enum value="&quot;XR_LIV_extension_188&quot;" name="XR_LIV_EXTENSION_188_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LIV_extension_189" number="189" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LIV_extension_189_SPEC_VERSION"/>
<enum value="&quot;XR_LIV_extension_189&quot;" name="XR_LIV_EXTENSION_189_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LIV_extension_190" number="190" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LIV_extension_190_SPEC_VERSION"/>
<enum value="&quot;XR_LIV_extension_190&quot;" name="XR_LIV_EXTENSION_190_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LIV_extension_191" number="191" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LIV_extension_191_SPEC_VERSION"/>
<enum value="&quot;XR_LIV_extension_191&quot;" name="XR_LIV_EXTENSION_191_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LIV_extension_192" number="192" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LIV_extension_192_SPEC_VERSION"/>
<enum value="&quot;XR_LIV_extension_192&quot;" name="XR_LIV_EXTENSION_192_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LIV_extension_193" number="193" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LIV_extension_193_SPEC_VERSION"/>
<enum value="&quot;XR_LIV_extension_193&quot;" name="XR_LIV_EXTENSION_193_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LIV_extension_194" number="194" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LIV_extension_194_SPEC_VERSION"/>
<enum value="&quot;XR_LIV_extension_194&quot;" name="XR_LIV_EXTENSION_194_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LIV_extension_195" number="195" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LIV_extension_195_SPEC_VERSION"/>
<enum value="&quot;XR_LIV_extension_195&quot;" name="XR_LIV_EXTENSION_195_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LIV_extension_196" number="196" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LIV_extension_196_SPEC_VERSION"/>
<enum value="&quot;XR_LIV_extension_196&quot;" name="XR_LIV_EXTENSION_196_EXTENSION_NAME"/>
</require>
</extension>
</extensions>
</registry>