| <?xml version="1.0" encoding="UTF-8"?> |
| <registry> |
| <comment> |
| Copyright (c) 2015-2019 The Khronos Group Inc. |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| |
| ---- Exceptions to the Apache 2.0 License: ---- |
| |
| As an exception, if you use this Software to generate code and portions of |
| this Software are embedded into the generated code as a result, you may |
| redistribute such product without providing attribution as would otherwise |
| be required by Sections 4(a), 4(b) and 4(d) of the License. |
| |
| In addition, if you combine or link code generated by this Software with |
| software that is licensed under the GPLv2 or the LGPL v2.0 or 2.1 |
| ("`Combined Software`") and if a court of competent jurisdiction determines |
| that the patent provision (Section 3), the indemnity provision (Section 9) |
| or other Section of the License conflicts with the conditions of the |
| applicable GPL or LGPL license, you may retroactively and prospectively |
| choose to deem waived or otherwise exclude such Section(s) of the License, |
| but only in their entirety and only with respect to the Combined Software. |
| </comment> |
| |
| <comment> |
| This file, vk.xml, is the Vulkan API Registry. It is a critically important |
| and normative part of the Vulkan 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 authoritative public version of vk.xml is maintained in |
| the master branch of the Khronos Vulkan GitHub project. The authoritative |
| private version is maintained in the master branch of the member gitlab |
| server. |
| </comment> |
| |
| <platforms comment="Vulkan platform names, reserved for use with platform- and window system-specific extensions"> |
| <platform name="xlib" protect="VK_USE_PLATFORM_XLIB_KHR" comment="X Window System, Xlib client library"/> |
| <platform name="xlib_xrandr" protect="VK_USE_PLATFORM_XLIB_XRANDR_EXT" comment="X Window System, Xlib client library, XRandR extension"/> |
| <platform name="xcb" protect="VK_USE_PLATFORM_XCB_KHR" comment="X Window System, Xcb client library"/> |
| <platform name="wayland" protect="VK_USE_PLATFORM_WAYLAND_KHR" comment="Wayland display server protocol"/> |
| <platform name="android" protect="VK_USE_PLATFORM_ANDROID_KHR" comment="Android OS"/> |
| <platform name="win32" protect="VK_USE_PLATFORM_WIN32_KHR" comment="Microsoft Win32 API (also refers to Win64 apps)"/> |
| <platform name="vi" protect="VK_USE_PLATFORM_VI_NN" comment="Nintendo Vi"/> |
| <platform name="ios" protect="VK_USE_PLATFORM_IOS_MVK" comment="Apple IOS"/> |
| <platform name="macos" protect="VK_USE_PLATFORM_MACOS_MVK" comment="Apple MacOS"/> |
| <platform name="fuchsia" protect="VK_USE_PLATFORM_FUCHSIA" comment="Fuchsia"/> |
| </platforms> |
| |
| <tags comment="Vulkan vendor/author tags for extensions and layers"> |
| <tag name="IMG" author="Imagination Technologies" contact="Michael Worcester @michaelworcester"/> |
| <tag name="AMD" author="Advanced Micro Devices, Inc." contact="Daniel Rakos @drakos-amd"/> |
| <tag name="AMDX" author="Advanced Micro Devices, Inc." contact="Daniel Rakos @drakos-amd"/> |
| <tag name="ARM" author="ARM Limited" contact="Jan-Harald Fredriksen @janharaldfredriksen-arm"/> |
| <tag name="FSL" author="Freescale Semiconductor, Inc." contact="Norbert Nopper @FslNopper"/> |
| <tag name="BRCM" author="Broadcom Corporation" contact="Graeme Leese @gnl21"/> |
| <tag name="NXP" author="NXP Semiconductors N.V." contact="Norbert Nopper @FslNopper"/> |
| <tag name="NV" author="NVIDIA Corporation" contact="Daniel Koch @dgkoch"/> |
| <tag name="NVX" author="NVIDIA Corporation" contact="Daniel Koch @dgkoch"/> |
| <tag name="VIV" author="Vivante Corporation" contact="Yanjun Zhang gitlab:@yanjunzhang"/> |
| <tag name="VSI" author="VeriSilicon Holdings Co., Ltd." contact="Yanjun Zhang gitlab:@yanjunzhang"/> |
| <tag name="KDAB" author="KDAB" contact="Sean Harmer @seanharmer"/> |
| <tag name="ANDROID" author="Google, Inc." contact="Jesse Hall @critsec"/> |
| <tag name="CHROMIUM" author="Google, Inc." contact="Jesse Hall @critsec"/> |
| <tag name="FUCHSIA" author="Google, Inc." contact="Craig Stout @cdotstout, Jesse Hall @critsec"/> |
| <tag name="GOOGLE" author="Google, Inc." contact="Jesse Hall @critsec"/> |
| <tag name="QCOM" author="Qualcomm Technologies, Inc." contact="Maurice Ribble @mribble"/> |
| <tag name="LUNARG" author="LunarG, Inc." contact="Karen Ghavam @karenghavam-lunarg"/> |
| <tag name="SAMSUNG" author="Samsung Electronics Co., Ltd." contact="Alon Or-bach @alonorbach"/> |
| <tag name="SEC" author="Samsung Electronics Co., Ltd." contact="Alon Or-bach @alonorbach"/> |
| <tag name="TIZEN" author="Samsung Electronics Co., Ltd." contact="Alon Or-bach @alonorbach"/> |
| <tag name="RENDERDOC" author="RenderDoc (renderdoc.org)" contact="Baldur Karlsson @baldurk"/> |
| <tag name="NN" author="Nintendo Co., Ltd." contact="Yasuhiro Yoshioka gitlab:@yoshioka_yasuhiro"/> |
| <tag name="MVK" author="The Brenwill Workshop Ltd." contact="Bill Hollings @billhollings"/> |
| <tag name="KHR" author="Khronos" contact="Tom Olson @tomolson"/> |
| <tag name="KHX" author="Khronos" contact="Tom Olson @tomolson"/> |
| <tag name="EXT" author="Multivendor" contact="Jon Leech @oddhack"/> |
| <tag name="MESA" author="Mesa open source project" contact="Chad Versace @chadversary, Daniel Stone @fooishbar, David Airlie @airlied, Jason Ekstrand @jekstrand"/> |
| </tags> |
| |
| <types comment="Vulkan type definitions"> |
| <type name="vk_platform" category="include">#include "vk_platform.h"</type> |
| |
| <comment>WSI extensions</comment> |
| |
| <type category="include" name="X11/Xlib.h"/> |
| <type category="include" name="X11/extensions/Xrandr.h"/> |
| <type category="include" name="wayland-client.h"/> |
| <type category="include" name="windows.h"/> |
| <type category="include" name="xcb/xcb.h"/> |
| <type category="include" name="zircon/types.h"/> |
| <comment> |
| In the current header structure, each platform's interfaces |
| are confined to a platform-specific header (vulkan_xlib.h, |
| vulkan_win32.h, etc.). These headers are not self-contained, |
| and should not include native headers (X11/Xlib.h, |
| windows.h, etc.). Code should either include vulkan.h after |
| defining the appropriate VK_USE_PLATFORM_platform |
| macros, or include the required native headers prior to |
| explicitly including the corresponding platform header. |
| |
| To accomplish this, the dependencies of native types require |
| native headers, but the XML defines the content for those |
| native headers as empty. The actual native header includes |
| can be restored by modifying the native header tags above |
| to #include the header file in the 'name' attribute. |
| </comment> |
| |
| <type requires="X11/Xlib.h" name="Display"/> |
| <type requires="X11/Xlib.h" name="VisualID"/> |
| <type requires="X11/Xlib.h" name="Window"/> |
| <type requires="X11/extensions/Xrandr.h" name="RROutput"/> |
| <type requires="wayland-client.h" name="wl_display"/> |
| <type requires="wayland-client.h" name="wl_surface"/> |
| <type requires="windows.h" name="HINSTANCE"/> |
| <type requires="windows.h" name="HWND"/> |
| <type requires="windows.h" name="HANDLE"/> |
| <type requires="windows.h" name="SECURITY_ATTRIBUTES"/> |
| <type requires="windows.h" name="DWORD"/> |
| <type requires="windows.h" name="LPCWSTR"/> |
| <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="zircon/types.h" name="zx_handle_t"/> |
| |
| <type category="define">#define <name>VK_MAKE_VERSION</name>(major, minor, patch) \ |
| (((major) << 22) | ((minor) << 12) | (patch))</type> |
| <type category="define">#define <name>VK_VERSION_MAJOR</name>(version) ((uint32_t)(version) >> 22)</type> |
| <type category="define">#define <name>VK_VERSION_MINOR</name>(version) (((uint32_t)(version) >> 12) & 0x3ff)</type> |
| <type category="define">#define <name>VK_VERSION_PATCH</name>(version) ((uint32_t)(version) & 0xfff)</type> |
| |
| <type category="define">// DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead. |
| //#define <name>VK_API_VERSION</name> <type>VK_MAKE_VERSION</type>(1, 0, 0) // Patch version should always be set to 0</type> |
| <type category="define">// Vulkan 1.0 version number |
| #define <name>VK_API_VERSION_1_0</name> <type>VK_MAKE_VERSION</type>(1, 0, 0)// Patch version should always be set to 0</type> |
| <type category="define">// Vulkan 1.1 version number |
| #define <name>VK_API_VERSION_1_1</name> <type>VK_MAKE_VERSION</type>(1, 1, 0)// Patch version should always be set to 0</type> |
| <type category="define">// Version of this file |
| #define <name>VK_HEADER_VERSION</name> 100</type> |
| |
| <type category="define"> |
| #define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type> |
| |
| <type category="define" name="VK_DEFINE_NON_DISPATCHABLE_HANDLE"> |
| #if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE) |
| #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) |
| #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; |
| #else |
| #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; |
| #endif |
| #endif</type> |
| |
| <type category="define"> |
| #define <name>VK_NULL_HANDLE</name> 0</type> |
| |
| <type category="define">struct <name>ANativeWindow</name>;</type> |
| <type category="define">struct <name>AHardwareBuffer</name>;</type> |
| |
| <type category="basetype">typedef <type>uint32_t</type> <name>VkSampleMask</name>;</type> |
| <type category="basetype">typedef <type>uint32_t</type> <name>VkBool32</name>;</type> |
| <type category="basetype">typedef <type>uint32_t</type> <name>VkFlags</name>;</type> |
| <type category="basetype">typedef <type>uint64_t</type> <name>VkDeviceSize</name>;</type> |
| <type category="basetype">typedef <type>uint64_t</type> <name>VkDeviceAddress</name>;</type> |
| |
| <comment>Basic C types, pulled in via vk_platform.h</comment> |
| <type requires="vk_platform" name="void"/> |
| <type requires="vk_platform" name="char"/> |
| <type requires="vk_platform" name="float"/> |
| <type requires="vk_platform" name="uint8_t"/> |
| <type requires="vk_platform" name="uint16_t"/> |
| <type requires="vk_platform" name="uint32_t"/> |
| <type requires="vk_platform" name="uint64_t"/> |
| <type requires="vk_platform" name="int32_t"/> |
| <type requires="vk_platform" name="size_t"/> |
| <type name="int"/> |
| |
| <comment>Bitmask types</comment> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkFramebufferCreateFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkQueryPoolCreateFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkRenderPassCreateFlags</name>;</type> |
| <type requires="VkSamplerCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSamplerCreateFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineLayoutCreateFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCacheCreateFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineDepthStencilStateCreateFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineDynamicStateCreateFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineColorBlendStateCreateFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineMultisampleStateCreateFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineRasterizationStateCreateFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineViewportStateCreateFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineTessellationStateCreateFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineInputAssemblyStateCreateFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineVertexInputStateCreateFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineShaderStageCreateFlags</name>;</type> |
| <type requires="VkDescriptorSetLayoutCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkDescriptorSetLayoutCreateFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkBufferViewCreateFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkInstanceCreateFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkDeviceCreateFlags</name>;</type> |
| <type requires="VkDeviceQueueCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkDeviceQueueCreateFlags</name>;</type> |
| <type requires="VkQueueFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkQueueFlags</name>;</type> |
| <type requires="VkMemoryPropertyFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkMemoryPropertyFlags</name>;</type> |
| <type requires="VkMemoryHeapFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkMemoryHeapFlags</name>;</type> |
| <type requires="VkAccessFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkAccessFlags</name>;</type> |
| <type requires="VkBufferUsageFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkBufferUsageFlags</name>;</type> |
| <type requires="VkBufferCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkBufferCreateFlags</name>;</type> |
| <type requires="VkShaderStageFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkShaderStageFlags</name>;</type> |
| <type requires="VkImageUsageFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkImageUsageFlags</name>;</type> |
| <type requires="VkImageCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkImageCreateFlags</name>;</type> |
| <type requires="VkImageViewCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkImageViewCreateFlags</name>;</type> |
| <type requires="VkPipelineCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCreateFlags</name>;</type> |
| <type requires="VkColorComponentFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkColorComponentFlags</name>;</type> |
| <type requires="VkFenceCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkFenceCreateFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkSemaphoreCreateFlags</name>;</type> |
| <type requires="VkFormatFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkFormatFeatureFlags</name>;</type> |
| <type requires="VkQueryControlFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkQueryControlFlags</name>;</type> |
| <type requires="VkQueryResultFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkQueryResultFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkShaderModuleCreateFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkEventCreateFlags</name>;</type> |
| <type requires="VkCommandPoolCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCommandPoolCreateFlags</name>;</type> |
| <type requires="VkCommandPoolResetFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCommandPoolResetFlags</name>;</type> |
| <type requires="VkCommandBufferResetFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCommandBufferResetFlags</name>;</type> |
| <type requires="VkCommandBufferUsageFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCommandBufferUsageFlags</name>;</type> |
| <type requires="VkQueryPipelineStatisticFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkQueryPipelineStatisticFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkMemoryMapFlags</name>;</type> |
| <type requires="VkImageAspectFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkImageAspectFlags</name>;</type> |
| <type requires="VkSparseMemoryBindFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSparseMemoryBindFlags</name>;</type> |
| <type requires="VkSparseImageFormatFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSparseImageFormatFlags</name>;</type> |
| <type requires="VkSubpassDescriptionFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSubpassDescriptionFlags</name>;</type> |
| <type requires="VkPipelineStageFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineStageFlags</name>;</type> |
| <type requires="VkSampleCountFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSampleCountFlags</name>;</type> |
| <type requires="VkAttachmentDescriptionFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkAttachmentDescriptionFlags</name>;</type> |
| <type requires="VkStencilFaceFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkStencilFaceFlags</name>;</type> |
| <type requires="VkCullModeFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkCullModeFlags</name>;</type> |
| <type requires="VkDescriptorPoolCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkDescriptorPoolCreateFlags</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkDescriptorPoolResetFlags</name>;</type> |
| <type requires="VkDependencyFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkDependencyFlags</name>;</type> |
| <type requires="VkSubgroupFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSubgroupFeatureFlags</name>;</type> |
| <type requires="VkIndirectCommandsLayoutUsageFlagBitsNVX" category="bitmask">typedef <type>VkFlags</type> <name>VkIndirectCommandsLayoutUsageFlagsNVX</name>;</type> |
| <type requires="VkObjectEntryUsageFlagBitsNVX" category="bitmask">typedef <type>VkFlags</type> <name>VkObjectEntryUsageFlagsNVX</name>;</type> |
| <type requires="VkGeometryFlagBitsNV" category="bitmask">typedef <type>VkFlags</type> <name>VkGeometryFlagsNV</name>;</type> |
| <type requires="VkGeometryInstanceFlagBitsNV" category="bitmask">typedef <type>VkFlags</type> <name>VkGeometryInstanceFlagsNV</name>;</type> |
| <type requires="VkBuildAccelerationStructureFlagBitsNV" category="bitmask">typedef <type>VkFlags</type> <name>VkBuildAccelerationStructureFlagsNV</name>;</type> |
| |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkDescriptorUpdateTemplateCreateFlags</name>;</type> |
| <type category="bitmask" name="VkDescriptorUpdateTemplateCreateFlagsKHR" alias="VkDescriptorUpdateTemplateCreateFlags"/> |
| |
| <comment>WSI extensions</comment> |
| <type requires="VkCompositeAlphaFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkCompositeAlphaFlagsKHR</name>;</type> |
| <type requires="VkDisplayPlaneAlphaFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkDisplayPlaneAlphaFlagsKHR</name>;</type> |
| <type requires="VkSurfaceTransformFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkSurfaceTransformFlagsKHR</name>;</type> |
| <type requires="VkSwapchainCreateFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkSwapchainCreateFlagsKHR</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkDisplayModeCreateFlagsKHR</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkDisplaySurfaceCreateFlagsKHR</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkAndroidSurfaceCreateFlagsKHR</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkViSurfaceCreateFlagsNN</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkWaylandSurfaceCreateFlagsKHR</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkWin32SurfaceCreateFlagsKHR</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkXlibSurfaceCreateFlagsKHR</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkXcbSurfaceCreateFlagsKHR</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkIOSSurfaceCreateFlagsMVK</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkMacOSSurfaceCreateFlagsMVK</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkImagePipeSurfaceCreateFlagsFUCHSIA</name>;</type> |
| <type requires="VkPeerMemoryFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPeerMemoryFeatureFlags</name>;</type> |
| <type category="bitmask" name="VkPeerMemoryFeatureFlagsKHR" alias="VkPeerMemoryFeatureFlags"/> |
| <type requires="VkMemoryAllocateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkMemoryAllocateFlags</name>;</type> |
| <type category="bitmask" name="VkMemoryAllocateFlagsKHR" alias="VkMemoryAllocateFlags"/> |
| <type requires="VkDeviceGroupPresentModeFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkDeviceGroupPresentModeFlagsKHR</name>;</type> |
| |
| <type requires="VkDebugReportFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkDebugReportFlagsEXT</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkCommandPoolTrimFlags</name>;</type> |
| <type category="bitmask" name="VkCommandPoolTrimFlagsKHR" alias="VkCommandPoolTrimFlags"/> |
| <type requires="VkExternalMemoryHandleTypeFlagBitsNV" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalMemoryHandleTypeFlagsNV</name>;</type> |
| <type requires="VkExternalMemoryFeatureFlagBitsNV" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalMemoryFeatureFlagsNV</name>;</type> |
| <type requires="VkExternalMemoryHandleTypeFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalMemoryHandleTypeFlags</name>;</type> |
| <type category="bitmask" name="VkExternalMemoryHandleTypeFlagsKHR" alias="VkExternalMemoryHandleTypeFlags"/> |
| <type requires="VkExternalMemoryFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalMemoryFeatureFlags</name>;</type> |
| <type category="bitmask" name="VkExternalMemoryFeatureFlagsKHR" alias="VkExternalMemoryFeatureFlags"/> |
| <type requires="VkExternalSemaphoreHandleTypeFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalSemaphoreHandleTypeFlags</name>;</type> |
| <type category="bitmask" name="VkExternalSemaphoreHandleTypeFlagsKHR" alias="VkExternalSemaphoreHandleTypeFlags"/> |
| <type requires="VkExternalSemaphoreFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalSemaphoreFeatureFlags</name>;</type> |
| <type category="bitmask" name="VkExternalSemaphoreFeatureFlagsKHR" alias="VkExternalSemaphoreFeatureFlags"/> |
| <type requires="VkSemaphoreImportFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSemaphoreImportFlags</name>;</type> |
| <type category="bitmask" name="VkSemaphoreImportFlagsKHR" alias="VkSemaphoreImportFlags"/> |
| <type requires="VkExternalFenceHandleTypeFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalFenceHandleTypeFlags</name>;</type> |
| <type category="bitmask" name="VkExternalFenceHandleTypeFlagsKHR" alias="VkExternalFenceHandleTypeFlags"/> |
| <type requires="VkExternalFenceFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkExternalFenceFeatureFlags</name>;</type> |
| <type category="bitmask" name="VkExternalFenceFeatureFlagsKHR" alias="VkExternalFenceFeatureFlags"/> |
| <type requires="VkFenceImportFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkFenceImportFlags</name>;</type> |
| <type category="bitmask" name="VkFenceImportFlagsKHR" alias="VkFenceImportFlags"/> |
| <type requires="VkSurfaceCounterFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkSurfaceCounterFlagsEXT</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineViewportSwizzleStateCreateFlagsNV</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineDiscardRectangleStateCreateFlagsEXT</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCoverageToColorStateCreateFlagsNV</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineCoverageModulationStateCreateFlagsNV</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkValidationCacheCreateFlagsEXT</name>;</type> |
| <type requires="VkDebugUtilsMessageSeverityFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkDebugUtilsMessageSeverityFlagsEXT</name>;</type> |
| <type requires="VkDebugUtilsMessageTypeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkDebugUtilsMessageTypeFlagsEXT</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkDebugUtilsMessengerCreateFlagsEXT</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkDebugUtilsMessengerCallbackDataFlagsEXT</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineRasterizationConservativeStateCreateFlagsEXT</name>;</type> |
| <type requires="VkDescriptorBindingFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkDescriptorBindingFlagsEXT</name>;</type> |
| <type requires="VkConditionalRenderingFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkConditionalRenderingFlagsEXT</name>;</type> |
| <type requires="VkResolveModeFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkResolveModeFlagsKHR</name>;</type> |
| <type category="bitmask">typedef <type>VkFlags</type> <name>VkPipelineRasterizationStateStreamCreateFlagsEXT</name>;</type> |
| |
| |
| <comment>Types which can be void pointers or class pointers, selected at compile time</comment> |
| <type category="handle"><type>VK_DEFINE_HANDLE</type>(<name>VkInstance</name>)</type> |
| <type category="handle" parent="VkInstance"><type>VK_DEFINE_HANDLE</type>(<name>VkPhysicalDevice</name>)</type> |
| <type category="handle" parent="VkPhysicalDevice"><type>VK_DEFINE_HANDLE</type>(<name>VkDevice</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_HANDLE</type>(<name>VkQueue</name>)</type> |
| <type category="handle" parent="VkCommandPool"><type>VK_DEFINE_HANDLE</type>(<name>VkCommandBuffer</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDeviceMemory</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkCommandPool</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkBuffer</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkBufferView</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkImage</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkImageView</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkShaderModule</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkPipeline</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkPipelineLayout</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkSampler</name>)</type> |
| <type category="handle" parent="VkDescriptorPool"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDescriptorSet</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDescriptorSetLayout</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDescriptorPool</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkFence</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkSemaphore</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkEvent</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkQueryPool</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkFramebuffer</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkRenderPass</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkPipelineCache</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkObjectTableNVX</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkIndirectCommandsLayoutNVX</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDescriptorUpdateTemplate</name>)</type> |
| <type category="handle" name="VkDescriptorUpdateTemplateKHR" alias="VkDescriptorUpdateTemplate"/> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkSamplerYcbcrConversion</name>)</type> |
| <type category="handle" name="VkSamplerYcbcrConversionKHR" alias="VkSamplerYcbcrConversion"/> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkValidationCacheEXT</name>)</type> |
| <type category="handle" parent="VkDevice"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkAccelerationStructureNV</name>)</type> |
| |
| <comment>WSI extensions</comment> |
| <type category="handle"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDisplayKHR</name>)</type> |
| <type category="handle" parent="VkPhysicalDevice,VkDisplayKHR"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDisplayModeKHR</name>)</type> |
| <type category="handle" parent="VkInstance"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkSurfaceKHR</name>)</type> |
| <type category="handle" parent="VkSurfaceKHR"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkSwapchainKHR</name>)</type> |
| <type category="handle" parent="VkInstance"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDebugReportCallbackEXT</name>)</type> |
| <type category="handle" parent="VkInstance"><type>VK_DEFINE_NON_DISPATCHABLE_HANDLE</type>(<name>VkDebugUtilsMessengerEXT</name>)</type> |
| |
| <comment>Types generated from corresponding enums tags below</comment> |
| <type name="VkAttachmentLoadOp" category="enum"/> |
| <type name="VkAttachmentStoreOp" category="enum"/> |
| <type name="VkBlendFactor" category="enum"/> |
| <type name="VkBlendOp" category="enum"/> |
| <type name="VkBorderColor" category="enum"/> |
| <type name="VkFramebufferCreateFlagBits" category="enum"/> |
| <type name="VkQueryPoolCreateFlagBits" category="enum"/> |
| <type name="VkRenderPassCreateFlagBits" category="enum"/> |
| <type name="VkSamplerCreateFlagBits" category="enum"/> |
| <type name="VkPipelineCacheHeaderVersion" category="enum"/> |
| <type name="VkPipelineLayoutCreateFlagBits" category="enum"/> |
| <type name="VkPipelineCacheCreateFlagBits" category="enum"/> |
| <type name="VkPipelineDepthStencilStateCreateFlagBits" category="enum"/> |
| <type name="VkPipelineDynamicStateCreateFlagBits" category="enum"/> |
| <type name="VkPipelineColorBlendStateCreateFlagBits" category="enum"/> |
| <type name="VkPipelineMultisampleStateCreateFlagBits" category="enum"/> |
| <type name="VkPipelineRasterizationStateCreateFlagBits" category="enum"/> |
| <type name="VkPipelineViewportStateCreateFlagBits" category="enum"/> |
| <type name="VkPipelineTessellationStateCreateFlagBits" category="enum"/> |
| <type name="VkPipelineInputAssemblyStateCreateFlagBits" category="enum"/> |
| <type name="VkPipelineVertexInputStateCreateFlagBits" category="enum"/> |
| <type name="VkPipelineShaderStageCreateFlagBits" category="enum"/> |
| <type name="VkDescriptorSetLayoutCreateFlagBits" category="enum"/> |
| <type name="VkBufferViewCreateFlagBits" category="enum"/> |
| <type name="VkInstanceCreateFlagBits" category="enum"/> |
| <type name="VkDeviceQueueCreateFlagBits" category="enum"/> |
| <type name="VkBufferCreateFlagBits" category="enum"/> |
| <type name="VkBufferUsageFlagBits" category="enum"/> |
| <type name="VkColorComponentFlagBits" category="enum"/> |
| <type name="VkComponentSwizzle" category="enum"/> |
| <type name="VkCommandPoolCreateFlagBits" category="enum"/> |
| <type name="VkCommandPoolResetFlagBits" category="enum"/> |
| <type name="VkCommandBufferResetFlagBits" category="enum"/> |
| <type name="VkCommandBufferLevel" category="enum"/> |
| <type name="VkCommandBufferUsageFlagBits" category="enum"/> |
| <type name="VkCompareOp" category="enum"/> |
| <type name="VkCullModeFlagBits" category="enum"/> |
| <type name="VkDescriptorType" category="enum"/> |
| <type name="VkDeviceCreateFlagBits" category="enum"/> |
| <type name="VkDynamicState" category="enum"/> |
| <type name="VkFenceCreateFlagBits" category="enum"/> |
| <type name="VkPolygonMode" category="enum"/> |
| <type name="VkFormat" category="enum"/> |
| <type name="VkFormatFeatureFlagBits" category="enum"/> |
| <type name="VkFrontFace" category="enum"/> |
| <type name="VkImageAspectFlagBits" category="enum"/> |
| <type name="VkImageCreateFlagBits" category="enum"/> |
| <type name="VkImageLayout" category="enum"/> |
| <type name="VkImageTiling" category="enum"/> |
| <type name="VkImageType" category="enum"/> |
| <type name="VkImageUsageFlagBits" category="enum"/> |
| <type name="VkImageViewCreateFlagBits" category="enum"/> |
| <type name="VkImageViewType" category="enum"/> |
| <type name="VkSharingMode" category="enum"/> |
| <type name="VkIndexType" category="enum"/> |
| <type name="VkLogicOp" category="enum"/> |
| <type name="VkMemoryHeapFlagBits" category="enum"/> |
| <type name="VkAccessFlagBits" category="enum"/> |
| <type name="VkMemoryPropertyFlagBits" category="enum"/> |
| <type name="VkPhysicalDeviceType" category="enum"/> |
| <type name="VkPipelineBindPoint" category="enum"/> |
| <type name="VkPipelineCreateFlagBits" category="enum"/> |
| <type name="VkPrimitiveTopology" category="enum"/> |
| <type name="VkQueryControlFlagBits" category="enum"/> |
| <type name="VkQueryPipelineStatisticFlagBits" category="enum"/> |
| <type name="VkQueryResultFlagBits" category="enum"/> |
| <type name="VkQueryType" category="enum"/> |
| <type name="VkQueueFlagBits" category="enum"/> |
| <type name="VkSubpassContents" category="enum"/> |
| <type name="VkResult" category="enum"/> |
| <type name="VkShaderStageFlagBits" category="enum"/> |
| <type name="VkSparseMemoryBindFlagBits" category="enum"/> |
| <type name="VkStencilFaceFlagBits" category="enum"/> |
| <type name="VkStencilOp" category="enum"/> |
| <type name="VkStructureType" category="enum"/> |
| <type name="VkSystemAllocationScope" category="enum"/> |
| <type name="VkInternalAllocationType" category="enum"/> |
| <type name="VkSamplerAddressMode" category="enum"/> |
| <type name="VkFilter" category="enum"/> |
| <type name="VkSamplerMipmapMode" category="enum"/> |
| <type name="VkVertexInputRate" category="enum"/> |
| <type name="VkPipelineStageFlagBits" category="enum"/> |
| <type name="VkSparseImageFormatFlagBits" category="enum"/> |
| <type name="VkSampleCountFlagBits" category="enum"/> |
| <type name="VkAttachmentDescriptionFlagBits" category="enum"/> |
| <type name="VkDescriptorPoolCreateFlagBits" category="enum"/> |
| <type name="VkDependencyFlagBits" category="enum"/> |
| <type name="VkObjectType" category="enum"/> |
| <type name="VkDescriptorBindingFlagBitsEXT" category="enum"/> |
| <type name="VkConditionalRenderingFlagBitsEXT" category="enum"/> |
| |
| <comment>Extensions</comment> |
| <type name="VkIndirectCommandsLayoutUsageFlagBitsNVX" category="enum"/> |
| <type name="VkIndirectCommandsTokenTypeNVX" category="enum"/> |
| <type name="VkObjectEntryUsageFlagBitsNVX" category="enum"/> |
| <type name="VkObjectEntryTypeNVX" category="enum"/> |
| <type name="VkDescriptorUpdateTemplateType" category="enum"/> |
| <type category="enum" name="VkDescriptorUpdateTemplateTypeKHR" alias="VkDescriptorUpdateTemplateType"/> |
| <type name="VkViewportCoordinateSwizzleNV" category="enum"/> |
| <type name="VkDiscardRectangleModeEXT" category="enum"/> |
| <type name="VkSubpassDescriptionFlagBits" category="enum"/> |
| <type name="VkPointClippingBehavior" category="enum"/> |
| <type category="enum" name="VkPointClippingBehaviorKHR" alias="VkPointClippingBehavior"/> |
| <type name="VkCoverageModulationModeNV" category="enum"/> |
| <type name="VkValidationCacheHeaderVersionEXT" category="enum"/> |
| <type name="VkShaderInfoTypeAMD" category="enum"/> |
| <type name="VkQueueGlobalPriorityEXT" category="enum"/> |
| <type name="VkTimeDomainEXT" category="enum"/> |
| <type name="VkConservativeRasterizationModeEXT" category="enum"/> |
| <type name="VkResolveModeFlagBitsKHR" category="enum"/> |
| <type name="VkGeometryFlagBitsNV" category="enum"/> |
| <type name="VkGeometryInstanceFlagBitsNV" category="enum"/> |
| <type name="VkBuildAccelerationStructureFlagBitsNV" category="enum"/> |
| <type name="VkCopyAccelerationStructureModeNV" category="enum"/> |
| <type name="VkAccelerationStructureTypeNV" category="enum"/> |
| <type name="VkGeometryTypeNV" category="enum"/> |
| <type name="VkRayTracingShaderGroupTypeNV" category="enum"/> |
| <type name="VkAccelerationStructureMemoryRequirementsTypeNV" category="enum"/> |
| <type name="VkMemoryOverallocationBehaviorAMD" category="enum"/> |
| |
| <comment>WSI extensions</comment> |
| <type name="VkColorSpaceKHR" category="enum"/> |
| <type name="VkCompositeAlphaFlagBitsKHR" category="enum"/> |
| <type name="VkDisplayPlaneAlphaFlagBitsKHR" category="enum"/> |
| <type name="VkPresentModeKHR" category="enum"/> |
| <type name="VkSurfaceTransformFlagBitsKHR" category="enum"/> |
| <type name="VkDebugReportFlagBitsEXT" category="enum"/> |
| <type name="VkDebugReportObjectTypeEXT" category="enum"/> |
| <type name="VkRasterizationOrderAMD" category="enum"/> |
| <type name="VkExternalMemoryHandleTypeFlagBitsNV" category="enum"/> |
| <type name="VkExternalMemoryFeatureFlagBitsNV" category="enum"/> |
| <type name="VkValidationCheckEXT" category="enum"/> |
| <type name="VkValidationFeatureEnableEXT" category="enum"/> |
| <type name="VkValidationFeatureDisableEXT" category="enum"/> |
| <type name="VkExternalMemoryHandleTypeFlagBits" category="enum"/> |
| <type category="enum" name="VkExternalMemoryHandleTypeFlagBitsKHR" alias="VkExternalMemoryHandleTypeFlagBits"/> |
| <type name="VkExternalMemoryFeatureFlagBits" category="enum"/> |
| <type category="enum" name="VkExternalMemoryFeatureFlagBitsKHR" alias="VkExternalMemoryFeatureFlagBits"/> |
| <type name="VkExternalSemaphoreHandleTypeFlagBits" category="enum"/> |
| <type category="enum" name="VkExternalSemaphoreHandleTypeFlagBitsKHR" alias="VkExternalSemaphoreHandleTypeFlagBits"/> |
| <type name="VkExternalSemaphoreFeatureFlagBits" category="enum"/> |
| <type category="enum" name="VkExternalSemaphoreFeatureFlagBitsKHR" alias="VkExternalSemaphoreFeatureFlagBits"/> |
| <type name="VkSemaphoreImportFlagBits" category="enum"/> |
| <type category="enum" name="VkSemaphoreImportFlagBitsKHR" alias="VkSemaphoreImportFlagBits"/> |
| <type name="VkExternalFenceHandleTypeFlagBits" category="enum"/> |
| <type category="enum" name="VkExternalFenceHandleTypeFlagBitsKHR" alias="VkExternalFenceHandleTypeFlagBits"/> |
| <type name="VkExternalFenceFeatureFlagBits" category="enum"/> |
| <type category="enum" name="VkExternalFenceFeatureFlagBitsKHR" alias="VkExternalFenceFeatureFlagBits"/> |
| <type name="VkFenceImportFlagBits" category="enum"/> |
| <type category="enum" name="VkFenceImportFlagBitsKHR" alias="VkFenceImportFlagBits"/> |
| <type name="VkSurfaceCounterFlagBitsEXT" category="enum"/> |
| <type name="VkDisplayPowerStateEXT" category="enum"/> |
| <type name="VkDeviceEventTypeEXT" category="enum"/> |
| <type name="VkDisplayEventTypeEXT" category="enum"/> |
| <type name="VkPeerMemoryFeatureFlagBits" category="enum"/> |
| <type category="enum" name="VkPeerMemoryFeatureFlagBitsKHR" alias="VkPeerMemoryFeatureFlagBits"/> |
| <type name="VkMemoryAllocateFlagBits" category="enum"/> |
| <type category="enum" name="VkMemoryAllocateFlagBitsKHR" alias="VkMemoryAllocateFlagBits"/> |
| <type name="VkDeviceGroupPresentModeFlagBitsKHR" category="enum"/> |
| <type name="VkSwapchainCreateFlagBitsKHR" category="enum"/> |
| <type name="VkSubgroupFeatureFlagBits" category="enum"/> |
| <type name="VkTessellationDomainOrigin" category="enum"/> |
| <type category="enum" name="VkTessellationDomainOriginKHR" alias="VkTessellationDomainOrigin"/> |
| <type name="VkSamplerYcbcrModelConversion" category="enum"/> |
| <type category="enum" name="VkSamplerYcbcrModelConversionKHR" alias="VkSamplerYcbcrModelConversion"/> |
| <type name="VkSamplerYcbcrRange" category="enum"/> |
| <type category="enum" name="VkSamplerYcbcrRangeKHR" alias="VkSamplerYcbcrRange"/> |
| <type name="VkChromaLocation" category="enum"/> |
| <type category="enum" name="VkChromaLocationKHR" alias="VkChromaLocation"/> |
| <type name="VkSamplerReductionModeEXT" category="enum"/> |
| <type name="VkBlendOverlapEXT" category="enum"/> |
| <type name="VkDebugUtilsMessageSeverityFlagBitsEXT" category="enum"/> |
| <type name="VkDebugUtilsMessageTypeFlagBitsEXT" category="enum"/> |
| |
| <comment>Enumerated types in the header, but not used by the API</comment> |
| <type name="VkVendorId" category="enum"/> |
| <type name="VkDriverIdKHR" category="enum"/> |
| <type name="VkShadingRatePaletteEntryNV" category="enum"/> |
| <type name="VkCoarseSampleOrderTypeNV" category="enum"/> |
| |
| <comment>The PFN_vk*Function types are used by VkAllocationCallbacks below</comment> |
| <type category="funcpointer">typedef void (VKAPI_PTR *<name>PFN_vkInternalAllocationNotification</name>)( |
| <type>void</type>* pUserData, |
| <type>size_t</type> size, |
| <type>VkInternalAllocationType</type> allocationType, |
| <type>VkSystemAllocationScope</type> allocationScope);</type> |
| <type category="funcpointer">typedef void (VKAPI_PTR *<name>PFN_vkInternalFreeNotification</name>)( |
| <type>void</type>* pUserData, |
| <type>size_t</type> size, |
| <type>VkInternalAllocationType</type> allocationType, |
| <type>VkSystemAllocationScope</type> allocationScope);</type> |
| <type category="funcpointer">typedef void* (VKAPI_PTR *<name>PFN_vkReallocationFunction</name>)( |
| <type>void</type>* pUserData, |
| <type>void</type>* pOriginal, |
| <type>size_t</type> size, |
| <type>size_t</type> alignment, |
| <type>VkSystemAllocationScope</type> allocationScope);</type> |
| <type category="funcpointer">typedef void* (VKAPI_PTR *<name>PFN_vkAllocationFunction</name>)( |
| <type>void</type>* pUserData, |
| <type>size_t</type> size, |
| <type>size_t</type> alignment, |
| <type>VkSystemAllocationScope</type> allocationScope);</type> |
| <type category="funcpointer">typedef void (VKAPI_PTR *<name>PFN_vkFreeFunction</name>)( |
| <type>void</type>* pUserData, |
| <type>void</type>* pMemory);</type> |
| |
| <comment>The PFN_vkVoidFunction type are used by VkGet*ProcAddr below</comment> |
| <type category="funcpointer">typedef void (VKAPI_PTR *<name>PFN_vkVoidFunction</name>)(void);</type> |
| |
| <comment>The PFN_vkDebugReportCallbackEXT type are used by the DEBUG_REPORT extension</comment> |
| <type category="funcpointer">typedef VkBool32 (VKAPI_PTR *<name>PFN_vkDebugReportCallbackEXT</name>)( |
| <type>VkDebugReportFlagsEXT</type> flags, |
| <type>VkDebugReportObjectTypeEXT</type> objectType, |
| <type>uint64_t</type> object, |
| <type>size_t</type> location, |
| <type>int32_t</type> messageCode, |
| const <type>char</type>* pLayerPrefix, |
| const <type>char</type>* pMessage, |
| <type>void</type>* pUserData);</type> |
| |
| <comment>The PFN_vkDebugUtilsMessengerCallbackEXT type are used by the VK_EXT_debug_utils extension</comment> |
| <type category="funcpointer" requires="VkDebugUtilsMessengerCallbackDataEXT">typedef VkBool32 (VKAPI_PTR *<name>PFN_vkDebugUtilsMessengerCallbackEXT</name>)( |
| <type>VkDebugUtilsMessageSeverityFlagBitsEXT</type> messageSeverity, |
| <type>VkDebugUtilsMessageTypeFlagsEXT</type> messageTypes, |
| const <type>VkDebugUtilsMessengerCallbackDataEXT</type>* pCallbackData, |
| <type>void</type>* pUserData);</type> |
| |
| <comment>Struct types</comment> |
| <type category="struct" name="VkBaseOutStructure"> |
| <member><type>VkStructureType</type> <name>sType</name></member> |
| <member>struct <type>VkBaseOutStructure</type>* <name>pNext</name></member> |
| </type> |
| <type category="struct" name="VkBaseInStructure"> |
| <member><type>VkStructureType</type> <name>sType</name></member> |
| <member>const struct <type>VkBaseInStructure</type>* <name>pNext</name></member> |
| </type> |
| <type category="struct" name="VkOffset2D"> |
| <member><type>int32_t</type> <name>x</name></member> |
| <member><type>int32_t</type> <name>y</name></member> |
| </type> |
| <type category="struct" name="VkOffset3D"> |
| <member><type>int32_t</type> <name>x</name></member> |
| <member><type>int32_t</type> <name>y</name></member> |
| <member><type>int32_t</type> <name>z</name></member> |
| </type> |
| <type category="struct" name="VkExtent2D"> |
| <member><type>uint32_t</type> <name>width</name></member> |
| <member><type>uint32_t</type> <name>height</name></member> |
| </type> |
| <type category="struct" name="VkExtent3D"> |
| <member><type>uint32_t</type> <name>width</name></member> |
| <member><type>uint32_t</type> <name>height</name></member> |
| <member><type>uint32_t</type> <name>depth</name></member> |
| </type> |
| <type category="struct" name="VkViewport"> |
| <member noautovalidity="true"><type>float</type> <name>x</name></member> |
| <member noautovalidity="true"><type>float</type> <name>y</name></member> |
| <member noautovalidity="true"><type>float</type> <name>width</name></member> |
| <member noautovalidity="true"><type>float</type> <name>height</name></member> |
| <member><type>float</type> <name>minDepth</name></member> |
| <member><type>float</type> <name>maxDepth</name></member> |
| </type> |
| <type category="struct" name="VkRect2D"> |
| <member><type>VkOffset2D</type> <name>offset</name></member> |
| <member><type>VkExtent2D</type> <name>extent</name></member> |
| </type> |
| <type category="struct" name="VkClearRect"> |
| <member><type>VkRect2D</type> <name>rect</name></member> |
| <member><type>uint32_t</type> <name>baseArrayLayer</name></member> |
| <member><type>uint32_t</type> <name>layerCount</name></member> |
| </type> |
| <type category="struct" name="VkComponentMapping"> |
| <member><type>VkComponentSwizzle</type> <name>r</name></member> |
| <member><type>VkComponentSwizzle</type> <name>g</name></member> |
| <member><type>VkComponentSwizzle</type> <name>b</name></member> |
| <member><type>VkComponentSwizzle</type> <name>a</name></member> |
| </type> |
| <type category="struct" name="VkPhysicalDeviceProperties" returnedonly="true"> |
| <member><type>uint32_t</type> <name>apiVersion</name></member> |
| <member><type>uint32_t</type> <name>driverVersion</name></member> |
| <member><type>uint32_t</type> <name>vendorID</name></member> |
| <member><type>uint32_t</type> <name>deviceID</name></member> |
| <member><type>VkPhysicalDeviceType</type> <name>deviceType</name></member> |
| <member><type>char</type> <name>deviceName</name>[<enum>VK_MAX_PHYSICAL_DEVICE_NAME_SIZE</enum>]</member> |
| <member><type>uint8_t</type> <name>pipelineCacheUUID</name>[<enum>VK_UUID_SIZE</enum>]</member> |
| <member><type>VkPhysicalDeviceLimits</type> <name>limits</name></member> |
| <member><type>VkPhysicalDeviceSparseProperties</type> <name>sparseProperties</name></member> |
| </type> |
| <type category="struct" name="VkExtensionProperties" returnedonly="true"> |
| <member><type>char</type> <name>extensionName</name>[<enum>VK_MAX_EXTENSION_NAME_SIZE</enum>]<comment>extension name</comment></member> |
| <member><type>uint32_t</type> <name>specVersion</name><comment>version of the extension specification implemented</comment></member> |
| </type> |
| <type category="struct" name="VkLayerProperties" returnedonly="true"> |
| <member><type>char</type> <name>layerName</name>[<enum>VK_MAX_EXTENSION_NAME_SIZE</enum>]<comment>layer name</comment></member> |
| <member><type>uint32_t</type> <name>specVersion</name><comment>version of the layer specification implemented</comment></member> |
| <member><type>uint32_t</type> <name>implementationVersion</name><comment>build or release version of the layer's library</comment></member> |
| <member><type>char</type> <name>description</name>[<enum>VK_MAX_DESCRIPTION_SIZE</enum>]<comment>Free-form description of the layer</comment></member> |
| </type> |
| <type category="struct" name="VkApplicationInfo"> |
| <member values="VK_STRUCTURE_TYPE_APPLICATION_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true" len="null-terminated">const <type>char</type>* <name>pApplicationName</name></member> |
| <member><type>uint32_t</type> <name>applicationVersion</name></member> |
| <member optional="true" len="null-terminated">const <type>char</type>* <name>pEngineName</name></member> |
| <member><type>uint32_t</type> <name>engineVersion</name></member> |
| <member><type>uint32_t</type> <name>apiVersion</name></member> |
| </type> |
| <type category="struct" name="VkAllocationCallbacks"> |
| <member optional="true"><type>void</type>* <name>pUserData</name></member> |
| <member noautovalidity="true"><type>PFN_vkAllocationFunction</type> <name>pfnAllocation</name></member> |
| <member noautovalidity="true"><type>PFN_vkReallocationFunction</type> <name>pfnReallocation</name></member> |
| <member noautovalidity="true"><type>PFN_vkFreeFunction</type> <name>pfnFree</name></member> |
| <member optional="true" noautovalidity="true"><type>PFN_vkInternalAllocationNotification</type> <name>pfnInternalAllocation</name></member> |
| <member optional="true" noautovalidity="true"><type>PFN_vkInternalFreeNotification</type> <name>pfnInternalFree</name></member> |
| </type> |
| <type category="struct" name="VkDeviceQueueCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkDeviceQueueCreateFlags</type> <name>flags</name></member> |
| <member><type>uint32_t</type> <name>queueFamilyIndex</name></member> |
| <member><type>uint32_t</type> <name>queueCount</name></member> |
| <member len="queueCount">const <type>float</type>* <name>pQueuePriorities</name></member> |
| </type> |
| <type category="struct" name="VkDeviceCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkDeviceCreateFlags</type> <name>flags</name></member> |
| <member><type>uint32_t</type> <name>queueCreateInfoCount</name></member> |
| <member len="queueCreateInfoCount">const <type>VkDeviceQueueCreateInfo</type>* <name>pQueueCreateInfos</name></member> |
| <member optional="true"><type>uint32_t</type> <name>enabledLayerCount</name></member> |
| <member len="enabledLayerCount,null-terminated">const <type>char</type>* const* <name>ppEnabledLayerNames</name><comment>Ordered list of layer names to be enabled</comment></member> |
| <member optional="true"><type>uint32_t</type> <name>enabledExtensionCount</name></member> |
| <member len="enabledExtensionCount,null-terminated">const <type>char</type>* const* <name>ppEnabledExtensionNames</name></member> |
| <member optional="true">const <type>VkPhysicalDeviceFeatures</type>* <name>pEnabledFeatures</name></member> |
| </type> |
| <type category="struct" name="VkInstanceCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkInstanceCreateFlags</type> <name>flags</name></member> |
| <member optional="true">const <type>VkApplicationInfo</type>* <name>pApplicationInfo</name></member> |
| <member optional="true"><type>uint32_t</type> <name>enabledLayerCount</name></member> |
| <member len="enabledLayerCount,null-terminated">const <type>char</type>* const* <name>ppEnabledLayerNames</name><comment>Ordered list of layer names to be enabled</comment></member> |
| <member optional="true"><type>uint32_t</type> <name>enabledExtensionCount</name></member> |
| <member len="enabledExtensionCount,null-terminated">const <type>char</type>* const* <name>ppEnabledExtensionNames</name><comment>Extension names to be enabled</comment></member> |
| </type> |
| <type category="struct" name="VkQueueFamilyProperties" returnedonly="true"> |
| <member optional="true"><type>VkQueueFlags</type> <name>queueFlags</name><comment>Queue flags</comment></member> |
| <member><type>uint32_t</type> <name>queueCount</name></member> |
| <member><type>uint32_t</type> <name>timestampValidBits</name></member> |
| <member><type>VkExtent3D</type> <name>minImageTransferGranularity</name><comment>Minimum alignment requirement for image transfers</comment></member> |
| </type> |
| <type category="struct" name="VkPhysicalDeviceMemoryProperties" returnedonly="true"> |
| <member><type>uint32_t</type> <name>memoryTypeCount</name></member> |
| <member><type>VkMemoryType</type> <name>memoryTypes</name>[<enum>VK_MAX_MEMORY_TYPES</enum>]</member> |
| <member><type>uint32_t</type> <name>memoryHeapCount</name></member> |
| <member><type>VkMemoryHeap</type> <name>memoryHeaps</name>[<enum>VK_MAX_MEMORY_HEAPS</enum>]</member> |
| </type> |
| <type category="struct" name="VkMemoryAllocateInfo"> |
| <member values="VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member><type>VkDeviceSize</type> <name>allocationSize</name><comment>Size of memory allocation</comment></member> |
| <member><type>uint32_t</type> <name>memoryTypeIndex</name><comment>Index of the of the memory type to allocate from</comment></member> |
| </type> |
| <type category="struct" name="VkMemoryRequirements" returnedonly="true"> |
| <member><type>VkDeviceSize</type> <name>size</name><comment>Specified in bytes</comment></member> |
| <member><type>VkDeviceSize</type> <name>alignment</name><comment>Specified in bytes</comment></member> |
| <member><type>uint32_t</type> <name>memoryTypeBits</name><comment>Bitmask of the allowed memory type indices into memoryTypes[] for this object</comment></member> |
| </type> |
| <type category="struct" name="VkSparseImageFormatProperties" returnedonly="true"> |
| <member optional="true"><type>VkImageAspectFlags</type> <name>aspectMask</name></member> |
| <member><type>VkExtent3D</type> <name>imageGranularity</name></member> |
| <member optional="true"><type>VkSparseImageFormatFlags</type> <name>flags</name></member> |
| </type> |
| <type category="struct" name="VkSparseImageMemoryRequirements" returnedonly="true"> |
| <member><type>VkSparseImageFormatProperties</type> <name>formatProperties</name></member> |
| <member><type>uint32_t</type> <name>imageMipTailFirstLod</name></member> |
| <member><type>VkDeviceSize</type> <name>imageMipTailSize</name><comment>Specified in bytes, must be a multiple of sparse block size in bytes / alignment</comment></member> |
| <member><type>VkDeviceSize</type> <name>imageMipTailOffset</name><comment>Specified in bytes, must be a multiple of sparse block size in bytes / alignment</comment></member> |
| <member><type>VkDeviceSize</type> <name>imageMipTailStride</name><comment>Specified in bytes, must be a multiple of sparse block size in bytes / alignment</comment></member> |
| </type> |
| <type category="struct" name="VkMemoryType" returnedonly="true"> |
| <member optional="true"><type>VkMemoryPropertyFlags</type> <name>propertyFlags</name><comment>Memory properties of this memory type</comment></member> |
| <member><type>uint32_t</type> <name>heapIndex</name><comment>Index of the memory heap allocations of this memory type are taken from</comment></member> |
| </type> |
| <type category="struct" name="VkMemoryHeap" returnedonly="true"> |
| <member><type>VkDeviceSize</type> <name>size</name><comment>Available memory in the heap</comment></member> |
| <member optional="true"><type>VkMemoryHeapFlags</type> <name>flags</name><comment>Flags for the heap</comment></member> |
| </type> |
| <type category="struct" name="VkMappedMemoryRange"> |
| <member values="VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member><type>VkDeviceMemory</type> <name>memory</name><comment>Mapped memory object</comment></member> |
| <member><type>VkDeviceSize</type> <name>offset</name><comment>Offset within the memory object where the range starts</comment></member> |
| <member><type>VkDeviceSize</type> <name>size</name><comment>Size of the range within the memory object</comment></member> |
| </type> |
| <type category="struct" name="VkFormatProperties" returnedonly="true"> |
| <member optional="true"><type>VkFormatFeatureFlags</type> <name>linearTilingFeatures</name><comment>Format features in case of linear tiling</comment></member> |
| <member optional="true"><type>VkFormatFeatureFlags</type> <name>optimalTilingFeatures</name><comment>Format features in case of optimal tiling</comment></member> |
| <member optional="true"><type>VkFormatFeatureFlags</type> <name>bufferFeatures</name><comment>Format features supported by buffers</comment></member> |
| </type> |
| <type category="struct" name="VkImageFormatProperties" returnedonly="true"> |
| <member><type>VkExtent3D</type> <name>maxExtent</name><comment>max image dimensions for this resource type</comment></member> |
| <member><type>uint32_t</type> <name>maxMipLevels</name><comment>max number of mipmap levels for this resource type</comment></member> |
| <member><type>uint32_t</type> <name>maxArrayLayers</name><comment>max array size for this resource type</comment></member> |
| <member optional="true"><type>VkSampleCountFlags</type> <name>sampleCounts</name><comment>supported sample counts for this resource type</comment></member> |
| <member><type>VkDeviceSize</type> <name>maxResourceSize</name><comment>max size (in bytes) of this resource type</comment></member> |
| </type> |
| <type category="struct" name="VkDescriptorBufferInfo"> |
| <member><type>VkBuffer</type> <name>buffer</name><comment>Buffer used for this descriptor slot.</comment></member> |
| <member><type>VkDeviceSize</type> <name>offset</name><comment>Base offset from buffer start in bytes to update in the descriptor set.</comment></member> |
| <member><type>VkDeviceSize</type> <name>range</name><comment>Size in bytes of the buffer resource for this descriptor update.</comment></member> |
| </type> |
| <type category="struct" name="VkDescriptorImageInfo"> |
| <member noautovalidity="true"><type>VkSampler</type> <name>sampler</name><comment>Sampler to write to the descriptor in case it is a SAMPLER or COMBINED_IMAGE_SAMPLER descriptor. Ignored otherwise.</comment></member> |
| <member noautovalidity="true"><type>VkImageView</type> <name>imageView</name><comment>Image view to write to the descriptor in case it is a SAMPLED_IMAGE, STORAGE_IMAGE, COMBINED_IMAGE_SAMPLER, or INPUT_ATTACHMENT descriptor. Ignored otherwise.</comment></member> |
| <member noautovalidity="true"><type>VkImageLayout</type> <name>imageLayout</name><comment>Layout the image is expected to be in when accessed using this descriptor (only used if imageView is not VK_NULL_HANDLE).</comment></member> |
| </type> |
| <type category="struct" name="VkWriteDescriptorSet"> |
| <member values="VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member noautovalidity="true"><type>VkDescriptorSet</type> <name>dstSet</name><comment>Destination descriptor set</comment></member> |
| <member><type>uint32_t</type> <name>dstBinding</name><comment>Binding within the destination descriptor set to write</comment></member> |
| <member><type>uint32_t</type> <name>dstArrayElement</name><comment>Array element within the destination binding to write</comment></member> |
| <member><type>uint32_t</type> <name>descriptorCount</name><comment>Number of descriptors to write (determines the size of the array pointed by pDescriptors)</comment></member> |
| <member><type>VkDescriptorType</type> <name>descriptorType</name><comment>Descriptor type to write (determines which members of the array pointed by pDescriptors are going to be used)</comment></member> |
| <member noautovalidity="true" len="descriptorCount">const <type>VkDescriptorImageInfo</type>* <name>pImageInfo</name><comment>Sampler, image view, and layout for SAMPLER, COMBINED_IMAGE_SAMPLER, {SAMPLED,STORAGE}_IMAGE, and INPUT_ATTACHMENT descriptor types.</comment></member> |
| <member noautovalidity="true" len="descriptorCount">const <type>VkDescriptorBufferInfo</type>* <name>pBufferInfo</name><comment>Raw buffer, size, and offset for {UNIFORM,STORAGE}_BUFFER[_DYNAMIC] descriptor types.</comment></member> |
| <member noautovalidity="true" len="descriptorCount">const <type>VkBufferView</type>* <name>pTexelBufferView</name><comment>Buffer view to write to the descriptor for {UNIFORM,STORAGE}_TEXEL_BUFFER descriptor types.</comment></member> |
| </type> |
| <type category="struct" name="VkCopyDescriptorSet"> |
| <member values="VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member><type>VkDescriptorSet</type> <name>srcSet</name><comment>Source descriptor set</comment></member> |
| <member><type>uint32_t</type> <name>srcBinding</name><comment>Binding within the source descriptor set to copy from</comment></member> |
| <member><type>uint32_t</type> <name>srcArrayElement</name><comment>Array element within the source binding to copy from</comment></member> |
| <member><type>VkDescriptorSet</type> <name>dstSet</name><comment>Destination descriptor set</comment></member> |
| <member><type>uint32_t</type> <name>dstBinding</name><comment>Binding within the destination descriptor set to copy to</comment></member> |
| <member><type>uint32_t</type> <name>dstArrayElement</name><comment>Array element within the destination binding to copy to</comment></member> |
| <member><type>uint32_t</type> <name>descriptorCount</name><comment>Number of descriptors to write (determines the size of the array pointed by pDescriptors)</comment></member> |
| </type> |
| <type category="struct" name="VkBufferCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkBufferCreateFlags</type> <name>flags</name><comment>Buffer creation flags</comment></member> |
| <member><type>VkDeviceSize</type> <name>size</name><comment>Specified in bytes</comment></member> |
| <member><type>VkBufferUsageFlags</type> <name>usage</name><comment>Buffer usage flags</comment></member> |
| <member><type>VkSharingMode</type> <name>sharingMode</name></member> |
| <member optional="true"><type>uint32_t</type> <name>queueFamilyIndexCount</name></member> |
| <member noautovalidity="true" len="queueFamilyIndexCount">const <type>uint32_t</type>* <name>pQueueFamilyIndices</name></member> |
| </type> |
| <type category="struct" name="VkBufferViewCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkBufferViewCreateFlags</type><name>flags</name></member> |
| <member><type>VkBuffer</type> <name>buffer</name></member> |
| <member><type>VkFormat</type> <name>format</name><comment>Optionally specifies format of elements</comment></member> |
| <member><type>VkDeviceSize</type> <name>offset</name><comment>Specified in bytes</comment></member> |
| <member><type>VkDeviceSize</type> <name>range</name><comment>View size specified in bytes</comment></member> |
| </type> |
| <type category="struct" name="VkImageSubresource"> |
| <member><type>VkImageAspectFlags</type> <name>aspectMask</name></member> |
| <member><type>uint32_t</type> <name>mipLevel</name></member> |
| <member><type>uint32_t</type> <name>arrayLayer</name></member> |
| </type> |
| <type category="struct" name="VkImageSubresourceLayers"> |
| <member><type>VkImageAspectFlags</type> <name>aspectMask</name></member> |
| <member><type>uint32_t</type> <name>mipLevel</name></member> |
| <member><type>uint32_t</type> <name>baseArrayLayer</name></member> |
| <member><type>uint32_t</type> <name>layerCount</name></member> |
| </type> |
| <type category="struct" name="VkImageSubresourceRange"> |
| <member><type>VkImageAspectFlags</type> <name>aspectMask</name></member> |
| <member><type>uint32_t</type> <name>baseMipLevel</name></member> |
| <member><type>uint32_t</type> <name>levelCount</name></member> |
| <member><type>uint32_t</type> <name>baseArrayLayer</name></member> |
| <member><type>uint32_t</type> <name>layerCount</name></member> |
| </type> |
| <type category="struct" name="VkMemoryBarrier"> |
| <member values="VK_STRUCTURE_TYPE_MEMORY_BARRIER"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkAccessFlags</type> <name>srcAccessMask</name><comment>Memory accesses from the source of the dependency to synchronize</comment></member> |
| <member optional="true"><type>VkAccessFlags</type> <name>dstAccessMask</name><comment>Memory accesses from the destination of the dependency to synchronize</comment></member> |
| </type> |
| <type category="struct" name="VkBufferMemoryBarrier"> |
| <member values="VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkAccessFlags</type> <name>srcAccessMask</name><comment>Memory accesses from the source of the dependency to synchronize</comment></member> |
| <member optional="true"><type>VkAccessFlags</type> <name>dstAccessMask</name><comment>Memory accesses from the destination of the dependency to synchronize</comment></member> |
| <member><type>uint32_t</type> <name>srcQueueFamilyIndex</name><comment>Queue family to transition ownership from</comment></member> |
| <member><type>uint32_t</type> <name>dstQueueFamilyIndex</name><comment>Queue family to transition ownership to</comment></member> |
| <member><type>VkBuffer</type> <name>buffer</name><comment>Buffer to sync</comment></member> |
| <member><type>VkDeviceSize</type> <name>offset</name><comment>Offset within the buffer to sync</comment></member> |
| <member><type>VkDeviceSize</type> <name>size</name><comment>Amount of bytes to sync</comment></member> |
| </type> |
| <type category="struct" name="VkImageMemoryBarrier"> |
| <member values="VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkAccessFlags</type> <name>srcAccessMask</name><comment>Memory accesses from the source of the dependency to synchronize</comment></member> |
| <member optional="true"><type>VkAccessFlags</type> <name>dstAccessMask</name><comment>Memory accesses from the destination of the dependency to synchronize</comment></member> |
| <member><type>VkImageLayout</type> <name>oldLayout</name><comment>Current layout of the image</comment></member> |
| <member><type>VkImageLayout</type> <name>newLayout</name><comment>New layout to transition the image to</comment></member> |
| <member><type>uint32_t</type> <name>srcQueueFamilyIndex</name><comment>Queue family to transition ownership from</comment></member> |
| <member><type>uint32_t</type> <name>dstQueueFamilyIndex</name><comment>Queue family to transition ownership to</comment></member> |
| <member><type>VkImage</type> <name>image</name><comment>Image to sync</comment></member> |
| <member><type>VkImageSubresourceRange</type> <name>subresourceRange</name><comment>Subresource range to sync</comment></member> |
| </type> |
| <type category="struct" name="VkImageCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkImageCreateFlags</type> <name>flags</name><comment>Image creation flags</comment></member> |
| <member><type>VkImageType</type> <name>imageType</name></member> |
| <member><type>VkFormat</type> <name>format</name></member> |
| <member><type>VkExtent3D</type> <name>extent</name></member> |
| <member><type>uint32_t</type> <name>mipLevels</name></member> |
| <member><type>uint32_t</type> <name>arrayLayers</name></member> |
| <member><type>VkSampleCountFlagBits</type> <name>samples</name></member> |
| <member><type>VkImageTiling</type> <name>tiling</name></member> |
| <member><type>VkImageUsageFlags</type> <name>usage</name><comment>Image usage flags</comment></member> |
| <member><type>VkSharingMode</type> <name>sharingMode</name><comment>Cross-queue-family sharing mode</comment></member> |
| <member optional="true"><type>uint32_t</type> <name>queueFamilyIndexCount</name><comment>Number of queue families to share across</comment></member> |
| <member noautovalidity="true" len="queueFamilyIndexCount">const <type>uint32_t</type>* <name>pQueueFamilyIndices</name><comment>Array of queue family indices to share across</comment></member> |
| <member><type>VkImageLayout</type> <name>initialLayout</name><comment>Initial image layout for all subresources</comment></member> |
| </type> |
| <type category="struct" name="VkSubresourceLayout" returnedonly="true"> |
| <member><type>VkDeviceSize</type> <name>offset</name><comment>Specified in bytes</comment></member> |
| <member><type>VkDeviceSize</type> <name>size</name><comment>Specified in bytes</comment></member> |
| <member><type>VkDeviceSize</type> <name>rowPitch</name><comment>Specified in bytes</comment></member> |
| <member><type>VkDeviceSize</type> <name>arrayPitch</name><comment>Specified in bytes</comment></member> |
| <member><type>VkDeviceSize</type> <name>depthPitch</name><comment>Specified in bytes</comment></member> |
| </type> |
| <type category="struct" name="VkImageViewCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkImageViewCreateFlags</type> <name>flags</name></member> |
| <member><type>VkImage</type> <name>image</name></member> |
| <member><type>VkImageViewType</type> <name>viewType</name></member> |
| <member><type>VkFormat</type> <name>format</name></member> |
| <member><type>VkComponentMapping</type> <name>components</name></member> |
| <member><type>VkImageSubresourceRange</type> <name>subresourceRange</name></member> |
| </type> |
| <type category="struct" name="VkBufferCopy"> |
| <member><type>VkDeviceSize</type> <name>srcOffset</name><comment>Specified in bytes</comment></member> |
| <member><type>VkDeviceSize</type> <name>dstOffset</name><comment>Specified in bytes</comment></member> |
| <member noautovalidity="true"><type>VkDeviceSize</type> <name>size</name><comment>Specified in bytes</comment></member> |
| </type> |
| <type category="struct" name="VkSparseMemoryBind"> |
| <member><type>VkDeviceSize</type> <name>resourceOffset</name><comment>Specified in bytes</comment></member> |
| <member><type>VkDeviceSize</type> <name>size</name><comment>Specified in bytes</comment></member> |
| <member optional="true"><type>VkDeviceMemory</type> <name>memory</name></member> |
| <member><type>VkDeviceSize</type> <name>memoryOffset</name><comment>Specified in bytes</comment></member> |
| <member optional="true"><type>VkSparseMemoryBindFlags</type><name>flags</name></member> |
| </type> |
| <type category="struct" name="VkSparseImageMemoryBind"> |
| <member><type>VkImageSubresource</type> <name>subresource</name></member> |
| <member><type>VkOffset3D</type> <name>offset</name></member> |
| <member><type>VkExtent3D</type> <name>extent</name></member> |
| <member optional="true"><type>VkDeviceMemory</type> <name>memory</name></member> |
| <member><type>VkDeviceSize</type> <name>memoryOffset</name><comment>Specified in bytes</comment></member> |
| <member optional="true"><type>VkSparseMemoryBindFlags</type><name>flags</name></member> |
| </type> |
| <type category="struct" name="VkSparseBufferMemoryBindInfo"> |
| <member><type>VkBuffer</type> <name>buffer</name></member> |
| <member><type>uint32_t</type> <name>bindCount</name></member> |
| <member len="bindCount">const <type>VkSparseMemoryBind</type>* <name>pBinds</name></member> |
| </type> |
| <type category="struct" name="VkSparseImageOpaqueMemoryBindInfo"> |
| <member><type>VkImage</type> <name>image</name></member> |
| <member><type>uint32_t</type> <name>bindCount</name></member> |
| <member len="bindCount">const <type>VkSparseMemoryBind</type>* <name>pBinds</name></member> |
| </type> |
| <type category="struct" name="VkSparseImageMemoryBindInfo"> |
| <member><type>VkImage</type> <name>image</name></member> |
| <member><type>uint32_t</type> <name>bindCount</name></member> |
| <member len="bindCount">const <type>VkSparseImageMemoryBind</type>* <name>pBinds</name></member> |
| </type> |
| <type category="struct" name="VkBindSparseInfo"> |
| <member values="VK_STRUCTURE_TYPE_BIND_SPARSE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>uint32_t</type> <name>waitSemaphoreCount</name></member> |
| <member len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name></member> |
| <member optional="true"><type>uint32_t</type> <name>bufferBindCount</name></member> |
| <member len="bufferBindCount">const <type>VkSparseBufferMemoryBindInfo</type>* <name>pBufferBinds</name></member> |
| <member optional="true"><type>uint32_t</type> <name>imageOpaqueBindCount</name></member> |
| <member len="imageOpaqueBindCount">const <type>VkSparseImageOpaqueMemoryBindInfo</type>* <name>pImageOpaqueBinds</name></member> |
| <member optional="true"><type>uint32_t</type> <name>imageBindCount</name></member> |
| <member len="imageBindCount">const <type>VkSparseImageMemoryBindInfo</type>* <name>pImageBinds</name></member> |
| <member optional="true"><type>uint32_t</type> <name>signalSemaphoreCount</name></member> |
| <member len="signalSemaphoreCount">const <type>VkSemaphore</type>* <name>pSignalSemaphores</name></member> |
| </type> |
| <type category="struct" name="VkImageCopy"> |
| <member><type>VkImageSubresourceLayers</type> <name>srcSubresource</name></member> |
| <member><type>VkOffset3D</type> <name>srcOffset</name><comment>Specified in pixels for both compressed and uncompressed images</comment></member> |
| <member><type>VkImageSubresourceLayers</type> <name>dstSubresource</name></member> |
| <member><type>VkOffset3D</type> <name>dstOffset</name><comment>Specified in pixels for both compressed and uncompressed images</comment></member> |
| <member><type>VkExtent3D</type> <name>extent</name><comment>Specified in pixels for both compressed and uncompressed images</comment></member> |
| </type> |
| <type category="struct" name="VkImageBlit"> |
| <member><type>VkImageSubresourceLayers</type> <name>srcSubresource</name></member> |
| <member><type>VkOffset3D</type> <name>srcOffsets</name>[2]<comment>Specified in pixels for both compressed and uncompressed images</comment></member> |
| <member><type>VkImageSubresourceLayers</type> <name>dstSubresource</name></member> |
| <member><type>VkOffset3D</type> <name>dstOffsets</name>[2]<comment>Specified in pixels for both compressed and uncompressed images</comment></member> |
| </type> |
| <type category="struct" name="VkBufferImageCopy"> |
| <member><type>VkDeviceSize</type> <name>bufferOffset</name><comment>Specified in bytes</comment></member> |
| <member><type>uint32_t</type> <name>bufferRowLength</name><comment>Specified in texels</comment></member> |
| <member><type>uint32_t</type> <name>bufferImageHeight</name></member> |
| <member><type>VkImageSubresourceLayers</type> <name>imageSubresource</name></member> |
| <member><type>VkOffset3D</type> <name>imageOffset</name><comment>Specified in pixels for both compressed and uncompressed images</comment></member> |
| <member><type>VkExtent3D</type> <name>imageExtent</name><comment>Specified in pixels for both compressed and uncompressed images</comment></member> |
| </type> |
| <type category="struct" name="VkImageResolve"> |
| <member><type>VkImageSubresourceLayers</type> <name>srcSubresource</name></member> |
| <member><type>VkOffset3D</type> <name>srcOffset</name></member> |
| <member><type>VkImageSubresourceLayers</type> <name>dstSubresource</name></member> |
| <member><type>VkOffset3D</type> <name>dstOffset</name></member> |
| <member><type>VkExtent3D</type> <name>extent</name></member> |
| </type> |
| <type category="struct" name="VkShaderModuleCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkShaderModuleCreateFlags</type> <name>flags</name></member> |
| <member><type>size_t</type> <name>codeSize</name><comment>Specified in bytes</comment></member> |
| <member len="latexmath:[\textrm{codeSize} \over 4]" altlen="codeSize / 4">const <type>uint32_t</type>* <name>pCode</name><comment>Binary code of size codeSize</comment></member> |
| </type> |
| <type category="struct" name="VkDescriptorSetLayoutBinding"> |
| <member><type>uint32_t</type> <name>binding</name><comment>Binding number for this entry</comment></member> |
| <member><type>VkDescriptorType</type> <name>descriptorType</name><comment>Type of the descriptors in this binding</comment></member> |
| <member optional="true"><type>uint32_t</type> <name>descriptorCount</name><comment>Number of descriptors in this binding</comment></member> |
| <member noautovalidity="true"><type>VkShaderStageFlags</type> <name>stageFlags</name><comment>Shader stages this binding is visible to</comment></member> |
| <member noautovalidity="true" optional="true" len="descriptorCount">const <type>VkSampler</type>* <name>pImmutableSamplers</name><comment>Immutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains count number of elements)</comment></member> |
| </type> |
| <type category="struct" name="VkDescriptorSetLayoutCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkDescriptorSetLayoutCreateFlags</type> <name>flags</name></member> |
| <member optional="true"><type>uint32_t</type> <name>bindingCount</name><comment>Number of bindings in the descriptor set layout</comment></member> |
| <member len="bindingCount">const <type>VkDescriptorSetLayoutBinding</type>* <name>pBindings</name><comment>Array of descriptor set layout bindings</comment></member> |
| </type> |
| <type category="struct" name="VkDescriptorPoolSize"> |
| <member><type>VkDescriptorType</type> <name>type</name></member> |
| <member><type>uint32_t</type> <name>descriptorCount</name></member> |
| </type> |
| <type category="struct" name="VkDescriptorPoolCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkDescriptorPoolCreateFlags</type> <name>flags</name></member> |
| <member><type>uint32_t</type> <name>maxSets</name></member> |
| <member><type>uint32_t</type> <name>poolSizeCount</name></member> |
| <member len="poolSizeCount">const <type>VkDescriptorPoolSize</type>* <name>pPoolSizes</name></member> |
| </type> |
| <type category="struct" name="VkDescriptorSetAllocateInfo"> |
| <member values="VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member><type>VkDescriptorPool</type> <name>descriptorPool</name></member> |
| <member><type>uint32_t</type> <name>descriptorSetCount</name></member> |
| <member len="descriptorSetCount">const <type>VkDescriptorSetLayout</type>* <name>pSetLayouts</name></member> |
| </type> |
| <type category="struct" name="VkSpecializationMapEntry"> |
| <member><type>uint32_t</type> <name>constantID</name><comment>The SpecConstant ID specified in the BIL</comment></member> |
| <member><type>uint32_t</type> <name>offset</name><comment>Offset of the value in the data block</comment></member> |
| <member noautovalidity="true"><type>size_t</type> <name>size</name><comment>Size in bytes of the SpecConstant</comment></member> |
| </type> |
| <type category="struct" name="VkSpecializationInfo"> |
| <member optional="true"><type>uint32_t</type> <name>mapEntryCount</name><comment>Number of entries in the map</comment></member> |
| <member len="mapEntryCount">const <type>VkSpecializationMapEntry</type>* <name>pMapEntries</name><comment>Array of map entries</comment></member> |
| <member optional="true"><type>size_t</type> <name>dataSize</name><comment>Size in bytes of pData</comment></member> |
| <member len="dataSize">const <type>void</type>* <name>pData</name><comment>Pointer to SpecConstant data</comment></member> |
| </type> |
| <type category="struct" name="VkPipelineShaderStageCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkPipelineShaderStageCreateFlags</type> <name>flags</name></member> |
| <member><type>VkShaderStageFlagBits</type> <name>stage</name><comment>Shader stage</comment></member> |
| <member><type>VkShaderModule</type> <name>module</name><comment>Module containing entry point</comment></member> |
| <member len="null-terminated">const <type>char</type>* <name>pName</name><comment>Null-terminated entry point name</comment></member> |
| <member optional="true">const <type>VkSpecializationInfo</type>* <name>pSpecializationInfo</name></member> |
| </type> |
| <type category="struct" name="VkComputePipelineCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkPipelineCreateFlags</type> <name>flags</name><comment>Pipeline creation flags</comment></member> |
| <member><type>VkPipelineShaderStageCreateInfo</type> <name>stage</name></member> |
| <member><type>VkPipelineLayout</type> <name>layout</name><comment>Interface layout of the pipeline</comment></member> |
| <member noautovalidity="true" optional="true"><type>VkPipeline</type> <name>basePipelineHandle</name><comment>If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of</comment></member> |
| <member><type>int32_t</type> <name>basePipelineIndex</name><comment>If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of</comment></member> |
| </type> |
| <type category="struct" name="VkVertexInputBindingDescription"> |
| <member><type>uint32_t</type> <name>binding</name><comment>Vertex buffer binding id</comment></member> |
| <member><type>uint32_t</type> <name>stride</name><comment>Distance between vertices in bytes (0 = no advancement)</comment></member> |
| <member><type>VkVertexInputRate</type> <name>inputRate</name><comment>The rate at which the vertex data is consumed</comment></member> |
| </type> |
| <type category="struct" name="VkVertexInputAttributeDescription"> |
| <member><type>uint32_t</type> <name>location</name><comment>location of the shader vertex attrib</comment></member> |
| <member><type>uint32_t</type> <name>binding</name><comment>Vertex buffer binding id</comment></member> |
| <member><type>VkFormat</type> <name>format</name><comment>format of source data</comment></member> |
| <member><type>uint32_t</type> <name>offset</name><comment>Offset of first element in bytes from base of vertex</comment></member> |
| </type> |
| <type category="struct" name="VkPipelineVertexInputStateCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkPipelineVertexInputStateCreateFlags</type> <name>flags</name></member> |
| <member optional="true"><type>uint32_t</type> <name>vertexBindingDescriptionCount</name><comment>number of bindings</comment></member> |
| <member len="vertexBindingDescriptionCount">const <type>VkVertexInputBindingDescription</type>* <name>pVertexBindingDescriptions</name></member> |
| <member optional="true"><type>uint32_t</type> <name>vertexAttributeDescriptionCount</name><comment>number of attributes</comment></member> |
| <member len="vertexAttributeDescriptionCount">const <type>VkVertexInputAttributeDescription</type>* <name>pVertexAttributeDescriptions</name></member> |
| </type> |
| <type category="struct" name="VkPipelineInputAssemblyStateCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkPipelineInputAssemblyStateCreateFlags</type> <name>flags</name></member> |
| <member><type>VkPrimitiveTopology</type> <name>topology</name></member> |
| <member><type>VkBool32</type> <name>primitiveRestartEnable</name></member> |
| </type> |
| <type category="struct" name="VkPipelineTessellationStateCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkPipelineTessellationStateCreateFlags</type> <name>flags</name></member> |
| <member><type>uint32_t</type> <name>patchControlPoints</name></member> |
| </type> |
| <type category="struct" name="VkPipelineViewportStateCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkPipelineViewportStateCreateFlags</type> <name>flags</name></member> |
| <member><type>uint32_t</type> <name>viewportCount</name></member> |
| <member noautovalidity="true" optional="true" len="viewportCount">const <type>VkViewport</type>* <name>pViewports</name></member> |
| <member><type>uint32_t</type> <name>scissorCount</name></member> |
| <member noautovalidity="true" optional="true" len="scissorCount">const <type>VkRect2D</type>* <name>pScissors</name></member> |
| </type> |
| <type category="struct" name="VkPipelineRasterizationStateCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkPipelineRasterizationStateCreateFlags</type> <name>flags</name></member> |
| <member><type>VkBool32</type> <name>depthClampEnable</name></member> |
| <member><type>VkBool32</type> <name>rasterizerDiscardEnable</name></member> |
| <member><type>VkPolygonMode</type> <name>polygonMode</name><comment>optional (GL45)</comment></member> |
| <member optional="true"><type>VkCullModeFlags</type> <name>cullMode</name></member> |
| <member><type>VkFrontFace</type> <name>frontFace</name></member> |
| <member><type>VkBool32</type> <name>depthBiasEnable</name></member> |
| <member><type>float</type> <name>depthBiasConstantFactor</name></member> |
| <member><type>float</type> <name>depthBiasClamp</name></member> |
| <member><type>float</type> <name>depthBiasSlopeFactor</name></member> |
| <member><type>float</type> <name>lineWidth</name></member> |
| </type> |
| <type category="struct" name="VkPipelineMultisampleStateCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkPipelineMultisampleStateCreateFlags</type> <name>flags</name></member> |
| <member><type>VkSampleCountFlagBits</type> <name>rasterizationSamples</name><comment>Number of samples used for rasterization</comment></member> |
| <member><type>VkBool32</type> <name>sampleShadingEnable</name><comment>optional (GL45)</comment></member> |
| <member><type>float</type> <name>minSampleShading</name><comment>optional (GL45)</comment></member> |
| <member optional="true" len="latexmath:[\lceil{\mathit{rasterizationSamples} \over 32}\rceil]" altlen="(rasterizationSamples + 31) / 32">const <type>VkSampleMask</type>* <name>pSampleMask</name><comment>Array of sampleMask words</comment></member> |
| <member><type>VkBool32</type> <name>alphaToCoverageEnable</name></member> |
| <member><type>VkBool32</type> <name>alphaToOneEnable</name></member> |
| </type> |
| <type category="struct" name="VkPipelineColorBlendAttachmentState"> |
| <member><type>VkBool32</type> <name>blendEnable</name></member> |
| <member><type>VkBlendFactor</type> <name>srcColorBlendFactor</name></member> |
| <member><type>VkBlendFactor</type> <name>dstColorBlendFactor</name></member> |
| <member><type>VkBlendOp</type> <name>colorBlendOp</name></member> |
| <member><type>VkBlendFactor</type> <name>srcAlphaBlendFactor</name></member> |
| <member><type>VkBlendFactor</type> <name>dstAlphaBlendFactor</name></member> |
| <member><type>VkBlendOp</type> <name>alphaBlendOp</name></member> |
| <member optional="true"><type>VkColorComponentFlags</type> <name>colorWriteMask</name></member> |
| </type> |
| <type category="struct" name="VkPipelineColorBlendStateCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkPipelineColorBlendStateCreateFlags</type> <name>flags</name></member> |
| <member><type>VkBool32</type> <name>logicOpEnable</name></member> |
| <member noautovalidity="true"><type>VkLogicOp</type> <name>logicOp</name></member> |
| <member optional="true"><type>uint32_t</type> <name>attachmentCount</name><comment># of pAttachments</comment></member> |
| <member len="attachmentCount">const <type>VkPipelineColorBlendAttachmentState</type>* <name>pAttachments</name></member> |
| <member><type>float</type> <name>blendConstants</name>[4]</member> |
| </type> |
| <type category="struct" name="VkPipelineDynamicStateCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkPipelineDynamicStateCreateFlags</type> <name>flags</name></member> |
| <member optional="true"><type>uint32_t</type> <name>dynamicStateCount</name></member> |
| <member len="dynamicStateCount">const <type>VkDynamicState</type>* <name>pDynamicStates</name></member> |
| </type> |
| <type category="struct" name="VkStencilOpState"> |
| <member><type>VkStencilOp</type> <name>failOp</name></member> |
| <member><type>VkStencilOp</type> <name>passOp</name></member> |
| <member><type>VkStencilOp</type> <name>depthFailOp</name></member> |
| <member><type>VkCompareOp</type> <name>compareOp</name></member> |
| <member><type>uint32_t</type> <name>compareMask</name></member> |
| <member><type>uint32_t</type> <name>writeMask</name></member> |
| <member><type>uint32_t</type> <name>reference</name></member> |
| </type> |
| <type category="struct" name="VkPipelineDepthStencilStateCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkPipelineDepthStencilStateCreateFlags</type> <name>flags</name></member> |
| <member><type>VkBool32</type> <name>depthTestEnable</name></member> |
| <member><type>VkBool32</type> <name>depthWriteEnable</name></member> |
| <member><type>VkCompareOp</type> <name>depthCompareOp</name></member> |
| <member><type>VkBool32</type> <name>depthBoundsTestEnable</name><comment>optional (depth_bounds_test)</comment></member> |
| <member><type>VkBool32</type> <name>stencilTestEnable</name></member> |
| <member><type>VkStencilOpState</type> <name>front</name></member> |
| <member><type>VkStencilOpState</type> <name>back</name></member> |
| <member><type>float</type> <name>minDepthBounds</name></member> |
| <member><type>float</type> <name>maxDepthBounds</name></member> |
| </type> |
| <type category="struct" name="VkGraphicsPipelineCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkPipelineCreateFlags</type> <name>flags</name><comment>Pipeline creation flags</comment></member> |
| <member><type>uint32_t</type> <name>stageCount</name></member> |
| <member len="stageCount">const <type>VkPipelineShaderStageCreateInfo</type>* <name>pStages</name><comment>One entry for each active shader stage</comment></member> |
| <member noautovalidity="true" optional="true">const <type>VkPipelineVertexInputStateCreateInfo</type>* <name>pVertexInputState</name></member> |
| <member noautovalidity="true" optional="true">const <type>VkPipelineInputAssemblyStateCreateInfo</type>* <name>pInputAssemblyState</name></member> |
| <member noautovalidity="true" optional="true">const <type>VkPipelineTessellationStateCreateInfo</type>* <name>pTessellationState</name></member> |
| <member noautovalidity="true" optional="true">const <type>VkPipelineViewportStateCreateInfo</type>* <name>pViewportState</name></member> |
| <member>const <type>VkPipelineRasterizationStateCreateInfo</type>* <name>pRasterizationState</name></member> |
| <member noautovalidity="true" optional="true">const <type>VkPipelineMultisampleStateCreateInfo</type>* <name>pMultisampleState</name></member> |
| <member noautovalidity="true" optional="true">const <type>VkPipelineDepthStencilStateCreateInfo</type>* <name>pDepthStencilState</name></member> |
| <member noautovalidity="true" optional="true">const <type>VkPipelineColorBlendStateCreateInfo</type>* <name>pColorBlendState</name></member> |
| <member optional="true">const <type>VkPipelineDynamicStateCreateInfo</type>* <name>pDynamicState</name></member> |
| <member><type>VkPipelineLayout</type> <name>layout</name><comment>Interface layout of the pipeline</comment></member> |
| <member><type>VkRenderPass</type> <name>renderPass</name></member> |
| <member><type>uint32_t</type> <name>subpass</name></member> |
| <member noautovalidity="true" optional="true"><type>VkPipeline</type> <name>basePipelineHandle</name><comment>If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of</comment></member> |
| <member><type>int32_t</type> <name>basePipelineIndex</name><comment>If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of</comment></member> |
| </type> |
| <type category="struct" name="VkPipelineCacheCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkPipelineCacheCreateFlags</type> <name>flags</name></member> |
| <member optional="true"><type>size_t</type> <name>initialDataSize</name><comment>Size of initial data to populate cache, in bytes</comment></member> |
| <member len="initialDataSize">const <type>void</type>* <name>pInitialData</name><comment>Initial data to populate cache</comment></member> |
| </type> |
| <type category="struct" name="VkPushConstantRange"> |
| <member><type>VkShaderStageFlags</type> <name>stageFlags</name><comment>Which stages use the range</comment></member> |
| <member><type>uint32_t</type> <name>offset</name><comment>Start of the range, in bytes</comment></member> |
| <member><type>uint32_t</type> <name>size</name><comment>Size of the range, in bytes</comment></member> |
| </type> |
| <type category="struct" name="VkPipelineLayoutCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkPipelineLayoutCreateFlags</type> <name>flags</name></member> |
| <member optional="true"><type>uint32_t</type> <name>setLayoutCount</name><comment>Number of descriptor sets interfaced by the pipeline</comment></member> |
| <member len="setLayoutCount">const <type>VkDescriptorSetLayout</type>* <name>pSetLayouts</name><comment>Array of setCount number of descriptor set layout objects defining the layout of the</comment></member> |
| <member optional="true"><type>uint32_t</type> <name>pushConstantRangeCount</name><comment>Number of push-constant ranges used by the pipeline</comment></member> |
| <member len="pushConstantRangeCount">const <type>VkPushConstantRange</type>* <name>pPushConstantRanges</name><comment>Array of pushConstantRangeCount number of ranges used by various shader stages</comment></member> |
| </type> |
| <type category="struct" name="VkSamplerCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkSamplerCreateFlags</type> <name>flags</name></member> |
| <member><type>VkFilter</type> <name>magFilter</name><comment>Filter mode for magnification</comment></member> |
| <member><type>VkFilter</type> <name>minFilter</name><comment>Filter mode for minifiation</comment></member> |
| <member><type>VkSamplerMipmapMode</type> <name>mipmapMode</name><comment>Mipmap selection mode</comment></member> |
| <member><type>VkSamplerAddressMode</type> <name>addressModeU</name></member> |
| <member><type>VkSamplerAddressMode</type> <name>addressModeV</name></member> |
| <member><type>VkSamplerAddressMode</type> <name>addressModeW</name></member> |
| <member><type>float</type> <name>mipLodBias</name></member> |
| <member><type>VkBool32</type> <name>anisotropyEnable</name></member> |
| <member><type>float</type> <name>maxAnisotropy</name></member> |
| <member><type>VkBool32</type> <name>compareEnable</name></member> |
| <member noautovalidity="true"><type>VkCompareOp</type> <name>compareOp</name></member> |
| <member><type>float</type> <name>minLod</name></member> |
| <member><type>float</type> <name>maxLod</name></member> |
| <member noautovalidity="true"><type>VkBorderColor</type> <name>borderColor</name></member> |
| <member><type>VkBool32</type> <name>unnormalizedCoordinates</name></member> |
| </type> |
| <type category="struct" name="VkCommandPoolCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkCommandPoolCreateFlags</type> <name>flags</name><comment>Command pool creation flags</comment></member> |
| <member><type>uint32_t</type> <name>queueFamilyIndex</name></member> |
| </type> |
| <type category="struct" name="VkCommandBufferAllocateInfo"> |
| <member values="VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member><type>VkCommandPool</type> <name>commandPool</name></member> |
| <member><type>VkCommandBufferLevel</type> <name>level</name></member> |
| <member><type>uint32_t</type> <name>commandBufferCount</name></member> |
| </type> |
| <type category="struct" name="VkCommandBufferInheritanceInfo"> |
| <member values="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true" noautovalidity="true"><type>VkRenderPass</type> <name>renderPass</name><comment>Render pass for secondary command buffers</comment></member> |
| <member><type>uint32_t</type> <name>subpass</name></member> |
| <member optional="true" noautovalidity="true"><type>VkFramebuffer</type> <name>framebuffer</name><comment>Framebuffer for secondary command buffers</comment></member> |
| <member><type>VkBool32</type> <name>occlusionQueryEnable</name><comment>Whether this secondary command buffer may be executed during an occlusion query</comment></member> |
| <member optional="true" noautovalidity="true"><type>VkQueryControlFlags</type> <name>queryFlags</name><comment>Query flags used by this secondary command buffer, if executed during an occlusion query</comment></member> |
| <member optional="true" noautovalidity="true"><type>VkQueryPipelineStatisticFlags</type> <name>pipelineStatistics</name><comment>Pipeline statistics that may be counted for this secondary command buffer</comment></member> |
| </type> |
| <type category="struct" name="VkCommandBufferBeginInfo"> |
| <member values="VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkCommandBufferUsageFlags</type> <name>flags</name><comment>Command buffer usage flags</comment></member> |
| <member optional="true" noautovalidity="true">const <type>VkCommandBufferInheritanceInfo</type>* <name>pInheritanceInfo</name><comment>Pointer to inheritance info for secondary command buffers</comment></member> |
| </type> |
| <type category="struct" name="VkRenderPassBeginInfo"> |
| <member values="VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member><type>VkRenderPass</type> <name>renderPass</name></member> |
| <member><type>VkFramebuffer</type> <name>framebuffer</name></member> |
| <member><type>VkRect2D</type> <name>renderArea</name></member> |
| <member optional="true"><type>uint32_t</type> <name>clearValueCount</name></member> |
| <member len="clearValueCount">const <type>VkClearValue</type>* <name>pClearValues</name></member> |
| </type> |
| <type category="union" name="VkClearColorValue" comment="// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared."> |
| <member><type>float</type> <name>float32</name>[4]</member> |
| <member><type>int32_t</type> <name>int32</name>[4]</member> |
| <member><type>uint32_t</type> <name>uint32</name>[4]</member> |
| </type> |
| <type category="struct" name="VkClearDepthStencilValue"> |
| <member><type>float</type> <name>depth</name></member> |
| <member><type>uint32_t</type> <name>stencil</name></member> |
| </type> |
| <type category="union" name="VkClearValue" comment="// Union allowing specification of color or depth and stencil values. Actual value selected is based on attachment being cleared."> |
| <member><type>VkClearColorValue</type> <name>color</name></member> |
| <member><type>VkClearDepthStencilValue</type> <name>depthStencil</name></member> |
| </type> |
| <type category="struct" name="VkClearAttachment"> |
| <member><type>VkImageAspectFlags</type> <name>aspectMask</name></member> |
| <member><type>uint32_t</type> <name>colorAttachment</name></member> |
| <member><type>VkClearValue</type> <name>clearValue</name></member> |
| </type> |
| <type category="struct" name="VkAttachmentDescription"> |
| <member optional="true"><type>VkAttachmentDescriptionFlags</type> <name>flags</name></member> |
| <member><type>VkFormat</type> <name>format</name></member> |
| <member><type>VkSampleCountFlagBits</type> <name>samples</name></member> |
| <member><type>VkAttachmentLoadOp</type> <name>loadOp</name><comment>Load operation for color or depth data</comment></member> |
| <member><type>VkAttachmentStoreOp</type> <name>storeOp</name><comment>Store operation for color or depth data</comment></member> |
| <member><type>VkAttachmentLoadOp</type> <name>stencilLoadOp</name><comment>Load operation for stencil data</comment></member> |
| <member><type>VkAttachmentStoreOp</type> <name>stencilStoreOp</name><comment>Store operation for stencil data</comment></member> |
| <member><type>VkImageLayout</type> <name>initialLayout</name></member> |
| <member><type>VkImageLayout</type> <name>finalLayout</name></member> |
| </type> |
| <type category="struct" name="VkAttachmentReference"> |
| <member><type>uint32_t</type> <name>attachment</name></member> |
| <member><type>VkImageLayout</type> <name>layout</name></member> |
| </type> |
| <type category="struct" name="VkSubpassDescription"> |
| <member optional="true"><type>VkSubpassDescriptionFlags</type> <name>flags</name></member> |
| <member><type>VkPipelineBindPoint</type> <name>pipelineBindPoint</name><comment>Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now</comment></member> |
| <member optional="true"><type>uint32_t</type> <name>inputAttachmentCount</name></member> |
| <member len="inputAttachmentCount">const <type>VkAttachmentReference</type>* <name>pInputAttachments</name></member> |
| <member optional="true"><type>uint32_t</type> <name>colorAttachmentCount</name></member> |
| <member len="colorAttachmentCount">const <type>VkAttachmentReference</type>* <name>pColorAttachments</name></member> |
| <member optional="true" len="colorAttachmentCount">const <type>VkAttachmentReference</type>* <name>pResolveAttachments</name></member> |
| <member optional="true">const <type>VkAttachmentReference</type>* <name>pDepthStencilAttachment</name></member> |
| <member optional="true"><type>uint32_t</type> <name>preserveAttachmentCount</name></member> |
| <member len="preserveAttachmentCount">const <type>uint32_t</type>* <name>pPreserveAttachments</name></member> |
| </type> |
| <type category="struct" name="VkSubpassDependency"> |
| <member><type>uint32_t</type> <name>srcSubpass</name></member> |
| <member><type>uint32_t</type> <name>dstSubpass</name></member> |
| <member><type>VkPipelineStageFlags</type> <name>srcStageMask</name></member> |
| <member><type>VkPipelineStageFlags</type> <name>dstStageMask</name></member> |
| <member optional="true"><type>VkAccessFlags</type> <name>srcAccessMask</name><comment>Memory accesses from the source of the dependency to synchronize</comment></member> |
| <member optional="true"><type>VkAccessFlags</type> <name>dstAccessMask</name><comment>Memory accesses from the destination of the dependency to synchronize</comment></member> |
| <member optional="true"><type>VkDependencyFlags</type> <name>dependencyFlags</name></member> |
| </type> |
| <type category="struct" name="VkRenderPassCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true" noautovalidity="true"><type>VkRenderPassCreateFlags</type> <name>flags</name></member> |
| <member optional="true"><type>uint32_t</type> <name>attachmentCount</name></member> |
| <member len="attachmentCount">const <type>VkAttachmentDescription</type>* <name>pAttachments</name></member> |
| <member><type>uint32_t</type> <name>subpassCount</name></member> |
| <member len="subpassCount">const <type>VkSubpassDescription</type>* <name>pSubpasses</name></member> |
| <member optional="true"><type>uint32_t</type> <name>dependencyCount</name></member> |
| <member len="dependencyCount">const <type>VkSubpassDependency</type>* <name>pDependencies</name></member> |
| </type> |
| <type category="struct" name="VkEventCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_EVENT_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkEventCreateFlags</type> <name>flags</name><comment>Event creation flags</comment></member> |
| </type> |
| <type category="struct" name="VkFenceCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_FENCE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkFenceCreateFlags</type> <name>flags</name><comment>Fence creation flags</comment></member> |
| </type> |
| <type category="struct" name="VkPhysicalDeviceFeatures"> |
| <member><type>VkBool32</type> <name>robustBufferAccess</name><comment>out of bounds buffer accesses are well defined</comment></member> |
| <member><type>VkBool32</type> <name>fullDrawIndexUint32</name><comment>full 32-bit range of indices for indexed draw calls</comment></member> |
| <member><type>VkBool32</type> <name>imageCubeArray</name><comment>image views which are arrays of cube maps</comment></member> |
| <member><type>VkBool32</type> <name>independentBlend</name><comment>blending operations are controlled per-attachment</comment></member> |
| <member><type>VkBool32</type> <name>geometryShader</name><comment>geometry stage</comment></member> |
| <member><type>VkBool32</type> <name>tessellationShader</name><comment>tessellation control and evaluation stage</comment></member> |
| <member><type>VkBool32</type> <name>sampleRateShading</name><comment>per-sample shading and interpolation</comment></member> |
| <member><type>VkBool32</type> <name>dualSrcBlend</name><comment>blend operations which take two sources</comment></member> |
| <member><type>VkBool32</type> <name>logicOp</name><comment>logic operations</comment></member> |
| <member><type>VkBool32</type> <name>multiDrawIndirect</name><comment>multi draw indirect</comment></member> |
| <member><type>VkBool32</type> <name>drawIndirectFirstInstance</name><comment>indirect draws can use non-zero firstInstance</comment></member> |
| <member><type>VkBool32</type> <name>depthClamp</name><comment>depth clamping</comment></member> |
| <member><type>VkBool32</type> <name>depthBiasClamp</name><comment>depth bias clamping</comment></member> |
| <member><type>VkBool32</type> <name>fillModeNonSolid</name><comment>point and wireframe fill modes</comment></member> |
| <member><type>VkBool32</type> <name>depthBounds</name><comment>depth bounds test</comment></member> |
| <member><type>VkBool32</type> <name>wideLines</name><comment>lines with width greater than 1</comment></member> |
| <member><type>VkBool32</type> <name>largePoints</name><comment>points with size greater than 1</comment></member> |
| <member><type>VkBool32</type> <name>alphaToOne</name><comment>the fragment alpha component can be forced to maximum representable alpha value</comment></member> |
| <member><type>VkBool32</type> <name>multiViewport</name><comment>viewport arrays</comment></member> |
| <member><type>VkBool32</type> <name>samplerAnisotropy</name><comment>anisotropic sampler filtering</comment></member> |
| <member><type>VkBool32</type> <name>textureCompressionETC2</name><comment>ETC texture compression formats</comment></member> |
| <member><type>VkBool32</type> <name>textureCompressionASTC_LDR</name><comment>ASTC LDR texture compression formats</comment></member> |
| <member><type>VkBool32</type> <name>textureCompressionBC</name><comment>BC1-7 texture compressed formats</comment></member> |
| <member><type>VkBool32</type> <name>occlusionQueryPrecise</name><comment>precise occlusion queries returning actual sample counts</comment></member> |
| <member><type>VkBool32</type> <name>pipelineStatisticsQuery</name><comment>pipeline statistics query</comment></member> |
| <member><type>VkBool32</type> <name>vertexPipelineStoresAndAtomics</name><comment>stores and atomic ops on storage buffers and images are supported in vertex, tessellation, and geometry stages</comment></member> |
| <member><type>VkBool32</type> <name>fragmentStoresAndAtomics</name><comment>stores and atomic ops on storage buffers and images are supported in the fragment stage</comment></member> |
| <member><type>VkBool32</type> <name>shaderTessellationAndGeometryPointSize</name><comment>tessellation and geometry stages can export point size</comment></member> |
| <member><type>VkBool32</type> <name>shaderImageGatherExtended</name><comment>image gather with run-time values and independent offsets</comment></member> |
| <member><type>VkBool32</type> <name>shaderStorageImageExtendedFormats</name><comment>the extended set of formats can be used for storage images</comment></member> |
| <member><type>VkBool32</type> <name>shaderStorageImageMultisample</name><comment>multisample images can be used for storage images</comment></member> |
| <member><type>VkBool32</type> <name>shaderStorageImageReadWithoutFormat</name><comment>read from storage image does not require format qualifier</comment></member> |
| <member><type>VkBool32</type> <name>shaderStorageImageWriteWithoutFormat</name><comment>write to storage image does not require format qualifier</comment></member> |
| <member><type>VkBool32</type> <name>shaderUniformBufferArrayDynamicIndexing</name><comment>arrays of uniform buffers can be accessed with dynamically uniform indices</comment></member> |
| <member><type>VkBool32</type> <name>shaderSampledImageArrayDynamicIndexing</name><comment>arrays of sampled images can be accessed with dynamically uniform indices</comment></member> |
| <member><type>VkBool32</type> <name>shaderStorageBufferArrayDynamicIndexing</name><comment>arrays of storage buffers can be accessed with dynamically uniform indices</comment></member> |
| <member><type>VkBool32</type> <name>shaderStorageImageArrayDynamicIndexing</name><comment>arrays of storage images can be accessed with dynamically uniform indices</comment></member> |
| <member><type>VkBool32</type> <name>shaderClipDistance</name><comment>clip distance in shaders</comment></member> |
| <member><type>VkBool32</type> <name>shaderCullDistance</name><comment>cull distance in shaders</comment></member> |
| <member><type>VkBool32</type> <name>shaderFloat64</name><comment>64-bit floats (doubles) in shaders</comment></member> |
| <member><type>VkBool32</type> <name>shaderInt64</name><comment>64-bit integers in shaders</comment></member> |
| <member><type>VkBool32</type> <name>shaderInt16</name><comment>16-bit integers in shaders</comment></member> |
| <member><type>VkBool32</type> <name>shaderResourceResidency</name><comment>shader can use texture operations that return resource residency information (requires sparseNonResident support)</comment></member> |
| <member><type>VkBool32</type> <name>shaderResourceMinLod</name><comment>shader can use texture operations that specify minimum resource LOD</comment></member> |
| <member><type>VkBool32</type> <name>sparseBinding</name><comment>Sparse resources support: Resource memory can be managed at opaque page level rather than object level</comment></member> |
| <member><type>VkBool32</type> <name>sparseResidencyBuffer</name><comment>Sparse resources support: GPU can access partially resident buffers </comment></member> |
| <member><type>VkBool32</type> <name>sparseResidencyImage2D</name><comment>Sparse resources support: GPU can access partially resident 2D (non-MSAA non-depth/stencil) images </comment></member> |
| <member><type>VkBool32</type> <name>sparseResidencyImage3D</name><comment>Sparse resources support: GPU can access partially resident 3D images </comment></member> |
| <member><type>VkBool32</type> <name>sparseResidency2Samples</name><comment>Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples</comment></member> |
| <member><type>VkBool32</type> <name>sparseResidency4Samples</name><comment>Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples</comment></member> |
| <member><type>VkBool32</type> <name>sparseResidency8Samples</name><comment>Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples</comment></member> |
| <member><type>VkBool32</type> <name>sparseResidency16Samples</name><comment>Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples</comment></member> |
| <member><type>VkBool32</type> <name>sparseResidencyAliased</name><comment>Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in)</comment></member> |
| <member><type>VkBool32</type> <name>variableMultisampleRate</name><comment>multisample rate must be the same for all pipelines in a subpass</comment></member> |
| <member><type>VkBool32</type> <name>inheritedQueries</name><comment>Queries may be inherited from primary to secondary command buffers</comment></member> |
| </type> |
| <type category="struct" name="VkPhysicalDeviceSparseProperties" returnedonly="true"> |
| <member><type>VkBool32</type> <name>residencyStandard2DBlockShape</name><comment>Sparse resources support: GPU will access all 2D (single sample) sparse resources using the standard sparse image block shapes (based on pixel format)</comment></member> |
| <member><type>VkBool32</type> <name>residencyStandard2DMultisampleBlockShape</name><comment>Sparse resources support: GPU will access all 2D (multisample) sparse resources using the standard sparse image block shapes (based on pixel format)</comment></member> |
| <member><type>VkBool32</type> <name>residencyStandard3DBlockShape</name><comment>Sparse resources support: GPU will access all 3D sparse resources using the standard sparse image block shapes (based on pixel format)</comment></member> |
| <member><type>VkBool32</type> <name>residencyAlignedMipSize</name><comment>Sparse resources support: Images with mip level dimensions that are NOT a multiple of the sparse image block dimensions will be placed in the mip tail</comment></member> |
| <member><type>VkBool32</type> <name>residencyNonResidentStrict</name><comment>Sparse resources support: GPU can consistently access non-resident regions of a resource, all reads return as if data is 0, writes are discarded</comment></member> |
| </type> |
| <type category="struct" name="VkPhysicalDeviceLimits" returnedonly="true"> |
| <comment>resource maximum sizes</comment> |
| <member><type>uint32_t</type> <name>maxImageDimension1D</name><comment>max 1D image dimension</comment></member> |
| <member><type>uint32_t</type> <name>maxImageDimension2D</name><comment>max 2D image dimension</comment></member> |
| <member><type>uint32_t</type> <name>maxImageDimension3D</name><comment>max 3D image dimension</comment></member> |
| <member><type>uint32_t</type> <name>maxImageDimensionCube</name><comment>max cubemap image dimension</comment></member> |
| <member><type>uint32_t</type> <name>maxImageArrayLayers</name><comment>max layers for image arrays</comment></member> |
| <member><type>uint32_t</type> <name>maxTexelBufferElements</name><comment>max texel buffer size (fstexels)</comment></member> |
| <member><type>uint32_t</type> <name>maxUniformBufferRange</name><comment>max uniform buffer range (bytes)</comment></member> |
| <member><type>uint32_t</type> <name>maxStorageBufferRange</name><comment>max storage buffer range (bytes)</comment></member> |
| <member><type>uint32_t</type> <name>maxPushConstantsSize</name><comment>max size of the push constants pool (bytes)</comment></member> |
| <comment>memory limits</comment> |
| <member><type>uint32_t</type> <name>maxMemoryAllocationCount</name><comment>max number of device memory allocations supported</comment></member> |
| <member><type>uint32_t</type> <name>maxSamplerAllocationCount</name><comment>max number of samplers that can be allocated on a device</comment></member> |
| <member><type>VkDeviceSize</type> <name>bufferImageGranularity</name><comment>Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage</comment></member> |
| <member><type>VkDeviceSize</type> <name>sparseAddressSpaceSize</name><comment>Total address space available for sparse allocations (bytes)</comment></member> |
| <comment>descriptor set limits</comment> |
| <member><type>uint32_t</type> <name>maxBoundDescriptorSets</name><comment>max number of descriptors sets that can be bound to a pipeline</comment></member> |
| <member><type>uint32_t</type> <name>maxPerStageDescriptorSamplers</name><comment>max number of samplers allowed per-stage in a descriptor set</comment></member> |
| <member><type>uint32_t</type> <name>maxPerStageDescriptorUniformBuffers</name><comment>max number of uniform buffers allowed per-stage in a descriptor set</comment></member> |
| <member><type>uint32_t</type> <name>maxPerStageDescriptorStorageBuffers</name><comment>max number of storage buffers allowed per-stage in a descriptor set</comment></member> |
| <member><type>uint32_t</type> <name>maxPerStageDescriptorSampledImages</name><comment>max number of sampled images allowed per-stage in a descriptor set</comment></member> |
| <member><type>uint32_t</type> <name>maxPerStageDescriptorStorageImages</name><comment>max number of storage images allowed per-stage in a descriptor set</comment></member> |
| <member><type>uint32_t</type> <name>maxPerStageDescriptorInputAttachments</name><comment>max number of input attachments allowed per-stage in a descriptor set</comment></member> |
| <member><type>uint32_t</type> <name>maxPerStageResources</name><comment>max number of resources allowed by a single stage</comment></member> |
| <member><type>uint32_t</type> <name>maxDescriptorSetSamplers</name><comment>max number of samplers allowed in all stages in a descriptor set</comment></member> |
| <member><type>uint32_t</type> <name>maxDescriptorSetUniformBuffers</name><comment>max number of uniform buffers allowed in all stages in a descriptor set</comment></member> |
| <member><type>uint32_t</type> <name>maxDescriptorSetUniformBuffersDynamic</name><comment>max number of dynamic uniform buffers allowed in all stages in a descriptor set</comment></member> |
| <member><type>uint32_t</type> <name>maxDescriptorSetStorageBuffers</name><comment>max number of storage buffers allowed in all stages in a descriptor set</comment></member> |
| <member><type>uint32_t</type> <name>maxDescriptorSetStorageBuffersDynamic</name><comment>max number of dynamic storage buffers allowed in all stages in a descriptor set</comment></member> |
| <member><type>uint32_t</type> <name>maxDescriptorSetSampledImages</name><comment>max number of sampled images allowed in all stages in a descriptor set</comment></member> |
| <member><type>uint32_t</type> <name>maxDescriptorSetStorageImages</name><comment>max number of storage images allowed in all stages in a descriptor set</comment></member> |
| <member><type>uint32_t</type> <name>maxDescriptorSetInputAttachments</name><comment>max number of input attachments allowed in all stages in a descriptor set</comment></member> |
| <comment>vertex stage limits</comment> |
| <member><type>uint32_t</type> <name>maxVertexInputAttributes</name><comment>max number of vertex input attribute slots</comment></member> |
| <member><type>uint32_t</type> <name>maxVertexInputBindings</name><comment>max number of vertex input binding slots</comment></member> |
| <member><type>uint32_t</type> <name>maxVertexInputAttributeOffset</name><comment>max vertex input attribute offset added to vertex buffer offset</comment></member> |
| <member><type>uint32_t</type> <name>maxVertexInputBindingStride</name><comment>max vertex input binding stride</comment></member> |
| <member><type>uint32_t</type> <name>maxVertexOutputComponents</name><comment>max number of output components written by vertex shader</comment></member> |
| <comment>tessellation control stage limits</comment> |
| <member><type>uint32_t</type> <name>maxTessellationGenerationLevel</name><comment>max level supported by tessellation primitive generator</comment></member> |
| <member><type>uint32_t</type> <name>maxTessellationPatchSize</name><comment>max patch size (vertices)</comment></member> |
| <member><type>uint32_t</type> <name>maxTessellationControlPerVertexInputComponents</name><comment>max number of input components per-vertex in TCS</comment></member> |
| <member><type>uint32_t</type> <name>maxTessellationControlPerVertexOutputComponents</name><comment>max number of output components per-vertex in TCS</comment></member> |
| <member><type>uint32_t</type> <name>maxTessellationControlPerPatchOutputComponents</name><comment>max number of output components per-patch in TCS</comment></member> |
| <member><type>uint32_t</type> <name>maxTessellationControlTotalOutputComponents</name><comment>max total number of per-vertex and per-patch output components in TCS</comment></member> |
| <comment>tessellation evaluation stage limits</comment> |
| <member><type>uint32_t</type> <name>maxTessellationEvaluationInputComponents</name><comment>max number of input components per vertex in TES</comment></member> |
| <member><type>uint32_t</type> <name>maxTessellationEvaluationOutputComponents</name><comment>max number of output components per vertex in TES</comment></member> |
| <comment>geometry stage limits</comment> |
| <member><type>uint32_t</type> <name>maxGeometryShaderInvocations</name><comment>max invocation count supported in geometry shader</comment></member> |
| <member><type>uint32_t</type> <name>maxGeometryInputComponents</name><comment>max number of input components read in geometry stage</comment></member> |
| <member><type>uint32_t</type> <name>maxGeometryOutputComponents</name><comment>max number of output components written in geometry stage</comment></member> |
| <member><type>uint32_t</type> <name>maxGeometryOutputVertices</name><comment>max number of vertices that can be emitted in geometry stage</comment></member> |
| <member><type>uint32_t</type> <name>maxGeometryTotalOutputComponents</name><comment>max total number of components (all vertices) written in geometry stage</comment></member> |
| <comment>fragment stage limits</comment> |
| <member><type>uint32_t</type> <name>maxFragmentInputComponents</name><comment>max number of input components read in fragment stage</comment></member> |
| <member><type>uint32_t</type> <name>maxFragmentOutputAttachments</name><comment>max number of output attachments written in fragment stage</comment></member> |
| <member><type>uint32_t</type> <name>maxFragmentDualSrcAttachments</name><comment>max number of output attachments written when using dual source blending</comment></member> |
| <member><type>uint32_t</type> <name>maxFragmentCombinedOutputResources</name><comment>max total number of storage buffers, storage images and output buffers</comment></member> |
| <comment>compute stage limits</comment> |
| <member><type>uint32_t</type> <name>maxComputeSharedMemorySize</name><comment>max total storage size of work group local storage (bytes)</comment></member> |
| <member><type>uint32_t</type> <name>maxComputeWorkGroupCount</name>[3]<comment>max num of compute work groups that may be dispatched by a single command (x,y,z)</comment></member> |
| <member><type>uint32_t</type> <name>maxComputeWorkGroupInvocations</name><comment>max total compute invocations in a single local work group</comment></member> |
| <member><type>uint32_t</type> <name>maxComputeWorkGroupSize</name>[3]<comment>max local size of a compute work group (x,y,z)</comment></member> |
| <member><type>uint32_t</type> <name>subPixelPrecisionBits</name><comment>number bits of subpixel precision in screen x and y</comment></member> |
| <member><type>uint32_t</type> <name>subTexelPrecisionBits</name><comment>number bits of precision for selecting texel weights</comment></member> |
| <member><type>uint32_t</type> <name>mipmapPrecisionBits</name><comment>number bits of precision for selecting mipmap weights</comment></member> |
| <member><type>uint32_t</type> <name>maxDrawIndexedIndexValue</name><comment>max index value for indexed draw calls (for 32-bit indices)</comment></member> |
| <member><type>uint32_t</type> <name>maxDrawIndirectCount</name><comment>max draw count for indirect draw calls</comment></member> |
| <member><type>float</type> <name>maxSamplerLodBias</name><comment>max absolute sampler LOD bias</comment></member> |
| <member><type>float</type> <name>maxSamplerAnisotropy</name><comment>max degree of sampler anisotropy</comment></member> |
| <member><type>uint32_t</type> <name>maxViewports</name><comment>max number of active viewports</comment></member> |
| <member><type>uint32_t</type> <name>maxViewportDimensions</name>[2]<comment>max viewport dimensions (x,y)</comment></member> |
| <member><type>float</type> <name>viewportBoundsRange</name>[2]<comment>viewport bounds range (min,max)</comment></member> |
| <member><type>uint32_t</type> <name>viewportSubPixelBits</name><comment>number bits of subpixel precision for viewport</comment></member> |
| <member><type>size_t</type> <name>minMemoryMapAlignment</name><comment>min required alignment of pointers returned by MapMemory (bytes)</comment></member> |
| <member><type>VkDeviceSize</type> <name>minTexelBufferOffsetAlignment</name><comment>min required alignment for texel buffer offsets (bytes) </comment></member> |
| <member><type>VkDeviceSize</type> <name>minUniformBufferOffsetAlignment</name><comment>min required alignment for uniform buffer sizes and offsets (bytes)</comment></member> |
| <member><type>VkDeviceSize</type> <name>minStorageBufferOffsetAlignment</name><comment>min required alignment for storage buffer offsets (bytes)</comment></member> |
| <member><type>int32_t</type> <name>minTexelOffset</name><comment>min texel offset for OpTextureSampleOffset</comment></member> |
| <member><type>uint32_t</type> <name>maxTexelOffset</name><comment>max texel offset for OpTextureSampleOffset</comment></member> |
| <member><type>int32_t</type> <name>minTexelGatherOffset</name><comment>min texel offset for OpTextureGatherOffset</comment></member> |
| <member><type>uint32_t</type> <name>maxTexelGatherOffset</name><comment>max texel offset for OpTextureGatherOffset</comment></member> |
| <member><type>float</type> <name>minInterpolationOffset</name><comment>furthest negative offset for interpolateAtOffset</comment></member> |
| <member><type>float</type> <name>maxInterpolationOffset</name><comment>furthest positive offset for interpolateAtOffset</comment></member> |
| <member><type>uint32_t</type> <name>subPixelInterpolationOffsetBits</name><comment>number of subpixel bits for interpolateAtOffset</comment></member> |
| <member><type>uint32_t</type> <name>maxFramebufferWidth</name><comment>max width for a framebuffer</comment></member> |
| <member><type>uint32_t</type> <name>maxFramebufferHeight</name><comment>max height for a framebuffer</comment></member> |
| <member><type>uint32_t</type> <name>maxFramebufferLayers</name><comment>max layer count for a layered framebuffer</comment></member> |
| <member optional="true"><type>VkSampleCountFlags</type> <name>framebufferColorSampleCounts</name><comment>supported color sample counts for a framebuffer</comment></member> |
| <member optional="true"><type>VkSampleCountFlags</type> <name>framebufferDepthSampleCounts</name><comment>supported depth sample counts for a framebuffer</comment></member> |
| <member optional="true"><type>VkSampleCountFlags</type> <name>framebufferStencilSampleCounts</name><comment>supported stencil sample counts for a framebuffer</comment></member> |
| <member optional="true"><type>VkSampleCountFlags</type> <name>framebufferNoAttachmentsSampleCounts</name><comment>supported sample counts for a framebuffer with no attachments</comment></member> |
| <member><type>uint32_t</type> <name>maxColorAttachments</name><comment>max number of color attachments per subpass</comment></member> |
| <member optional="true"><type>VkSampleCountFlags</type> <name>sampledImageColorSampleCounts</name><comment>supported color sample counts for a non-integer sampled image</comment></member> |
| <member optional="true"><type>VkSampleCountFlags</type> <name>sampledImageIntegerSampleCounts</name><comment>supported sample counts for an integer image</comment></member> |
| <member optional="true"><type>VkSampleCountFlags</type> <name>sampledImageDepthSampleCounts</name><comment>supported depth sample counts for a sampled image</comment></member> |
| <member optional="true"><type>VkSampleCountFlags</type> <name>sampledImageStencilSampleCounts</name><comment>supported stencil sample counts for a sampled image</comment></member> |
| <member optional="true"><type>VkSampleCountFlags</type> <name>storageImageSampleCounts</name><comment>supported sample counts for a storage image</comment></member> |
| <member><type>uint32_t</type> <name>maxSampleMaskWords</name><comment>max number of sample mask words</comment></member> |
| <member><type>VkBool32</type> <name>timestampComputeAndGraphics</name><comment>timestamps on graphics and compute queues</comment></member> |
| <member><type>float</type> <name>timestampPeriod</name><comment>number of nanoseconds it takes for timestamp query value to increment by 1</comment></member> |
| <member><type>uint32_t</type> <name>maxClipDistances</name><comment>max number of clip distances</comment></member> |
| <member><type>uint32_t</type> <name>maxCullDistances</name><comment>max number of cull distances</comment></member> |
| <member><type>uint32_t</type> <name>maxCombinedClipAndCullDistances</name><comment>max combined number of user clipping</comment></member> |
| <member><type>uint32_t</type> <name>discreteQueuePriorities</name><comment>distinct queue priorities available </comment></member> |
| <member><type>float</type> <name>pointSizeRange</name>[2]<comment>range (min,max) of supported point sizes</comment></member> |
| <member><type>float</type> <name>lineWidthRange</name>[2]<comment>range (min,max) of supported line widths</comment></member> |
| <member><type>float</type> <name>pointSizeGranularity</name><comment>granularity of supported point sizes</comment></member> |
| <member><type>float</type> <name>lineWidthGranularity</name><comment>granularity of supported line widths</comment></member> |
| <member><type>VkBool32</type> <name>strictLines</name><comment>line rasterization follows preferred rules</comment></member> |
| <member><type>VkBool32</type> <name>standardSampleLocations</name><comment>supports standard sample locations for all supported sample counts</comment></member> |
| <member><type>VkDeviceSize</type> <name>optimalBufferCopyOffsetAlignment</name><comment>optimal offset of buffer copies</comment></member> |
| <member><type>VkDeviceSize</type> <name>optimalBufferCopyRowPitchAlignment</name><comment>optimal pitch of buffer copies</comment></member> |
| <member><type>VkDeviceSize</type> <name>nonCoherentAtomSize</name><comment>minimum size and alignment for non-coherent host-mapped device memory access</comment></member> |
| </type> |
| <type category="struct" name="VkSemaphoreCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkSemaphoreCreateFlags</type> <name>flags</name><comment>Semaphore creation flags</comment></member> |
| </type> |
| <type category="struct" name="VkQueryPoolCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkQueryPoolCreateFlags</type> <name>flags</name></member> |
| <member><type>VkQueryType</type> <name>queryType</name></member> |
| <member><type>uint32_t</type> <name>queryCount</name></member> |
| <member optional="true" noautovalidity="true"><type>VkQueryPipelineStatisticFlags</type> <name>pipelineStatistics</name><comment>Optional</comment></member> |
| </type> |
| <type category="struct" name="VkFramebufferCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkFramebufferCreateFlags</type> <name>flags</name></member> |
| <member><type>VkRenderPass</type> <name>renderPass</name></member> |
| <member optional="true"><type>uint32_t</type> <name>attachmentCount</name></member> |
| <member len="attachmentCount">const <type>VkImageView</type>* <name>pAttachments</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>layers</name></member> |
| </type> |
| <type category="struct" name="VkDrawIndirectCommand"> |
| <member><type>uint32_t</type> <name>vertexCount</name></member> |
| <member><type>uint32_t</type> <name>instanceCount</name></member> |
| <member><type>uint32_t</type> <name>firstVertex</name></member> |
| <member noautovalidity="true"><type>uint32_t</type> <name>firstInstance</name></member> |
| </type> |
| <type category="struct" name="VkDrawIndexedIndirectCommand"> |
| <member><type>uint32_t</type> <name>indexCount</name></member> |
| <member><type>uint32_t</type> <name>instanceCount</name></member> |
| <member><type>uint32_t</type> <name>firstIndex</name></member> |
| <member><type>int32_t</type> <name>vertexOffset</name></member> |
| <member noautovalidity="true"><type>uint32_t</type> <name>firstInstance</name></member> |
| </type> |
| <type category="struct" name="VkDispatchIndirectCommand"> |
| <member noautovalidity="true"><type>uint32_t</type> <name>x</name></member> |
| <member noautovalidity="true"><type>uint32_t</type> <name>y</name></member> |
| <member noautovalidity="true"><type>uint32_t</type> <name>z</name></member> |
| </type> |
| <type category="struct" name="VkSubmitInfo"> |
| <member values="VK_STRUCTURE_TYPE_SUBMIT_INFO"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>uint32_t</type> <name>waitSemaphoreCount</name></member> |
| <member len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name></member> |
| <member len="waitSemaphoreCount">const <type>VkPipelineStageFlags</type>* <name>pWaitDstStageMask</name></member> |
| <member optional="true"><type>uint32_t</type> <name>commandBufferCount</name></member> |
| <member len="commandBufferCount">const <type>VkCommandBuffer</type>* <name>pCommandBuffers</name></member> |
| <member optional="true"><type>uint32_t</type> <name>signalSemaphoreCount</name></member> |
| <member len="signalSemaphoreCount">const <type>VkSemaphore</type>* <name>pSignalSemaphores</name></member> |
| </type> |
| <comment>WSI extensions</comment> |
| <type category="struct" name="VkDisplayPropertiesKHR" returnedonly="true"> |
| <member><type>VkDisplayKHR</type> <name>display</name><comment>Handle of the display object</comment></member> |
| <member len="null-terminated">const <type>char</type>* <name>displayName</name><comment>Name of the display</comment></member> |
| <member><type>VkExtent2D</type> <name>physicalDimensions</name><comment>In millimeters?</comment></member> |
| <member><type>VkExtent2D</type> <name>physicalResolution</name><comment>Max resolution for CRT?</comment></member> |
| <member optional="true"><type>VkSurfaceTransformFlagsKHR</type> <name>supportedTransforms</name><comment>one or more bits from VkSurfaceTransformFlagsKHR</comment></member> |
| <member><type>VkBool32</type> <name>planeReorderPossible</name><comment>VK_TRUE if the overlay plane's z-order can be changed on this display.</comment></member> |
| <member><type>VkBool32</type> <name>persistentContent</name><comment>VK_TRUE if this is a "smart" display that supports self-refresh/internal buffering.</comment></member> |
| </type> |
| <type category="struct" name="VkDisplayPlanePropertiesKHR" returnedonly="true"> |
| <member><type>VkDisplayKHR</type> <name>currentDisplay</name><comment>Display the plane is currently associated with. Will be VK_NULL_HANDLE if the plane is not in use.</comment></member> |
| <member><type>uint32_t</type> <name>currentStackIndex</name><comment>Current z-order of the plane.</comment></member> |
| </type> |
| <type category="struct" name="VkDisplayModeParametersKHR"> |
| <member><type>VkExtent2D</type> <name>visibleRegion</name><comment>Visible scanout region.</comment></member> |
| <member noautovalidity="true"><type>uint32_t</type> <name>refreshRate</name><comment>Number of times per second the display is updated.</comment></member> |
| </type> |
| <type category="struct" name="VkDisplayModePropertiesKHR" returnedonly="true"> |
| <member><type>VkDisplayModeKHR</type> <name>displayMode</name><comment>Handle of this display mode.</comment></member> |
| <member><type>VkDisplayModeParametersKHR</type> <name>parameters</name><comment>The parameters this mode uses.</comment></member> |
| </type> |
| <type category="struct" name="VkDisplayModeCreateInfoKHR"> |
| <member values="VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkDisplayModeCreateFlagsKHR</type> <name>flags</name></member> |
| <member><type>VkDisplayModeParametersKHR</type> <name>parameters</name><comment>The parameters this mode uses.</comment></member> |
| </type> |
| <type category="struct" name="VkDisplayPlaneCapabilitiesKHR" returnedonly="true"> |
| <member optional="true"><type>VkDisplayPlaneAlphaFlagsKHR</type> <name>supportedAlpha</name><comment>Types of alpha blending supported, if any.</comment></member> |
| <member><type>VkOffset2D</type> <name>minSrcPosition</name><comment>Does the plane have any position and extent restrictions?</comment></member> |
| <member><type>VkOffset2D</type> <name>maxSrcPosition</name></member> |
| <member><type>VkExtent2D</type> <name>minSrcExtent</name></member> |
| <member><type>VkExtent2D</type> <name>maxSrcExtent</name></member> |
| <member><type>VkOffset2D</type> <name>minDstPosition</name></member> |
| <member><type>VkOffset2D</type> <name>maxDstPosition</name></member> |
| <member><type>VkExtent2D</type> <name>minDstExtent</name></member> |
| <member><type>VkExtent2D</type> <name>maxDstExtent</name></member> |
| </type> |
| <type category="struct" name="VkDisplaySurfaceCreateInfoKHR"> |
| <member values="VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkDisplaySurfaceCreateFlagsKHR</type> <name>flags</name></member> |
| <member><type>VkDisplayModeKHR</type> <name>displayMode</name><comment>The mode to use when displaying this surface</comment></member> |
| <member><type>uint32_t</type> <name>planeIndex</name><comment>The plane on which this surface appears. Must be between 0 and the value returned by vkGetPhysicalDeviceDisplayPlanePropertiesKHR() in pPropertyCount.</comment></member> |
| <member><type>uint32_t</type> <name>planeStackIndex</name><comment>The z-order of the plane.</comment></member> |
| <member><type>VkSurfaceTransformFlagBitsKHR</type> <name>transform</name><comment>Transform to apply to the images as part of the scanout operation</comment></member> |
| <member><type>float</type> <name>globalAlpha</name><comment>Global alpha value. Must be between 0 and 1, inclusive. Ignored if alphaMode is not VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR</comment></member> |
| <member><type>VkDisplayPlaneAlphaFlagBitsKHR</type> <name>alphaMode</name><comment>What type of alpha blending to use. Must be a bit from vkGetDisplayPlanePropertiesKHR::supportedAlpha.</comment></member> |
| <member><type>VkExtent2D</type> <name>imageExtent</name><comment>size of the images to use with this surface</comment></member> |
| </type> |
| <type category="struct" name="VkDisplayPresentInfoKHR" structextends="VkPresentInfoKHR"> |
| <member values="VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member><type>VkRect2D</type> <name>srcRect</name><comment>Rectangle within the presentable image to read pixel data from when presenting to the display.</comment></member> |
| <member><type>VkRect2D</type> <name>dstRect</name><comment>Rectangle within the current display mode's visible region to display srcRectangle in.</comment></member> |
| <member><type>VkBool32</type> <name>persistent</name><comment>For smart displays, use buffered mode. If the display properties member "persistentMode" is VK_FALSE, this member must always be VK_FALSE.</comment></member> |
| </type> |
| <type category="struct" name="VkSurfaceCapabilitiesKHR" returnedonly="true"> |
| <member><type>uint32_t</type> <name>minImageCount</name><comment>Supported minimum number of images for the surface</comment></member> |
| <member><type>uint32_t</type> <name>maxImageCount</name><comment>Supported maximum number of images for the surface, 0 for unlimited</comment></member> |
| <member><type>VkExtent2D</type> <name>currentExtent</name><comment>Current image width and height for the surface, (0, 0) if undefined</comment></member> |
| <member><type>VkExtent2D</type> <name>minImageExtent</name><comment>Supported minimum image width and height for the surface</comment></member> |
| <member><type>VkExtent2D</type> <name>maxImageExtent</name><comment>Supported maximum image width and height for the surface</comment></member> |
| <member><type>uint32_t</type> <name>maxImageArrayLayers</name><comment>Supported maximum number of image layers for the surface</comment></member> |
| <member optional="true"><type>VkSurfaceTransformFlagsKHR</type> <name>supportedTransforms</name><comment>1 or more bits representing the transforms supported</comment></member> |
| <member><type>VkSurfaceTransformFlagBitsKHR</type> <name>currentTransform</name><comment>The surface's current transform relative to the device's natural orientation</comment></member> |
| <member optional="true"><type>VkCompositeAlphaFlagsKHR</type> <name>supportedCompositeAlpha</name><comment>1 or more bits representing the alpha compositing modes supported</comment></member> |
| <member optional="true"><type>VkImageUsageFlags</type> <name>supportedUsageFlags</name><comment>Supported image usage flags for the surface</comment></member> |
| </type> |
| <type category="struct" name="VkAndroidSurfaceCreateInfoKHR"> |
| <member values="VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkAndroidSurfaceCreateFlagsKHR</type> <name>flags</name></member> |
| <member noautovalidity="true">struct <type>ANativeWindow</type>* <name>window</name></member> |
| </type> |
| <type category="struct" name="VkViSurfaceCreateInfoNN"> |
| <member values="VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkViSurfaceCreateFlagsNN</type> <name>flags</name></member> |
| <member noautovalidity="true"><type>void</type>* <name>window</name></member> |
| </type> |
| <type category="struct" name="VkWaylandSurfaceCreateInfoKHR"> |
| <member values="VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkWaylandSurfaceCreateFlagsKHR</type> <name>flags</name></member> |
| <member noautovalidity="true">struct <type>wl_display</type>* <name>display</name></member> |
| <member noautovalidity="true">struct <type>wl_surface</type>* <name>surface</name></member> |
| </type> |
| <type category="struct" name="VkWin32SurfaceCreateInfoKHR"> |
| <member values="VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkWin32SurfaceCreateFlagsKHR</type> <name>flags</name></member> |
| <member><type>HINSTANCE</type> <name>hinstance</name></member> |
| <member><type>HWND</type> <name>hwnd</name></member> |
| </type> |
| <type category="struct" name="VkXlibSurfaceCreateInfoKHR"> |
| <member values="VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkXlibSurfaceCreateFlagsKHR</type> <name>flags</name></member> |
| <member noautovalidity="true"><type>Display</type>* <name>dpy</name></member> |
| <member><type>Window</type> <name>window</name></member> |
| </type> |
| <type category="struct" name="VkXcbSurfaceCreateInfoKHR"> |
| <member values="VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkXcbSurfaceCreateFlagsKHR</type> <name>flags</name></member> |
| <member noautovalidity="true"><type>xcb_connection_t</type>* <name>connection</name></member> |
| <member><type>xcb_window_t</type> <name>window</name></member> |
| </type> |
| <type category="struct" name="VkImagePipeSurfaceCreateInfoFUCHSIA"> |
| <member values="VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkImagePipeSurfaceCreateFlagsFUCHSIA</type> <name>flags</name></member> |
| <member><type>zx_handle_t</type> <name>imagePipeHandle</name></member> |
| </type> |
| <type category="struct" name="VkSurfaceFormatKHR" returnedonly="true"> |
| <member><type>VkFormat</type> <name>format</name><comment>Supported pair of rendering format</comment></member> |
| <member><type>VkColorSpaceKHR</type> <name>colorSpace</name><comment>and color space for the surface</comment></member> |
| </type> |
| <type category="struct" name="VkSwapchainCreateInfoKHR"> |
| <member values="VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkSwapchainCreateFlagsKHR</type> <name>flags</name></member> |
| <member><type>VkSurfaceKHR</type> <name>surface</name><comment>The swapchain's target surface</comment></member> |
| <member><type>uint32_t</type> <name>minImageCount</name><comment>Minimum number of presentation images the application needs</comment></member> |
| <member><type>VkFormat</type> <name>imageFormat</name><comment>Format of the presentation images</comment></member> |
| <member><type>VkColorSpaceKHR</type> <name>imageColorSpace</name><comment>Colorspace of the presentation images</comment></member> |
| <member><type>VkExtent2D</type> <name>imageExtent</name><comment>Dimensions of the presentation images</comment></member> |
| <member><type>uint32_t</type> <name>imageArrayLayers</name><comment>Determines the number of views for multiview/stereo presentation</comment></member> |
| <member><type>VkImageUsageFlags</type> <name>imageUsage</name><comment>Bits indicating how the presentation images will be used</comment></member> |
| <member><type>VkSharingMode</type> <name>imageSharingMode</name><comment>Sharing mode used for the presentation images</comment></member> |
| <member optional="true"><type>uint32_t</type> <name>queueFamilyIndexCount</name><comment>Number of queue families having access to the images in case of concurrent sharing mode</comment></member> |
| <member noautovalidity="true" len="queueFamilyIndexCount">const <type>uint32_t</type>* <name>pQueueFamilyIndices</name><comment>Array of queue family indices having access to the images in case of concurrent sharing mode</comment></member> |
| <member><type>VkSurfaceTransformFlagBitsKHR</type> <name>preTransform</name><comment>The transform, relative to the device's natural orientation, applied to the image content prior to presentation</comment></member> |
| <member><type>VkCompositeAlphaFlagBitsKHR</type> <name>compositeAlpha</name><comment>The alpha blending mode used when compositing this surface with other surfaces in the window system</comment></member> |
| <member><type>VkPresentModeKHR</type> <name>presentMode</name><comment>Which presentation mode to use for presents on this swap chain</comment></member> |
| <member><type>VkBool32</type> <name>clipped</name><comment>Specifies whether presentable images may be affected by window clip regions</comment></member> |
| <member optional="true"><type>VkSwapchainKHR</type> <name>oldSwapchain</name><comment>Existing swap chain to replace, if any</comment></member> |
| </type> |
| <type category="struct" name="VkPresentInfoKHR"> |
| <member values="VK_STRUCTURE_TYPE_PRESENT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>uint32_t</type> <name>waitSemaphoreCount</name><comment>Number of semaphores to wait for before presenting</comment></member> |
| <member len="waitSemaphoreCount">const <type>VkSemaphore</type>* <name>pWaitSemaphores</name><comment>Semaphores to wait for before presenting</comment></member> |
| <member><type>uint32_t</type> <name>swapchainCount</name><comment>Number of swapchains to present in this call</comment></member> |
| <member len="swapchainCount">const <type>VkSwapchainKHR</type>* <name>pSwapchains</name><comment>Swapchains to present an image from</comment></member> |
| <member len="swapchainCount">const <type>uint32_t</type>* <name>pImageIndices</name><comment>Indices of which presentable images to present</comment></member> |
| <member optional="true" len="swapchainCount"><type>VkResult</type>* <name>pResults</name><comment>Optional (i.e. if non-NULL) VkResult for each swapchain</comment></member> |
| </type> |
| <type category="struct" name="VkDebugReportCallbackCreateInfoEXT" structextends="VkInstanceCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>VkDebugReportFlagsEXT</type> <name>flags</name><comment>Indicates which events call this callback</comment></member> |
| <member><type>PFN_vkDebugReportCallbackEXT</type> <name>pfnCallback</name><comment>Function pointer of a callback function</comment></member> |
| <member optional="true"><type>void</type>* <name>pUserData</name><comment>User data provided to callback function</comment></member> |
| </type> |
| <type category="struct" name="VkValidationFlagsEXT" structextends="VkInstanceCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT"><type>VkStructureType</type> <name>sType</name><comment>Must be VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT</comment></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member><type>uint32_t</type> <name>disabledValidationCheckCount</name><comment>Number of validation checks to disable</comment></member> |
| <member len="disabledValidationCheckCount">const <type>VkValidationCheckEXT</type>* <name>pDisabledValidationChecks</name><comment>Validation checks to disable</comment></member> |
| </type> |
| <type category="struct" name="VkValidationFeaturesEXT" structextends="VkInstanceCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT"><type>VkStructureType</type> <name>sType</name><comment>Must be VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT</comment></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member optional="true"><type>uint32_t</type> <name>enabledValidationFeatureCount</name><comment>Number of validation features to enable</comment></member> |
| <member len="enabledValidationFeatureCount">const <type>VkValidationFeatureEnableEXT</type>* <name>pEnabledValidationFeatures</name><comment>Validation features to enable</comment></member> |
| <member optional="true"><type>uint32_t</type> <name>disabledValidationFeatureCount</name><comment>Number of validation features to disable</comment></member> |
| <member len="disabledValidationFeatureCount">const <type>VkValidationFeatureDisableEXT</type>* <name>pDisabledValidationFeatures</name><comment>Validation features to disable</comment></member> |
| </type> |
| <type category="struct" name="VkPipelineRasterizationStateRasterizationOrderAMD" structextends="VkPipelineRasterizationStateCreateInfo"> |
| <member values="VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member><type>VkRasterizationOrderAMD</type> <name>rasterizationOrder</name><comment>Rasterization order to use for the pipeline</comment></member> |
| </type> |
| <type category="struct" name="VkDebugMarkerObjectNameInfoEXT"> |
| <member values="VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member><type>VkDebugReportObjectTypeEXT</type> <name>objectType</name><comment>The type of the object</comment></member> |
| <member><type>uint64_t</type> <name>object</name><comment>The handle of the object, cast to uint64_t</comment></member> |
| <member len="null-terminated">const <type>char</type>* <name>pObjectName</name><comment>Name to apply to the object</comment></member> |
| </type> |
| <type category="struct" name="VkDebugMarkerObjectTagInfoEXT"> |
| <member values="VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member><type>VkDebugReportObjectTypeEXT</type> <name>objectType</name><comment>The type of the object</comment></member> |
| <member><type>uint64_t</type> <name>object</name><comment>The handle of the object, cast to uint64_t</comment></member> |
| <member><type>uint64_t</type> <name>tagName</name><comment>The name of the tag to set on the object</comment></member> |
| <member><type>size_t</type> <name>tagSize</name><comment>The length in bytes of the tag data</comment></member> |
| <member len="tagSize">const <type>void</type>* <name>pTag</name><comment>Tag data to attach to the object</comment></member> |
| </type> |
| <type category="struct" name="VkDebugMarkerMarkerInfoEXT"> |
| <member values="VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member> |
| <member>const <type>void</type>* <name>pNext</name></member> |
| <member len="null-terminated">const <type>char</type>* <name>pMarkerName</name><comment>Name of the debug marker</comment></member> |
| <member optional="true"><type>float</type> <name>color</name>[4]<comment>Optional color for debug marker</comment></member> |
|