Proton/wineopenxr/xr.xml
2021-08-12 10:54:19 -05:00

5084 lines
354 KiB
XML

<?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.
SPDX-License-Identifier: Apache-2.0 OR MIT
------------------------------------------------------------------------
This file, xr.xml, is the OpenXR API Registry. It is a critically important
and normative part of the OpenXR Specification, including a canonical
machine-readable definition of the API, parameter and member validation
language incorporated into the Specification and reference pages, and other
material which is registered by Khronos, such as tags used by extension and
layer authors. The only authoritative version of xr.xml is the one
maintained in the default branch of the Khronos OpenXR GitHub project.
</comment>
<!-- SECTION: OpenXR vendor IDs for physical devices without PCI vendor IDs -->
<vendorids>
<vendorid name="KHR" id="0x10000" comment="This is the next available Khronos vendor ID"/>
</vendorids>
<!-- SECTION: OpenXR vendor/author tags for extensions and layers -->
<tags>
<!-- Sorted alphabetically by tag name -->
<tag name="ARM" author="Arm Limited" contact="Andreas Loeve Selvik @selvik, Sam Martin @sammartin"/>
<tag name="COLLABORA" author="Collabora" contact="Ryan Pavlik @rpavlik"/>
<tag name="EPIC" author="Epic" contact="Nick Whiting @whitingn"/>
<tag name="EXT" author="Multivendor" contact="Ryan Pavlik @rpavlik"/>
<tag name="EXTX" author="Multivendor experimental" contact="Brad Grantham @bradgrantham-lunarg"/>
<tag name="FB" author="Facebook" contact="Cass Everitt @casseveritt, Jonathan Wright @Nelno"/>
<tag name="GOOGLE" author="Google" contact="Kaye Mason @chaleur"/>
<tag name="HTC" author="HTC" contact="Chris Kuo @ggkuo, Kyle Chen @kylechen76"/>
<tag name="HUAWEI" author="Huawei" contact="Yihong Huang @rachelhuang"/>
<tag name="INTEL" author="Intel" contact="Javier Martinez @javier"/>
<tag name="KHR" author="Khronos" contact="Brent Insko @insko"/>
<tag name="LUNARG" author="LunarG" contact="Brad Grantham @bradgrantham-lunarg"/>
<tag name="LIV" author="LIV" contact="Arthur Brainville @Ybalrid, Steffan Donal @liv_ruu"/>
<tag name="ML" author="Magic Leap" contact="Jey Michaelraj @jeymichael"/>
<tag name="MND" author="Monado Project" contact="Jakob Bornecrantz @wallbraker, Ryan Pavlik @rpavlik"/>
<tag name="MNDX" author="Monado Project experimental" contact="Jakob Bornecrantz @wallbraker, Ryan Pavlik @rpavlik"/>
<tag name="MSFT" author="Microsoft" contact="Alex Turner @alexturn, Yin Li @yl_msft, Bryce Hutchings @brycehutchings, Lachlan Ford @laford_msft, Minmin Gong @gongminmin "/>
<tag name="NV" author="NVIDIA Corporation" contact="Satish Salian @ssalian, Robert Menzel"/>
<tag name="OCULUS" author="Oculus" contact="Cass Everitt @casseveritt, Ed Hutchins @eahutchins"/>
<tag name="PLUTO" author="Pluto VR" contact="Jared Cheshier @Jared, Sophia Baldonado @sophia"/>
<tag name="QCOM" author="Qualcomm Technologies" contact="Armelle @alaine_qcom, Martin Renschler @martinr"/>
<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>
<!-- SECTION: OpenXR type definitions -->
<types>
<type name="openxr_platform_defines" category="include">#include "openxr_platform_defines.h"</type>
<type requires="android/native_window.h" name="ANativeWindow"/>
<type requires="jni.h" name="jobject"/>
<type requires="CL/cl_gl_ext.h" name="CGLContextObj"/>
<type requires="d3dcommon.h" name="D3D_FEATURE_LEVEL"/>
<type requires="D3D11.h" name="ID3D11Device"/>
<type requires="D3D11.h" name="ID3D11Texture2D"/>
<type requires="D3D12.h" name="ID3D12CommandQueue"/>
<type requires="D3D12.h" name="ID3D12Device"/>
<type requires="D3D12.h" name="ID3D12Resource"/>
<type requires="EGL/egl.h" name="EGLDisplay"/>
<type requires="EGL/egl.h" name="EGLConfig"/>
<type requires="EGL/egl.h" name="EGLContext"/>
<type requires="EGL/egl.h" name="EGLenum"/>
<type requires="EGL/egl.h" name="PFNEGLGETPROCADDRESSPROC"/>
<type requires="GL/glxext.h" name="GLXFBConfig"/>
<type requires="GL/glxext.h" name="GLXDrawable"/>
<type requires="GL/glxext.h" name="GLXContext"/>
<type requires="GL/wglext.h" name="HGLRC"/>
<type requires="unknwn.h" name="IUnknown"/>
<type requires="wayland-client.h" name="wl_display"/>
<type requires="windows.h" name="HDC"/>
<type requires="windows.h" name="LUID"/>
<type requires="windows.h" name="LARGE_INTEGER"/>
<type requires="X11/Xlib.h" name="Display"/>
<type requires="X11/Xlib.h" name="VisualID"/>
<type requires="X11/Xlib.h" name="Window"/>
<type requires="xcb/glx.h" name="xcb_glx_fbconfig_t"/>
<type requires="xcb/glx.h" name="xcb_glx_drawable_t"/>
<type requires="xcb/glx.h" name="xcb_glx_context_t"/>
<type requires="xcb/xcb.h" name="xcb_connection_t"/>
<type requires="xcb/xcb.h" name="xcb_visualid_t"/>
<type requires="xcb/xcb.h" name="xcb_window_t"/>
<type requires="vulkan/vulkan.h" name="PFN_vkGetInstanceProcAddr"/>
<type requires="vulkan/vulkan.h" name="VkAllocationCallbacks"/>
<type requires="vulkan/vulkan.h" name="VkComponentSwizzle"/>
<type requires="vulkan/vulkan.h" name="VkDevice"/>
<type requires="vulkan/vulkan.h" name="VkDeviceCreateInfo"/>
<type requires="vulkan/vulkan.h" name="VkFilter"/>
<type requires="vulkan/vulkan.h" name="VkFormat"/>
<type requires="vulkan/vulkan.h" name="VkImage"/>
<type requires="vulkan/vulkan.h" name="VkInstance"/>
<type requires="vulkan/vulkan.h" name="VkInstanceCreateInfo"/>
<type requires="vulkan/vulkan.h" name="VkPhysicalDevice"/>
<type requires="vulkan/vulkan.h" name="VkResult"/>
<type requires="vulkan/vulkan.h" name="VkSamplerAddressMode"/>
<type requires="vulkan/vulkan.h" name="VkSamplerMipmapMode"/>
<type requires="time.h" name="timespec"/>
<type category="define">#define <name>XR_MAKE_VERSION</name>(major, minor, patch) \
((((major) &amp; 0xffffULL) &lt;&lt; 48) | (((minor) &amp; 0xffffULL) &lt;&lt; 32) | ((patch) &amp; 0xffffffffULL))</type>
<type category="define">#define <name>XR_VERSION_MAJOR</name>(version) (uint16_t)(((uint64_t)(version) &gt;&gt; 48)&amp; 0xffffULL)</type>
<type category="define">#define <name>XR_VERSION_MINOR</name>(version) (uint16_t)(((uint64_t)(version) &gt;&gt; 32) &amp; 0xffffULL)</type>
<type category="define">#define <name>XR_VERSION_PATCH</name>(version) (uint32_t)((uint64_t)(version) &amp; 0xffffffffULL)</type>
<!--
NOTE: The following group of lines defining the two version constants
must not be re-arranged or re-flowed, since scripts/update_version.py
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, 18)</type>
<!--
NOTE: For avoidance of ambiguity, there should only be 1 <name> tag immediately in
each <type>. This is why XR_MAY_ALIAS appears multiple times below, but only once with
the <name> tags wrapping it. It does not particularly matter which of the copies of
names gets marked up, but it seems reasonable that the most meaningful one is marked up.
-->
<type category="define">
#if !defined(XR_MAY_ALIAS)
#if defined(__clang__) || (defined(__GNUC__) &amp;&amp; (__GNUC__ &gt; 4))
#define <name>XR_MAY_ALIAS</name> __attribute__((__may_alias__))
#else
#define XR_MAY_ALIAS
#endif
#endif</type>
<type category="define">
#if !defined(XR_DEFINE_HANDLE)
#if (XR_PTR_SIZE == 8)
#define <name>XR_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;
#else
#define XR_DEFINE_HANDLE(object) typedef uint64_t object;
#endif
#endif
</type>
<type category="define">
#if !defined(XR_NULL_HANDLE)
#if (XR_PTR_SIZE == 8) &amp;&amp; XR_CPP_NULLPTR_SUPPORTED
#define <name>XR_NULL_HANDLE</name> nullptr
#else
#define XR_NULL_HANDLE 0
#endif
#endif
</type>
<type category="define">
#if !defined(XR_DEFINE_ATOM)
#define <name>XR_DEFINE_ATOM</name>(object) typedef uint64_t object;
#endif
</type>
<type category="define">
#define <name>XR_NULL_PATH</name> 0</type>
<type category="define">
#define <name>XR_NULL_SYSTEM_ID</name> 0</type>
<type category="define">
#define <name>XR_SUCCEEDED</name>(result) ((result) &gt;= 0)</type>
<type category="define">
#define <name>XR_UNQUALIFIED_SUCCESS</name>(result) ((result) == 0)</type>
<type category="define">
#define <name>XR_FAILED</name>(result) ((result) &lt; 0)</type>
<type category="define">
#define <name>XR_NO_DURATION</name> 0</type>
<type category="define">
#define <name>XR_INFINITE_DURATION</name> 0x7fffffffffffffffLL</type>
<type category="define">
#define <name>XR_MIN_HAPTIC_DURATION</name> -1</type>
<type category="define">
#define <name>XR_FREQUENCY_UNSPECIFIED</name> 0</type>
<type category="define">
#define <name>XR_MAX_EVENT_DATA_SIZE</name> sizeof(XrEventDataBuffer)</type>
<!-- XR_EXT_hand_tracking -->
<type category="define">
#define <name>XR_HAND_JOINT_COUNT_EXT</name> 26</type>
<!-- XR_MSFT_controller_model -->
<type category="define">
#define <name>XR_NULL_CONTROLLER_MODEL_KEY_MSFT</name> 0</type>
<!-- Value types -->
<type category="basetype">typedef <type>uint32_t</type> <name>XrBool32</name>;</type>
<type category="basetype">typedef <type>uint64_t</type> <name>XrFlags64</name>;</type>
<type category="basetype">typedef <type>int64_t</type> <name>XrTime</name>;</type>
<type category="basetype">typedef <type>int64_t</type> <name>XrDuration</name>;</type>
<type category="basetype">typedef <type>uint64_t</type> <name>XrVersion</name>;</type>
<!-- Atoms, allocated by the runtime (if implementation requires) and never freed -->
<type category="basetype"><type>XR_DEFINE_ATOM</type>(<name>XrPath</name>)</type>
<type category="basetype"><type>XR_DEFINE_ATOM</type>(<name>XrSystemId</name>)</type>
<!-- XR_MSFT_controller_model -->
<type category="basetype"><type>XR_DEFINE_ATOM</type>(<name>XrControllerModelKeyMSFT</name>)</type>
<!-- Basic C types, pulled in via openxr_platform_defines.h -->
<type requires="openxr_platform_defines" name="void"/>
<type requires="openxr_platform_defines" name="char"/>
<type requires="openxr_platform_defines" name="wchar_t"/>
<type requires="openxr_platform_defines" name="float"/>
<type requires="openxr_platform_defines" name="int8_t"/>
<type requires="openxr_platform_defines" name="uint8_t"/>
<type requires="openxr_platform_defines" name="uint16_t"/>
<type requires="openxr_platform_defines" name="int32_t"/>
<type requires="openxr_platform_defines" name="uint32_t"/>
<type requires="openxr_platform_defines" name="int64_t"/>
<type requires="openxr_platform_defines" name="uint64_t"/>
<type requires="openxr_platform_defines" name="size_t"/>
<type requires="openxr_platform_defines" name="uintptr_t"/>
<!-- Bitmask types -->
<type bitvalues="XrInstanceCreateFlagBits" category="bitmask">typedef <type>XrFlags64</type> <name>XrInstanceCreateFlags</name>;</type>
<type bitvalues="XrSessionCreateFlagBits" category="bitmask">typedef <type>XrFlags64</type> <name>XrSessionCreateFlags</name>;</type>
<type bitvalues="XrSwapchainCreateFlagBits" category="bitmask">typedef <type>XrFlags64</type> <name>XrSwapchainCreateFlags</name>;</type>
<type bitvalues="XrSwapchainUsageFlagBits" category="bitmask">typedef <type>XrFlags64</type> <name>XrSwapchainUsageFlags</name>;</type>
<type bitvalues="XrViewStateFlagBits" category="bitmask">typedef <type>XrFlags64</type> <name>XrViewStateFlags</name>;</type>
<type bitvalues="XrCompositionLayerFlagBits" category="bitmask">typedef <type>XrFlags64</type> <name>XrCompositionLayerFlags</name>;</type>
<type bitvalues="XrSpaceLocationFlagBits" category="bitmask">typedef <type>XrFlags64</type> <name>XrSpaceLocationFlags</name>;</type>
<type bitvalues="XrSpaceVelocityFlagBits" category="bitmask">typedef <type>XrFlags64</type> <name>XrSpaceVelocityFlags</name>;</type>
<type bitvalues="XrInputSourceLocalizedNameFlagBits" category="bitmask">typedef <type>XrFlags64</type> <name>XrInputSourceLocalizedNameFlags</name>;</type>
<!-- Bitmask types for XR_KHR_vulkan_enable2 -->
<type bitvalues="XrVulkanInstanceCreateFlagBitsKHR" category="bitmask">typedef <type>XrFlags64</type> <name>XrVulkanInstanceCreateFlagsKHR</name>;</type>
<type bitvalues="XrVulkanDeviceCreateFlagBitsKHR" category="bitmask">typedef <type>XrFlags64</type> <name>XrVulkanDeviceCreateFlagsKHR</name>;</type>
<!-- Bitmask types for XR_EXT_debug_utils -->
<type bitvalues="XrDebugUtilsMessageSeverityFlagBitsEXT" category="bitmask">typedef <type>XrFlags64</type> <name>XrDebugUtilsMessageSeverityFlagsEXT</name>;</type>
<type bitvalues="XrDebugUtilsMessageTypeFlagBitsEXT" category="bitmask">typedef <type>XrFlags64</type> <name>XrDebugUtilsMessageTypeFlagsEXT</name>;</type>
<!-- Bitmask types for XR_EXTX_overlay -->
<type bitvalues="XrOverlayMainSessionFlagBitsEXTX" category="bitmask">typedef <type>XrFlags64</type> <name>XrOverlayMainSessionFlagsEXTX</name>;</type>
<type bitvalues="XrOverlaySessionCreateFlagBitsEXTX" category="bitmask">typedef <type>XrFlags64</type> <name>XrOverlaySessionCreateFlagsEXTX</name>;</type>
<!-- 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>
<type category="handle" parent="XrInstance"><type>XR_DEFINE_HANDLE</type>(<name>XrSession</name>)</type>
<type category="handle" parent="XrInstance"><type>XR_DEFINE_HANDLE</type>(<name>XrActionSet</name>)</type>
<type category="handle" parent="XrActionSet"><type>XR_DEFINE_HANDLE</type>(<name>XrAction</name>)</type>
<type category="handle" parent="XrSession"><type>XR_DEFINE_HANDLE</type>(<name>XrSwapchain</name>)</type>
<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"/>
<type name="XrObjectType" category="enum"/>
<type name="XrInstanceCreateFlagBits" category="enum"/>
<type name="XrSessionCreateFlagBits" category="enum"/>
<type name="XrSwapchainCreateFlagBits" category="enum"/>
<type name="XrSwapchainUsageFlagBits" category="enum"/>
<type name="XrViewStateFlagBits" category="enum"/>
<type name="XrCompositionLayerFlagBits" category="enum"/>
<type name="XrSpaceLocationFlagBits" category="enum"/>
<type name="XrSpaceVelocityFlagBits" category="enum"/>
<type name="XrInputSourceLocalizedNameFlagBits" category="enum"/>
<type name="XrAndroidThreadTypeKHR" category="enum"/>
<type name="XrEyeVisibility" category="enum"/>
<type name="XrActionType" category="enum"/>
<type name="XrReferenceSpaceType" category="enum"/>
<type name="XrFormFactor" category="enum"/>
<type name="XrViewConfigurationType" category="enum"/>
<type name="XrEnvironmentBlendMode" category="enum"/>
<type name="XrSessionState" category="enum"/>
<type name="XrPerfSettingsDomainEXT" category="enum"/>
<type name="XrPerfSettingsSubDomainEXT" category="enum"/>
<type name="XrPerfSettingsLevelEXT" category="enum"/>
<type name="XrPerfSettingsNotificationLevelEXT" category="enum"/>
<!-- enums and flag bits for XR_KHR_vulkan_enable2 -->
<type name="XrVulkanInstanceCreateFlagBitsKHR" category="enum"/>
<type name="XrVulkanDeviceCreateFlagBitsKHR" category="enum"/>
<!-- enums and flag bits for XR_EXT_debug_utils -->
<type name="XrDebugUtilsMessageSeverityFlagBitsEXT" category="enum"/>
<type name="XrDebugUtilsMessageTypeFlagBitsEXT" category="enum"/>
<!-- enums and flag bits for XR_EXTX_overlay -->
<type name="XrOverlayMainSessionFlagBitsEXTX" category="enum"/>
<type name="XrOverlaySessionCreateFlagBitsEXTX" category="enum"/>
<!-- enums for XR_KHR_visibility_mask -->
<type name="XrVisibilityMaskTypeKHR" category="enum"/>
<!-- enums for XR_MSFT_spatial_graph_bridge -->
<type name="XrSpatialGraphNodeTypeMSFT" category="enum"/>
<!-- 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>
<member><type>float</type> <name>y</name></member>
</type>
<type category="struct" name="XrVector3f">
<member><type>float</type> <name>x</name></member>
<member><type>float</type> <name>y</name></member>
<member><type>float</type> <name>z</name></member>
</type>
<type category="struct" name="XrVector4f">
<member><type>float</type> <name>x</name></member>
<member><type>float</type> <name>y</name></member>
<member><type>float</type> <name>z</name></member>
<member><type>float</type> <name>w</name></member>
</type>
<type category="struct" name="XrColor4f">
<member><type>float</type> <name>r</name></member>
<member><type>float</type> <name>g</name></member>
<member><type>float</type> <name>b</name></member>
<member><type>float</type> <name>a</name></member>
</type>
<type category="struct" name="XrQuaternionf">
<member><type>float</type> <name>x</name></member>
<member><type>float</type> <name>y</name></member>
<member><type>float</type> <name>z</name></member>
<member><type>float</type> <name>w</name></member>
</type>
<type category="struct" name="XrPosef">
<member><type>XrQuaternionf</type> <name>orientation</name></member>
<member><type>XrVector3f</type> <name>position</name></member>
</type>
<type category="struct" name="XrOffset2Df">
<member><type>float</type> <name>x</name></member>
<member><type>float</type> <name>y</name></member>
</type>
<type category="struct" name="XrExtent2Df">
<member><type>float</type> <name>width</name></member>
<member><type>float</type> <name>height</name></member>
</type>
<type category="struct" name="XrRect2Df">
<member><type>XrOffset2Df</type> <name>offset</name></member>
<member><type>XrExtent2Df</type> <name>extent</name></member>
</type>
<type category="struct" name="XrOffset2Di">
<member><type>int32_t</type> <name>x</name></member>
<member><type>int32_t</type> <name>y</name></member>
</type>
<type category="struct" name="XrExtent2Di">
<member><type>int32_t</type> <name>width</name></member>
<member><type>int32_t</type> <name>height</name></member>
</type>
<type category="struct" name="XrRect2Di">
<member><type>XrOffset2Di</type> <name>offset</name></member>
<member><type>XrExtent2Di</type> <name>extent</name></member>
</type>
<comment>
XrBaseInStructure and XrBaseOutStructure use "struct" in their member definitions
because they are recursive structures and this is easier than modifying the tooling
to output forward declarations.
</comment>
<type category="struct" name="XrBaseInStructure" mayalias="true">
<member><type>XrStructureType</type> <name>type</name></member>
<member>const struct <type>XrBaseInStructure</type>* <name>next</name></member>
</type>
<type category="struct" name="XrBaseOutStructure" mayalias="true">
<member><type>XrStructureType</type> <name>type</name></member>
<member>struct <type>XrBaseOutStructure</type>* <name>next</name></member>
</type>
<type category="struct" name="XrApiLayerProperties" returnedonly="true">
<member values="XR_TYPE_API_LAYER_PROPERTIES"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>char</type> <name>layerName</name>[<enum>XR_MAX_API_LAYER_NAME_SIZE</enum>]</member>
<member><type>XrVersion</type> <name>specVersion</name></member>
<member><type>uint32_t</type> <name>layerVersion</name></member>
<member><type>char</type> <name>description</name>[<enum>XR_MAX_API_LAYER_DESCRIPTION_SIZE</enum>]</member>
</type>
<type category="struct" name="XrExtensionProperties" returnedonly="true">
<member values="XR_TYPE_EXTENSION_PROPERTIES"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>char</type> <name>extensionName</name>[<enum>XR_MAX_EXTENSION_NAME_SIZE</enum>]</member>
<member><type>uint32_t</type> <name>extensionVersion</name></member>
</type>
<type category="struct" name="XrApplicationInfo">
<member><type>char</type> <name>applicationName</name>[<enum>XR_MAX_APPLICATION_NAME_SIZE</enum>]</member>
<member><type>uint32_t</type> <name>applicationVersion</name></member>
<member><type>char</type> <name>engineName</name>[<enum>XR_MAX_ENGINE_NAME_SIZE</enum>]</member>
<member><type>uint32_t</type> <name>engineVersion</name></member>
<member><type>XrVersion</type> <name>apiVersion</name></member>
</type>
<type category="struct" name="XrInstanceCreateInfo">
<member values="XR_TYPE_INSTANCE_CREATE_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>XrInstanceCreateFlags</type> <name>createFlags</name></member>
<member><type>XrApplicationInfo</type> <name>applicationInfo</name></member>
<member optional="true"><type>uint32_t</type> <name>enabledApiLayerCount</name></member>
<member len="enabledApiLayerCount,null-terminated">const <type>char</type>* const* <name>enabledApiLayerNames</name></member>
<member optional="true"><type>uint32_t</type> <name>enabledExtensionCount</name></member>
<member len="enabledExtensionCount,null-terminated">const <type>char</type>* const* <name>enabledExtensionNames</name></member>
</type>
<type category="struct" name="XrInstanceProperties" returnedonly="true">
<member values="XR_TYPE_INSTANCE_PROPERTIES"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrVersion</type> <name>runtimeVersion</name></member>
<member><type>char</type> <name>runtimeName</name>[<enum>XR_MAX_RUNTIME_NAME_SIZE</enum>]</member>
</type>
<type category="struct" name="XrSystemGetInfo">
<member values="XR_TYPE_SYSTEM_GET_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrFormFactor</type> <name>formFactor</name></member>
</type>
<type category="struct" name="XrSystemProperties" returnedonly="true">
<member values="XR_TYPE_SYSTEM_PROPERTIES"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrSystemId</type> <name>systemId</name></member>
<member><type>uint32_t</type> <name>vendorId</name></member>
<member><type>char</type> <name>systemName</name>[<enum>XR_MAX_SYSTEM_NAME_SIZE</enum>]</member>
<member><type>XrSystemGraphicsProperties</type> <name>graphicsProperties</name></member>
<member><type>XrSystemTrackingProperties</type> <name>trackingProperties</name></member>
</type>
<type category="struct" name="XrSystemGraphicsProperties">
<member><type>uint32_t</type> <name>maxSwapchainImageHeight</name></member>
<member><type>uint32_t</type> <name>maxSwapchainImageWidth</name></member>
<member><type>uint32_t</type> <name>maxLayerCount</name></member>
</type>
<type category="struct" name="XrSystemTrackingProperties">
<member><type>XrBool32</type> <name>orientationTracking</name></member>
<member><type>XrBool32</type> <name>positionTracking</name></member>
</type>
<type category="struct" name="XrGraphicsBindingOpenGLWin32KHR" structextends="XrSessionCreateInfo" protect="XR_USE_PLATFORM_WIN32">
<member values="XR_TYPE_GRAPHICS_BINDING_OPENGL_WIN32_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>HDC</type> <name>hDC</name></member>
<member><type>HGLRC</type> <name>hGLRC</name></member>
</type>
<type category="struct" name="XrGraphicsBindingOpenGLXlibKHR" structextends="XrSessionCreateInfo" protect="XR_USE_PLATFORM_XLIB">
<member values="XR_TYPE_GRAPHICS_BINDING_OPENGL_XLIB_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>Display</type>* <name>xDisplay</name></member>
<member><type>uint32_t</type> <name>visualid</name></member>
<member><type>GLXFBConfig</type> <name>glxFBConfig</name></member>
<member><type>GLXDrawable</type> <name>glxDrawable</name></member>
<member><type>GLXContext</type> <name>glxContext</name></member>
</type>
<type category="struct" name="XrGraphicsBindingOpenGLXcbKHR" structextends="XrSessionCreateInfo" protect="XR_USE_PLATFORM_XCB">
<member values="XR_TYPE_GRAPHICS_BINDING_OPENGL_XCB_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>xcb_connection_t</type>* <name>connection</name></member>
<member><type>uint32_t</type> <name>screenNumber</name></member>
<member><type>xcb_glx_fbconfig_t</type> <name>fbconfigid</name></member>
<member><type>xcb_visualid_t</type> <name>visualid</name></member>
<member><type>xcb_glx_drawable_t</type> <name>glxDrawable</name></member>
<member><type>xcb_glx_context_t</type> <name>glxContext</name></member>
</type>
<type category="struct" name="XrGraphicsBindingOpenGLWaylandKHR" structextends="XrSessionCreateInfo" protect="XR_USE_PLATFORM_WAYLAND">
<member values="XR_TYPE_GRAPHICS_BINDING_OPENGL_WAYLAND_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member>struct <type>wl_display</type>* <name>display</name></member>
</type>
<type category="struct" name="XrGraphicsBindingD3D11KHR" structextends="XrSessionCreateInfo">
<member values="XR_TYPE_GRAPHICS_BINDING_D3D11_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>ID3D11Device</type>* <name>device</name></member>
</type>
<type category="struct" name="XrGraphicsBindingD3D12KHR" structextends="XrSessionCreateInfo">
<member values="XR_TYPE_GRAPHICS_BINDING_D3D12_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>ID3D12Device</type>* <name>device</name></member>
<member><type>ID3D12CommandQueue</type>* <name>queue</name></member>
</type>
<type category="struct" name="XrGraphicsBindingOpenGLESAndroidKHR" structextends="XrSessionCreateInfo" protect="XR_USE_PLATFORM_ANDROID">
<member values="XR_TYPE_GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>EGLDisplay</type> <name>display</name></member>
<member><type>EGLConfig</type> <name>config</name></member>
<member><type>EGLContext</type> <name>context</name></member>
</type>
<type category="struct" name="XrGraphicsBindingVulkanKHR" structextends="XrSessionCreateInfo">
<member values="XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>VkInstance</type> <name>instance</name></member>
<member><type>VkPhysicalDevice</type> <name>physicalDevice</name></member>
<member><type>VkDevice</type> <name>device</name></member>
<member><type>uint32_t</type> <name>queueFamilyIndex</name></member>
<member><type>uint32_t</type> <name>queueIndex</name></member>
</type>
<type category="struct" name="XrSessionCreateInfo">
<member values="XR_TYPE_SESSION_CREATE_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>XrSessionCreateFlags</type> <name>createFlags</name></member>
<member><type>XrSystemId</type> <name>systemId</name></member>
</type>
<type category="struct" name="XrSessionBeginInfo">
<member values="XR_TYPE_SESSION_BEGIN_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrViewConfigurationType</type> <name>primaryViewConfigurationType</name></member>
</type>
<type category="struct" name="XrSwapchainCreateInfo">
<member values="XR_TYPE_SWAPCHAIN_CREATE_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>XrSwapchainCreateFlags</type> <name>createFlags</name></member>
<member optional="true"><type>XrSwapchainUsageFlags</type> <name>usageFlags</name></member>
<member><type>int64_t</type> <name>format</name></member>
<member><type>uint32_t</type> <name>sampleCount</name></member>
<member><type>uint32_t</type> <name>width</name></member>
<member><type>uint32_t</type> <name>height</name></member>
<member><type>uint32_t</type> <name>faceCount</name></member>
<member><type>uint32_t</type> <name>arraySize</name></member>
<member><type>uint32_t</type> <name>mipCount</name></member>
</type>
<type category="struct" name="XrSwapchainImageBaseHeader">
<member><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrSwapchainImageOpenGLKHR" parentstruct="XrSwapchainImageBaseHeader">
<member values="XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_KHR"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>image</name></member>
</type>
<type category="struct" name="XrSwapchainImageOpenGLESKHR" parentstruct="XrSwapchainImageBaseHeader">
<member values="XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_ES_KHR"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>image</name></member>
</type>
<type category="struct" name="XrSwapchainImageVulkanKHR" parentstruct="XrSwapchainImageBaseHeader">
<member values="XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>VkImage</type> <name>image</name></member>
</type>
<type category="struct" name="XrSwapchainImageD3D11KHR" parentstruct="XrSwapchainImageBaseHeader">
<member values="XR_TYPE_SWAPCHAIN_IMAGE_D3D11_KHR"> <type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>ID3D11Texture2D</type>* <name>texture</name></member>
</type>
<type category="struct" name="XrSwapchainImageD3D12KHR" parentstruct="XrSwapchainImageBaseHeader">
<member values="XR_TYPE_SWAPCHAIN_IMAGE_D3D12_KHR"> <type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>ID3D12Resource</type>* <name>texture</name></member>
</type>
<type category="struct" name="XrSwapchainImageAcquireInfo">
<member values="XR_TYPE_SWAPCHAIN_IMAGE_ACQUIRE_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member> <!-- Pointer to next structure -->
</type>
<type category="struct" name="XrSwapchainImageWaitInfo">
<member values="XR_TYPE_SWAPCHAIN_IMAGE_WAIT_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member> <!-- Pointer to next structure -->
<member><type>XrDuration</type> <name>timeout</name></member>
</type>
<type category="struct" name="XrSwapchainImageReleaseInfo">
<member values="XR_TYPE_SWAPCHAIN_IMAGE_RELEASE_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member> <!-- Pointer to next structure -->
</type>
<type category="struct" name="XrReferenceSpaceCreateInfo">
<member values="XR_TYPE_REFERENCE_SPACE_CREATE_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrReferenceSpaceType</type> <name>referenceSpaceType</name></member>
<member><type>XrPosef</type> <name>poseInReferenceSpace</name></member>
</type>
<type category="struct" name="XrActionSpaceCreateInfo">
<member values="XR_TYPE_ACTION_SPACE_CREATE_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrAction</type> <name>action</name></member>
<member optional="true"><type>XrPath</type> <name>subactionPath</name></member>
<member><type>XrPosef</type> <name>poseInActionSpace</name></member>
</type>
<type category="struct" name="XrSpaceLocation">
<member values="XR_TYPE_SPACE_LOCATION"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>XrSpaceLocationFlags</type> <name>locationFlags</name></member>
<member><type>XrPosef</type> <name>pose</name></member>
</type>
<type category="struct" name="XrSpaceVelocity" structextends="XrSpaceLocation">
<member values="XR_TYPE_SPACE_VELOCITY"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>XrSpaceVelocityFlags</type> <name>velocityFlags</name></member>
<member><type>XrVector3f</type> <name>linearVelocity</name></member>
<member><type>XrVector3f</type> <name>angularVelocity</name></member>
</type>
<type category="struct" name="XrFovf">
<member><type>float</type> <name>angleLeft</name></member>
<member><type>float</type> <name>angleRight</name></member>
<member><type>float</type> <name>angleUp</name></member>
<member><type>float</type> <name>angleDown</name></member>
</type>
<type category="struct" name="XrView">
<member values="XR_TYPE_VIEW"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrPosef</type> <name>pose</name></member>
<member><type>XrFovf</type> <name>fov</name></member>
</type>
<type category="struct" name="XrViewLocateInfo">
<member values="XR_TYPE_VIEW_LOCATE_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></member>
<member><type>XrTime</type> <name>displayTime</name></member>
<member><type>XrSpace</type> <name>space</name></member>
</type>
<type category="struct" name="XrViewState">
<member values="XR_TYPE_VIEW_STATE"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>XrViewStateFlags</type> <name>viewStateFlags</name></member>
</type>
<type category="struct" name="XrViewConfigurationView">
<member values="XR_TYPE_VIEW_CONFIGURATION_VIEW"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>recommendedImageRectWidth</name></member>
<member><type>uint32_t</type> <name>maxImageRectWidth</name></member>
<member><type>uint32_t</type> <name>recommendedImageRectHeight</name></member>
<member><type>uint32_t</type> <name>maxImageRectHeight</name></member>
<member><type>uint32_t</type> <name>recommendedSwapchainSampleCount</name></member>
<member><type>uint32_t</type> <name>maxSwapchainSampleCount</name></member>
</type>
<type category="struct" name="XrSwapchainSubImage">
<member><type>XrSwapchain</type> <name>swapchain</name></member>
<member><type>XrRect2Di</type> <name>imageRect</name></member>
<member><type>uint32_t</type> <name>imageArrayIndex</name></member>
</type>
<type category="struct" name="XrCompositionLayerBaseHeader">
<member><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>XrCompositionLayerFlags</type> <name>layerFlags</name></member>
<member><type>XrSpace</type> <name>space</name></member>
</type>
<type category="struct" name="XrCompositionLayerProjectionView">
<member values="XR_TYPE_COMPOSITION_LAYER_PROJECTION_VIEW"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrPosef</type> <name>pose</name></member>
<member><type>XrFovf</type> <name>fov</name></member>
<member><type>XrSwapchainSubImage</type> <name>subImage</name></member>
</type>
<type category="struct" name="XrCompositionLayerProjection" parentstruct="XrCompositionLayerBaseHeader">
<member values="XR_TYPE_COMPOSITION_LAYER_PROJECTION"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>XrCompositionLayerFlags</type> <name>layerFlags</name></member>
<member><type>XrSpace</type> <name>space</name></member>
<member><type>uint32_t</type> <name>viewCount</name></member>
<member len="viewCount">const <type>XrCompositionLayerProjectionView</type>* <name>views</name></member>
</type>
<type category="struct" name="XrCompositionLayerQuad" parentstruct="XrCompositionLayerBaseHeader">
<member values="XR_TYPE_COMPOSITION_LAYER_QUAD"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>XrCompositionLayerFlags</type> <name>layerFlags</name></member>
<member><type>XrSpace</type> <name>space</name></member>
<member><type>XrEyeVisibility</type> <name>eyeVisibility</name></member>
<member><type>XrSwapchainSubImage</type> <name>subImage</name></member>
<member><type>XrPosef</type> <name>pose</name></member>
<member><type>XrExtent2Df</type> <name>size</name></member>
</type>
<type category="struct" name="XrCompositionLayerCylinderKHR" parentstruct="XrCompositionLayerBaseHeader">
<member values="XR_TYPE_COMPOSITION_LAYER_CYLINDER_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>XrCompositionLayerFlags</type> <name>layerFlags</name></member>
<member><type>XrSpace</type> <name>space</name></member>
<member><type>XrEyeVisibility</type> <name>eyeVisibility</name></member>
<member><type>XrSwapchainSubImage</type> <name>subImage</name></member>
<member><type>XrPosef</type> <name>pose</name></member>
<member><type>float</type> <name>radius</name></member>
<member><type>float</type> <name>centralAngle</name></member>
<member><type>float</type> <name>aspectRatio</name></member>
</type>
<type category="struct" name="XrCompositionLayerCubeKHR" parentstruct="XrCompositionLayerBaseHeader">
<member values="XR_TYPE_COMPOSITION_LAYER_CUBE_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>XrCompositionLayerFlags</type> <name>layerFlags</name></member>
<member><type>XrSpace</type> <name>space</name></member>
<member><type>XrEyeVisibility</type> <name>eyeVisibility</name></member>
<member><type>XrSwapchain</type> <name>swapchain</name></member>
<member><type>uint32_t</type> <name>imageArrayIndex</name></member>
<member><type>XrQuaternionf</type> <name>orientation</name></member>
</type>
<type category="struct" name="XrCompositionLayerEquirectKHR" parentstruct="XrCompositionLayerBaseHeader">
<member values="XR_TYPE_COMPOSITION_LAYER_EQUIRECT_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>XrCompositionLayerFlags</type> <name>layerFlags</name></member>
<member><type>XrSpace</type> <name>space</name></member>
<member><type>XrEyeVisibility</type> <name>eyeVisibility</name></member>
<member><type>XrSwapchainSubImage</type> <name>subImage</name></member>
<member><type>XrPosef</type> <name>pose</name></member>
<member><type>float</type> <name>radius</name></member>
<member><type>XrVector2f</type> <name>scale</name></member>
<member><type>XrVector2f</type> <name>bias</name></member>
</type>
<type category="struct" name="XrCompositionLayerDepthInfoKHR" structextends="XrCompositionLayerProjectionView">
<member values="XR_TYPE_COMPOSITION_LAYER_DEPTH_INFO_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSwapchainSubImage</type> <name>subImage</name></member>
<member><type>float</type> <name>minDepth</name></member>
<member><type>float</type> <name>maxDepth</name></member>
<member><type>float</type> <name>nearZ</name></member>
<member><type>float</type> <name>farZ</name></member>
</type>
<type category="struct" name="XrFrameBeginInfo">
<member values="XR_TYPE_FRAME_BEGIN_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<!-- This is currently empty, awaiting future extensions. -->
</type>
<type category="struct" name="XrFrameEndInfo">
<member values="XR_TYPE_FRAME_END_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrTime</type> <name>displayTime</name></member>
<member><type>XrEnvironmentBlendMode</type> <name>environmentBlendMode</name></member>
<member optional="true"><type>uint32_t</type> <name>layerCount</name></member>
<member optional="true" len="layerCount">const <type>XrCompositionLayerBaseHeader</type>* const* <name>layers</name></member>
</type>
<type category="struct" name="XrFrameWaitInfo">
<member values="XR_TYPE_FRAME_WAIT_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrFrameState">
<member values="XR_TYPE_FRAME_STATE"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrTime</type> <name>predictedDisplayTime</name></member>
<member><type>XrDuration</type> <name>predictedDisplayPeriod</name></member>
<member><type>XrBool32</type> <name>shouldRender</name></member>
</type>
<type category="struct" name="XrHapticBaseHeader">
<member><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrHapticVibration" parentstruct="XrHapticBaseHeader">
<member values="XR_TYPE_HAPTIC_VIBRATION"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrDuration</type> <name>duration</name></member>
<member optional="true"><type>float</type> <name>frequency</name></member>
<member><type>float</type> <name>amplitude</name></member>
</type>
<type category="struct" name="XrEventDataBaseHeader"> <!-- top-level, parentstruct="XrBaseOutStructure" causes validation failures -->
<member><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrEventDataBuffer"> <!-- top-level, parentstruct="XrBaseInStructure" causes validation failures -->
<member values="XR_TYPE_EVENT_DATA_BUFFER"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint8_t</type> <name>varying</name>[4000]</member>
</type>
<type category="struct" name="XrEventDataEventsLost" parentstruct="XrEventDataBaseHeader">
<member values="XR_TYPE_EVENT_DATA_EVENTS_LOST"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>lostEventCount</name></member>
</type>
<type category="struct" name="XrEventDataInstanceLossPending" parentstruct="XrEventDataBaseHeader">
<member values="XR_TYPE_EVENT_DATA_INSTANCE_LOSS_PENDING"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrTime</type> <name>lossTime</name></member>
</type>
<type category="struct" name="XrEventDataSessionStateChanged" parentstruct="XrEventDataBaseHeader">
<member values="XR_TYPE_EVENT_DATA_SESSION_STATE_CHANGED"> <type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSession</type> <name>session</name></member>
<member><type>XrSessionState</type> <name>state</name></member>
<member><type>XrTime</type> <name>time</name></member>
</type>
<type category="struct" name="XrEventDataReferenceSpaceChangePending" parentstruct="XrEventDataBaseHeader">
<member values="XR_TYPE_EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSession</type> <name>session</name></member>
<member><type>XrReferenceSpaceType</type> <name>referenceSpaceType</name></member>
<member><type>XrTime</type> <name>changeTime</name></member>
<member><type>XrBool32</type> <name>poseValid</name></member>
<member><type>XrPosef</type> <name>poseInPreviousSpace</name></member>
</type>
<type category="struct" name="XrEventDataPerfSettingsEXT" parentstruct="XrEventDataBaseHeader">
<member values="XR_TYPE_EVENT_DATA_PERF_SETTINGS_EXT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrPerfSettingsDomainEXT</type> <name>domain</name></member>
<member><type>XrPerfSettingsSubDomainEXT</type> <name>subDomain</name></member>
<member><type>XrPerfSettingsNotificationLevelEXT</type> <name>fromLevel</name></member>
<member><type>XrPerfSettingsNotificationLevelEXT</type> <name>toLevel</name></member>
</type>
<type category="struct" name="XrEventDataVisibilityMaskChangedKHR" parentstruct="XrEventDataBaseHeader">
<member values="XR_TYPE_EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSession</type> <name>session</name></member>
<member><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></member>
<member><type>uint32_t</type> <name>viewIndex</name></member>
</type>
<type category="struct" name="XrViewConfigurationProperties">
<member values="XR_TYPE_VIEW_CONFIGURATION_PROPERTIES"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></member>
<member><type>XrBool32</type> <name>fovMutable</name></member>
</type>
<type category="struct" name="XrActionStateBoolean">
<member values="XR_TYPE_ACTION_STATE_BOOLEAN"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>currentState</name></member>
<member><type>XrBool32</type> <name>changedSinceLastSync</name></member>
<member><type>XrTime</type> <name>lastChangeTime</name></member>
<member><type>XrBool32</type> <name>isActive</name></member>
</type>
<type category="struct" name="XrActionStateFloat">
<member values="XR_TYPE_ACTION_STATE_FLOAT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>float</type> <name>currentState</name></member>
<member><type>XrBool32</type> <name>changedSinceLastSync</name></member>
<member><type>XrTime</type> <name>lastChangeTime</name></member>
<member><type>XrBool32</type> <name>isActive</name></member>
</type>
<type category="struct" name="XrActionStateVector2f">
<member values="XR_TYPE_ACTION_STATE_VECTOR2F"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrVector2f</type> <name>currentState</name></member>
<member><type>XrBool32</type> <name>changedSinceLastSync</name></member>
<member><type>XrTime</type> <name>lastChangeTime</name></member>
<member><type>XrBool32</type> <name>isActive</name></member>
</type>
<type category="struct" name="XrActionStatePose">
<member values="XR_TYPE_ACTION_STATE_POSE"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>isActive</name></member>
</type>
<type category="struct" name="XrActionStateGetInfo">
<member values="XR_TYPE_ACTION_STATE_GET_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrAction</type> <name>action</name></member>
<member optional="true"><type>XrPath</type> <name>subactionPath</name></member>
</type>
<type category="struct" name="XrHapticActionInfo">
<member values="XR_TYPE_HAPTIC_ACTION_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrAction</type> <name>action</name></member>
<member optional="true"><type>XrPath</type> <name>subactionPath</name></member>
</type>
<type category="struct" name="XrActionSetCreateInfo">
<member values="XR_TYPE_ACTION_SET_CREATE_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>char</type> <name>actionSetName</name>[<enum>XR_MAX_ACTION_SET_NAME_SIZE</enum>]</member>
<member><type>char</type> <name>localizedActionSetName</name>[<enum>XR_MAX_LOCALIZED_ACTION_SET_NAME_SIZE</enum>]</member>
<member><type>uint32_t</type> <name>priority</name></member>
</type>
<type category="struct" name="XrActionSuggestedBinding">
<member><type>XrAction</type> <name>action</name></member>
<member><type>XrPath</type> <name>binding</name></member>
</type>
<type category="struct" name="XrInteractionProfileSuggestedBinding">
<member values="XR_TYPE_INTERACTION_PROFILE_SUGGESTED_BINDING"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrPath</type> <name>interactionProfile</name></member>
<member><type>uint32_t</type> <name>countSuggestedBindings</name></member>
<member len="countSuggestedBindings">const <type>XrActionSuggestedBinding</type>* <name>suggestedBindings</name></member>
</type>
<type category="struct" name="XrActiveActionSet">
<member><type>XrActionSet</type> <name>actionSet</name></member>
<member><type>XrPath</type> <name>subactionPath</name></member>
</type>
<type category="struct" name="XrSessionActionSetsAttachInfo">
<member values="XR_TYPE_SESSION_ACTION_SETS_ATTACH_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>countActionSets</name></member>
<member len="countActionSets">const <type>XrActionSet</type>* <name>actionSets</name></member>
</type>
<type category="struct" name="XrActionsSyncInfo">
<member values="XR_TYPE_ACTIONS_SYNC_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>countActiveActionSets</name></member>
<member optional="true" len="countActiveActionSets">const <type>XrActiveActionSet</type>* <name>activeActionSets</name></member>
</type>
<type category="struct" name="XrBoundSourcesForActionEnumerateInfo">
<member values="XR_TYPE_BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrAction</type> <name>action</name></member>
</type>
<type category="struct" name="XrInputSourceLocalizedNameGetInfo">
<member values="XR_TYPE_INPUT_SOURCE_LOCALIZED_NAME_GET_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrPath</type> <name>sourcePath</name></member>
<member><type>XrInputSourceLocalizedNameFlags</type> <name>whichComponents</name></member>
</type>
<type category="struct" name="XrEventDataInteractionProfileChanged" parentstruct="XrEventDataBaseHeader">
<member values="XR_TYPE_EVENT_DATA_INTERACTION_PROFILE_CHANGED"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSession</type> <name>session</name></member>
</type>
<type category="struct" name="XrInteractionProfileState">
<member values="XR_TYPE_INTERACTION_PROFILE_STATE"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrPath</type> <name>interactionProfile</name></member>
</type>
<type category="struct" name="XrActionCreateInfo">
<member values="XR_TYPE_ACTION_CREATE_INFO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>char</type> <name>actionName</name>[<enum>XR_MAX_ACTION_NAME_SIZE</enum>]</member>
<member><type>XrActionType</type> <name>actionType</name></member>
<member optional="true"><type>uint32_t</type> <name>countSubactionPaths</name></member>
<member len="countSubactionPaths" optional="true">const <type>XrPath</type>* <name>subactionPaths</name></member>
<member><type>char</type> <name>localizedActionName</name>[<enum>XR_MAX_LOCALIZED_ACTION_NAME_SIZE</enum>]</member>
</type>
<type category="struct" name="XrInstanceCreateInfoAndroidKHR" structextends="XrInstanceCreateInfo">
<member values="XR_TYPE_INSTANCE_CREATE_INFO_ANDROID_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>void</type>* <name>applicationVM</name></member>
<member><type>void</type>* <name>applicationActivity</name></member>
</type>
<type category="struct" name="XrVulkanSwapchainFormatListCreateInfoKHR">
<member values="XR_TYPE_VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>viewFormatCount</name></member>
<member len="viewFormatCount">const <type>VkFormat</type>* <name>viewFormats</name></member>
</type>
<type category="struct" name="XrDebugUtilsObjectNameInfoEXT">
<member values="XR_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrObjectType</type> <name>objectType</name></member>
<member><type>uint64_t</type> <name>objectHandle</name></member>
<member optional="true" len="null-terminated">const <type>char</type>* <name>objectName</name></member>
</type>
<type category="struct" name="XrDebugUtilsLabelEXT">
<member values="XR_TYPE_DEBUG_UTILS_LABEL_EXT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member len="null-terminated">const <type>char</type>* <name>labelName</name></member>
</type>
<type category="struct" name="XrDebugUtilsMessengerCallbackDataEXT">
<member values="XR_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member len="null-terminated">const <type>char</type>* <name>messageId</name></member>
<member len="null-terminated">const <type>char</type>* <name>functionName</name></member>
<member len="null-terminated">const <type>char</type>* <name>message</name></member>
<member optional="true"><type>uint32_t</type> <name>objectCount</name></member>
<member noautovalidity="true" optional="true" len="objectCount"><type>XrDebugUtilsObjectNameInfoEXT</type>* <name>objects</name></member>
<member optional="true"><type>uint32_t</type> <name>sessionLabelCount</name></member>
<member noautovalidity="true" optional="true" len="sessionLabelCount"><type>XrDebugUtilsLabelEXT</type>* <name>sessionLabels</name></member>
</type>
<type category="struct" name="XrDebugUtilsMessengerCreateInfoEXT" structextends="XrInstanceCreateInfo">
<member values="XR_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrDebugUtilsMessageSeverityFlagsEXT</type> <name>messageSeverities</name></member>
<member><type>XrDebugUtilsMessageTypeFlagsEXT</type> <name>messageTypes</name></member>
<member><type>PFN_xrDebugUtilsMessengerCallbackEXT</type> <name>userCallback</name></member>
<member optional="true"><type>void</type>* <name>userData</name></member>
</type>
<!-- struct types for XR_KHR_visibility_mask -->
<type category="struct" name="XrVisibilityMaskKHR">
<member values="XR_TYPE_VISIBILITY_MASK_KHR"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>vertexCapacityInput</name></member>
<member optional="true"><type>uint32_t</type> <name>vertexCountOutput</name></member>
<member optional="true" len="vertexCapacityInput"><type>XrVector2f</type>* <name>vertices</name></member>
<member optional="true"><type>uint32_t</type> <name>indexCapacityInput</name></member>
<member optional="true"><type>uint32_t</type> <name>indexCountOutput</name></member>
<member optional="true" len="indexCapacityInput"><type>uint32_t</type>* <name>indices</name></member>
</type>
<type category="struct" name="XrGraphicsRequirementsOpenGLKHR">
<member values="XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_KHR"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrVersion</type> <name>minApiVersionSupported</name></member>
<member><type>XrVersion</type> <name>maxApiVersionSupported</name></member>
</type>
<type category="struct" name="XrGraphicsRequirementsOpenGLESKHR">
<member values="XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrVersion</type> <name>minApiVersionSupported</name></member>
<member><type>XrVersion</type> <name>maxApiVersionSupported</name></member>
</type>
<type category="struct" name="XrGraphicsRequirementsVulkanKHR">
<member values="XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrVersion</type> <name>minApiVersionSupported</name></member>
<member><type>XrVersion</type> <name>maxApiVersionSupported</name></member>
</type>
<type category="struct" name="XrGraphicsRequirementsD3D11KHR">
<member values="XR_TYPE_GRAPHICS_REQUIREMENTS_D3D11_KHR"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>LUID</type> <name>adapterLuid</name></member>
<member><type>D3D_FEATURE_LEVEL</type> <name>minFeatureLevel</name></member>
</type>
<type category="struct" name="XrGraphicsRequirementsD3D12KHR">
<member values="XR_TYPE_GRAPHICS_REQUIREMENTS_D3D12_KHR"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>LUID</type> <name>adapterLuid</name></member>
<member><type>D3D_FEATURE_LEVEL</type> <name>minFeatureLevel</name></member>
</type>
<!-- XR_KHR_vulkan_enable2 structs -->
<type category="struct" name="XrVulkanInstanceCreateInfoKHR">
<member values="XR_TYPE_VULKAN_INSTANCE_CREATE_INFO_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSystemId</type> <name>systemId</name></member>
<member optional="true"><type>XrVulkanInstanceCreateFlagsKHR</type> <name>createFlags</name></member>
<member><type>PFN_vkGetInstanceProcAddr</type> <name>pfnGetInstanceProcAddr</name></member>
<member>const <type>VkInstanceCreateInfo</type>* <name>vulkanCreateInfo</name></member>
<member optional="true">const <type>VkAllocationCallbacks</type>* <name>vulkanAllocator</name></member>
</type>
<type category="struct" name="XrVulkanDeviceCreateInfoKHR">
<member values="XR_TYPE_VULKAN_DEVICE_CREATE_INFO_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSystemId</type> <name>systemId</name></member>
<member optional="true"><type>XrVulkanDeviceCreateFlagsKHR</type> <name>createFlags</name></member>
<member><type>PFN_vkGetInstanceProcAddr</type> <name>pfnGetInstanceProcAddr</name></member>
<member><type>VkPhysicalDevice</type> <name>vulkanPhysicalDevice</name></member>
<member>const <type>VkDeviceCreateInfo</type>* <name>vulkanCreateInfo</name></member>
<member optional="true">const <type>VkAllocationCallbacks</type>* <name>vulkanAllocator</name></member>
</type>
<type category="struct" name="XrGraphicsBindingVulkan2KHR" alias="XrGraphicsBindingVulkanKHR"/>
<type category="struct" name="XrVulkanGraphicsDeviceGetInfoKHR">
<member values="XR_TYPE_VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSystemId</type> <name>systemId</name></member>
<member><type>VkInstance</type> <name>vulkanInstance</name></member>
</type>
<type category="struct" name="XrSwapchainImageVulkan2KHR" alias="XrSwapchainImageVulkanKHR"/>
<type category="struct" name="XrGraphicsRequirementsVulkan2KHR" alias="XrGraphicsRequirementsVulkanKHR"/>
<!-- XR_EXTX_overlay structs -->
<type category="struct" name="XrSessionCreateInfoOverlayEXTX" structextends="XrSessionCreateInfo">
<member values="XR_TYPE_SESSION_CREATE_INFO_OVERLAY_EXTX"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrOverlaySessionCreateFlagsEXTX</type> <name>createFlags</name></member>
<member><type>uint32_t</type> <name>sessionLayersPlacement</name></member>
</type>
<type category="struct" name="XrEventDataMainSessionVisibilityChangedEXTX" parentstruct="XrEventDataBaseHeader">
<member values="XR_TYPE_EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>visible</name></member>
<member><type>XrOverlayMainSessionFlagsEXTX</type> <name>flags</name></member>
</type>
<!-- XR_FB_display_refresh_rate structs -->
<type category="struct" name="XrEventDataDisplayRefreshRateChangedFB" parentstruct="XrEventDataBaseHeader">
<member values="XR_TYPE_EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>float</type> <name>fromDisplayRefreshRate</name></member>
<member><type>float</type> <name>toDisplayRefreshRate</name></member>
</type>
<!-- struct types for XR_EXT_view_configuration_depth_range -->
<type category="struct" name="XrViewConfigurationDepthRangeEXT" structextends="XrViewConfigurationView">
<member values="XR_TYPE_VIEW_CONFIGURATION_DEPTH_RANGE_EXT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>float</type> <name>recommendedNearZ</name></member>
<member><type>float</type> <name>minNearZ</name></member>
<member><type>float</type> <name>recommendedFarZ</name></member>
<member><type>float</type> <name>maxFarZ</name></member>
</type>
<!-- struct types for XR_EPIC_view_configuration_fov -->
<type category="struct" name="XrViewConfigurationViewFovEPIC" structextends="XrViewConfigurationView">
<member values="XR_TYPE_VIEW_CONFIGURATION_VIEW_FOV_EPIC"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrFovf</type> <name>recommendedFov</name></member>
<member><type>XrFovf</type> <name>maxMutableFov</name></member>
</type>
<!-- struct types for XR_VALVE_analog_threshold -->
<type category="struct" name="XrInteractionProfileAnalogThresholdVALVE" structextends="XrInteractionProfileSuggestedBinding">
<member values="XR_TYPE_INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrAction</type> <name>action</name></member>
<member><type>XrPath</type> <name>binding</name></member>
<member><type>float</type> <name>onThreshold</name></member>
<member><type>float</type> <name>offThreshold</name></member>
<member optional="true">const <type>XrHapticBaseHeader</type>* <name>onHaptic</name></member>
<member optional="true">const <type>XrHapticBaseHeader</type>* <name>offHaptic</name></member>
</type>
<!-- struct types for XR_KHR_binding_modification -->
<type category="struct" name="XrBindingModificationsKHR" structextends="XrInteractionProfileSuggestedBinding">
<member values="XR_TYPE_BINDING_MODIFICATIONS_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>bindingModificationCount</name></member>
<member optional="true" len="bindingModificationCount">const <type>XrBindingModificationBaseHeaderKHR</type>* const* <name>bindingModifications</name></member>
</type>
<type category="struct" name="XrBindingModificationBaseHeaderKHR">
<member noautovalidity="true"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
</type>
<!-- The PFN_xrVoidFunction type are used by XrGetInstanceProcAddr below -->
<type category="funcpointer">typedef void (XRAPI_PTR *<name>PFN_xrVoidFunction</name>)(void);</type>
<!-- The PFN_xrDebugUtilsMessengerCallbackEXT type are used by the XR_EXT_debug_utils extension -->
<type category="funcpointer" requires="XrDebugUtilsMessengerCallbackDataEXT">typedef XrBool32 (XRAPI_PTR *<name>PFN_xrDebugUtilsMessengerCallbackEXT</name>)(
<type>XrDebugUtilsMessageSeverityFlagsEXT</type> messageSeverity,
<type>XrDebugUtilsMessageTypeFlagsEXT</type> messageTypes,
const <type>XrDebugUtilsMessengerCallbackDataEXT</type>* callbackData,
<type>void</type>* userData);
</type>
<!-- types for XR_EXT_eye_gaze_interaction -->
<type category="struct" name="XrSystemEyeGazeInteractionPropertiesEXT" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_EYE_GAZE_INTERACTION_PROPERTIES_EXT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsEyeGazeInteraction</name></member>
</type>
<type category="struct" name="XrEyeGazeSampleTimeEXT" structextends="XrSpaceLocation">
<member values="XR_TYPE_EYE_GAZE_SAMPLE_TIME_EXT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrTime</type> <name>time</name></member>
</type>
<!-- types for XR_MSFT_spatial_anchor -->
<type category="struct" name="XrSpatialAnchorCreateInfoMSFT">
<member values="XR_TYPE_SPATIAL_ANCHOR_CREATE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSpace</type> <name>space</name></member>
<member><type>XrPosef</type> <name>pose</name></member>
<member><type>XrTime</type> <name>time</name></member>
</type>
<type category="struct" name="XrSpatialAnchorSpaceCreateInfoMSFT">
<member values="XR_TYPE_SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSpatialAnchorMSFT</type> <name>anchor</name></member>
<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>
<member>const <type>void</type>* <name>next</name></member>
<member><type>PFNEGLGETPROCADDRESSPROC</type> <name>getProcAddress</name></member>
<member><type>EGLDisplay</type> <name>display</name></member>
<member><type>EGLConfig</type> <name>config</name></member>
<member><type>EGLContext</type> <name>context</name></member>
</type>
<!-- types for XR_MSFT_spatial_graph_bridge -->
<type category="struct" name="XrSpatialGraphNodeSpaceCreateInfoMSFT">
<member values="XR_TYPE_SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSpatialGraphNodeTypeMSFT</type> <name>nodeType</name></member>
<member><type>uint8_t</type> <name>nodeId</name>[16]</member>
<member><type>XrPosef</type> <name>pose</name></member>
</type>
<!-- XR_EXT_hand_tracking -->
<type name="XrHandEXT" category="enum"/>
<type name="XrHandJointEXT" category="enum"/>
<type name="XrHandJointSetEXT" category="enum"/>
<type category="struct" name="XrSystemHandTrackingPropertiesEXT" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_HAND_TRACKING_PROPERTIES_EXT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsHandTracking</name></member>
</type>
<type category="struct" name="XrHandTrackerCreateInfoEXT">
<member values="XR_TYPE_HAND_TRACKER_CREATE_INFO_EXT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member> <!-- Pointer to next structure -->
<member><type>XrHandEXT</type> <name>hand</name></member>
<member><type>XrHandJointSetEXT</type> <name>handJointSet</name></member>
</type>
<type category="struct" name="XrHandJointsLocateInfoEXT">
<member values="XR_TYPE_HAND_JOINTS_LOCATE_INFO_EXT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSpace</type> <name>baseSpace</name></member>
<member><type>XrTime</type> <name>time</name></member>
</type>
<type category="struct" name="XrHandJointLocationEXT">
<member optional="true"><type>XrSpaceLocationFlags</type> <name>locationFlags</name></member>
<member><type>XrPosef</type> <name>pose</name></member>
<member><type>float</type> <name>radius</name></member>
</type>
<type category="struct" name="XrHandJointVelocityEXT">
<member><type>XrSpaceVelocityFlags</type> <name>velocityFlags</name></member>
<member><type>XrVector3f</type> <name>linearVelocity</name></member>
<member><type>XrVector3f</type> <name>angularVelocity</name></member>
</type>
<type category="struct" name="XrHandJointLocationsEXT">
<member values="XR_TYPE_HAND_JOINT_LOCATIONS_EXT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>isActive</name></member>
<member><type>uint32_t</type> <name>jointCount</name></member>
<member len="jointCount"><type>XrHandJointLocationEXT</type>* <name>jointLocations</name></member>
</type>
<type category="struct" name="XrHandJointVelocitiesEXT" structextends="XrHandJointLocationsEXT">
<member values="XR_TYPE_HAND_JOINT_VELOCITIES_EXT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>jointCount</name></member>
<member len="jointCount"><type>XrHandJointVelocityEXT</type>* <name>jointVelocities</name></member>
</type>
<!-- XR_EXT_controller_hand_joints_motion_range -->
<type name="XrHandJointsMotionRangeEXT" category="enum"/>
<type category="struct" name="XrHandJointsMotionRangeInfoEXT" structextends="XrHandJointsLocateInfoEXT">
<member values="XR_TYPE_HAND_JOINTS_MOTION_RANGE_INFO_EXT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrHandJointsMotionRangeEXT</type> <name>handJointsMotionRange</name></member>
</type>
<!-- XR_MSFT_hand_tracking_mesh -->
<type name="XrHandPoseTypeMSFT" category="enum"/>
<type category="struct" name="XrHandMeshSpaceCreateInfoMSFT">
<member values="XR_TYPE_HAND_MESH_SPACE_CREATE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrHandPoseTypeMSFT</type> <name>handPoseType</name></member>
<member><type>XrPosef</type> <name>poseInHandMeshSpace</name></member>
</type>
<type category="struct" name="XrHandMeshUpdateInfoMSFT">
<member values="XR_TYPE_HAND_MESH_UPDATE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrTime</type> <name>time</name></member>
<member><type>XrHandPoseTypeMSFT</type> <name>handPoseType</name></member>
</type>
<type category="struct" name="XrHandMeshMSFT">
<member values="XR_TYPE_HAND_MESH_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>isActive</name></member>
<member><type>XrBool32</type> <name>indexBufferChanged</name></member>
<member><type>XrBool32</type> <name>vertexBufferChanged</name></member>
<member><type>XrHandMeshIndexBufferMSFT</type> <name>indexBuffer</name></member>
<member><type>XrHandMeshVertexBufferMSFT</type> <name>vertexBuffer</name></member>
</type>
<type category="struct" name="XrHandMeshIndexBufferMSFT">
<member optional="true"><type>uint32_t</type> <name>indexBufferKey</name></member>
<member><type>uint32_t</type> <name>indexCapacityInput</name></member>
<member optional="true"><type>uint32_t</type> <name>indexCountOutput</name></member>
<member len="indexCapacityInput"><type>uint32_t</type>* <name>indices</name></member>
</type>
<type category="struct" name="XrHandMeshVertexBufferMSFT">
<member optional="true"><type>XrTime</type> <name>vertexUpdateTime</name></member>
<member><type>uint32_t</type> <name>vertexCapacityInput</name></member>
<member optional="true"><type>uint32_t</type> <name>vertexCountOutput</name></member>
<member len="vertexCapacityInput"><type>XrHandMeshVertexMSFT</type>* <name>vertices</name></member>
</type>
<type category="struct" name="XrHandMeshVertexMSFT">
<member><type>XrVector3f</type> <name>position</name></member>
<member><type>XrVector3f</type> <name>normal</name></member>
</type>
<type category="struct" name="XrSystemHandTrackingMeshPropertiesMSFT" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_HAND_TRACKING_MESH_PROPERTIES_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsHandTrackingMesh</name></member>
<member><type>uint32_t</type> <name>maxHandMeshIndexCount</name></member>
<member><type>uint32_t</type> <name>maxHandMeshVertexCount</name></member>
</type>
<type category="struct" name="XrHandPoseTypeInfoMSFT" structextends="XrHandTrackerCreateInfoEXT">
<member values="XR_TYPE_HAND_POSE_TYPE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member> <!-- Pointer to next structure -->
<member><type>XrHandPoseTypeMSFT</type> <name>handPoseType</name></member>
</type>
<!-- XR_MSFT_secondary_view_configuration -->
<type category="struct" name="XrSecondaryViewConfigurationSessionBeginInfoMSFT" structextends="XrSessionBeginInfo">
<member values="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_SESSION_BEGIN_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>viewConfigurationCount</name></member>
<member len="viewConfigurationCount">const <type>XrViewConfigurationType</type>* <name>enabledViewConfigurationTypes</name></member>
</type>
<type category="struct" name="XrSecondaryViewConfigurationStateMSFT">
<member values="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_STATE_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></member>
<member><type>XrBool32</type> <name>active</name></member>
</type>
<type category="struct" name="XrSecondaryViewConfigurationFrameStateMSFT" structextends="XrFrameState">
<member values="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_FRAME_STATE_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>viewConfigurationCount</name></member>
<member len="viewConfigurationCount"><type>XrSecondaryViewConfigurationStateMSFT</type>* <name>viewConfigurationStates</name></member>
</type>
<type category="struct" name="XrSecondaryViewConfigurationFrameEndInfoMSFT" structextends="XrFrameEndInfo">
<member values="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_FRAME_END_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>viewConfigurationCount</name></member>
<member len="viewConfigurationCount">const <type>XrSecondaryViewConfigurationLayerInfoMSFT</type>* <name>viewConfigurationLayersInfo</name></member>
</type>
<type category="struct" name="XrSecondaryViewConfigurationLayerInfoMSFT">
<member values="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_LAYER_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></member>
<member><type>XrEnvironmentBlendMode</type> <name>environmentBlendMode</name></member>
<member><type>uint32_t</type> <name>layerCount</name></member>
<member len="layerCount">const <type>XrCompositionLayerBaseHeader</type>* const* <name>layers</name></member>
</type>
<type category="struct" name="XrSecondaryViewConfigurationSwapchainCreateInfoMSFT" structextends="XrSwapchainCreateInfo">
<member values="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_SWAPCHAIN_CREATE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></member>
</type>
<!-- XR_MSFT_holographic_window_attachment -->
<type category="struct" name="XrHolographicWindowAttachmentMSFT" structextends="XrSessionCreateInfo" protect="XR_USE_PLATFORM_WIN32">
<member values="XR_TYPE_HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>IUnknown</type>* <name>holographicSpace</name></member>
<member><type>IUnknown</type>* <name>coreWindow</name></member>
</type>
<!-- XR_FB_android_surface_swapchain_create -->
<type category="struct" name="XrAndroidSurfaceSwapchainCreateInfoFB" structextends="XrSwapchainCreateInfo" protect="XR_USE_PLATFORM_ANDROID">
<member values="XR_TYPE_ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrAndroidSurfaceSwapchainFlagsFB</type> <name>createFlags</name></member>
</type>
<!-- XR_FB_swapchain_update_state structs -->
<type category="struct" name="XrSwapchainStateBaseHeaderFB">
<member><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
</type>
<!-- XR_FB_swapchain_update_state_android_surface structs -->
<type category="struct" name="XrSwapchainStateAndroidSurfaceDimensionsFB" parentstruct="XrSwapchainStateBaseHeaderFB" protect="XR_USE_PLATFORM_ANDROID">
<member values="XR_TYPE_SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>width</name></member>
<member><type>uint32_t</type> <name>height</name></member>
</type>
<!-- XR_FB_swapchain_update_state_opengl_es structs -->
<type category="struct" name="XrSwapchainStateSamplerOpenGLESFB" parentstruct="XrSwapchainStateBaseHeaderFB" protect="XR_USE_GRAPHICS_API_OPENGL_ES">
<member values="XR_TYPE_SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>EGLenum</type> <name>minFilter</name></member>
<member><type>EGLenum</type> <name>magFilter</name></member>
<member><type>EGLenum</type> <name>wrapModeS</name></member>
<member><type>EGLenum</type> <name>wrapModeT</name></member>
<member><type>EGLenum</type> <name>swizzleRed</name></member>
<member><type>EGLenum</type> <name>swizzleGreen</name></member>
<member><type>EGLenum</type> <name>swizzleBlue</name></member>
<member><type>EGLenum</type> <name>swizzleAlpha</name></member>
<member><type>float</type> <name>maxAnisotropy</name></member>
<member><type>XrColor4f</type> <name>borderColor</name></member>
</type>
<!-- XR_FB_swapchain_update_state_vulkan structs -->
<type category="struct" name="XrSwapchainStateSamplerVulkanFB" parentstruct="XrSwapchainStateBaseHeaderFB" protect="XR_USE_GRAPHICS_API_VULKAN">
<member values="XR_TYPE_SWAPCHAIN_STATE_SAMPLER_VULKAN_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>VkFilter</type> <name>minFilter</name></member>
<member><type>VkFilter</type> <name>magFilter</name></member>
<member><type>VkSamplerMipmapMode</type> <name>mipmapMode</name></member>
<member><type>VkSamplerAddressMode</type> <name>wrapModeS</name></member>
<member><type>VkSamplerAddressMode</type> <name>wrapModeT</name></member>
<member><type>VkComponentSwizzle</type> <name>swizzleRed</name></member>
<member><type>VkComponentSwizzle</type> <name>swizzleGreen</name></member>
<member><type>VkComponentSwizzle</type> <name>swizzleBlue</name></member>
<member><type>VkComponentSwizzle</type> <name>swizzleAlpha</name></member>
<member><type>float</type> <name>maxAnisotropy</name></member>
<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>
<member>const <type>void</type>* <name>next</name></member>
</type>
<!-- XR_KHR_loader_init_android -->
<type category="struct" name="XrLoaderInitInfoAndroidKHR" parentstruct="XrLoaderInitInfoBaseHeaderKHR">
<member values="XR_TYPE_LOADER_INIT_INFO_ANDROID_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>void</type>* <name>applicationVM</name></member>
<member><type>void</type>* <name>applicationContext</name></member>
</type>
<!-- XR_KHR_composition_layer_equirect2 -->
<type category="struct" name="XrCompositionLayerEquirect2KHR" parentstruct="XrCompositionLayerBaseHeader">
<member values="XR_TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>XrCompositionLayerFlags</type> <name>layerFlags</name></member>
<member><type>XrSpace</type> <name>space</name></member>
<member><type>XrEyeVisibility</type> <name>eyeVisibility</name></member>
<member><type>XrSwapchainSubImage</type> <name>subImage</name></member>
<member><type>XrPosef</type> <name>pose</name></member>
<member><type>float</type> <name>radius</name></member>
<member><type>float</type> <name>centralHorizontalAngle</name></member>
<member><type>float</type> <name>upperVerticalAngle</name></member>
<member><type>float</type> <name>lowerVerticalAngle</name></member>
</type>
<!-- XR_KHR_composition_layer_color_scale_bias -->
<type category="struct" name="XrCompositionLayerColorScaleBiasKHR" structextends="XrCompositionLayerBaseHeader">
<member values="XR_TYPE_COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrColor4f</type> <name>colorScale</name></member>
<member><type>XrColor4f</type> <name>colorBias</name></member>
</type>
<!-- XR_MSFT_controller_model -->
<type category="struct" name="XrControllerModelKeyStateMSFT">
<member values="XR_TYPE_CONTROLLER_MODEL_KEY_STATE_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrControllerModelKeyMSFT</type> <name>modelKey</name></member>
</type>
<type category="struct" name="XrControllerModelNodePropertiesMSFT">
<member values="XR_TYPE_CONTROLLER_MODEL_NODE_PROPERTIES_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>char</type> <name>parentNodeName</name>[XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT]</member>
<member><type>char</type> <name>nodeName</name>[XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT]</member>
</type>
<type category="struct" name="XrControllerModelPropertiesMSFT">
<member values="XR_TYPE_CONTROLLER_MODEL_PROPERTIES_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>nodeCapacityInput</name></member>
<member optional="true"><type>uint32_t</type> <name>nodeCountOutput</name></member>
<member optional="true" len="nodeCapacityInput"><type>XrControllerModelNodePropertiesMSFT</type>* <name>nodeProperties</name></member>
</type>
<type category="struct" name="XrControllerModelNodeStateMSFT">
<member values="XR_TYPE_CONTROLLER_MODEL_NODE_STATE_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrPosef</type> <name>nodePose</name></member>
</type>
<type category="struct" name="XrControllerModelStateMSFT">
<member values="XR_TYPE_CONTROLLER_MODEL_STATE_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>nodeCapacityInput</name></member>
<member optional="true"><type>uint32_t</type> <name>nodeCountOutput</name></member>
<member optional="true" len="nodeCapacityInput"><type>XrControllerModelNodeStateMSFT</type>* <name>nodeStates</name></member>
</type>
<!-- XR_MSFT_scene_understanding -->
<type category="handle" parent="XrSession">
<type>XR_DEFINE_HANDLE</type>(<name>XrSceneObserverMSFT</name>)</type>
<type category="handle" parent="XrSceneObserverMSFT">
<type>XR_DEFINE_HANDLE</type>(<name>XrSceneMSFT</name>)</type>
<type name="XrSceneObjectTypeMSFT" category="enum"/>
<type name="XrScenePlaneAlignmentTypeMSFT" category="enum"/>
<type name="XrSceneComputeStateMSFT" category="enum"/>
<type name="XrSceneComputeFeatureMSFT" category="enum"/>
<type name="XrSceneComputeConsistencyMSFT" category="enum"/>
<type name="XrSceneComponentTypeMSFT" category="enum"/>
<type name="XrMeshComputeLodMSFT" category="enum"/>
<type category="struct" name="XrUuidMSFT">
<member><type>uint8_t</type> <name>bytes</name>[16]</member>
</type>
<type category="struct" name="XrSceneObserverCreateInfoMSFT">
<member values="XR_TYPE_SCENE_OBSERVER_CREATE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrSceneCreateInfoMSFT">
<member values="XR_TYPE_SCENE_CREATE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrNewSceneComputeInfoMSFT">
<member values="XR_TYPE_NEW_SCENE_COMPUTE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint32_t</type> <name>requestedFeatureCount</name></member>
<member len="requestedFeatureCount">const <type>XrSceneComputeFeatureMSFT</type>* <name>requestedFeatures</name></member>
<member><type>XrSceneComputeConsistencyMSFT</type> <name>consistency</name></member>
<member><type>XrSceneBoundsMSFT</type> <name>bounds</name></member>
</type>
<type category="struct" name="XrVisualMeshComputeLodInfoMSFT" structextends="XrNewSceneComputeInfoMSFT">
<member values="XR_TYPE_VISUAL_MESH_COMPUTE_LOD_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrMeshComputeLodMSFT</type> <name>lod</name></member>
</type>
<type category="struct" name="XrSceneSphereBoundMSFT">
<member><type>XrVector3f</type> <name>center</name></member>
<member><type>float</type> <name>radius</name></member>
</type>
<type category="struct" name="XrSceneOrientedBoxBoundMSFT">
<member><type>XrPosef</type> <name>pose</name></member>
<member><type>XrVector3f</type> <name>extents</name></member>
</type>
<type category="struct" name="XrSceneFrustumBoundMSFT">
<member><type>XrPosef</type> <name>pose</name></member>
<member><type>XrFovf</type> <name>fov</name></member>
<member><type>float</type> <name>farDistance</name></member>
</type>
<type category="struct" name="XrSceneBoundsMSFT">
<member><type>XrSpace</type> <name>space</name></member>
<member><type>XrTime</type> <name>time</name></member>
<member optional="true"><type>uint32_t</type> <name>sphereCount</name></member>
<member optional="true" len="sphereCount">const <type>XrSceneSphereBoundMSFT</type>* <name>spheres</name></member>
<member optional="true"><type>uint32_t</type> <name>boxCount</name></member>
<member optional="true" len="boxCount">const <type>XrSceneOrientedBoxBoundMSFT</type>* <name>boxes</name></member>
<member optional="true"><type>uint32_t</type> <name>frustumCount</name></member>
<member optional="true" len="frustumCount">const <type>XrSceneFrustumBoundMSFT</type>* <name>frustums</name></member>
</type>
<type category="struct" name="XrSceneComponentMSFT">
<member><type>XrSceneComponentTypeMSFT</type> <name>componentType</name></member>
<member><type>XrUuidMSFT</type> <name>id</name></member>
<member optional="true"><type>XrUuidMSFT</type> <name>parentId</name></member>
<member><type>XrTime</type> <name>updateTime</name></member>
</type>
<type category="struct" name="XrSceneComponentsMSFT">
<member values="XR_TYPE_SCENE_COMPONENTS_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>componentCapacityInput</name></member>
<member><type>uint32_t</type> <name>componentCountOutput</name></member>
<member optional="true" len="componentCapacityInput"><type>XrSceneComponentMSFT</type>* <name>components</name></member>
</type>
<type category="struct" name="XrSceneComponentsGetInfoMSFT">
<member values="XR_TYPE_SCENE_COMPONENTS_GET_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSceneComponentTypeMSFT</type> <name>componentType</name></member>
</type>
<type category="struct" name="XrSceneComponentLocationMSFT">
<member optional="true"><type>XrSpaceLocationFlags</type> <name>flags</name></member>
<member><type>XrPosef</type> <name>pose</name></member>
</type>
<type category="struct" name="XrSceneComponentLocationsMSFT">
<member values="XR_TYPE_SCENE_COMPONENT_LOCATIONS_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>locationCount</name></member>
<member optional="true" len="locationCount"><type>XrSceneComponentLocationMSFT</type>* <name>locations</name></member>
</type>
<type category="struct" name="XrSceneComponentsLocateInfoMSFT">
<member values="XR_TYPE_SCENE_COMPONENTS_LOCATE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrSpace</type> <name>baseSpace</name></member>
<member><type>XrTime</type> <name>time</name></member>
<member optional="true"><type>uint32_t</type> <name>componentIdCount</name></member>
<member optional="true" len="componentIdCount">const <type>XrUuidMSFT</type>* <name>componentIds</name></member>
</type>
<type category="struct" name="XrSceneObjectMSFT">
<member><type>XrSceneObjectTypeMSFT</type> <name>objectType</name></member>
</type>
<type category="struct" name="XrSceneObjectsMSFT" structextends="XrSceneComponentsMSFT">
<member values="XR_TYPE_SCENE_OBJECTS_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>sceneObjectCount</name></member>
<member optional="true" len="sceneObjectCount"><type>XrSceneObjectMSFT</type>* <name>sceneObjects</name></member>
</type>
<type category="struct" name="XrSceneComponentParentFilterInfoMSFT" structextends="XrSceneComponentsGetInfoMSFT">
<member values="XR_TYPE_SCENE_COMPONENT_PARENT_FILTER_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrUuidMSFT</type> <name>parentId</name></member>
</type>
<type category="struct" name="XrSceneObjectTypesFilterInfoMSFT" structextends="XrSceneComponentsGetInfoMSFT">
<member values="XR_TYPE_SCENE_OBJECT_TYPES_FILTER_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>objectTypeCount</name></member>
<member optional="true" len="objectTypeCount">const <type>XrSceneObjectTypeMSFT</type>* <name>objectTypes</name></member>
</type>
<type category="struct" name="XrScenePlaneMSFT">
<member><type>XrScenePlaneAlignmentTypeMSFT</type> <name>alignment</name></member>
<member><type>XrExtent2Df</type> <name>size</name></member>
<member><type>uint64_t</type> <name>meshBufferId</name></member>
<member><type>XrBool32</type> <name>supportsIndicesUint16</name></member>
</type>
<type category="struct" name="XrScenePlanesMSFT" structextends="XrSceneComponentsMSFT">
<member values="XR_TYPE_SCENE_PLANES_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>scenePlaneCount</name></member>
<member optional="true" len="scenePlaneCount"><type>XrScenePlaneMSFT</type>* <name>scenePlanes</name></member>
</type>
<type category="struct" name="XrScenePlaneAlignmentFilterInfoMSFT" structextends="XrSceneComponentsGetInfoMSFT">
<member values="XR_TYPE_SCENE_PLANE_ALIGNMENT_FILTER_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>alignmentCount</name></member>
<member optional="true" len="alignmentCount">const <type>XrScenePlaneAlignmentTypeMSFT</type>* <name>alignments</name></member>
</type>
<type category="struct" name="XrSceneMeshMSFT">
<member><type>uint64_t</type> <name>meshBufferId</name></member>
<member><type>XrBool32</type> <name>supportsIndicesUint16</name></member>
</type>
<type category="struct" name="XrSceneMeshesMSFT" structextends="XrSceneComponentsMSFT">
<member values="XR_TYPE_SCENE_MESHES_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>sceneMeshCount</name></member>
<member optional="true" len="sceneMeshCount"><type>XrSceneMeshMSFT</type>* <name>sceneMeshes</name></member>
</type>
<type category="struct" name="XrSceneMeshBuffersGetInfoMSFT">
<member values="XR_TYPE_SCENE_MESH_BUFFERS_GET_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>uint64_t</type> <name>meshBufferId</name></member>
</type>
<type category="struct" name="XrSceneMeshBuffersMSFT">
<member values="XR_TYPE_SCENE_MESH_BUFFERS_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
</type>
<type category="struct" name="XrSceneMeshVertexBufferMSFT">
<member values="XR_TYPE_SCENE_MESH_VERTEX_BUFFER_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>vertexCapacityInput</name></member>
<member><type>uint32_t</type> <name>vertexCountOutput</name></member>
<member optional="true" len="vertexCapacityInput"><type>XrVector3f</type>* <name>vertices</name></member>
</type>
<type category="struct" name="XrSceneMeshIndicesUint32MSFT">
<member values="XR_TYPE_SCENE_MESH_INDICES_UINT32_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>indexCapacityInput</name></member>
<member><type>uint32_t</type> <name>indexCountOutput</name></member>
<member optional="true" len="indexCapacityInput"><type>uint32_t</type>* <name>indices</name></member>
</type>
<type category="struct" name="XrSceneMeshIndicesUint16MSFT">
<member values="XR_TYPE_SCENE_MESH_INDICES_UINT16_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>indexCapacityInput</name></member>
<member><type>uint32_t</type> <name>indexCountOutput</name></member>
<member optional="true" len="indexCapacityInput"><type>uint16_t</type>* <name>indices</name></member>
</type>
<!-- XR_MSFT_scene_understanding_serialization -->
<type category="struct" name="XrSerializedSceneFragmentDataGetInfoMSFT">
<member values="XR_TYPE_SERIALIZED_SCENE_FRAGMENT_DATA_GET_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrUuidMSFT</type> <name>sceneFragmentId</name></member>
</type>
<type category="struct" name="XrDeserializeSceneFragmentMSFT">
<member optional="true"><type>uint32_t</type> <name>bufferSize</name></member>
<member optional="true" len="bufferSize">const <type>uint8_t</type>* <name>buffer</name></member>
</type>
<type category="struct" name="XrSceneDeserializeInfoMSFT">
<member values="XR_TYPE_SCENE_DESERIALIZE_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member optional="true"><type>uint32_t</type> <name>fragmentCount</name></member>
<member optional="true" len="fragmentCount">const <type>XrDeserializeSceneFragmentMSFT</type>* <name>fragments</name></member>
</type>
<!-- XR_FB_color_space structs -->
<type name="XrColorSpaceFB" category="enum"/>
<type category="struct" name="XrSystemColorSpacePropertiesFB">
<member values="XR_TYPE_SYSTEM_COLOR_SPACE_PROPERTIES_FB"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<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>
<member>const <type>void</type>* <name>next</name></member>
<member><type>float</type> <name>depthTestRangeNearZ</name></member>
<member><type>float</type> <name>depthTestRangeFarZ</name></member>
</type>
<!-- XR_VARJO_foveated_rendering -->
<type category="struct" name="XrViewLocateFoveatedRenderingVARJO" structextends="XrViewLocateInfo">
<member values="XR_TYPE_VIEW_LOCATE_FOVEATED_RENDERING_VARJO"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>foveatedRenderingActive</name></member>
</type>
<type category="struct" name="XrFoveatedViewConfigurationViewVARJO" structextends="XrViewConfigurationView">
<member values="XR_TYPE_FOVEATED_VIEW_CONFIGURATION_VIEW_VARJO"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>foveatedRenderingActive</name></member>
</type>
<type category="struct" name="XrSystemFoveatedRenderingPropertiesVARJO" structextends="XrSystemProperties">
<member values="XR_TYPE_SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO"><type>XrStructureType</type> <name>type</name></member>
<member><type>void</type>* <name>next</name></member>
<member><type>XrBool32</type> <name>supportsFoveatedRendering</name></member>
</type>
<!-- XR_MSFT_composition_layer_reprojection -->
<type name="XrReprojectionModeMSFT" category="enum"/>
<type category="struct" name="XrCompositionLayerReprojectionInfoMSFT" structextends="XrCompositionLayerProjection">
<member values="XR_TYPE_COMPOSITION_LAYER_REPROJECTION_INFO_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrReprojectionModeMSFT</type> <name>reprojectionMode</name></member>
</type>
<type category="struct" name="XrCompositionLayerReprojectionPlaneOverrideMSFT" structextends="XrCompositionLayerProjection">
<member values="XR_TYPE_COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT"><type>XrStructureType</type> <name>type</name></member>
<member>const <type>void</type>* <name>next</name></member>
<member><type>XrVector3f</type> <name>position</name></member>
<member><type>XrVector3f</type> <name>normal</name></member>
<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. -->
<enums name="API Constants" comment="Misc. hardcoded constants - not an enumerated type">
<!-- This is part of the header boilerplate -->
<enum value="1" name="XR_TRUE"/>
<enum value="0" name="XR_FALSE"/>
<enum value="128" name="XR_MAX_EXTENSION_NAME_SIZE"/>
<enum value="256" name="XR_MAX_API_LAYER_NAME_SIZE"/>
<enum value="256" name="XR_MAX_API_LAYER_DESCRIPTION_SIZE"/>
<enum value="256" name="XR_MAX_SYSTEM_NAME_SIZE"/>
<enum value="128" name="XR_MAX_APPLICATION_NAME_SIZE"/>
<enum value="128" name="XR_MAX_ENGINE_NAME_SIZE"/>
<enum value="128" name="XR_MAX_RUNTIME_NAME_SIZE"/>
<enum value="256" name="XR_MAX_PATH_LENGTH"/>
<enum value="64" name="XR_MAX_STRUCTURE_NAME_SIZE"/>
<enum value="64" name="XR_MAX_RESULT_STRING_SIZE"/>
<enum value="32" name="XR_MAX_GRAPHICS_APIS_SUPPORTED"/>
<enum value="64" name="XR_MAX_ACTION_SET_NAME_SIZE"/>
<enum value="64" name="XR_MAX_ACTION_NAME_SIZE"/>
<enum value="128" name="XR_MAX_LOCALIZED_ACTION_SET_NAME_SIZE"/>
<enum value="128" name="XR_MAX_LOCALIZED_ACTION_NAME_SIZE"/>
<enum value="16" name="XR_MIN_COMPOSITION_LAYERS_SUPPORTED"/>
</enums>
<!-- Unlike OpenGL, most tokens in OpenXR are actual typed enumerants in
their own numeric namespaces. The "name" attribute is the C enum
type name, and is pulled in from a <type> definition above
(slightly clunky, but retains the type / enum distinction). "type"
attributes of "enum" or "bitmask" indicate that these values should
be generated inside an appropriate definition. -->
<enums name="XrStructureType" type="enum" comment="Structure type enumerant">
<enum value="0" name="XR_TYPE_UNKNOWN"/>
<enum value="1" name="XR_TYPE_API_LAYER_PROPERTIES"/>
<enum value="2" name="XR_TYPE_EXTENSION_PROPERTIES"/>
<enum value="3" name="XR_TYPE_INSTANCE_CREATE_INFO"/>
<enum value="4" name="XR_TYPE_SYSTEM_GET_INFO"/>
<enum value="5" name="XR_TYPE_SYSTEM_PROPERTIES"/>
<enum value="6" name="XR_TYPE_VIEW_LOCATE_INFO"/>
<enum value="7" name="XR_TYPE_VIEW"/>
<enum value="8" name="XR_TYPE_SESSION_CREATE_INFO"/>
<enum value="9" name="XR_TYPE_SWAPCHAIN_CREATE_INFO"/>
<enum value="10" name="XR_TYPE_SESSION_BEGIN_INFO"/>
<enum value="11" name="XR_TYPE_VIEW_STATE"/>
<enum value="12" name="XR_TYPE_FRAME_END_INFO"/>
<enum value="13" name="XR_TYPE_HAPTIC_VIBRATION"/>
<enum value="16" name="XR_TYPE_EVENT_DATA_BUFFER"/>
<enum value="17" name="XR_TYPE_EVENT_DATA_INSTANCE_LOSS_PENDING"/>
<enum value="18" name="XR_TYPE_EVENT_DATA_SESSION_STATE_CHANGED"/>
<enum value="23" name="XR_TYPE_ACTION_STATE_BOOLEAN"/>
<enum value="24" name="XR_TYPE_ACTION_STATE_FLOAT"/>
<enum value="25" name="XR_TYPE_ACTION_STATE_VECTOR2F"/>
<enum value="27" name="XR_TYPE_ACTION_STATE_POSE"/>
<enum value="28" name="XR_TYPE_ACTION_SET_CREATE_INFO"/>
<enum value="29" name="XR_TYPE_ACTION_CREATE_INFO"/>
<enum value="32" name="XR_TYPE_INSTANCE_PROPERTIES"/>
<enum value="33" name="XR_TYPE_FRAME_WAIT_INFO"/>
<enum value="35" name="XR_TYPE_COMPOSITION_LAYER_PROJECTION"/>
<enum value="36" name="XR_TYPE_COMPOSITION_LAYER_QUAD"/>
<enum value="37" name="XR_TYPE_REFERENCE_SPACE_CREATE_INFO"/>
<enum value="38" name="XR_TYPE_ACTION_SPACE_CREATE_INFO"/>
<enum value="40" name="XR_TYPE_EVENT_DATA_REFERENCE_SPACE_CHANGE_PENDING"/>
<enum value="41" name="XR_TYPE_VIEW_CONFIGURATION_VIEW"/>
<enum value="42" name="XR_TYPE_SPACE_LOCATION"/>
<enum value="43" name="XR_TYPE_SPACE_VELOCITY"/>
<enum value="44" name="XR_TYPE_FRAME_STATE"/>
<enum value="45" name="XR_TYPE_VIEW_CONFIGURATION_PROPERTIES"/>
<enum value="46" name="XR_TYPE_FRAME_BEGIN_INFO"/>
<enum value="48" name="XR_TYPE_COMPOSITION_LAYER_PROJECTION_VIEW"/>
<enum value="49" name="XR_TYPE_EVENT_DATA_EVENTS_LOST"/>
<enum value="51" name="XR_TYPE_INTERACTION_PROFILE_SUGGESTED_BINDING"/>
<enum value="52" name="XR_TYPE_EVENT_DATA_INTERACTION_PROFILE_CHANGED"/>
<enum value="53" name="XR_TYPE_INTERACTION_PROFILE_STATE"/>
<enum value="55" name="XR_TYPE_SWAPCHAIN_IMAGE_ACQUIRE_INFO"/>
<enum value="56" name="XR_TYPE_SWAPCHAIN_IMAGE_WAIT_INFO"/>
<enum value="57" name="XR_TYPE_SWAPCHAIN_IMAGE_RELEASE_INFO"/>
<enum value="58" name="XR_TYPE_ACTION_STATE_GET_INFO"/>
<enum value="59" name="XR_TYPE_HAPTIC_ACTION_INFO"/>
<enum value="60" name="XR_TYPE_SESSION_ACTION_SETS_ATTACH_INFO"/>
<enum value="61" name="XR_TYPE_ACTIONS_SYNC_INFO"/>
<enum value="62" name="XR_TYPE_BOUND_SOURCES_FOR_ACTION_ENUMERATE_INFO"/>
<enum value="63" name="XR_TYPE_INPUT_SOURCE_LOCALIZED_NAME_GET_INFO"/>
</enums>
<enums name="XrResult" type="enum" comment="Error and return codes">
<!-- Return codes for successful operation execution (positive values) -->
<enum value="0" name="XR_SUCCESS" comment="Function successfully completed."/>
<enum value="1" name="XR_TIMEOUT_EXPIRED" comment="The specified timeout time occurred before the operation could complete."/>
<enum value="3" name="XR_SESSION_LOSS_PENDING" comment="The session will be lost soon."/>
<enum value="4" name="XR_EVENT_UNAVAILABLE" comment="No event was available."/>
<enum value="7" name="XR_SPACE_BOUNDS_UNAVAILABLE" comment="The space's bounds are not known at the moment."/>
<enum value="8" name="XR_SESSION_NOT_FOCUSED" comment="The session is not in the focused state."/>
<enum value="9" name="XR_FRAME_DISCARDED" comment="A frame has been discarded from composition."/>
<!-- Error codes (negative values) -->
<enum value="-1" name="XR_ERROR_VALIDATION_FAILURE" comment="The function usage was invalid in some way."/>
<enum value="-2" name="XR_ERROR_RUNTIME_FAILURE" comment="The runtime failed to handle the function in an unexpected way that is not covered by another error result. "/>
<enum value="-3" name="XR_ERROR_OUT_OF_MEMORY" comment="A memory allocation has failed."/>
<enum value="-4" name="XR_ERROR_API_VERSION_UNSUPPORTED" comment="The runtime does not support the requested API version."/>
<enum value="-6" name="XR_ERROR_INITIALIZATION_FAILED" comment="Initialization of object could not be completed."/>
<enum value="-7" name="XR_ERROR_FUNCTION_UNSUPPORTED" comment="The requested function was not found or is otherwise unsupported."/>
<enum value="-8" name="XR_ERROR_FEATURE_UNSUPPORTED" comment="The requested feature is not supported."/>
<enum value="-9" name="XR_ERROR_EXTENSION_NOT_PRESENT" comment="A requested extension is not supported."/>
<enum value="-10" name="XR_ERROR_LIMIT_REACHED" comment="The runtime supports no more of the requested resource."/>
<enum value="-11" name="XR_ERROR_SIZE_INSUFFICIENT" comment="The supplied size was smaller than required."/>
<enum value="-12" name="XR_ERROR_HANDLE_INVALID" comment="A supplied object handle was invalid."/>
<enum value="-13" name="XR_ERROR_INSTANCE_LOST" comment="The slink:XrInstance was lost or could not be found. It will need to be destroyed and optionally recreated."/>
<enum value="-14" name="XR_ERROR_SESSION_RUNNING" comment="The session &lt;&lt;session_running, is already running&gt;&gt;."/>
<enum value="-16" name="XR_ERROR_SESSION_NOT_RUNNING" comment="The session &lt;&lt;session_not_running, is not yet running&gt;&gt;."/>
<enum value="-17" name="XR_ERROR_SESSION_LOST" comment="The slink:XrSession was lost. It will need to be destroyed and optionally recreated."/>
<enum value="-18" name="XR_ERROR_SYSTEM_INVALID" comment="The provided basetype:XrSystemId was invalid."/>
<enum value="-19" name="XR_ERROR_PATH_INVALID" comment="The provided basetype:XrPath was not valid."/>
<enum value="-20" name="XR_ERROR_PATH_COUNT_EXCEEDED" comment="The maximum number of supported semantic paths has been reached."/>
<enum value="-21" name="XR_ERROR_PATH_FORMAT_INVALID" comment="The semantic path character format is invalid."/>
<enum value="-22" name="XR_ERROR_PATH_UNSUPPORTED" comment="The semantic path is unsupported."/>
<enum value="-23" name="XR_ERROR_LAYER_INVALID" comment="The layer was NULL or otherwise invalid."/>
<enum value="-24" name="XR_ERROR_LAYER_LIMIT_EXCEEDED" comment="The number of specified layers is greater than the supported number."/>
<enum value="-25" name="XR_ERROR_SWAPCHAIN_RECT_INVALID" comment="The image rect was negatively sized or otherwise invalid."/>
<enum value="-26" name="XR_ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED" comment="The image format is not supported by the runtime or platform."/>
<enum value="-27" name="XR_ERROR_ACTION_TYPE_MISMATCH" comment="The API used to retrieve an action's state does not match the action's type."/>
<enum value="-28" name="XR_ERROR_SESSION_NOT_READY" comment="The session is not in the ready state."/>
<enum value="-29" name="XR_ERROR_SESSION_NOT_STOPPING" comment="The session is not in the stopping state."/>
<enum value="-30" name="XR_ERROR_TIME_INVALID" comment="The provided basetype:XrTime was zero, negative, or out of range."/>
<enum value="-31" name="XR_ERROR_REFERENCE_SPACE_UNSUPPORTED" comment="The specified reference space is not supported by the runtime or system."/>
<enum value="-32" name="XR_ERROR_FILE_ACCESS_ERROR" comment="The file could not be accessed."/>
<enum value="-33" name="XR_ERROR_FILE_CONTENTS_INVALID" comment="The file's contents were invalid."/>
<enum value="-34" name="XR_ERROR_FORM_FACTOR_UNSUPPORTED" comment="The specified form factor is not supported by the current runtime or platform."/>
<enum value="-35" name="XR_ERROR_FORM_FACTOR_UNAVAILABLE" comment="The specified form factor is supported, but the device is currently not available, e.g. not plugged in or powered off."/>
<enum value="-36" name="XR_ERROR_API_LAYER_NOT_PRESENT" comment="A requested API layer is not present or could not be loaded."/>
<enum value="-37" name="XR_ERROR_CALL_ORDER_INVALID" comment="The call was made without having made a previously required call."/>
<enum value="-38" name="XR_ERROR_GRAPHICS_DEVICE_INVALID" comment="The given graphics device is not in a valid state. The graphics device could be lost or initialized without meeting graphics requirements."/>
<enum value="-39" name="XR_ERROR_POSE_INVALID" comment="The supplied pose was invalid with respect to the requirements."/>
<enum value="-40" name="XR_ERROR_INDEX_OUT_OF_RANGE" comment="The supplied index was outside the range of valid indices."/>
<enum value="-41" name="XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED" comment="The specified view configuration type is not supported by the runtime or platform."/>
<enum value="-42" name="XR_ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED" comment="The specified environment blend mode is not supported by the runtime or platform."/>
<enum value="-44" name="XR_ERROR_NAME_DUPLICATED" comment="The name provided was a duplicate of an already-existing resource."/>
<enum value="-45" name="XR_ERROR_NAME_INVALID" comment="The name provided was invalid."/>
<enum value="-46" name="XR_ERROR_ACTIONSET_NOT_ATTACHED" comment="A referenced action set is not attached to the session."/>
<enum value="-47" name="XR_ERROR_ACTIONSETS_ALREADY_ATTACHED" comment="The session already has attached action sets."/>
<enum value="-48" name="XR_ERROR_LOCALIZED_NAME_DUPLICATED" comment="The localized name provided was a duplicate of an already-existing resource."/>
<enum value="-49" name="XR_ERROR_LOCALIZED_NAME_INVALID" comment="The localized name provided was invalid."/>
<enum value="-50" name="XR_ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING" comment="The fname:xrGetGraphicsRequirements* call was not made before calling fname:xrCreateSession."/>
<enum value="-51" name="XR_ERROR_RUNTIME_UNAVAILABLE" comment="The loader was unable to find or load a runtime."/>
<unused start="-100"/>
</enums>
<enums name="XrObjectType" type="enum" comment="Enums to track objects of various types">
<enum value="0" name="XR_OBJECT_TYPE_UNKNOWN"/>
<enum value="1" name="XR_OBJECT_TYPE_INSTANCE" comment="XrInstance"/>
<enum value="2" name="XR_OBJECT_TYPE_SESSION" comment="XrSession"/>
<enum value="3" name="XR_OBJECT_TYPE_SWAPCHAIN" comment="XrSwapchain"/>
<enum value="4" name="XR_OBJECT_TYPE_SPACE" comment="XrSpace"/>
<enum value="5" name="XR_OBJECT_TYPE_ACTION_SET" comment="XrActionSet"/>
<enum value="6" name="XR_OBJECT_TYPE_ACTION" comment="XrAction"/>
</enums>
<enums name="XrAndroidThreadTypeKHR" type="enum" comment="Android Thread Types">
<enum value="1" name="XR_ANDROID_THREAD_TYPE_APPLICATION_MAIN_KHR"/>
<enum value="2" name="XR_ANDROID_THREAD_TYPE_APPLICATION_WORKER_KHR"/>
<enum value="3" name="XR_ANDROID_THREAD_TYPE_RENDERER_MAIN_KHR"/>
<enum value="4" name="XR_ANDROID_THREAD_TYPE_RENDERER_WORKER_KHR"/>
</enums>
<enums name="XrEyeVisibility" type="enum" comment="eye visibility selector">
<enum value="0" name="XR_EYE_VISIBILITY_BOTH" comment="Display in both eyes."/>
<enum value="1" name="XR_EYE_VISIBILITY_LEFT" comment="Display in the left eye only."/>
<enum value="2" name="XR_EYE_VISIBILITY_RIGHT" comment="Display in the right eye only."/>
</enums>
<enums name="XrActionType" type="enum">
<enum value="1" name="XR_ACTION_TYPE_BOOLEAN_INPUT"/>
<enum value="2" name="XR_ACTION_TYPE_FLOAT_INPUT"/>
<enum value="3" name="XR_ACTION_TYPE_VECTOR2F_INPUT"/>
<enum value="4" name="XR_ACTION_TYPE_POSE_INPUT"/>
<enum value="100" name="XR_ACTION_TYPE_VIBRATION_OUTPUT"/>
</enums>
<enums name="XrReferenceSpaceType" type="enum">
<enum value="1" name="XR_REFERENCE_SPACE_TYPE_VIEW"/>
<enum value="2" name="XR_REFERENCE_SPACE_TYPE_LOCAL"/>
<enum value="3" name="XR_REFERENCE_SPACE_TYPE_STAGE"/>
</enums>
<enums name="XrFormFactor" type="enum">
<enum value="1" name="XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY"/>
<enum value="2" name="XR_FORM_FACTOR_HANDHELD_DISPLAY"/>
</enums>
<enums name="XrViewConfigurationType" type="enum">
<enum value="1" name="XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO"/>
<enum value="2" name="XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO"/>
</enums>
<enums name="XrEnvironmentBlendMode" type="enum">
<enum value="1" name="XR_ENVIRONMENT_BLEND_MODE_OPAQUE"/>
<enum value="2" name="XR_ENVIRONMENT_BLEND_MODE_ADDITIVE"/>
<enum value="3" name="XR_ENVIRONMENT_BLEND_MODE_ALPHA_BLEND"/>
</enums>
<enums name="XrSessionState" type="enum">
<enum value="0" name="XR_SESSION_STATE_UNKNOWN"/>
<enum value="1" name="XR_SESSION_STATE_IDLE"/>
<enum value="2" name="XR_SESSION_STATE_READY"/>
<enum value="3" name="XR_SESSION_STATE_SYNCHRONIZED"/>
<enum value="4" name="XR_SESSION_STATE_VISIBLE"/>
<enum value="5" name="XR_SESSION_STATE_FOCUSED"/>
<enum value="6" name="XR_SESSION_STATE_STOPPING"/>
<enum value="7" name="XR_SESSION_STATE_LOSS_PENDING"/>
<enum value="8" name="XR_SESSION_STATE_EXITING"/>
</enums>
<!--enums for Perf setting EXT-->
<enums name="XrPerfSettingsLevelEXT" type="enum">
<enum value="0" name="XR_PERF_SETTINGS_LEVEL_POWER_SAVINGS_EXT"
comment="Performance settings hint used by the application to indicate that it enters a non-XR
section (head-locked / static screen), during which power savings are to be prioritized"/>
<enum value="25" name="XR_PERF_SETTINGS_LEVEL_SUSTAINED_LOW_EXT"
comment="Performance settings hint used by the application to indicate that it enters a low
and stable complexity section, during which reducing power is more important than
occasional late rendering frames"/>
<enum value="50" name="XR_PERF_SETTINGS_LEVEL_SUSTAINED_HIGH_EXT"
comment="Performance settings hint used by the application to indicate that it enters
a high or dynamic complexity section, during which the XR Runtime strives for consistent
XR compositing and frame rendering within a thermally sustainable range"/>
<enum value="75" name="XR_PERF_SETTINGS_LEVEL_BOOST_EXT"
comment="Performance settings hint used by the application to indicate that the application enters
a section with very high complexity, during which the XR Runtime is allowed to step
up beyond the thermally sustainable range"/>
</enums>
<enums name="XrPerfSettingsDomainEXT" type="enum">
<enum value="1" name="XR_PERF_SETTINGS_DOMAIN_CPU_EXT" comment="Indicates that the performance settings or notification applies to CPU domain"/>
<enum value="2" name="XR_PERF_SETTINGS_DOMAIN_GPU_EXT" comment="Indicates that the performance settings or notification applies to GPU domain"/>
</enums>
<enums name="XrPerfSettingsSubDomainEXT" type="enum">
<enum value="1" name="XR_PERF_SETTINGS_SUB_DOMAIN_COMPOSITING_EXT" comment="Indicates that the performance notification originates from the COMPOSITING sub-domain"/>
<enum value="2" name="XR_PERF_SETTINGS_SUB_DOMAIN_RENDERING_EXT" comment="Indicates that the performance notification originates from the RENDERING sub-domain"/>
<enum value="3" name="XR_PERF_SETTINGS_SUB_DOMAIN_THERMAL_EXT" comment="Indicates that the performance notification originates from the THERMAL sub-domain"/>
</enums>
<enums name="XrPerfSettingsNotificationLevelEXT" type="enum">
<enum value="0" name="XR_PERF_SETTINGS_NOTIF_LEVEL_NORMAL_EXT"
comment="Notifies that the sub-domain has reached a level
where no further actions other than currently applied are necessary"/>
<enum value="25" name="XR_PERF_SETTINGS_NOTIF_LEVEL_WARNING_EXT"
comment="Notifies that the sub-domain has reached an early warning level
where the application should start proactive mitigation actions
with the goal to return to the ename:XR_PERF_NOTIF_LEVEL_NORMAL level"/>
<enum value="75" name="XR_PERF_SETTINGS_NOTIF_LEVEL_IMPAIRED_EXT"
comment="Notifies that the sub-domain has reached a critical
level with significant performance degradation.
The application should take drastic mitigation action"/>
</enums>
<!--enums for XR_KHR_visibility_mask -->
<enums name="XrVisibilityMaskTypeKHR" type="enum" comment="">
<enum value="1" name="XR_VISIBILITY_MASK_TYPE_HIDDEN_TRIANGLE_MESH_KHR" comment="exclusive mesh; indicates that which the viewer cannot see."/>
<enum value="2" name="XR_VISIBILITY_MASK_TYPE_VISIBLE_TRIANGLE_MESH_KHR" comment="inclusive mesh; indicates strictly that which the viewer can see."/>
<enum value="3" name="XR_VISIBILITY_MASK_TYPE_LINE_LOOP_KHR" comment="line loop; traces the outline of the area the viewer can see."/>
</enums>
<!-- XR_EXT_hand_tracking -->
<enums name="XrHandEXT" type="enum">
<enum value="1" name="XR_HAND_LEFT_EXT"/>
<enum value="2" name="XR_HAND_RIGHT_EXT"/>
</enums>
<enums name="XrHandJointEXT" type="enum">
<enum value="0" name="XR_HAND_JOINT_PALM_EXT"/>
<enum value="1" name="XR_HAND_JOINT_WRIST_EXT"/>
<enum value="2" name="XR_HAND_JOINT_THUMB_METACARPAL_EXT"/>
<enum value="3" name="XR_HAND_JOINT_THUMB_PROXIMAL_EXT"/>
<enum value="4" name="XR_HAND_JOINT_THUMB_DISTAL_EXT"/>
<enum value="5" name="XR_HAND_JOINT_THUMB_TIP_EXT"/>
<enum value="6" name="XR_HAND_JOINT_INDEX_METACARPAL_EXT"/>
<enum value="7" name="XR_HAND_JOINT_INDEX_PROXIMAL_EXT"/>
<enum value="8" name="XR_HAND_JOINT_INDEX_INTERMEDIATE_EXT"/>
<enum value="9" name="XR_HAND_JOINT_INDEX_DISTAL_EXT"/>
<enum value="10" name="XR_HAND_JOINT_INDEX_TIP_EXT"/>
<enum value="11" name="XR_HAND_JOINT_MIDDLE_METACARPAL_EXT"/>
<enum value="12" name="XR_HAND_JOINT_MIDDLE_PROXIMAL_EXT"/>
<enum value="13" name="XR_HAND_JOINT_MIDDLE_INTERMEDIATE_EXT"/>
<enum value="14" name="XR_HAND_JOINT_MIDDLE_DISTAL_EXT"/>
<enum value="15" name="XR_HAND_JOINT_MIDDLE_TIP_EXT"/>
<enum value="16" name="XR_HAND_JOINT_RING_METACARPAL_EXT"/>
<enum value="17" name="XR_HAND_JOINT_RING_PROXIMAL_EXT"/>
<enum value="18" name="XR_HAND_JOINT_RING_INTERMEDIATE_EXT"/>
<enum value="19" name="XR_HAND_JOINT_RING_DISTAL_EXT"/>
<enum value="20" name="XR_HAND_JOINT_RING_TIP_EXT"/>
<enum value="21" name="XR_HAND_JOINT_LITTLE_METACARPAL_EXT"/>
<enum value="22" name="XR_HAND_JOINT_LITTLE_PROXIMAL_EXT"/>
<enum value="23" name="XR_HAND_JOINT_LITTLE_INTERMEDIATE_EXT"/>
<enum value="24" name="XR_HAND_JOINT_LITTLE_DISTAL_EXT"/>
<enum value="25" name="XR_HAND_JOINT_LITTLE_TIP_EXT"/>
</enums>
<enums name="XrHandJointSetEXT" type="enum">
<enum value="0" name="XR_HAND_JOINT_SET_DEFAULT_EXT"/>
</enums>
<!-- XR_EXT_hand_joints_motion_range -->
<enums name="XrHandJointsMotionRangeEXT" type="enum">
<enum value="1" name="XR_HAND_JOINTS_MOTION_RANGE_UNOBSTRUCTED_EXT"/>
<enum value="2" name="XR_HAND_JOINTS_MOTION_RANGE_CONFORMING_TO_CONTROLLER_EXT"/>
</enums>
<!-- XR_MSFT_hand_tracking_mesh -->
<enums name="XrHandPoseTypeMSFT" type="enum">
<enum value="0" name="XR_HAND_POSE_TYPE_TRACKED_MSFT"/>
<enum value="1" name="XR_HAND_POSE_TYPE_REFERENCE_OPEN_PALM_MSFT"/>
</enums>
<!-- XR_FB_color_space -->
<enums name="XrColorSpaceFB" type="enum">
<enum value="0" name="XR_COLOR_SPACE_UNMANAGED_FB"/>
<enum value="1" name="XR_COLOR_SPACE_REC2020_FB"/>
<enum value="2" name="XR_COLOR_SPACE_REC709_FB"/>
<enum value="3" name="XR_COLOR_SPACE_RIFT_CV1_FB"/>
<enum value="4" name="XR_COLOR_SPACE_RIFT_S_FB"/>
<enum value="5" name="XR_COLOR_SPACE_QUEST_FB"/>
<enum value="6" name="XR_COLOR_SPACE_P3_FB"/>
<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"/>
<enum value="2" name="XR_REPROJECTION_MODE_PLANAR_FROM_DEPTH_MSFT"/>
<enum value="3" name="XR_REPROJECTION_MODE_PLANAR_MANUAL_MSFT"/>
<enum value="4" name="XR_REPROJECTION_MODE_ORIENTATION_ONLY_MSFT"/>
</enums>
<!-- Flags -->
<enums name="XrInstanceCreateFlagBits" type="bitmask">
<!-- This is currently empty, awaiting future flags. -->
</enums>
<enums name="XrSessionCreateFlagBits" type="bitmask">
<!-- This is currently empty, awaiting future flags. -->
</enums>
<enums name="XrSwapchainCreateFlagBits" type="bitmask">
<enum bitpos="0" name="XR_SWAPCHAIN_CREATE_PROTECTED_CONTENT_BIT" comment="Content will be protected from CPU access"/>
<enum bitpos="1" name="XR_SWAPCHAIN_CREATE_STATIC_IMAGE_BIT" comment="Only one image will be acquired from this swapchain over its lifetime"/>
</enums>
<enums name="XrSwapchainUsageFlagBits" type="bitmask">
<enum bitpos="0" name="XR_SWAPCHAIN_USAGE_COLOR_ATTACHMENT_BIT" comment="Specifies that the image may: be a color rendering target."/>
<enum bitpos="1" name="XR_SWAPCHAIN_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" comment="Specifies that the image may: be a depth/stencil rendering target."/>
<enum bitpos="2" name="XR_SWAPCHAIN_USAGE_UNORDERED_ACCESS_BIT" comment="Specifies that the image may: be accessed out of order and that access may: be via atomic operations."/>
<enum bitpos="3" name="XR_SWAPCHAIN_USAGE_TRANSFER_SRC_BIT" comment="Specifies that the image may: be used as the source of a transfer operation."/>
<enum bitpos="4" name="XR_SWAPCHAIN_USAGE_TRANSFER_DST_BIT" comment="Specifies that the image may: be used as the destination of a transfer operation."/>
<enum bitpos="5" name="XR_SWAPCHAIN_USAGE_SAMPLED_BIT" comment="Specifies that the image may: be sampled by a shader."/>
<enum bitpos="6" name="XR_SWAPCHAIN_USAGE_MUTABLE_FORMAT_BIT" comment="Specifies that the image may: be reinterpreted as another image format."/>
</enums>
<enums name="XrViewStateFlagBits" type="bitmask">
<enum bitpos="0" name="XR_VIEW_STATE_ORIENTATION_VALID_BIT" comment="Indicates validity of all slink:XrView orientations"/>
<enum bitpos="1" name="XR_VIEW_STATE_POSITION_VALID_BIT" comment="Indicates validity of all slink:XrView positions"/>
<enum bitpos="2" name="XR_VIEW_STATE_ORIENTATION_TRACKED_BIT" comment="Indicates whether all slink:XrView orientations are actively tracked"/>
<enum bitpos="3" name="XR_VIEW_STATE_POSITION_TRACKED_BIT" comment="Indicates whether all slink:XrView positions are actively tracked"/>
</enums>
<enums name="XrCompositionLayerFlagBits" type="bitmask">
<enum bitpos="0" name="XR_COMPOSITION_LAYER_CORRECT_CHROMATIC_ABERRATION_BIT" comment="Enables chromatic aberration correction when not done by default."/>
<enum bitpos="1" name="XR_COMPOSITION_LAYER_BLEND_TEXTURE_SOURCE_ALPHA_BIT" comment="Enables the layer texture alpha channel."/>
<enum bitpos="2" name="XR_COMPOSITION_LAYER_UNPREMULTIPLIED_ALPHA_BIT" comment="Indicates the texture color channels have not been premultiplied by the texture alpha channel."/>
</enums>
<enums name="XrSpaceLocationFlagBits" type="bitmask">
<enum bitpos="0" name="XR_SPACE_LOCATION_ORIENTATION_VALID_BIT" comment="Indicates that the pname:orientation member contains valid data"/>
<enum bitpos="1" name="XR_SPACE_LOCATION_POSITION_VALID_BIT" comment="Indicates that the pname:position member contains valid data"/>
<enum bitpos="2" name="XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT" comment="Indicates whether pname:pose member contains an actively tracked pname:orientation"/>
<enum bitpos="3" name="XR_SPACE_LOCATION_POSITION_TRACKED_BIT" comment="Indicates whether pname:pose member contains an actively tracked pname:position"/>
</enums>
<enums name="XrSpaceVelocityFlagBits" type="bitmask">
<enum bitpos="0" name="XR_SPACE_VELOCITY_LINEAR_VALID_BIT" comment="Indicates that the pname:linearVelocity member contains valid data"/>
<enum bitpos="1" name="XR_SPACE_VELOCITY_ANGULAR_VALID_BIT" comment="Indicates that the pname:angularVelocity member contains valid data"/>
</enums>
<enums name="XrInputSourceLocalizedNameFlagBits" type="bitmask">
<enum bitpos="0" name="XR_INPUT_SOURCE_LOCALIZED_NAME_USER_PATH_BIT" comment="Asks for the part of the string which indicates the top level user path the source represents"/>
<enum bitpos="1" name="XR_INPUT_SOURCE_LOCALIZED_NAME_INTERACTION_PROFILE_BIT" comment="Asks for the part of the string which represents the interaction profile of the source"/>
<enum bitpos="2" name="XR_INPUT_SOURCE_LOCALIZED_NAME_COMPONENT_BIT" comment="Asks for the part of the string which represents the component on the device which needs to be interacted with"/>
</enums>
<!-- flags for XR_EXT_debug_utils -->
<enums name="XrVulkanInstanceCreateFlagBitsKHR" type="bitmask">
<!-- This is currently empty, awaiting future flags. -->
</enums>
<enums name="XrVulkanDeviceCreateFlagBitsKHR" type="bitmask">
<!-- This is currently empty, awaiting future flags. -->
</enums>
<!-- flags for XR_EXT_debug_utils -->
<enums name="XrDebugUtilsMessageSeverityFlagBitsEXT" type="bitmask">
<enum bitpos="0" name="XR_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT" comment="Most verbose output severity, typically used for debugging."/>
<enum bitpos="4" name="XR_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT" comment="General info message"/>
<enum bitpos="8" name="XR_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT" comment="Indicates the item may be the cause of issues."/>
<enum bitpos="12" name="XR_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT" comment="Indicates that the item is definitely related to erroneous behavior."/>
</enums>
<enums name="XrDebugUtilsMessageTypeFlagBitsEXT" type="bitmask">
<enum bitpos="0" name="XR_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT" comment="Indicates this is a general message"/>
<enum bitpos="1" name="XR_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT" comment="Indicates the message is related to a validation message"/>
<enum bitpos="2" name="XR_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT" comment="Indicates the message is related to a potential performance situation"/>
<enum bitpos="3" name="XR_DEBUG_UTILS_MESSAGE_TYPE_CONFORMANCE_BIT_EXT" comment="Indicates the message is related to a non-conformant runtime result"/>
</enums>
<!-- flags for XR_EXTX_overlay -->
<enums name="XrOverlayMainSessionFlagBitsEXTX" type="bitmask">
<enum bitpos="0" name="XR_OVERLAY_MAIN_SESSION_ENABLED_COMPOSITION_LAYER_INFO_DEPTH_BIT_EXTX" comment="Indicates the main session enabled `XR_KHR_composition_layer_depth`"/>
</enums>
<enums name="XrOverlaySessionCreateFlagBitsEXTX" type="bitmask">
</enums>
<!-- enumes XR_MSFT_spatial_graph_bridge -->
<enums name="XrSpatialGraphNodeTypeMSFT" type="enum">
<enum value="1" name="XR_SPATIAL_GRAPH_NODE_TYPE_STATIC_MSFT"/>
<enum value="2" name="XR_SPATIAL_GRAPH_NODE_TYPE_DYNAMIC_MSFT"/>
</enums>
<!-- enumes XR_MSFT_scene_understanding -->
<enums name="XrSceneObjectTypeMSFT" type="enum">
<enum value="-1" name="XR_SCENE_OBJECT_TYPE_UNCATEGORIZED_MSFT"/>
<enum value="1" name="XR_SCENE_OBJECT_TYPE_BACKGROUND_MSFT"/>
<enum value="2" name="XR_SCENE_OBJECT_TYPE_WALL_MSFT"/>
<enum value="3" name="XR_SCENE_OBJECT_TYPE_FLOOR_MSFT"/>
<enum value="4" name="XR_SCENE_OBJECT_TYPE_CEILING_MSFT"/>
<enum value="5" name="XR_SCENE_OBJECT_TYPE_PLATFORM_MSFT"/>
<enum value="6" name="XR_SCENE_OBJECT_TYPE_INFERRED_MSFT"/>
</enums>
<enums name="XrScenePlaneAlignmentTypeMSFT" type="enum">
<enum value="0" name="XR_SCENE_PLANE_ALIGNMENT_TYPE_NON_ORTHOGONAL_MSFT"/>
<enum value="1" name="XR_SCENE_PLANE_ALIGNMENT_TYPE_HORIZONTAL_MSFT"/>
<enum value="2" name="XR_SCENE_PLANE_ALIGNMENT_TYPE_VERTICAL_MSFT"/>
</enums>
<enums name="XrSceneComputeStateMSFT" type="enum">
<enum value="0" name="XR_SCENE_COMPUTE_STATE_NONE_MSFT"/>
<enum value="1" name="XR_SCENE_COMPUTE_STATE_UPDATING_MSFT"/>
<enum value="2" name="XR_SCENE_COMPUTE_STATE_COMPLETED_MSFT"/>
<enum value="3" name="XR_SCENE_COMPUTE_STATE_COMPLETED_WITH_ERROR_MSFT"/>
</enums>
<enums name="XrSceneComponentTypeMSFT" type="enum">
<enum value="-1" name="XR_SCENE_COMPONENT_TYPE_INVALID_MSFT"/>
<enum value="1" name="XR_SCENE_COMPONENT_TYPE_OBJECT_MSFT"/>
<enum value="2" name="XR_SCENE_COMPONENT_TYPE_PLANE_MSFT"/>
<enum value="3" name="XR_SCENE_COMPONENT_TYPE_VISUAL_MESH_MSFT"/>
<enum value="4" name="XR_SCENE_COMPONENT_TYPE_COLLIDER_MESH_MSFT"/>
</enums>
<enums name="XrSceneComputeFeatureMSFT" type="enum">
<enum value="1" name="XR_SCENE_COMPUTE_FEATURE_PLANE_MSFT"/>
<enum value="2" name="XR_SCENE_COMPUTE_FEATURE_PLANE_MESH_MSFT"/>
<enum value="3" name="XR_SCENE_COMPUTE_FEATURE_VISUAL_MESH_MSFT"/>
<enum value="4" name="XR_SCENE_COMPUTE_FEATURE_COLLIDER_MESH_MSFT"/>
</enums>
<enums name="XrSceneComputeConsistencyMSFT" type="enum">
<enum value="1" name="XR_SCENE_COMPUTE_CONSISTENCY_SNAPSHOT_COMPLETE_MSFT"/>
<enum value="2" name="XR_SCENE_COMPUTE_CONSISTENCY_SNAPSHOT_INCOMPLETE_FAST_MSFT"/>
<enum value="3" name="XR_SCENE_COMPUTE_CONSISTENCY_OCCLUSION_OPTIMIZED_MSFT"/>
</enums>
<enums name="XrMeshComputeLodMSFT" type="enum">
<enum value="1" name="XR_MESH_COMPUTE_LOD_COARSE_MSFT"/>
<enum value="2" name="XR_MESH_COMPUTE_LOD_MEDIUM_MSFT"/>
<enum value="3" name="XR_MESH_COMPUTE_LOD_FINE_MSFT"/>
<enum value="4" name="XR_MESH_COMPUTE_LOD_UNLIMITED_MSFT"/>
</enums>
<!-- flags for XR_FB_android_surface_swapchain_create -->
<enums name="XrAndroidSurfaceSwapchainFlagBitsFB" type="bitmask">
<enum bitpos="0" name="XR_ANDROID_SURFACE_SWAPCHAIN_SYNCHRONOUS_BIT_FB" comment="Create the underlying BufferQueue in synchronous mode"/>
<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">
<proto><type>XrResult</type> <name>xrGetInstanceProcAddr</name></proto>
<param optional="true"><type>XrInstance</type> <name>instance</name></param>
<param len="null-terminated">const <type>char</type>* <name>name</name></param>
<param><type>PFN_xrVoidFunction</type>* <name>function</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SIZE_INSUFFICIENT">
<proto><type>XrResult</type> <name>xrEnumerateApiLayerProperties</name></proto>
<param optional="true"><type>uint32_t</type> <name>propertyCapacityInput</name></param>
<param><type>uint32_t</type>* <name>propertyCountOutput</name></param>
<param optional="true" len="propertyCapacityInput"><type>XrApiLayerProperties</type>* <name>properties</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_RUNTIME_UNAVAILABLE,XR_ERROR_API_LAYER_NOT_PRESENT">
<proto><type>XrResult</type> <name>xrEnumerateInstanceExtensionProperties</name></proto>
<param optional="true" len="null-terminated">const <type>char</type>* <name>layerName</name></param>
<param optional="true"><type>uint32_t</type> <name>propertyCapacityInput</name></param>
<param><type>uint32_t</type>* <name>propertyCountOutput</name></param>
<param optional="true" len="propertyCapacityInput"><type>XrExtensionProperties</type>* <name>properties</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_RUNTIME_UNAVAILABLE,XR_ERROR_NAME_INVALID,XR_ERROR_INITIALIZATION_FAILED,XR_ERROR_EXTENSION_NOT_PRESENT,XR_ERROR_API_VERSION_UNSUPPORTED,XR_ERROR_API_LAYER_NOT_PRESENT">
<proto><type>XrResult</type> <name>xrCreateInstance</name></proto>
<param>const <type>XrInstanceCreateInfo</type>* <name>createInfo</name></param>
<param><type>XrInstance</type>* <name>instance</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroyInstance</name></proto>
<param externsync="true_with_children"><type>XrInstance</type> <name>instance</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST">
<proto><type>XrResult</type> <name>xrResultToString</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrResult</type> <name>value</name></param>
<param><type>char</type> <name>buffer</name>[<enum>XR_MAX_RESULT_STRING_SIZE</enum>]</param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST">
<proto><type>XrResult</type> <name>xrStructureTypeToString</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrStructureType</type> <name>value</name></param>
<param><type>char</type> <name>buffer</name>[<enum>XR_MAX_STRUCTURE_NAME_SIZE</enum>]</param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST">
<proto><type>XrResult</type> <name>xrGetInstanceProperties</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrInstanceProperties</type>* <name>instanceProperties</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_FORM_FACTOR_UNSUPPORTED,XR_ERROR_FORM_FACTOR_UNAVAILABLE">
<proto><type>XrResult</type> <name>xrGetSystem</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param>const <type>XrSystemGetInfo</type>* <name>getInfo</name></param>
<param><type>XrSystemId</type>* <name>systemId</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_SYSTEM_INVALID">
<proto><type>XrResult</type> <name>xrGetSystemProperties</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrSystemId</type> <name>systemId</name></param>
<param><type>XrSystemProperties</type>* <name>properties</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_SYSTEM_INVALID,XR_ERROR_INITIALIZATION_FAILED,XR_ERROR_GRAPHICS_REQUIREMENTS_CALL_MISSING,XR_ERROR_GRAPHICS_DEVICE_INVALID">
<proto><type>XrResult</type> <name>xrCreateSession</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param>const <type>XrSessionCreateInfo</type>* <name>createInfo</name></param>
<param><type>XrSession</type>* <name>session</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroySession</name></proto>
<param externsync="true_with_children"><type>XrSession</type> <name>session</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroySpace</name></proto>
<param externsync="true_with_children"><type>XrSpace</type> <name>space</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SIZE_INSUFFICIENT">
<proto><type>XrResult</type> <name>xrEnumerateSwapchainFormats</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param optional="true"><type>uint32_t</type> <name>formatCapacityInput</name></param>
<param><type>uint32_t</type>* <name>formatCountOutput</name></param>
<param optional="true" len="formatCapacityInput"><type>int64_t</type>* <name>formats</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="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,XR_ERROR_SWAPCHAIN_FORMAT_UNSUPPORTED,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrCreateSwapchain</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrSwapchainCreateInfo</type>* <name>createInfo</name></param>
<param><type>XrSwapchain</type>* <name>swapchain</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroySwapchain</name></proto>
<param externsync="true_with_children"><type>XrSwapchain</type> <name>swapchain</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SIZE_INSUFFICIENT">
<proto><type>XrResult</type> <name>xrEnumerateSwapchainImages</name></proto>
<param><type>XrSwapchain</type> <name>swapchain</name></param>
<param optional="true"><type>uint32_t</type> <name>imageCapacityInput</name></param>
<param><type>uint32_t</type>* <name>imageCountOutput</name></param>
<param optional="true" len="imageCapacityInput"><type>XrSwapchainImageBaseHeader</type>* <name>images</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_CALL_ORDER_INVALID">
<proto><type>XrResult</type> <name>xrAcquireSwapchainImage</name></proto>
<param><type>XrSwapchain</type> <name>swapchain</name></param>
<param optional="true">const <type>XrSwapchainImageAcquireInfo</type>* <name>acquireInfo</name></param>
<param><type>uint32_t</type>* <name>index</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING,XR_TIMEOUT_EXPIRED" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_CALL_ORDER_INVALID">
<proto><type>XrResult</type> <name>xrWaitSwapchainImage</name></proto>
<param><type>XrSwapchain</type> <name>swapchain</name></param>
<param>const <type>XrSwapchainImageWaitInfo</type>* <name>waitInfo</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_CALL_ORDER_INVALID">
<proto><type>XrResult</type> <name>xrReleaseSwapchainImage</name></proto>
<param><type>XrSwapchain</type> <name>swapchain</name></param>
<param optional="true">const <type>XrSwapchainImageReleaseInfo</type>* <name>releaseInfo</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED,XR_ERROR_SESSION_RUNNING,XR_ERROR_SESSION_NOT_READY">
<proto><type>XrResult</type> <name>xrBeginSession</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrSessionBeginInfo</type>* <name>beginInfo</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SESSION_NOT_STOPPING,XR_ERROR_SESSION_NOT_RUNNING">
<proto><type>XrResult</type> <name>xrEndSession</name></proto>
<param><type>XrSession</type> <name>session</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SESSION_NOT_RUNNING">
<proto><type>XrResult</type> <name>xrRequestExitSession</name></proto>
<param><type>XrSession</type> <name>session</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SIZE_INSUFFICIENT">
<proto><type>XrResult</type> <name>xrEnumerateReferenceSpaces</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param optional="true"><type>uint32_t</type> <name>spaceCapacityInput</name></param>
<param><type>uint32_t</type>* <name>spaceCountOutput</name></param>
<param optional="true" len="spaceCapacityInput"><type>XrReferenceSpaceType</type>* <name>spaces</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="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,XR_ERROR_REFERENCE_SPACE_UNSUPPORTED,XR_ERROR_POSE_INVALID">
<proto><type>XrResult</type> <name>xrCreateReferenceSpace</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrReferenceSpaceCreateInfo</type>* <name>createInfo</name></param>
<param><type>XrSpace</type>* <name>space</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="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,XR_ERROR_POSE_INVALID,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTION_TYPE_MISMATCH">
<proto><type>XrResult</type> <name>xrCreateActionSpace</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrActionSpaceCreateInfo</type>* <name>createInfo</name></param>
<param><type>XrSpace</type>* <name>space</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_TIME_INVALID">
<proto><type>XrResult</type> <name>xrLocateSpace</name></proto>
<param><type>XrSpace</type> <name>space</name></param>
<param><type>XrSpace</type> <name>baseSpace</name></param>
<param><type>XrTime</type> <name>time</name></param>
<param><type>XrSpaceLocation</type>* <name>location</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_SYSTEM_INVALID">
<proto><type>XrResult</type> <name>xrEnumerateViewConfigurations</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrSystemId</type> <name>systemId</name></param>
<param optional="true"><type>uint32_t</type> <name>viewConfigurationTypeCapacityInput</name></param>
<param><type>uint32_t</type>* <name>viewConfigurationTypeCountOutput</name></param>
<param optional="true" len="viewConfigurationTypeCapacityInput"><type>XrViewConfigurationType</type>* <name>viewConfigurationTypes</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED,XR_ERROR_SYSTEM_INVALID">
<proto><type>XrResult</type> <name>xrEnumerateEnvironmentBlendModes</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrSystemId</type> <name>systemId</name></param>
<param><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></param>
<param optional="true"><type>uint32_t</type> <name>environmentBlendModeCapacityInput</name></param>
<param><type>uint32_t</type>* <name>environmentBlendModeCountOutput</name></param>
<param optional="true" len="environmentBlendModeCapacityInput"><type>XrEnvironmentBlendMode</type>* <name>environmentBlendModes</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED,XR_ERROR_SYSTEM_INVALID">
<proto><type>XrResult</type> <name>xrGetViewConfigurationProperties</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrSystemId</type> <name>systemId</name></param>
<param><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></param>
<param><type>XrViewConfigurationProperties</type>* <name>configurationProperties</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED,XR_ERROR_SYSTEM_INVALID">
<proto><type>XrResult</type> <name>xrEnumerateViewConfigurationViews</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrSystemId</type> <name>systemId</name></param>
<param><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></param>
<param optional="true"><type>uint32_t</type> <name>viewCapacityInput</name></param>
<param><type>uint32_t</type>* <name>viewCountOutput</name></param>
<param optional="true" len="viewCapacityInput"><type>XrViewConfigurationView</type>* <name>views</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING,XR_FRAME_DISCARDED" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SESSION_NOT_RUNNING,XR_ERROR_CALL_ORDER_INVALID">
<proto><type>XrResult</type> <name>xrBeginFrame</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param optional="true">const <type>XrFrameBeginInfo</type>* <name>frameBeginInfo</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED,XR_ERROR_TIME_INVALID">
<proto><type>XrResult</type> <name>xrLocateViews</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrViewLocateInfo</type>* <name>viewLocateInfo</name></param>
<param><type>XrViewState</type>* <name>viewState</name></param>
<param optional="true"><type>uint32_t</type> <name>viewCapacityInput</name></param>
<param><type>uint32_t</type>* <name>viewCountOutput</name></param>
<param optional="true" len="viewCapacityInput"><type>XrView</type>* <name>views</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_TIME_INVALID,XR_ERROR_SWAPCHAIN_RECT_INVALID,XR_ERROR_SESSION_NOT_RUNNING,XR_ERROR_POSE_INVALID,XR_ERROR_LAYER_LIMIT_EXCEEDED,XR_ERROR_LAYER_INVALID,XR_ERROR_ENVIRONMENT_BLEND_MODE_UNSUPPORTED,XR_ERROR_CALL_ORDER_INVALID">
<proto><type>XrResult</type> <name>xrEndFrame</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrFrameEndInfo</type>* <name>frameEndInfo</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SESSION_NOT_RUNNING">
<proto><type>XrResult</type> <name>xrWaitFrame</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param optional="true">const <type>XrFrameWaitInfo</type>* <name>frameWaitInfo</name></param>
<param><type>XrFrameState</type>* <name>frameState</name></param>
<implicitexternsyncparams>
<param>the pname:session parameter by any other flink:xrWaitFrame call</param>
</implicitexternsyncparams>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTION_TYPE_MISMATCH,XR_ERROR_ACTIONSET_NOT_ATTACHED">
<proto><type>XrResult</type> <name>xrApplyHapticFeedback</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrHapticActionInfo</type>* <name>hapticActionInfo</name></param>
<param>const <type>XrHapticBaseHeader</type>* <name>hapticFeedback</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTION_TYPE_MISMATCH,XR_ERROR_ACTIONSET_NOT_ATTACHED">
<proto><type>XrResult</type> <name>xrStopHapticFeedback</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrHapticActionInfo</type>* <name>hapticActionInfo</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_EVENT_UNAVAILABLE" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST">
<proto><type>XrResult</type> <name>xrPollEvent</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrEventDataBuffer</type>* <name>eventData</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_PATH_FORMAT_INVALID,XR_ERROR_PATH_COUNT_EXCEEDED">
<proto><type>XrResult</type> <name>xrStringToPath</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param len="null-terminated">const <type>char</type>* <name>pathString</name></param>
<param><type>XrPath</type>* <name>path</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_PATH_INVALID">
<proto><type>XrResult</type> <name>xrPathToString</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrPath</type> <name>path</name></param>
<param optional="true"><type>uint32_t</type> <name>bufferCapacityInput</name></param>
<param><type>uint32_t</type>* <name>bufferCountOutput</name></param>
<param optional="true" len="bufferCapacityInput"><type>char</type>* <name>buffer</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING,XR_SPACE_BOUNDS_UNAVAILABLE" 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_REFERENCE_SPACE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetReferenceSpaceBoundsRect</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrReferenceSpaceType</type> <name>referenceSpaceType</name></param>
<param><type>XrExtent2Df</type>* <name>bounds</name></param>
</command>
<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_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR,XR_ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR">
<proto><type>XrResult</type> <name>xrSetAndroidApplicationThreadKHR</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrAndroidThreadTypeKHR</type> <name>threadType</name></param>
<param><type>uint32_t</type> <name>threadId</name></param>
</command>
<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>xrCreateSwapchainAndroidSurfaceKHR</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrSwapchainCreateInfo</type>* <name>info</name></param>
<param><type>XrSwapchain</type>* <name>swapchain</name></param>
<param><type>jobject</type>* <name>surface</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTION_TYPE_MISMATCH,XR_ERROR_ACTIONSET_NOT_ATTACHED">
<proto><type>XrResult</type> <name>xrGetActionStateBoolean</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrActionStateGetInfo</type>* <name>getInfo</name></param>
<param><type>XrActionStateBoolean</type>* <name>state</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTION_TYPE_MISMATCH,XR_ERROR_ACTIONSET_NOT_ATTACHED">
<proto><type>XrResult</type> <name>xrGetActionStateFloat</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrActionStateGetInfo</type>* <name>getInfo</name></param>
<param><type>XrActionStateFloat</type>* <name>state</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTION_TYPE_MISMATCH,XR_ERROR_ACTIONSET_NOT_ATTACHED">
<proto><type>XrResult</type> <name>xrGetActionStateVector2f</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrActionStateGetInfo</type>* <name>getInfo</name></param>
<param><type>XrActionStateVector2f</type>* <name>state</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTION_TYPE_MISMATCH,XR_ERROR_ACTIONSET_NOT_ATTACHED">
<proto><type>XrResult</type> <name>xrGetActionStatePose</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrActionStateGetInfo</type>* <name>getInfo</name></param>
<param><type>XrActionStatePose</type>* <name>state</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_PATH_FORMAT_INVALID,XR_ERROR_NAME_INVALID,XR_ERROR_NAME_DUPLICATED,XR_ERROR_LOCALIZED_NAME_INVALID,XR_ERROR_LOCALIZED_NAME_DUPLICATED">
<proto><type>XrResult</type> <name>xrCreateActionSet</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param>const <type>XrActionSetCreateInfo</type>* <name>createInfo</name></param>
<param><type>XrActionSet</type>* <name>actionSet</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroyActionSet</name></proto>
<param externsync="true_with_children"><type>XrActionSet</type> <name>actionSet</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_OUT_OF_MEMORY,XR_ERROR_LIMIT_REACHED,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_PATH_FORMAT_INVALID,XR_ERROR_NAME_INVALID,XR_ERROR_NAME_DUPLICATED,XR_ERROR_LOCALIZED_NAME_INVALID,XR_ERROR_LOCALIZED_NAME_DUPLICATED,XR_ERROR_ACTIONSETS_ALREADY_ATTACHED">
<proto><type>XrResult</type> <name>xrCreateAction</name></proto>
<param><type>XrActionSet</type> <name>actionSet</name></param>
<param>const <type>XrActionCreateInfo</type>* <name>createInfo</name></param>
<param><type>XrAction</type>* <name>action</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroyAction</name></proto>
<param externsync="true_with_children"><type>XrAction</type> <name>action</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTIONSETS_ALREADY_ATTACHED">
<proto><type>XrResult</type> <name>xrSuggestInteractionProfileBindings</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param>const <type>XrInteractionProfileSuggestedBinding</type>* <name>suggestedBindings</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_ACTIONSETS_ALREADY_ATTACHED">
<proto><type>XrResult</type> <name>xrAttachSessionActionSets</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrSessionActionSetsAttachInfo</type>* <name>attachInfo</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTIONSET_NOT_ATTACHED">
<proto><type>XrResult</type> <name>xrGetCurrentInteractionProfile</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrPath</type> <name>topLevelUserPath</name></param>
<param><type>XrInteractionProfileState</type>* <name>interactionProfile</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING,XR_SESSION_NOT_FOCUSED" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTIONSET_NOT_ATTACHED">
<proto><type>XrResult</type> <name>xrSyncActions</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrActionsSyncInfo</type>* <name>syncInfo</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_PATH_INVALID,XR_ERROR_ACTIONSET_NOT_ATTACHED">
<proto><type>XrResult</type> <name>xrEnumerateBoundSourcesForAction</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrBoundSourcesForActionEnumerateInfo</type>* <name>enumerateInfo</name></param>
<param optional="true"><type>uint32_t</type> <name>sourceCapacityInput</name></param>
<param><type>uint32_t</type>* <name>sourceCountOutput</name></param>
<param optional="true" len="sourceCapacityInput"><type>XrPath</type>* <name>sources</name></param>
</command>
<command successcodes="XR_SUCCESS,XR_SESSION_LOSS_PENDING" errorcodes="XR_ERROR_VALIDATION_FAILURE,XR_ERROR_RUNTIME_FAILURE,XR_ERROR_HANDLE_INVALID,XR_ERROR_INSTANCE_LOST,XR_ERROR_SESSION_LOST,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_ACTIONSET_NOT_ATTACHED">
<proto><type>XrResult</type> <name>xrGetInputSourceLocalizedName</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrInputSourceLocalizedNameGetInfo</type>* <name>getInfo</name></param>
<param optional="true"><type>uint32_t</type> <name>bufferCapacityInput</name></param>
<param><type>uint32_t</type>* <name>bufferCountOutput</name></param>
<param optional="true" len="bufferCapacityInput"><type>char</type>* <name>buffer</name></param>
</command>
<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_SIZE_INSUFFICIENT,XR_ERROR_SYSTEM_INVALID">
<proto><type>XrResult</type> <name>xrGetVulkanInstanceExtensionsKHR</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrSystemId</type> <name>systemId</name></param>
<param optional="true"><type>uint32_t</type> <name>bufferCapacityInput</name></param>
<param><type>uint32_t</type>* <name>bufferCountOutput</name></param>
<param optional="true" len="bufferCapacityInput"><type>char</type>* <name>buffer</name></param>
</command>
<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_SIZE_INSUFFICIENT,XR_ERROR_SYSTEM_INVALID">
<proto><type>XrResult</type> <name>xrGetVulkanDeviceExtensionsKHR</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrSystemId</type> <name>systemId</name></param>
<param optional="true"><type>uint32_t</type> <name>bufferCapacityInput</name></param>
<param><type>uint32_t</type>* <name>bufferCountOutput</name></param>
<param optional="true" len="bufferCapacityInput"><type>char</type>* <name>buffer</name></param>
</command>
<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_SYSTEM_INVALID">
<proto><type>XrResult</type> <name>xrGetVulkanGraphicsDeviceKHR</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrSystemId</type> <name>systemId</name></param>
<param><type>VkInstance</type> <name>vkInstance</name></param>
<param><type>VkPhysicalDevice</type>* <name>vkPhysicalDevice</name></param>
</command>
<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_SYSTEM_INVALID">
<proto><type>XrResult</type> <name>xrGetOpenGLGraphicsRequirementsKHR</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrSystemId</type> <name>systemId</name></param>
<param><type>XrGraphicsRequirementsOpenGLKHR</type>* <name>graphicsRequirements</name></param>
</command>
<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_SYSTEM_INVALID">
<proto><type>XrResult</type> <name>xrGetOpenGLESGraphicsRequirementsKHR</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrSystemId</type> <name>systemId</name></param>
<param><type>XrGraphicsRequirementsOpenGLESKHR</type>* <name>graphicsRequirements</name></param>
</command>
<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_SYSTEM_INVALID">
<proto><type>XrResult</type> <name>xrGetVulkanGraphicsRequirementsKHR</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrSystemId</type> <name>systemId</name></param>
<param><type>XrGraphicsRequirementsVulkanKHR</type>* <name>graphicsRequirements</name></param>
</command>
<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_SYSTEM_INVALID">
<proto><type>XrResult</type> <name>xrGetD3D11GraphicsRequirementsKHR</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrSystemId</type> <name>systemId</name></param>
<param><type>XrGraphicsRequirementsD3D11KHR</type>* <name>graphicsRequirements</name></param>
</command>
<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_SYSTEM_INVALID">
<proto><type>XrResult</type> <name>xrGetD3D12GraphicsRequirementsKHR</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrSystemId</type> <name>systemId</name></param>
<param><type>XrGraphicsRequirementsD3D12KHR</type>* <name>graphicsRequirements</name></param>
</command>
<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">
<proto><type>XrResult</type> <name>xrPerfSettingsSetPerformanceLevelEXT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrPerfSettingsDomainEXT</type> <name>domain</name></param>
<param><type>XrPerfSettingsLevelEXT</type> <name>level</name></param>
</command>
<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">
<proto><type>XrResult</type> <name>xrThermalGetTemperatureTrendEXT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrPerfSettingsDomainEXT</type> <name>domain</name></param>
<param><type>XrPerfSettingsNotificationLevelEXT</type>* <name>notificationLevel</name></param>
<param><type>float</type>* <name>tempHeadroom</name></param>
<param><type>float</type>* <name>tempSlope</name></param>
</command>
<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">
<proto><type>XrResult</type> <name>xrSetDebugUtilsObjectNameEXT</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param externsync="nameInfo.objectHandle">const <type>XrDebugUtilsObjectNameInfoEXT</type>* <name>nameInfo</name></param>
</command>
<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,XR_ERROR_LIMIT_REACHED">
<proto><type>XrResult</type> <name>xrCreateDebugUtilsMessengerEXT</name></proto>
<param externsync="true_with_children"><type>XrInstance</type> <name>instance</name></param>
<param>const <type>XrDebugUtilsMessengerCreateInfoEXT</type>* <name>createInfo</name></param>
<param><type>XrDebugUtilsMessengerEXT</type>* <name>messenger</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroyDebugUtilsMessengerEXT</name></proto>
<param externsync="true"><type>XrDebugUtilsMessengerEXT</type> <name>messenger</name></param>
<implicitexternsyncparams>
<param>the slink:XrInstance used to create pname:messenger, and all of its child handles</param>
</implicitexternsyncparams>
</command>
<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">
<proto><type>XrResult</type> <name>xrSubmitDebugUtilsMessageEXT</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrDebugUtilsMessageSeverityFlagsEXT</type> <name>messageSeverity</name></param>
<param><type>XrDebugUtilsMessageTypeFlagsEXT</type> <name>messageTypes</name></param>
<param>const <type>XrDebugUtilsMessengerCallbackDataEXT</type>* <name>callbackData</name></param>
</command>
<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">
<proto><type>XrResult</type> <name>xrSessionBeginDebugUtilsLabelRegionEXT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrDebugUtilsLabelEXT</type>* <name>labelInfo</name></param>
</command>
<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">
<proto><type>XrResult</type> <name>xrSessionEndDebugUtilsLabelRegionEXT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
</command>
<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">
<proto><type>XrResult</type> <name>xrSessionInsertDebugUtilsLabelEXT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrDebugUtilsLabelEXT</type>* <name>labelInfo</name></param>
</command>
<!-- commands for XR_KHR_win32_convert_performance_counter_time -->
<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_TIME_INVALID">
<proto><type>XrResult</type> <name>xrConvertTimeToWin32PerformanceCounterKHR</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrTime</type> <name>time</name></param>
<param><type>LARGE_INTEGER</type>* <name>performanceCounter</name></param>
</command>
<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_TIME_INVALID">
<proto><type>XrResult</type> <name>xrConvertWin32PerformanceCounterToTimeKHR</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param>const <type>LARGE_INTEGER</type>* <name>performanceCounter</name></param>
<param><type>XrTime</type>* <name>time</name></param>
</command>
<!-- commands for XR_KHR_vulkan_enable2 -->
<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,XR_ERROR_LIMIT_REACHED,XR_ERROR_SYSTEM_INVALID">
<proto><type>XrResult</type> <name>xrCreateVulkanInstanceKHR</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param>const <type>XrVulkanInstanceCreateInfoKHR</type>*<name>createInfo</name></param>
<param><type>VkInstance</type>* <name>vulkanInstance</name></param>
<param><type>VkResult</type>* <name>vulkanResult</name></param>
</command>
<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,XR_ERROR_LIMIT_REACHED,XR_ERROR_SYSTEM_INVALID">
<proto><type>XrResult</type> <name>xrCreateVulkanDeviceKHR</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param>const <type>XrVulkanDeviceCreateInfoKHR</type>* <name>createInfo</name></param>
<param><type>VkDevice</type>* <name>vulkanDevice</name></param>
<param><type>VkResult</type>* <name>vulkanResult</name></param>
</command>
<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_SYSTEM_INVALID">
<proto><type>XrResult</type> <name>xrGetVulkanGraphicsDevice2KHR</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param>const <type>XrVulkanGraphicsDeviceGetInfoKHR</type>* <name>getInfo</name></param>
<param><type>VkPhysicalDevice</type>* <name>vulkanPhysicalDevice</name></param>
</command>
<command name="xrGetVulkanGraphicsRequirements2KHR" alias="xrGetVulkanGraphicsRequirementsKHR"/>
<!-- commands for XR_KHR_convert_timespec_time -->
<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_TIME_INVALID">
<proto><type>XrResult</type> <name>xrConvertTimeToTimespecTimeKHR</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrTime</type> <name>time</name></param>
<param>struct <type>timespec</type>* <name>timespecTime</name></param>
</command>
<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_TIME_INVALID">
<proto><type>XrResult</type> <name>xrConvertTimespecTimeToTimeKHR</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param>const struct <type>timespec</type>* <name>timespecTime</name></param>
<param><type>XrTime</type>* <name>time</name></param>
</command>
<!-- commands for XR_KHR_visibility_mask -->
<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_SIZE_INSUFFICIENT,XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetVisibilityMaskKHR</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></param>
<param><type>uint32_t</type> <name>viewIndex</name></param>
<param><type>XrVisibilityMaskTypeKHR</type> <name>visibilityMaskType</name></param>
<param><type>XrVisibilityMaskKHR</type>* <name>visibilityMask</name></param>
</command>
<!-- commands for XR_MSFT_spatial_anchor -->
<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_TIME_INVALID,XR_ERROR_POSE_INVALID,XR_ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT">
<proto><type>XrResult</type> <name>xrCreateSpatialAnchorMSFT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrSpatialAnchorCreateInfoMSFT</type>* <name>createInfo</name></param>
<param><type>XrSpatialAnchorMSFT</type>* <name>anchor</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_POSE_INVALID">
<proto><type>XrResult</type> <name>xrCreateSpatialAnchorSpaceMSFT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrSpatialAnchorSpaceCreateInfoMSFT</type>* <name>createInfo</name></param>
<param><type>XrSpace</type>* <name>space</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroySpatialAnchorMSFT</name></proto>
<param externsync="true_with_children"><type>XrSpatialAnchorMSFT</type> <name>anchor</name></param>
</command>
<!-- commands for XR_EXT_conformance_automation -->
<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_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID">
<proto><type>XrResult</type> <name>xrSetInputDeviceActiveEXT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrPath</type> <name>interactionProfile</name></param>
<param><type>XrPath</type> <name>topLevelPath</name></param>
<param><type>XrBool32</type> <name>isActive</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_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID">
<proto><type>XrResult</type> <name>xrSetInputDeviceStateBoolEXT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrPath</type> <name>topLevelPath</name></param>
<param><type>XrPath</type> <name>inputSourcePath</name></param>
<param><type>XrBool32</type> <name>state</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_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID">
<proto><type>XrResult</type> <name>xrSetInputDeviceStateFloatEXT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrPath</type> <name>topLevelPath</name></param>
<param><type>XrPath</type> <name>inputSourcePath</name></param>
<param><type>float</type> <name>state</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_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID">
<proto><type>XrResult</type> <name>xrSetInputDeviceStateVector2fEXT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrPath</type> <name>topLevelPath</name></param>
<param><type>XrPath</type> <name>inputSourcePath</name></param>
<param><type>XrVector2f</type> <name>state</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_POSE_INVALID,XR_ERROR_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID">
<proto><type>XrResult</type> <name>xrSetInputDeviceLocationEXT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrPath</type> <name>topLevelPath</name></param>
<param><type>XrPath</type> <name>inputSourcePath</name></param>
<param><type>XrSpace</type> <name>space</name></param>
<param><type>XrPosef</type> <name>pose</name></param>
</command>
<!-- commands for XR_KHR_loader_init -->
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_VALIDATION_FAILURE">
<proto><type>XrResult</type> <name>xrInitializeLoaderKHR</name></proto>
<param>const <type>XrLoaderInitInfoBaseHeaderKHR</type>* <name>loaderInitInfo</name></param>
</command>
<!--XR_MSFT_spatial_graph_bridge -->
<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_POSE_INVALID">
<proto><type>XrResult</type> <name>xrCreateSpatialGraphNodeSpaceMSFT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrSpatialGraphNodeSpaceCreateInfoMSFT</type>* <name>createInfo</name></param>
<param><type>XrSpace</type>* <name>space</name></param>
</command>
<!-- XR_EXT_hand_tracking -->
<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,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrCreateHandTrackerEXT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param>const <type>XrHandTrackerCreateInfoEXT</type>* <name>createInfo</name></param>
<param><type>XrHandTrackerEXT</type>* <name>handTracker</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroyHandTrackerEXT</name></proto>
<param externsync="true_with_children"><type>XrHandTrackerEXT</type> <name>handTracker</name></param>
</command>
<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_TIME_INVALID">
<proto><type>XrResult</type> <name>xrLocateHandJointsEXT</name></proto>
<param><type>XrHandTrackerEXT</type> <name>handTracker</name></param>
<param>const <type>XrHandJointsLocateInfoEXT</type>* <name>locateInfo</name></param>
<param><type>XrHandJointLocationsEXT</type>* <name>locations</name></param>
</command>
<!-- XR_MSFT_hand_tracking_mesh -->
<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,XR_ERROR_POSE_INVALID,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrCreateHandMeshSpaceMSFT</name></proto>
<param><type>XrHandTrackerEXT</type> <name>handTracker</name></param>
<param>const <type>XrHandMeshSpaceCreateInfoMSFT</type>* <name>createInfo</name></param>
<param><type>XrSpace</type>* <name>space</name></param>
</command>
<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_SIZE_INSUFFICIENT,XR_ERROR_TIME_INVALID,XR_ERROR_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrUpdateHandMeshMSFT</name></proto>
<param><type>XrHandTrackerEXT</type> <name>handTracker</name></param>
<param>const <type>XrHandMeshUpdateInfoMSFT</type>* <name>updateInfo</name></param>
<param><type>XrHandMeshMSFT</type>* <name>handMesh</name></param>
</command>
<!-- XR_MSFT_controller_model -->
<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_PATH_UNSUPPORTED,XR_ERROR_PATH_INVALID,XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT">
<proto><type>XrResult</type> <name>xrGetControllerModelKeyMSFT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrPath</type> <name>topLevelUserPath</name></param>
<param><type>XrControllerModelKeyStateMSFT</type>* <name>controllerModelKeyState</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,XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT">
<proto><type>XrResult</type> <name>xrLoadControllerModelMSFT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrControllerModelKeyMSFT</type> <name>modelKey</name></param>
<param optional="true"><type>uint32_t</type> <name>bufferCapacityInput</name></param>
<param><type>uint32_t</type>* <name>bufferCountOutput</name></param>
<param optional="true" len="bufferCapacityInput"><type>uint8_t</type>* <name>buffer</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_CONTROLLER_MODEL_KEY_INVALID_MSFT">
<proto><type>XrResult</type> <name>xrGetControllerModelPropertiesMSFT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrControllerModelKeyMSFT</type> <name>modelKey</name></param>
<param><type>XrControllerModelPropertiesMSFT</type>* <name>properties</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_CONTROLLER_MODEL_KEY_INVALID_MSFT">
<proto><type>XrResult</type> <name>xrGetControllerModelStateMSFT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrControllerModelKeyMSFT</type> <name>modelKey</name></param>
<param><type>XrControllerModelStateMSFT</type>* <name>state</name></param>
</command>
<!-- XR_MSFT_scene_understanding -->
<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,XR_ERROR_SIZE_INSUFFICIENT,XR_ERROR_SYSTEM_INVALID">
<proto><type>XrResult</type> <name>xrEnumerateSceneComputeFeaturesMSFT</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrSystemId</type> <name>systemId</name></param>
<param optional="true"><type>uint32_t</type> <name>featureCapacityInput</name></param>
<param><type>uint32_t</type>* <name>featureCountOutput</name></param>
<param optional="true" len="featureCapacityInput"><type>XrSceneComputeFeatureMSFT</type>* <name>features</name></param>
</command>
<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>xrCreateSceneObserverMSFT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param optional="true">const <type>XrSceneObserverCreateInfoMSFT</type>* <name>createInfo</name></param>
<param><type>XrSceneObserverMSFT</type>* <name>sceneObserver</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroySceneObserverMSFT</name></proto>
<param externsync="true_with_children"><type>XrSceneObserverMSFT</type> <name>sceneObserver</name></param>
</command>
<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>xrCreateSceneMSFT</name></proto>
<param><type>XrSceneObserverMSFT</type> <name>sceneObserver</name></param>
<param optional="true">const <type>XrSceneCreateInfoMSFT</type>* <name>createInfo</name></param>
<param><type>XrSceneMSFT</type>* <name>scene</name></param>
</command>
<command successcodes="XR_SUCCESS" errorcodes="XR_ERROR_FUNCTION_UNSUPPORTED,XR_ERROR_HANDLE_INVALID">
<proto><type>XrResult</type> <name>xrDestroySceneMSFT</name></proto>
<param externsync="true_with_children"><type>XrSceneMSFT</type> <name>scene</name></param>
</command>
<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_TIME_INVALID,XR_ERROR_POSE_INVALID">
<proto><type>XrResult</type> <name>xrComputeNewSceneMSFT</name></proto>
<param><type>XrSceneObserverMSFT</type> <name>sceneObserver</name></param>
<param>const <type>XrNewSceneComputeInfoMSFT</type>* <name>computeInfo</name></param>
</command>
<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">
<proto><type>XrResult</type> <name>xrGetSceneComputeStateMSFT</name></proto>
<param><type>XrSceneObserverMSFT</type> <name>sceneObserver</name></param>
<param><type>XrSceneComputeStateMSFT</type>* <name>state</name></param>
</command>
<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_SIZE_INSUFFICIENT">
<proto><type>XrResult</type> <name>xrGetSceneComponentsMSFT</name></proto>
<param><type>XrSceneMSFT</type> <name>scene</name></param>
<param>const <type>XrSceneComponentsGetInfoMSFT</type>* <name>getInfo</name></param>
<param><type>XrSceneComponentsMSFT</type>* <name>components</name></param>
</command>
<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_SIZE_INSUFFICIENT,XR_ERROR_TIME_INVALID">
<proto><type>XrResult</type> <name>xrLocateSceneComponentsMSFT</name></proto>
<param><type>XrSceneMSFT</type> <name>scene</name></param>
<param>const <type>XrSceneComponentsLocateInfoMSFT</type>* <name>locateInfo</name></param>
<param><type>XrSceneComponentLocationsMSFT</type>* <name>locations</name></param>
</command>
<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_SCENE_COMPONENT_ID_INVALID_MSFT">
<proto><type>XrResult</type> <name>xrGetSceneMeshBuffersMSFT</name></proto>
<param><type>XrSceneMSFT</type> <name>scene</name></param>
<param>const <type>XrSceneMeshBuffersGetInfoMSFT</type>* <name>getInfo</name></param>
<param><type>XrSceneMeshBuffersMSFT</type>* <name>buffers</name></param>
</command>
<!-- XR_MSFT_scene_understanding_serialization -->
<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">
<proto><type>XrResult</type> <name>xrDeserializeSceneMSFT</name></proto>
<param><type>XrSceneObserverMSFT</type> <name>sceneObserver</name></param>
<param>const <type>XrSceneDeserializeInfoMSFT</type>* <name>deserializeInfo</name></param>
</command>
<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_SIZE_INSUFFICIENT">
<proto><type>XrResult</type> <name>xrGetSerializedSceneFragmentDataMSFT</name></proto>
<param><type>XrSceneMSFT</type> <name>scene</name></param>
<param>const <type>XrSerializedSceneFragmentDataGetInfoMSFT</type>* <name>getInfo</name></param>
<param optional="true"><type>uint32_t</type> <name>countInput</name></param>
<param><type>uint32_t</type>* <name>readOutput</name></param>
<param optional="true" len="countInput"><type>uint8_t</type>* <name>buffer</name></param>
</command>
<!-- XR_FB_display_refresh_rate -->
<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_SIZE_INSUFFICIENT">
<proto><type>XrResult</type> <name>xrEnumerateDisplayRefreshRatesFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param optional="true"><type>uint32_t</type> <name>displayRefreshRateCapacityInput</name></param>
<param><type>uint32_t</type>* <name>displayRefreshRateCountOutput</name></param>
<param optional="true" len="displayRefreshRateCapacityInput"><type>float</type>* <name>displayRefreshRates</name></param>
</command>
<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">
<proto><type>XrResult</type> <name>xrGetDisplayRefreshRateFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>float</type>* <name>displayRefreshRate</name></param>
</command>
<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_FEATURE_UNSUPPORTED,XR_ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB">
<proto><type>XrResult</type> <name>xrRequestDisplayRefreshRateFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>float</type> <name>displayRefreshRate</name></param>
</command>
<!-- XR_MSFT_perception_anchor_interop -->
<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>xrCreateSpatialAnchorFromPerceptionAnchorMSFT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>IUnknown</type>* <name>perceptionAnchor</name></param>
<param><type>XrSpatialAnchorMSFT</type>* <name>anchor</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>xrTryGetPerceptionAnchorFromSpatialAnchorMSFT</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrSpatialAnchorMSFT</type> <name>anchor</name></param>
<param><type>IUnknown</type>** <name>perceptionAnchor</name></param>
</command>
<!-- XR_FB_swapchain_update_state -->
<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">
<proto><type>XrResult</type> <name>xrUpdateSwapchainFB</name></proto>
<param><type>XrSwapchain</type> <name>swapchain</name></param>
<param>const <type>XrSwapchainStateBaseHeaderFB</type>* <name>state</name></param>
</command>
<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">
<proto><type>XrResult</type> <name>xrGetSwapchainStateFB</name></proto>
<param><type>XrSwapchain</type> <name>swapchain</name></param>
<param><type>XrSwapchainStateBaseHeaderFB</type>* <name>state</name></param>
</command>
<!-- XR_FB_color_space -->
<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_SIZE_INSUFFICIENT">
<proto><type>XrResult</type> <name>xrEnumerateColorSpacesFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<param optional="true"><type>uint32_t</type> <name>colorSpaceCapacityInput</name></param>
<param><type>uint32_t</type>* <name>colorSpaceCountOutput</name></param>
<param optional="true" len="colorSpaceCapacityInput"><type>XrColorSpaceFB</type>* <name>colorSpaces</name></param>
</command>
<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_FEATURE_UNSUPPORTED,XR_ERROR_COLOR_SPACE_UNSUPPORTED_FB">
<proto><type>XrResult</type> <name>xrSetColorSpaceFB</name></proto>
<param><type>XrSession</type> <name>session</name></param>
<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>
<param><type>XrSession</type> <name>session</name></param>
<param><type>XrBool32</type> <name>enabled</name></param>
</command>
<!-- XR_MSFT_composition_layer_reprojection -->
<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_SIZE_INSUFFICIENT,XR_ERROR_VIEW_CONFIGURATION_TYPE_UNSUPPORTED,XR_ERROR_SYSTEM_INVALID">
<proto><type>XrResult</type> <name>xrEnumerateReprojectionModesMSFT</name></proto>
<param><type>XrInstance</type> <name>instance</name></param>
<param><type>XrSystemId</type> <name>systemId</name></param>
<param><type>XrViewConfigurationType</type> <name>viewConfigurationType</name></param>
<param optional="true"><type>uint32_t</type> <name>modeCapacityInput</name></param>
<param><type>uint32_t</type>* <name>modeCountOutput</name></param>
<param optional="true" len="modeCapacityInput"><type>XrReprojectionModeMSFT</type>* <name>modes</name></param>
</command>
<!-- commands for XR_OCULUS_audio_device_guid -->
<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_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetAudioOutputDeviceGuidOculus</name></proto>
<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>
<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_FEATURE_UNSUPPORTED">
<proto><type>XrResult</type> <name>xrGetAudioInputDeviceGuidOculus</name></proto>
<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 -->
<!--
Note: Only explicitly specify types if they are not
referenced by a function or another type. (For example,
if they're expected to be in a next chain.)
Types referenced by functions are included automatically.
-->
<feature api="openxr" name="XR_VERSION_1_0" number="1.0">
<require comment="Header boilerplate">
<type name="openxr_platform_defines"/>
</require>
<require comment="API version">
<type name="XR_CURRENT_API_VERSION"/>
<type name="XR_VERSION_MAJOR"/>
<type name="XR_VERSION_MINOR"/>
<type name="XR_VERSION_PATCH"/>
<type name="XrVersion"/>
</require>
<require comment="API constants">
<enum name="XR_TRUE"/>
<enum name="XR_FALSE"/>
<enum name="XR_MAX_EXTENSION_NAME_SIZE"/>
<enum name="XR_MAX_API_LAYER_NAME_SIZE"/>
<enum name="XR_MAX_API_LAYER_DESCRIPTION_SIZE"/>
<enum name="XR_MAX_SYSTEM_NAME_SIZE"/>
<enum name="XR_MAX_APPLICATION_NAME_SIZE"/>
<enum name="XR_MAX_ENGINE_NAME_SIZE"/>
<enum name="XR_MAX_RUNTIME_NAME_SIZE"/>
<enum name="XR_MAX_PATH_LENGTH"/>
<enum name="XR_MAX_STRUCTURE_NAME_SIZE"/>
<enum name="XR_MAX_RESULT_STRING_SIZE"/>
<enum name="XR_MIN_COMPOSITION_LAYERS_SUPPORTED"/>
<type name="XR_NULL_HANDLE"/>
<type name="XR_NULL_SYSTEM_ID"/>
<type name="XR_NULL_PATH"/>
<type name="XR_SUCCEEDED"/>
<type name="XR_FAILED"/>
<type name="XR_UNQUALIFIED_SUCCESS"/>
<type name="XR_NO_DURATION"/>
<type name="XR_INFINITE_DURATION"/>
<type name="XR_MIN_HAPTIC_DURATION"/>
<type name="XR_FREQUENCY_UNSPECIFIED"/>
<type name="XR_MAX_EVENT_DATA_SIZE"/>
</require>
<require comment="API macros">
<type name="XR_MAY_ALIAS"/>
<type name="XR_DEFINE_HANDLE"/>
</require>
<require comment="Instance">
<command name="xrGetInstanceProcAddr"/>
<command name="xrEnumerateApiLayerProperties"/>
<command name="xrEnumerateInstanceExtensionProperties"/>
<command name="xrCreateInstance"/>
<command name="xrDestroyInstance"/>
<command name="xrGetInstanceProperties"/>
<command name="xrPollEvent"/>
<command name="xrResultToString"/>
<command name="xrStructureTypeToString"/>
</require>
<require comment="Device">
<command name="xrGetSystem"/>
<command name="xrGetSystemProperties"/>
<command name="xrEnumerateEnvironmentBlendModes"/>
<command name="xrCreateSession"/>
<command name="xrDestroySession"/>
</require>
<require comment="Space">
<command name="xrEnumerateReferenceSpaces"/>
<command name="xrCreateReferenceSpace"/>
<command name="xrGetReferenceSpaceBoundsRect"/>
<command name="xrCreateActionSpace"/>
<command name="xrLocateSpace"/>
<command name="xrDestroySpace"/>
<type name="XrSpaceVelocity"/>
</require>
<require comment="ViewConfigurations">
<command name="xrEnumerateViewConfigurations"/>
<command name="xrGetViewConfigurationProperties"/>
<command name="xrEnumerateViewConfigurationViews"/>
</require>
<require comment="Image">
<command name="xrEnumerateSwapchainFormats"/>
<command name="xrCreateSwapchain"/>
<command name="xrDestroySwapchain"/>
<command name="xrEnumerateSwapchainImages"/>
<command name="xrAcquireSwapchainImage"/>
<command name="xrWaitSwapchainImage"/>
<command name="xrReleaseSwapchainImage"/>
</require>
<require comment="Session">
<command name="xrBeginSession"/>
<command name="xrEndSession"/>
<command name="xrRequestExitSession"/>
</require>
<require comment="Display Timing">
<command name="xrWaitFrame"/>
<command name="xrBeginFrame"/>
<command name="xrEndFrame"/>
<command name="xrLocateViews"/>
</require>
<require comment="Semantic Paths">
<command name="xrStringToPath"/>
<command name="xrPathToString"/>
</require>
<require comment="Input">
<command name="xrCreateActionSet"/>
<command name="xrDestroyActionSet"/>
<command name="xrCreateAction"/>
<command name="xrDestroyAction"/>
<command name="xrSuggestInteractionProfileBindings"/>
<command name="xrAttachSessionActionSets"/>
<command name="xrGetCurrentInteractionProfile"/>
<command name="xrGetActionStateBoolean"/>
<command name="xrGetActionStateFloat"/>
<command name="xrGetActionStateVector2f"/>
<command name="xrGetActionStatePose"/>
<command name="xrSyncActions"/>
<command name="xrEnumerateBoundSourcesForAction"/>
<command name="xrGetInputSourceLocalizedName"/>
</require>
<require comment="Haptics">
<command name="xrApplyHapticFeedback"/>
<command name="xrStopHapticFeedback"/>
</require>
<require comment="Types not directly used by the API">
<!-- Include <type name="typename"/> here for e.g. structs that
are not parameter types of functions, but still need to be
defined in the API.
-->
<!-- Utility types to handle polymorphism -->
<type name="XrBaseInStructure"/>
<type name="XrBaseOutStructure"/>
<!-- Composition layer types used polymorphically by the core spec through XrCompositionLayerBaseHeader. -->
<type name="XrCompositionLayerProjection"/>
<type name="XrCompositionLayerQuad"/>
<!-- Event data types used polymorphically by the core spec through XrEventDataBaseHeader -->
<type name="XrEventDataBaseHeader"/>
<type name="XrEventDataEventsLost"/>
<type name="XrEventDataInstanceLossPending"/>
<type name="XrEventDataSessionStateChanged"/>
<type name="XrEventDataReferenceSpaceChangePending"/>
<type name="XrEventDataInteractionProfileChanged"/>
<!-- Haptic data type used polymorphically by the core spec via XrHapticBaseHeader -->
<type name="XrHapticVibration"/>
<!-- Unused, but documented types, included for completeness and regularity. -->
<type name="XrOffset2Df"/>
<type name="XrRect2Df"/>
<type name="XrVector4f"/>
<!-- Core-like basic data types, documented in core spec, though currently only used by KHR extensions: -->
<!-- used in XR_KHR_composition_layer_color_scale_bias -->
<type name="XrColor4f"/>
<!-- used in XR_KHR_space bounds -->
<type name="XrExtent2Df"/>
<!-- used in XR_EXT_debug_utils -->
<type name="XrObjectType"/>
</require>
</feature>
<!-- SECTION: OpenXR extension interface definitions -->
<extensions>
<!-- Android Thread Settings extension -->
<extension name="XR_KHR_android_thread_settings" number="4" type="instance" supported="openxr" protect="XR_USE_PLATFORM_ANDROID">
<require>
<enum value="5" name="XR_KHR_android_thread_settings_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_android_thread_settings&quot;" name="XR_KHR_ANDROID_THREAD_SETTINGS_EXTENSION_NAME"/>
<enum offset="0" extends="XrResult" dir="-" name="XR_ERROR_ANDROID_THREAD_SETTINGS_ID_INVALID_KHR" comment="xrSetAndroidApplicationThreadKHR failed as thread id is invalid."/>
<enum offset="1" extends="XrResult" dir="-" name="XR_ERROR_ANDROID_THREAD_SETTINGS_FAILURE_KHR" comment="xrSetAndroidApplicationThreadKHR failed setting the thread attributes/priority."/>
<type name="XrAndroidThreadTypeKHR"/>
<command name="xrSetAndroidApplicationThreadKHR"/>
</require>
</extension>
<!-- Android Surface Swapchain extension -->
<extension name="XR_KHR_android_surface_swapchain" number="5" type="instance" supported="openxr" protect="XR_USE_PLATFORM_ANDROID">
<require>
<enum value="4" name="XR_KHR_android_surface_swapchain_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_android_surface_swapchain&quot;" name="XR_KHR_ANDROID_SURFACE_SWAPCHAIN_EXTENSION_NAME"/>
<command name="xrCreateSwapchainAndroidSurfaceKHR"/>
</require>
</extension>
<!-- Non-core composition cube layer -->
<extension name="XR_KHR_composition_layer_cube" number="7" type="instance" supported="openxr">
<require>
<enum value="8" name="XR_KHR_composition_layer_cube_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_composition_layer_cube&quot;" name="XR_KHR_COMPOSITION_LAYER_CUBE_EXTENSION_NAME"/>
<type name="XrCompositionLayerCubeKHR"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_CUBE_KHR"/>
</require>
</extension>
<!-- Android Create Instance extension -->
<extension name="XR_KHR_android_create_instance" number="9" type="instance" supported="openxr" protect="XR_USE_PLATFORM_ANDROID">
<require>
<enum value="3" name="XR_KHR_android_create_instance_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_android_create_instance&quot;" name="XR_KHR_ANDROID_CREATE_INSTANCE_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_INSTANCE_CREATE_INFO_ANDROID_KHR"/>
<type name="XrInstanceCreateInfoAndroidKHR"/>
</require>
</extension>
<!-- Runtime support for additional per-layer depth info -->
<extension name="XR_KHR_composition_layer_depth" number="11" type="instance" supported="openxr">
<require>
<enum value="5" name="XR_KHR_composition_layer_depth_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_composition_layer_depth&quot;" name="XR_KHR_COMPOSITION_LAYER_DEPTH_EXTENSION_NAME"/>
<type name="XrCompositionLayerDepthInfoKHR"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_DEPTH_INFO_KHR"/>
</require>
</extension>
<!-- Reserved for headless "graphics binding" extension -->
<extension name="XR_KHR_headless" number="14" type="instance" supported="disabled">
<require>
<enum value="4" name="XR_KHR_headless_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_headless&quot;" name="XR_KHR_HEADLESS_EXTENSION_NAME"/>
</require>
</extension>
<!-- Vulkan image format list extension -->
<extension name="XR_KHR_vulkan_swapchain_format_list" number="15" type="instance" requires="XR_KHR_vulkan_enable" supported="openxr" protect="XR_USE_GRAPHICS_API_VULKAN">
<require>
<enum value="4" name="XR_KHR_vulkan_swapchain_format_list_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_vulkan_swapchain_format_list&quot;" name="XR_KHR_VULKAN_SWAPCHAIN_FORMAT_LIST_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_VULKAN_SWAPCHAIN_FORMAT_LIST_CREATE_INFO_KHR"/>
<type name="XrVulkanSwapchainFormatListCreateInfoKHR"/>
</require>
</extension>
<!-- Performance Settings extension -->
<extension name="XR_EXT_performance_settings" number="16" type="instance" supported="openxr">
<require>
<enum value="3" name="XR_EXT_performance_settings_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_performance_settings&quot;" name="XR_EXT_PERFORMANCE_SETTINGS_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_PERF_SETTINGS_EXT"/>
<type name="XrPerfSettingsDomainEXT"/>
<type name="XrPerfSettingsSubDomainEXT"/>
<type name="XrPerfSettingsLevelEXT"/>
<type name="XrPerfSettingsNotificationLevelEXT"/>
<type name="XrEventDataPerfSettingsEXT"/>
<command name="xrPerfSettingsSetPerformanceLevelEXT"/>
</require>
</extension>
<!-- Thermal Query extension -->
<extension name="XR_EXT_thermal_query" number="17" type="instance" supported="openxr">
<require>
<enum value="2" name="XR_EXT_thermal_query_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_thermal_query&quot;" name="XR_EXT_THERMAL_QUERY_EXTENSION_NAME"/>
<type name="XrPerfSettingsDomainEXT"/>
<type name="XrPerfSettingsNotificationLevelEXT"/>
<command name="xrThermalGetTemperatureTrendEXT"/>
</require>
</extension>
<!-- Non-core composition cylinder layer -->
<extension name="XR_KHR_composition_layer_cylinder" number="18" type="instance" supported="openxr">
<require>
<enum value="4" name="XR_KHR_composition_layer_cylinder_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_composition_layer_cylinder&quot;" name="XR_KHR_COMPOSITION_LAYER_CYLINDER_EXTENSION_NAME"/>
<type name="XrCompositionLayerCylinderKHR"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_CYLINDER_KHR"/>
</require>
</extension>
<!-- Non-core composition equilateral rect layer -->
<extension name="XR_KHR_composition_layer_equirect" number="19" type="instance" supported="openxr">
<require>
<enum value="3" name="XR_KHR_composition_layer_equirect_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_composition_layer_equirect&quot;" name="XR_KHR_COMPOSITION_LAYER_EQUIRECT_EXTENSION_NAME"/>
<type name="XrCompositionLayerEquirectKHR"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_EQUIRECT_KHR"/>
</require>
</extension>
<!-- Debug Utilities extension -->
<extension name="XR_EXT_debug_utils" number="20" type="instance" supported="openxr">
<require>
<enum value="4" name="XR_EXT_debug_utils_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_debug_utils&quot;" name="XR_EXT_DEBUG_UTILS_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_DEBUG_UTILS_LABEL_EXT"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT" comment="XrDebugUtilsMessengerEXT"/>
<type name="PFN_xrDebugUtilsMessengerCallbackEXT"/>
<type name="XrDebugUtilsObjectNameInfoEXT"/>
<type name="XrDebugUtilsLabelEXT"/>
<type name="XrDebugUtilsMessengerCallbackDataEXT"/>
<type name="XrDebugUtilsMessengerCreateInfoEXT"/>
<command name="xrSetDebugUtilsObjectNameEXT"/>
<command name="xrCreateDebugUtilsMessengerEXT"/>
<command name="xrDestroyDebugUtilsMessengerEXT"/>
<command name="xrSubmitDebugUtilsMessageEXT"/>
<command name="xrSessionBeginDebugUtilsLabelRegionEXT"/>
<command name="xrSessionEndDebugUtilsLabelRegionEXT"/>
<command name="xrSessionInsertDebugUtilsLabelEXT"/>
</require>
</extension>
<!-- Reserved space for Variable rate rendering extension -->
<extension name="XR_KHR_variable_rate_rendering" number="21" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_KHR_variable_rate_rendering_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_variable_rate_rendering&quot;" name="XR_KHR_VARIABLE_RATE_RENDERING_EXTENSION_NAME"/>
</require>
</extension>
<!-- Reserved space for Overlays extension -->
<extension name="XR_KHR_overlays" number="22" type="instance" supported="disabled">
<require>
<enum value="0" name="XR_KHR_overlays_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_overlays&quot;" name="XR_KHR_OVERLAYS_EXTENSION_NAME"/>
</require>
</extension>
<!-- OpenGL graphics binding extension -->
<extension name="XR_KHR_opengl_enable" number="24" type="instance" protect="XR_USE_GRAPHICS_API_OPENGL" supported="openxr">
<require>
<enum value="9" name="XR_KHR_opengl_enable_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_opengl_enable&quot;" name="XR_KHR_OPENGL_ENABLE_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_GRAPHICS_BINDING_OPENGL_WIN32_KHR"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_GRAPHICS_BINDING_OPENGL_XLIB_KHR"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_GRAPHICS_BINDING_OPENGL_XCB_KHR"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_GRAPHICS_BINDING_OPENGL_WAYLAND_KHR"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_KHR"/>
<enum offset="5" extends="XrStructureType" name="XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_KHR"/>
<type name="XrGraphicsBindingOpenGLWin32KHR"/>
<type name="XrGraphicsBindingOpenGLXlibKHR"/>
<type name="XrGraphicsBindingOpenGLXcbKHR"/>
<type name="XrGraphicsBindingOpenGLWaylandKHR"/>
<type name="XrSwapchainImageOpenGLKHR"/>
<type name="XrGraphicsRequirementsOpenGLKHR"/>
<command name="xrGetOpenGLGraphicsRequirementsKHR"/>
</require>
</extension>
<!-- OpenGL ES graphics binding extension -->
<extension name="XR_KHR_opengl_es_enable" number="25" type="instance" protect="XR_USE_GRAPHICS_API_OPENGL_ES" supported="openxr">
<require>
<enum value="7" name="XR_KHR_opengl_es_enable_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_opengl_es_enable&quot;" name="XR_KHR_OPENGL_ES_ENABLE_EXTENSION_NAME"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_GRAPHICS_BINDING_OPENGL_ES_ANDROID_KHR"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_IMAGE_OPENGL_ES_KHR"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_GRAPHICS_REQUIREMENTS_OPENGL_ES_KHR"/>
<type name="XrGraphicsBindingOpenGLESAndroidKHR"/>
<type name="XrSwapchainImageOpenGLESKHR"/>
<type name="XrGraphicsRequirementsOpenGLESKHR"/>
<command name="xrGetOpenGLESGraphicsRequirementsKHR"/>
</require>
</extension>
<!-- Vulkan graphics binding extension -->
<extension name="XR_KHR_vulkan_enable" number="26" type="instance" protect="XR_USE_GRAPHICS_API_VULKAN" supported="openxr">
<require>
<enum value="8" name="XR_KHR_vulkan_enable_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_vulkan_enable&quot;" name="XR_KHR_VULKAN_ENABLE_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR"/>
<type name="XrGraphicsBindingVulkanKHR"/>
<type name="XrSwapchainImageVulkanKHR"/>
<type name="XrGraphicsRequirementsVulkanKHR"/>
<command name="xrGetVulkanInstanceExtensionsKHR"/>
<command name="xrGetVulkanDeviceExtensionsKHR"/>
<command name="xrGetVulkanGraphicsDeviceKHR"/>
<command name="xrGetVulkanGraphicsRequirementsKHR"/>
</require>
</extension>
<!-- Value used by obsolete D3D10 graphics binding extension -->
<extension name="XR_KHR_D3D10_enable_obsolete" number="27" type="instance" supported="disabled">
<require>
<enum value="4" name="XR_KHR_D3D10_enable_obsolete_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_D3D10_enable_obsolete&quot;" name="XR_KHR_D3D10_ENABLE_OBSOLETE_EXTENSION_NAME"/>
</require>
</extension>
<!-- D3D11 graphics binding extension -->
<extension name="XR_KHR_D3D11_enable" number="28" type="instance" protect="XR_USE_GRAPHICS_API_D3D11" supported="openxr">
<require>
<enum value="5" name="XR_KHR_D3D11_enable_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_D3D11_enable&quot;" name="XR_KHR_D3D11_ENABLE_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_GRAPHICS_BINDING_D3D11_KHR"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_IMAGE_D3D11_KHR"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_GRAPHICS_REQUIREMENTS_D3D11_KHR"/>
<type name="XrGraphicsBindingD3D11KHR"/>
<type name="XrSwapchainImageD3D11KHR"/>
<type name="XrGraphicsRequirementsD3D11KHR"/>
<command name="xrGetD3D11GraphicsRequirementsKHR"/>
</require>
</extension>
<!-- D3D12 graphics binding extension -->
<extension name="XR_KHR_D3D12_enable" number="29" type="instance" protect="XR_USE_GRAPHICS_API_D3D12" supported="openxr">
<require>
<enum value="7" name="XR_KHR_D3D12_enable_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_D3D12_enable&quot;" name="XR_KHR_D3D12_ENABLE_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_GRAPHICS_BINDING_D3D12_KHR"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_IMAGE_D3D12_KHR"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_GRAPHICS_REQUIREMENTS_D3D12_KHR"/>
<type name="XrGraphicsBindingD3D12KHR"/>
<type name="XrSwapchainImageD3D12KHR"/>
<type name="XrGraphicsRequirementsD3D12KHR"/>
<command name="xrGetD3D12GraphicsRequirementsKHR"/>
</require>
</extension>
<!-- Reserved space for Enable Metal extension -->
<extension name="XR_KHR_metal_enable" number="30" type="instance" protect="XR_USE_GRAPHICS_API_METAL" supported="disabled">
<require>
<enum value="1" name="XR_KHR_metal_enable_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_metal_enable&quot;" name="XR_KHR_METAL_ENABLE_EXTENSION_NAME"/>
</require>
</extension>
<!-- Eye gaze interaction extension -->
<extension name="XR_EXT_eye_gaze_interaction" number="31" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_EXT_eye_gaze_interaction_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_eye_gaze_interaction&quot;" name="XR_EXT_EYE_GAZE_INTERACTION_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SYSTEM_EYE_GAZE_INTERACTION_PROPERTIES_EXT"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_EYE_GAZE_SAMPLE_TIME_EXT"/>
<type name="XrSystemEyeGazeInteractionPropertiesEXT"/>
<type name="XrEyeGazeSampleTimeEXT"/>
</require>
</extension>
<!-- Visibility mask extension -->
<extension name="XR_KHR_visibility_mask" number="32" type="instance" supported="openxr">
<require>
<enum value="2" name="XR_KHR_visibility_mask_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_visibility_mask&quot;" name="XR_KHR_VISIBILITY_MASK_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_VISIBILITY_MASK_KHR"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_VISIBILITY_MASK_CHANGED_KHR"/>
<type name="XrVisibilityMaskTypeKHR"/>
<type name="XrVisibilityMaskKHR"/>
<type name="XrEventDataVisibilityMaskChangedKHR"/>
<command name="xrGetVisibilityMaskKHR"/>
</require>
</extension>
<!-- Reserved space for EXT permissions support -->
<extension name="XR_EXT_permissions_support" number="33" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_EXT_permissions_support_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_permissions_support&quot;" name="XR_EXT_PERMISSIONS_SUPPORT_EXTENSION_NAME"/>
</require>
</extension>
<!-- Overlay preview extension -->
<extension name="XR_EXTX_overlay" number="34" type="instance" provisional="true" supported="openxr">
<require>
<enum value="5" name="XR_EXTX_overlay_SPEC_VERSION"/>
<enum value="&quot;XR_EXTX_overlay&quot;" name="XR_EXTX_OVERLAY_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SESSION_CREATE_INFO_OVERLAY_EXTX"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_MAIN_SESSION_VISIBILITY_CHANGED_EXTX"/>
<type name="XrSessionCreateInfoOverlayEXTX"/>
<type name="XrEventDataMainSessionVisibilityChangedEXTX"/>
</require>
</extension>
<!-- per-layer color scale and bias -->
<extension name="XR_KHR_composition_layer_color_scale_bias" number="35" type="instance" supported="openxr">
<require>
<enum value="5" name="XR_KHR_composition_layer_color_scale_bias_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_composition_layer_color_scale_bias&quot;" name="XR_KHR_COMPOSITION_LAYER_COLOR_SCALE_BIAS_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_COLOR_SCALE_BIAS_KHR"/>
<type name="XrCompositionLayerColorScaleBiasKHR"/>
</require>
</extension>
<extension name="XR_KHR_win32_convert_performance_counter_time" number="36" type="instance" supported="openxr" protect="XR_USE_PLATFORM_WIN32">
<require>
<enum value="1" name="XR_KHR_win32_convert_performance_counter_time_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_win32_convert_performance_counter_time&quot;" name="XR_KHR_WIN32_CONVERT_PERFORMANCE_COUNTER_TIME_EXTENSION_NAME"/>
<command name="xrConvertWin32PerformanceCounterToTimeKHR"/>
<command name="xrConvertTimeToWin32PerformanceCounterKHR"/>
</require>
</extension>
<extension name="XR_KHR_convert_timespec_time" number="37" type="instance" supported="openxr" protect="XR_USE_TIMESPEC">
<require>
<enum value="1" name="XR_KHR_convert_timespec_time_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_convert_timespec_time&quot;" name="XR_KHR_CONVERT_TIMESPEC_TIME_EXTENSION_NAME"/>
<command name="xrConvertTimespecTimeToTimeKHR"/>
<command name="xrConvertTimeToTimespecTimeKHR"/>
</require>
</extension>
<extension name="XR_VARJO_quad_views" number="38" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_VARJO_quad_views_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_quad_views&quot;" name="XR_VARJO_QUAD_VIEWS_EXTENSION_NAME"/>
<enum offset="0" extends="XrViewConfigurationType" name="XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO"/>
</require>
</extension>
<extension name="XR_MSFT_unbounded_reference_space" number="39" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_MSFT_unbounded_reference_space_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_unbounded_reference_space&quot;" name="XR_MSFT_UNBOUNDED_REFERENCE_SPACE_EXTENSION_NAME"/>
<enum offset="0" extends="XrReferenceSpaceType" name="XR_REFERENCE_SPACE_TYPE_UNBOUNDED_MSFT"/>
</require>
</extension>
<extension name="XR_MSFT_spatial_anchor" number="40" type="instance" supported="openxr">
<require>
<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"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SPATIAL_ANCHOR_SPACE_CREATE_INFO_MSFT"/>
<command name="xrCreateSpatialAnchorMSFT"/>
<command name="xrCreateSpatialAnchorSpaceMSFT"/>
<command name="xrDestroySpatialAnchorMSFT"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_SPATIAL_ANCHOR_MSFT" comment="XrSpatialAnchorMSFT"/>
<enum offset="1" dir="-" extends="XrResult" name="XR_ERROR_CREATE_SPATIAL_ANCHOR_FAILED_MSFT" comment="Spatial anchor could not be created at that location."/>
</require>
</extension>
<extension name="XR_FB_composition_layer_image_layout" number="41" type="instance" supported="openxr">
<require>
<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_FB_composition_layer_alpha_blend" number="42" type="instance" supported="openxr">
<require>
<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>
<extension name="XR_MND_headless" number="43" type="instance" supported="openxr">
<require>
<enum value="2" name="XR_MND_headless_SPEC_VERSION"/>
<enum value="&quot;XR_MND_headless&quot;" name="XR_MND_HEADLESS_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_OCULUS_extension_44" number="44" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_OCULUS_extension_44_SPEC_VERSION"/>
<enum value="&quot;XR_OCULUS_extension_44&quot;" name="XR_OCULUS_EXTENSION_44_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_OCULUS_android_session_state_enable" number="45" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_OCULUS_android_session_state_enable_SPEC_VERSION"/>
<enum value="&quot;XR_OCULUS_android_session_state_enable&quot;" name="XR_OCULUS_ANDROID_SESSION_STATE_ENABLE_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MND_extension_46" number="46" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MND_extension_46_SPEC_VERSION"/>
<enum value="&quot;XR_MND_extension_46&quot;" name="XR_MND_EXTENSION_46_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_EXT_view_configuration_depth_range" number="47" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_EXT_view_configuration_depth_range_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_view_configuration_depth_range&quot;" name="XR_EXT_VIEW_CONFIGURATION_DEPTH_RANGE_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_VIEW_CONFIGURATION_DEPTH_RANGE_EXT"/>
<type name="XrViewConfigurationDepthRangeEXT"/>
</require>
</extension>
<extension name="XR_EXT_conformance_automation" number="48" type="instance" supported="openxr">
<require>
<enum value="3" name="XR_EXT_conformance_automation_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_conformance_automation&quot;" name="XR_EXT_CONFORMANCE_AUTOMATION_EXTENSION_NAME"/>
<command name="xrSetInputDeviceActiveEXT"/>
<command name="xrSetInputDeviceStateBoolEXT"/>
<command name="xrSetInputDeviceStateFloatEXT"/>
<command name="xrSetInputDeviceStateVector2fEXT"/>
<command name="xrSetInputDeviceLocationEXT"/>
</require>
</extension>
<extension name="XR_MNDX_egl_enable" number="49" type="instance" provisional="true" protect="XR_USE_PLATFORM_EGL" supported="openxr">
<require>
<enum value="1" name="XR_MNDX_egl_enable_SPEC_VERSION"/>
<enum value="&quot;XR_MNDX_egl_enable&quot;" name="XR_MNDX_EGL_ENABLE_EXTENSION_NAME"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_GRAPHICS_BINDING_EGL_MNDX"/>
<type name="XrGraphicsBindingEGLMNDX"/>
</require>
</extension>
<extension name="XR_MSFT_spatial_graph_bridge" number="50" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_MSFT_spatial_graph_bridge_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_spatial_graph_bridge&quot;" name="XR_MSFT_SPATIAL_GRAPH_BRIDGE_EXTENSION_NAME"/>
<type name="XrSpatialGraphNodeTypeMSFT"/>
<type name="XrSpatialGraphNodeSpaceCreateInfoMSFT"/>
<command name="xrCreateSpatialGraphNodeSpaceMSFT"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SPATIAL_GRAPH_NODE_SPACE_CREATE_INFO_MSFT"/>
</require>
</extension>
<extension name="XR_MSFT_hand_interaction" number="51" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_MSFT_hand_interaction_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_hand_interaction&quot;" name="XR_MSFT_HAND_INTERACTION_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_EXT_hand_tracking" number="52" type="instance" supported="openxr">
<require>
<enum value="4" name="XR_EXT_hand_tracking_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_hand_tracking&quot;" name="XR_EXT_HAND_TRACKING_EXTENSION_NAME"/>
<command name="xrCreateHandTrackerEXT"/>
<command name="xrDestroyHandTrackerEXT"/>
<command name="xrLocateHandJointsEXT"/>
<type name="XrHandEXT"/>
<type name="XrHandJointEXT"/>
<type name="XrHandJointSetEXT"/>
<type name="XrSystemHandTrackingPropertiesEXT"/>
<type name="XrHandTrackerCreateInfoEXT"/>
<type name="XrHandJointsLocateInfoEXT"/>
<type name="XrHandJointLocationEXT"/>
<type name="XrHandJointVelocityEXT"/>
<type name="XrHandJointLocationsEXT"/>
<type name="XrHandJointVelocitiesEXT"/>
<type name="XR_HAND_JOINT_COUNT_EXT"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_HAND_TRACKER_EXT" comment="XrHandTrackerEXT"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SYSTEM_HAND_TRACKING_PROPERTIES_EXT"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_HAND_TRACKER_CREATE_INFO_EXT"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_HAND_JOINTS_LOCATE_INFO_EXT"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_HAND_JOINT_LOCATIONS_EXT"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_HAND_JOINT_VELOCITIES_EXT"/>
</require>
</extension>
<extension name="XR_MSFT_hand_tracking_mesh" number="53"
requires="XR_EXT_hand_tracking" type="instance" supported="openxr">
<require>
<enum value="3" name="XR_MSFT_hand_tracking_mesh_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_hand_tracking_mesh&quot;" name="XR_MSFT_HAND_TRACKING_MESH_EXTENSION_NAME"/>
<command name="xrCreateHandMeshSpaceMSFT"/>
<command name="xrUpdateHandMeshMSFT"/>
<type name="XrSystemHandTrackingMeshPropertiesMSFT"/>
<type name="XrHandMeshSpaceCreateInfoMSFT"/>
<type name="XrHandMeshUpdateInfoMSFT"/>
<type name="XrHandMeshMSFT"/>
<type name="XrHandMeshIndexBufferMSFT"/>
<type name="XrHandMeshVertexBufferMSFT"/>
<type name="XrHandMeshVertexMSFT"/>
<type name="XrHandPoseTypeMSFT"/>
<type name="XrHandPoseTypeInfoMSFT"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SYSTEM_HAND_TRACKING_MESH_PROPERTIES_MSFT"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_HAND_MESH_SPACE_CREATE_INFO_MSFT"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_HAND_MESH_UPDATE_INFO_MSFT"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_HAND_MESH_MSFT"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_HAND_POSE_TYPE_INFO_MSFT"/>
</require>
</extension>
<extension name="XR_MSFT_secondary_view_configuration" number="54" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_MSFT_secondary_view_configuration_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_secondary_view_configuration&quot;" name="XR_MSFT_SECONDARY_VIEW_CONFIGURATION_EXTENSION_NAME"/>
<type name="XrSecondaryViewConfigurationSessionBeginInfoMSFT"/>
<type name="XrSecondaryViewConfigurationStateMSFT"/>
<type name="XrSecondaryViewConfigurationFrameStateMSFT"/>
<type name="XrSecondaryViewConfigurationFrameEndInfoMSFT"/>
<type name="XrSecondaryViewConfigurationLayerInfoMSFT"/>
<type name="XrSecondaryViewConfigurationSwapchainCreateInfoMSFT"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_SESSION_BEGIN_INFO_MSFT"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_STATE_MSFT"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_FRAME_STATE_MSFT"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_FRAME_END_INFO_MSFT"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_LAYER_INFO_MSFT"/>
<enum offset="5" extends="XrStructureType" name="XR_TYPE_SECONDARY_VIEW_CONFIGURATION_SWAPCHAIN_CREATE_INFO_MSFT"/>
<enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_SECONDARY_VIEW_CONFIGURATION_TYPE_NOT_ENABLED_MSFT"
comment="The secondary view configuration was not enabled when creating the session."/>
</require>
</extension>
<extension name="XR_MSFT_first_person_observer" number="55" type="instance" requires="XR_MSFT_secondary_view_configuration" supported="openxr">
<require>
<enum value="1" name="XR_MSFT_first_person_observer_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_first_person_observer&quot;" name="XR_MSFT_FIRST_PERSON_OBSERVER_EXTENSION_NAME"/>
<enum offset="0" extends="XrViewConfigurationType" name="XR_VIEW_CONFIGURATION_TYPE_SECONDARY_MONO_FIRST_PERSON_OBSERVER_MSFT"/>
</require>
</extension>
<extension name="XR_MSFT_controller_model" number="56" type="instance" supported="openxr">
<require>
<enum value="2" name="XR_MSFT_controller_model_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_controller_model&quot;" name="XR_MSFT_CONTROLLER_MODEL_EXTENSION_NAME"/>
<type name="XrControllerModelKeyStateMSFT"/>
<type name="XrControllerModelNodePropertiesMSFT"/>
<type name="XrControllerModelPropertiesMSFT"/>
<type name="XrControllerModelNodeStateMSFT"/>
<type name="XrControllerModelStateMSFT"/>
<type name="XrControllerModelKeyMSFT"/>
<type name="XR_NULL_CONTROLLER_MODEL_KEY_MSFT"/>
<command name="xrGetControllerModelKeyMSFT"/>
<command name="xrLoadControllerModelMSFT"/>
<command name="xrGetControllerModelPropertiesMSFT"/>
<command name="xrGetControllerModelStateMSFT"/>
<enum value="64" name="XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_CONTROLLER_MODEL_KEY_STATE_MSFT"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_CONTROLLER_MODEL_NODE_PROPERTIES_MSFT"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_CONTROLLER_MODEL_PROPERTIES_MSFT"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_CONTROLLER_MODEL_NODE_STATE_MSFT"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_CONTROLLER_MODEL_STATE_MSFT"/>
<enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_CONTROLLER_MODEL_KEY_INVALID_MSFT" comment="The controller model key is invalid."/>
</require>
</extension>
<extension name="XR_MSFT_perception_anchor_interop" number="57" type="instance" supported="openxr" requires="XR_MSFT_spatial_anchor" protect="XR_USE_PLATFORM_WIN32">
<require>
<enum value="1" name="XR_MSFT_perception_anchor_interop_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_perception_anchor_interop&quot;" name="XR_MSFT_PERCEPTION_ANCHOR_INTEROP_EXTENSION_NAME"/>
<command name="xrCreateSpatialAnchorFromPerceptionAnchorMSFT"/>
<command name="xrTryGetPerceptionAnchorFromSpatialAnchorMSFT"/>
</require>
</extension>
<extension name="XR_EXT_win32_appcontainer_compatible" number="58" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_EXT_win32_appcontainer_compatible_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_win32_appcontainer_compatible&quot;" name="XR_EXT_WIN32_APPCONTAINER_COMPATIBLE_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_59" number="59" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_59_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_59&quot;" name="XR_ML_extension_59_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_EPIC_view_configuration_fov" number="60" type="instance" supported="openxr">
<require>
<enum value="2" name="XR_EPIC_view_configuration_fov_SPEC_VERSION"/>
<enum value="&quot;XR_EPIC_view_configuration_fov&quot;" name="XR_EPIC_VIEW_CONFIGURATION_FOV_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_VIEW_CONFIGURATION_VIEW_FOV_EPIC"/>
<type name="XrViewConfigurationViewFovEPIC"/>
</require>
</extension>
<extension name="XR_MSFT_extension_63" number="63" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_63_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_63&quot;" name="XR_MSFT_extension_63_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_holographic_window_attachment" number="64" type="instance" supported="openxr" protect="XR_USE_PLATFORM_WIN32">
<require>
<enum value="1" name="XR_MSFT_holographic_window_attachment_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_holographic_window_attachment&quot;" name="XR_MSFT_HOLOGRAPHIC_WINDOW_ATTACHMENT_EXTENSION_NAME"/>
<type name="XrHolographicWindowAttachmentMSFT"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_HOLOGRAPHIC_WINDOW_ATTACHMENT_MSFT"/>
</require>
</extension>
<extension name="XR_MSFT_extension_65" number="65" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_65_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_65&quot;" name="XR_MSFT_extension_65_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_66" number="66" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_66_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_66&quot;" name="XR_MSFT_extension_66_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_composition_layer_reprojection" number="67" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_MSFT_composition_layer_reprojection_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_composition_layer_reprojection&quot;" name="XR_MSFT_COMPOSITION_LAYER_REPROJECTION_EXTENSION_NAME"/>
<type name="XrReprojectionModeMSFT"/>
<type name="XrCompositionLayerReprojectionInfoMSFT"/>
<type name="XrCompositionLayerReprojectionPlaneOverrideMSFT"/>
<command name="xrEnumerateReprojectionModesMSFT"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_REPROJECTION_INFO_MSFT"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_REPROJECTION_PLANE_OVERRIDE_MSFT"/>
<enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_REPROJECTION_MODE_UNSUPPORTED_MSFT" comment="The reprojection mode is not supported."/>
</require>
</extension>
<extension name="XR_LUNARG_extension_68" number="68" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LUNARG_extension_68_SPEC_VERSION"/>
<enum value="&quot;XR_LUNARG_extension_68&quot;" name="XR_LUNARG_extension_68_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_LUNARG_extension_69" number="69" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_LUNARG_extension_69_SPEC_VERSION"/>
<enum value="&quot;XR_LUNARG_extension_69&quot;" name="XR_LUNARG_extension_69_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HUAWEI_controller_interaction" number="70" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_HUAWEI_controller_interaction_SPEC_VERSION"/>
<enum value="&quot;XR_HUAWEI_controller_interaction&quot;" name="XR_HUAWEI_CONTROLLER_INTERACTION_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_android_surface_swapchain_create" number="71" type="instance" supported="openxr" protect="XR_USE_PLATFORM_ANDROID" requires="XR_KHR_android_surface_swapchain">
<require>
<enum value="1" name="XR_FB_android_surface_swapchain_create_SPEC_VERSION"/>
<enum value="&quot;XR_FB_android_surface_swapchain_create&quot;" name="XR_FB_ANDROID_SURFACE_SWAPCHAIN_CREATE_EXTENSION_NAME"/>
<type name="XrAndroidSurfaceSwapchainCreateInfoFB"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_ANDROID_SURFACE_SWAPCHAIN_CREATE_INFO_FB"/>
</require>
</extension>
<extension name="XR_FB_swapchain_update_state" number="72" type="instance" supported="openxr">
<require>
<enum value="3" name="XR_FB_swapchain_update_state_SPEC_VERSION"/>
<enum value="&quot;XR_FB_swapchain_update_state&quot;" name="XR_FB_SWAPCHAIN_UPDATE_STATE_EXTENSION_NAME"/>
<type name="XrSwapchainStateBaseHeaderFB"/>
<command name="xrUpdateSwapchainFB"/>
<command name="xrGetSwapchainStateFB"/>
</require>
</extension>
<extension name="XR_FB_composition_layer_secure_content" number="73" type="instance" supported="openxr">
<require>
<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>
<extension name="XR_FB_extension_74" number="74" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_74_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_74&quot;" name="XR_FB_extension_74_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_75" number="75" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_75_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_75&quot;" name="XR_FB_extension_75_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_76" number="76" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_76_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_76&quot;" name="XR_FB_extension_76_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_77" number="77" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_77_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_77&quot;" name="XR_FB_extension_77_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_78" number="78" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_78_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_78&quot;" name="XR_FB_extension_78_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VALVE_extension_79" number="79" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VALVE_extension_79_SPEC_VERSION"/>
<enum value="&quot;XR_VALVE_extension_79&quot;" name="XR_VALVE_extension_79_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VALVE_analog_threshold" number="80" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_VALVE_analog_threshold_SPEC_VERSION"/>
<enum value="&quot;XR_VALVE_analog_threshold&quot;" name="XR_VALVE_ANALOG_THRESHOLD_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_INTERACTION_PROFILE_ANALOG_THRESHOLD_VALVE"/>
<type name="XrInteractionProfileAnalogThresholdVALVE"/>
</require>
</extension>
<extension name="XR_EXT_hand_joints_motion_range" number="81" type="instance" supported="openxr" requires="XR_EXT_hand_tracking">
<require>
<enum value="1" name="XR_EXT_hand_joints_motion_range_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_hand_joints_motion_range&quot;" name="XR_EXT_HAND_JOINTS_MOTION_RANGE_EXTENSION_NAME"/>
<type name="XrHandJointsMotionRangeEXT"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_HAND_JOINTS_MOTION_RANGE_INFO_EXT"/>
<type name="XrHandJointsMotionRangeInfoEXT"/>
</require>
</extension>
<extension name="XR_VALVE_extension_82" number="82" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VALVE_extension_82_SPEC_VERSION"/>
<enum value="&quot;XR_VALVE_extension_82&quot;" name="XR_VALVE_extension_82_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VALVE_extension_83" number="83" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VALVE_extension_83_SPEC_VERSION"/>
<enum value="&quot;XR_VALVE_extension_83&quot;" name="XR_VALVE_extension_83_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VALVE_extension_84" number="84" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VALVE_extension_84_SPEC_VERSION"/>
<enum value="&quot;XR_VALVE_extension_84&quot;" name="XR_VALVE_extension_84_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VALVE_extension_85" number="85" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VALVE_extension_85_SPEC_VERSION"/>
<enum value="&quot;XR_VALVE_extension_85&quot;" name="XR_VALVE_extension_85_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VALVE_extension_86" number="86" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VALVE_extension_86_SPEC_VERSION"/>
<enum value="&quot;XR_VALVE_extension_86&quot;" name="XR_VALVE_extension_86_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VALVE_extension_87" number="87" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VALVE_extension_87_SPEC_VERSION"/>
<enum value="&quot;XR_VALVE_extension_87&quot;" name="XR_VALVE_extension_87_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VALVE_extension_88" number="88" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VALVE_extension_88_SPEC_VERSION"/>
<enum value="&quot;XR_VALVE_extension_88&quot;" name="XR_VALVE_extension_88_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_KHR_loader_init" number="89" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_KHR_loader_init_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_loader_init&quot;" name="XR_KHR_LOADER_INIT_EXTENSION_NAME"/>
<type name="XrLoaderInitInfoBaseHeaderKHR"/>
<command name="xrInitializeLoaderKHR"/>
</require>
</extension>
<extension name="XR_KHR_loader_init_android" number="90" type="instance" supported="openxr" protect="XR_USE_PLATFORM_ANDROID" requires="XR_KHR_loader_init">
<require>
<enum value="1" name="XR_KHR_loader_init_android_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_loader_init_android&quot;" name="XR_KHR_LOADER_INIT_ANDROID_EXTENSION_NAME"/>
<type name="XrLoaderInitInfoAndroidKHR"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_LOADER_INIT_INFO_ANDROID_KHR"/>
</require>
</extension>
<extension name="XR_KHR_vulkan_enable2" number="91" type="instance" protect="XR_USE_GRAPHICS_API_VULKAN" supported="openxr">
<require>
<enum value="2" name="XR_KHR_vulkan_enable2_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_vulkan_enable2&quot;" name="XR_KHR_VULKAN_ENABLE2_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_VULKAN_INSTANCE_CREATE_INFO_KHR"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_VULKAN_DEVICE_CREATE_INFO_KHR"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_VULKAN_GRAPHICS_DEVICE_GET_INFO_KHR"/>
<enum extends="XrStructureType" name="XR_TYPE_GRAPHICS_BINDING_VULKAN2_KHR" alias="XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR"/>
<enum extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_IMAGE_VULKAN2_KHR" alias="XR_TYPE_SWAPCHAIN_IMAGE_VULKAN_KHR"/>
<enum extends="XrStructureType" name="XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN2_KHR" alias="XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN_KHR"/>
<type name="XrVulkanInstanceCreateInfoKHR"/>
<type name="XrVulkanDeviceCreateInfoKHR"/>
<type name="XrGraphicsBindingVulkan2KHR"/>
<type name="XrVulkanGraphicsDeviceGetInfoKHR"/>
<type name="XrSwapchainImageVulkan2KHR"/>
<type name="XrGraphicsRequirementsVulkan2KHR"/>
<command name="xrCreateVulkanInstanceKHR"/>
<command name="xrCreateVulkanDeviceKHR"/>
<command name="xrGetVulkanGraphicsDevice2KHR"/>
<command name="xrGetVulkanGraphicsRequirements2KHR"/>
</require>
</extension>
<extension name="XR_KHR_composition_layer_equirect2" number="92" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_KHR_composition_layer_equirect2_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_composition_layer_equirect2&quot;" name="XR_KHR_COMPOSITION_LAYER_EQUIRECT2_EXTENSION_NAME"/>
<type name="XrCompositionLayerEquirect2KHR"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_COMPOSITION_LAYER_EQUIRECT2_KHR"/>
</require>
</extension>
<extension name="XR_EXT_extension_93" number="93" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_EXT_extension_93_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_extension_93&quot;" name="XR_EXT_extension_93_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_EXT_extension_94" number="94" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_EXT_extension_94_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_extension_94&quot;" name="XR_EXT_extension_94_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_EXT_samsung_odyssey_controller" number="95" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_EXT_samsung_odyssey_controller_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_samsung_odyssey_controller&quot;" name="XR_EXT_SAMSUNG_ODYSSEY_CONTROLLER_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_EXT_hp_mixed_reality_controller" number="96" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_EXT_hp_mixed_reality_controller_SPEC_VERSION"/>
<enum value="&quot;XR_EXT_hp_mixed_reality_controller&quot;" name="XR_EXT_HP_MIXED_REALITY_CONTROLLER_EXTENSION_NAME"/>
</require>
</extension>
<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, 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>
<extension name="XR_MSFT_scene_understanding" number="98" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_MSFT_scene_understanding_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_scene_understanding&quot;" name="XR_MSFT_SCENE_UNDERSTANDING_EXTENSION_NAME"/>
<type name="XrUuidMSFT"/>
<type name="XrSceneObserverCreateInfoMSFT"/>
<type name="XrSceneCreateInfoMSFT"/>
<type name="XrNewSceneComputeInfoMSFT"/>
<type name="XrVisualMeshComputeLodInfoMSFT"/>
<type name="XrSceneSphereBoundMSFT"/>
<type name="XrSceneOrientedBoxBoundMSFT"/>
<type name="XrSceneFrustumBoundMSFT"/>
<type name="XrSceneBoundsMSFT"/>
<type name="XrSceneComponentMSFT"/>
<type name="XrSceneComponentsMSFT"/>
<type name="XrSceneComponentsGetInfoMSFT"/>
<type name="XrSceneComponentLocationMSFT"/>
<type name="XrSceneComponentLocationsMSFT"/>
<type name="XrSceneComponentsLocateInfoMSFT"/>
<type name="XrSceneObjectMSFT"/>
<type name="XrSceneObjectsMSFT"/>
<type name="XrSceneComponentParentFilterInfoMSFT"/>
<type name="XrSceneObjectTypesFilterInfoMSFT"/>
<type name="XrScenePlaneMSFT"/>
<type name="XrScenePlanesMSFT"/>
<type name="XrScenePlaneAlignmentFilterInfoMSFT"/>
<type name="XrSceneMeshMSFT"/>
<type name="XrSceneMeshesMSFT"/>
<type name="XrSceneMeshBuffersGetInfoMSFT"/>
<type name="XrSceneMeshBuffersMSFT"/>
<type name="XrSceneMeshVertexBufferMSFT"/>
<type name="XrSceneMeshIndicesUint32MSFT"/>
<type name="XrSceneMeshIndicesUint16MSFT"/>
<type name="XrSceneObjectTypeMSFT"/>
<type name="XrScenePlaneAlignmentTypeMSFT"/>
<type name="XrSceneComputeStateMSFT"/>
<type name="XrSceneComponentTypeMSFT"/>
<type name="XrSceneComputeFeatureMSFT"/>
<type name="XrSceneComputeConsistencyMSFT"/>
<type name="XrMeshComputeLodMSFT"/>
<command name="xrEnumerateSceneComputeFeaturesMSFT"/>
<command name="xrCreateSceneObserverMSFT"/>
<command name="xrDestroySceneObserverMSFT"/>
<command name="xrCreateSceneMSFT"/>
<command name="xrDestroySceneMSFT"/>
<command name="xrComputeNewSceneMSFT"/>
<command name="xrGetSceneComputeStateMSFT"/>
<command name="xrGetSceneComponentsMSFT"/>
<command name="xrLocateSceneComponentsMSFT"/>
<command name="xrGetSceneMeshBuffersMSFT"/>
<enum offset="0" extends="XrObjectType" name="XR_OBJECT_TYPE_SCENE_OBSERVER_MSFT" comment="XrSceneObserverMSFT"/>
<enum offset="1" extends="XrObjectType" name="XR_OBJECT_TYPE_SCENE_MSFT" comment="XrSceneMSFT"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SCENE_OBSERVER_CREATE_INFO_MSFT"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SCENE_CREATE_INFO_MSFT"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_NEW_SCENE_COMPUTE_INFO_MSFT"/>
<enum offset="3" extends="XrStructureType" name="XR_TYPE_VISUAL_MESH_COMPUTE_LOD_INFO_MSFT"/>
<enum offset="4" extends="XrStructureType" name="XR_TYPE_SCENE_COMPONENTS_MSFT"/>
<enum offset="5" extends="XrStructureType" name="XR_TYPE_SCENE_COMPONENTS_GET_INFO_MSFT"/>
<enum offset="6" extends="XrStructureType" name="XR_TYPE_SCENE_COMPONENT_LOCATIONS_MSFT"/>
<enum offset="7" extends="XrStructureType" name="XR_TYPE_SCENE_COMPONENTS_LOCATE_INFO_MSFT"/>
<enum offset="8" extends="XrStructureType" name="XR_TYPE_SCENE_OBJECTS_MSFT"/>
<enum offset="9" extends="XrStructureType" name="XR_TYPE_SCENE_COMPONENT_PARENT_FILTER_INFO_MSFT"/>
<enum offset="10" extends="XrStructureType" name="XR_TYPE_SCENE_OBJECT_TYPES_FILTER_INFO_MSFT"/>
<enum offset="11" extends="XrStructureType" name="XR_TYPE_SCENE_PLANES_MSFT"/>
<enum offset="12" extends="XrStructureType" name="XR_TYPE_SCENE_PLANE_ALIGNMENT_FILTER_INFO_MSFT"/>
<enum offset="13" extends="XrStructureType" name="XR_TYPE_SCENE_MESHES_MSFT"/>
<enum offset="14" extends="XrStructureType" name="XR_TYPE_SCENE_MESH_BUFFERS_GET_INFO_MSFT"/>
<enum offset="15" extends="XrStructureType" name="XR_TYPE_SCENE_MESH_BUFFERS_MSFT"/>
<enum offset="16" extends="XrStructureType" name="XR_TYPE_SCENE_MESH_VERTEX_BUFFER_MSFT"/>
<enum offset="17" extends="XrStructureType" name="XR_TYPE_SCENE_MESH_INDICES_UINT32_MSFT"/>
<enum offset="18" extends="XrStructureType" name="XR_TYPE_SCENE_MESH_INDICES_UINT16_MSFT"/>
<enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_COMPUTE_NEW_SCENE_NOT_COMPLETED_MSFT" comment="Compute new scene not completed."/>
<enum offset="1" dir="-" extends="XrResult" name="XR_ERROR_SCENE_COMPONENT_ID_INVALID_MSFT" comment="Scene component id invalid."/>
<enum offset="2" dir="-" extends="XrResult" name="XR_ERROR_SCENE_COMPONENT_TYPE_MISMATCH_MSFT" comment="Scene component type mismatch."/>
<enum offset="3" dir="-" extends="XrResult" name="XR_ERROR_SCENE_MESH_BUFFER_ID_INVALID_MSFT" comment="Scene mesh buffer id invalid."/>
<enum offset="4" dir="-" extends="XrResult" name="XR_ERROR_SCENE_COMPUTE_FEATURE_INCOMPATIBLE_MSFT" comment="Scene compute feature incompatible."/>
<enum offset="5" dir="-" extends="XrResult" name="XR_ERROR_SCENE_COMPUTE_CONSISTENCY_MISMATCH_MSFT" comment="Scene compute consistency mismatch."/>
</require>
</extension>
<extension name="XR_MSFT_scene_understanding_serialization" number="99" type="instance" supported="openxr"
requires="XR_MSFT_scene_understanding">
<require>
<enum value="1" name="XR_MSFT_scene_understanding_serialization_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_scene_understanding_serialization&quot;" name="XR_MSFT_SCENE_UNDERSTANDING_SERIALIZATION_EXTENSION_NAME"/>
<type name="XrSerializedSceneFragmentDataGetInfoMSFT"/>
<type name="XrDeserializeSceneFragmentMSFT"/>
<type name="XrSceneDeserializeInfoMSFT"/>
<command name="xrDeserializeSceneMSFT"/>
<command name="xrGetSerializedSceneFragmentDataMSFT"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SERIALIZED_SCENE_FRAGMENT_DATA_GET_INFO_MSFT"/>
<enum offset="1" extends="XrStructureType" name="XR_TYPE_SCENE_DESERIALIZE_INFO_MSFT"/>
<enum offset="0" extends="XrSceneComputeFeatureMSFT" name="XR_SCENE_COMPUTE_FEATURE_SERIALIZE_SCENE_MSFT"/>
<enum offset="0" extends="XrSceneComponentTypeMSFT" name="XR_SCENE_COMPONENT_TYPE_SERIALIZED_SCENE_FRAGMENT_MSFT"/>
</require>
</extension>
<extension name="XR_MSFT_extension_100" number="100" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_100_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_100&quot;" name="XR_MSFT_extension_100_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_101" number="101" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_101_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_101&quot;" name="XR_MSFT_extension_101_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_display_refresh_rate" number="102" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_FB_display_refresh_rate_SPEC_VERSION"/>
<enum value="&quot;XR_FB_display_refresh_rate&quot;" name="XR_FB_DISPLAY_REFRESH_RATE_EXTENSION_NAME"/>
<type name="XrEventDataDisplayRefreshRateChangedFB"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_EVENT_DATA_DISPLAY_REFRESH_RATE_CHANGED_FB"/>
<command name="xrEnumerateDisplayRefreshRatesFB"/>
<command name="xrGetDisplayRefreshRateFB"/>
<command name="xrRequestDisplayRefreshRateFB"/>
<enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB" comment="The display refresh rate is not supported by the platform."/>
</require>
</extension>
<extension name="XR_HTC_vive_cosmos_controller_interaction" number="103" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_HTC_vive_cosmos_controller_interaction_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_vive_cosmos_controller_interaction&quot;" name="XR_HTC_VIVE_COSMOS_CONTROLLER_INTERACTION_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_104" number="104" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_104_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_104&quot;" name="XR_HTC_extension_104_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_105" number="105" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_105_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_105&quot;" name="XR_HTC_extension_105_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_106" number="106" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_106_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_106&quot;" name="XR_HTC_extension_106_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_107" number="107" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_107_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_107&quot;" name="XR_HTC_extension_107_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_HTC_extension_108" number="108" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_HTC_extension_108_SPEC_VERSION"/>
<enum value="&quot;XR_HTC_extension_108&quot;" name="XR_HTC_extension_108_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_color_space" number="109" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_FB_color_space_SPEC_VERSION"/>
<enum value="&quot;XR_FB_color_space&quot;" name="XR_FB_COLOR_SPACE_EXTENSION_NAME"/>
<type name="XrColorSpaceFB"/>
<type name="XrSystemColorSpacePropertiesFB"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SYSTEM_COLOR_SPACE_PROPERTIES_FB"/>
<command name="xrEnumerateColorSpacesFB"/>
<command name="xrSetColorSpaceFB"/>
<enum offset="0" dir="-" extends="XrResult" name="XR_ERROR_COLOR_SPACE_UNSUPPORTED_FB" comment="The color space is not supported by the runtime."/>
</require>
</extension>
<extension name="XR_FB_extension_110" number="110" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_110_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_110&quot;" name="XR_FB_extension_110_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_111" number="111" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_111_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_111&quot;" name="XR_FB_extension_111_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_112" number="112" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_112_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_112&quot;" name="XR_FB_extension_112_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_113" number="113" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_113_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_113&quot;" name="XR_FB_extension_113_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_114" number="114" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_114_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_114&quot;" name="XR_FB_extension_114_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_foveation" number="115" type="instance" requires="XR_FB_swapchain_update_state" supported="openxr">
<require>
<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_foveation_configuration" number="116" type="instance" requires="XR_FB_foveation" supported="openxr">
<require>
<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>
<extension name="XR_FB_extension_117" number="117" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_117_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_117&quot;" name="XR_FB_extension_117_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_118" number="118" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_118_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_118&quot;" name="XR_FB_extension_118_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_119" number="119" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_119_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_119&quot;" name="XR_FB_extension_119_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_120" number="120" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_120_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_120&quot;" name="XR_FB_extension_120_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_KHR_binding_modification" number="121" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_KHR_binding_modification_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_binding_modification&quot;" name="XR_KHR_BINDING_MODIFICATION_EXTENSION_NAME"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_BINDING_MODIFICATIONS_KHR"/>
<type name="XrBindingModificationsKHR"/>
<type name="XrBindingModificationBaseHeaderKHR"/>
</require>
</extension>
<extension name="XR_VARJO_foveated_rendering" number="122" type="instance" requires="XR_VARJO_quad_views" supported="openxr">
<require>
<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"/>
<enum offset="2" extends="XrStructureType" name="XR_TYPE_SYSTEM_FOVEATED_RENDERING_PROPERTIES_VARJO"/>
<enum offset="0" extends="XrReferenceSpaceType" name="XR_REFERENCE_SPACE_TYPE_COMBINED_EYE_VARJO"/>
<type name="XrViewLocateFoveatedRenderingVARJO"/>
<type name="XrFoveatedViewConfigurationViewVARJO"/>
<type name="XrSystemFoveatedRenderingPropertiesVARJO"/>
</require>
</extension>
<extension name="XR_VARJO_composition_layer_depth_test" number="123" type="instance" requires="XR_KHR_composition_layer_depth" supported="openxr">
<require>
<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"/>
</require>
</extension>
<extension name="XR_VARJO_environment_depth_estimation" number="124" type="instance" supported="openxr">
<require>
<enum value="1" name="XR_VARJO_environment_depth_estimation_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_environment_depth_estimation&quot;" name="XR_VARJO_ENVIRONMENT_DEPTH_ESTIMATION_EXTENSION_NAME"/>
<command name="xrSetEnvironmentDepthEstimationVARJO"/>
</require>
</extension>
<extension name="XR_VARJO_extension_125" number="125" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VARJO_extension_125_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_extension_125&quot;" name="XR_VARJO_extension_125_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VARJO_extension_126" number="126" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VARJO_extension_126_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_extension_126&quot;" name="XR_VARJO_extension_126_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VARJO_extension_127" number="127" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VARJO_extension_127_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_extension_127&quot;" name="XR_VARJO_extension_127_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VARJO_extension_128" number="128" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VARJO_extension_128_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_extension_128&quot;" name="XR_VARJO_extension_128_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VARJO_extension_129" number="129" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VARJO_extension_129_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_extension_129&quot;" name="XR_VARJO_extension_129_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VARJO_extension_130" number="130" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VARJO_extension_130_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_extension_130&quot;" name="XR_VARJO_extension_130_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VARJO_extension_131" number="131" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VARJO_extension_131_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_extension_131&quot;" name="XR_VARJO_extension_131_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_VARJO_extension_132" number="132" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_VARJO_extension_132_SPEC_VERSION"/>
<enum value="&quot;XR_VARJO_extension_132&quot;" name="XR_VARJO_extension_132_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_133" number="133" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_133_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_133&quot;" name="XR_ML_extension_133_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_134" number="134" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_134_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_134&quot;" name="XR_ML_extension_134_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_135" number="135" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_135_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_135&quot;" name="XR_ML_extension_135_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_136" number="136" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_136_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_136&quot;" name="XR_ML_extension_136_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_137" number="137" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_137_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_137&quot;" name="XR_ML_extension_137_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_138" number="138" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_138_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_138&quot;" name="XR_ML_extension_138_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_139" number="139" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_139_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_139&quot;" name="XR_ML_extension_139_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_140" number="140" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_140_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_140&quot;" name="XR_ML_extension_140_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_141" number="141" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_141_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_141&quot;" name="XR_ML_extension_141_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ML_extension_142" number="142" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ML_extension_142_SPEC_VERSION"/>
<enum value="&quot;XR_ML_extension_142&quot;" name="XR_ML_extension_142_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_spatial_anchor_persistence" number="143" requires="XR_MSFT_spatial_anchor" type="instance" supported="openxr">
<require>
<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"/>
<enum value="&quot;XR_MSFT_extension_144&quot;" name="XR_MSFT_extension_144_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_145" number="145" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_145_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_145&quot;" name="XR_MSFT_extension_145_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_146" number="146" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_146_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_146&quot;" name="XR_MSFT_extension_146_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_147" number="147" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_147_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_147&quot;" name="XR_MSFT_extension_147_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_MSFT_extension_148" number="148" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_MSFT_extension_148_SPEC_VERSION"/>
<enum value="&quot;XR_MSFT_extension_148&quot;" name="XR_MSFT_extension_148_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_KHR_extension_149" number="149" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_KHR_extension_149_SPEC_VERSION"/>
<enum value="&quot;XR_KHR_extension_149&quot;" name="XR_KHR_extension_149_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ULTRALEAP_extension_150" number="150" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ULTRALEAP_extension_150_SPEC_VERSION"/>
<enum value="&quot;XR_ULTRALEAP_extension_150&quot;" name="XR_ULTRALEAP_extension_150_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ULTRALEAP_extension_151" number="151" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ULTRALEAP_extension_151_SPEC_VERSION"/>
<enum value="&quot;XR_ULTRALEAP_extension_151&quot;" name="XR_ULTRALEAP_extension_151_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ULTRALEAP_extension_152" number="152" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ULTRALEAP_extension_152_SPEC_VERSION"/>
<enum value="&quot;XR_ULTRALEAP_extension_152&quot;" name="XR_ULTRALEAP_extension_152_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ULTRALEAP_extension_153" number="153" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ULTRALEAP_extension_153_SPEC_VERSION"/>
<enum value="&quot;XR_ULTRALEAP_extension_153&quot;" name="XR_ULTRALEAP_extension_153_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ULTRALEAP_extension_154" number="154" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ULTRALEAP_extension_154_SPEC_VERSION"/>
<enum value="&quot;XR_ULTRALEAP_extension_154&quot;" name="XR_ULTRALEAP_extension_154_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_ULTRALEAP_extension_155" number="155" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_ULTRALEAP_extension_155_SPEC_VERSION"/>
<enum value="&quot;XR_ULTRALEAP_extension_155&quot;" name="XR_ULTRALEAP_extension_155_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_156" number="156" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_156_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_156&quot;" name="XR_FB_extension_156_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_157" number="157" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_157_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_157&quot;" name="XR_FB_extension_157_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_158" number="158" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_158_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_158&quot;" name="XR_FB_extension_158_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_159" number="159" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_159_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_159&quot;" name="XR_FB_extension_159_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_OCULUS_audio_device_guid" number="160" type="instance" supported="openxr" protect="XR_USE_PLATFORM_WIN32">
<require>
<enum value="1" name="XR_OCULUS_audio_device_guid_SPEC_VERSION"/>
<enum value="&quot;XR_OCULUS_audio_device_guid&quot;" name="XR_OCULUS_AUDIO_DEVICE_GUID_EXTENSION_NAME"/>
<enum value="128" name="XR_MAX_AUDIO_DEVICE_STR_SIZE_OCULUS"/>
<command name="xrGetAudioOutputDeviceGuidOculus"/>
<command name="xrGetAudioInputDeviceGuidOculus"/>
</require>
</extension>
<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_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_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"/>
<type name="XrSwapchainStateAndroidSurfaceDimensionsFB"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_STATE_ANDROID_SURFACE_DIMENSIONS_FB"/>
</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_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"/>
<type name="XrSwapchainStateSamplerOpenGLESFB"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_STATE_SAMPLER_OPENGL_ES_FB"/>
</require>
</extension>
<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"/>
<type name="XrSwapchainStateSamplerVulkanFB"/>
<enum offset="0" extends="XrStructureType" name="XR_TYPE_SWAPCHAIN_STATE_SAMPLER_VULKAN_FB"/>
</require>
</extension>
<extension name="XR_FB_extension_165" number="165" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_165_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_165&quot;" name="XR_FB_extension_165_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_KHR_swapchain_usage_input_attachment_bit" number="166" type="instance" supported="openxr">
<require>
<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>
<extension name="XR_FB_extension_167" number="167" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_167_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_167&quot;" name="XR_FB_extension_167_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_168" number="168" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_168_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_168&quot;" name="XR_FB_extension_168_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_169" number="169" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_169_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_169&quot;" name="XR_FB_extension_169_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_170" number="170" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_170_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_170&quot;" name="XR_FB_extension_170_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_171" number="171" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_171_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_171&quot;" name="XR_FB_extension_171_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_172" number="172" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_172_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_172&quot;" name="XR_FB_extension_172_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_173" number="173" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_173_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_173&quot;" name="XR_FB_extension_173_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_174" number="174" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_174_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_174&quot;" name="XR_FB_extension_174_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_175" number="175" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_175_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_175&quot;" name="XR_FB_extension_175_EXTENSION_NAME"/>
</require>
</extension>
<extension name="XR_FB_extension_176" number="176" type="instance" supported="disabled">
<require>
<enum value="1" name="XR_FB_extension_176_SPEC_VERSION"/>
<enum value="&quot;XR_FB_extension_176&quot;" name="XR_FB_extension_176_EXTENSION_NAME"/>
</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>