vulkan_core.h
Go to the documentation of this file.
1 #ifndef VULKAN_CORE_H_
2 #define VULKAN_CORE_H_ 1
3 
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7 
8 /*
9 ** Copyright (c) 2015-2018 The Khronos Group Inc.
10 **
11 ** Licensed under the Apache License, Version 2.0 (the "License");
12 ** you may not use this file except in compliance with the License.
13 ** You may obtain a copy of the License at
14 **
15 ** http://www.apache.org/licenses/LICENSE-2.0
16 **
17 ** Unless required by applicable law or agreed to in writing, software
18 ** distributed under the License is distributed on an "AS IS" BASIS,
19 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20 ** See the License for the specific language governing permissions and
21 ** limitations under the License.
22 */
23 
24 /*
25 ** This header is generated from the Khronos Vulkan XML API Registry.
26 **
27 */
28 
29 
30 #define VK_VERSION_1_0 1
31 #include "vk_platform.h"
32 
33 #define VK_MAKE_VERSION(major, minor, patch) \
34  (((major) << 22) | ((minor) << 12) | (patch))
35 
36 // 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.
37 //#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0
38 
39 // Vulkan 1.0 version number
40 #define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0
41 
42 #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
43 #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
44 #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
45 // Version of this file
46 #define VK_HEADER_VERSION 70
47 
48 
49 #define VK_NULL_HANDLE 0
50 
51 
52 
53 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
54 
55 
56 #if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE)
57 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
58  #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
59 #else
60  #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
61 #endif
62 #endif
63 
64 
65 
66 typedef uint32_t VkFlags;
70 
73 VK_DEFINE_HANDLE(VkDevice)
74 VK_DEFINE_HANDLE(VkQueue)
76 VK_DEFINE_HANDLE(VkCommandBuffer)
86 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
87 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
90 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
92 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
93 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
96 
97 #define VK_LOD_CLAMP_NONE 1000.0f
98 #define VK_REMAINING_MIP_LEVELS (~0U)
99 #define VK_REMAINING_ARRAY_LAYERS (~0U)
100 #define VK_WHOLE_SIZE (~0ULL)
101 #define VK_ATTACHMENT_UNUSED (~0U)
102 #define VK_TRUE 1
103 #define VK_FALSE 0
104 #define VK_QUEUE_FAMILY_IGNORED (~0U)
105 #define VK_SUBPASS_EXTERNAL (~0U)
106 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256
107 #define VK_UUID_SIZE 16
108 #define VK_MAX_MEMORY_TYPES 32
109 #define VK_MAX_MEMORY_HEAPS 16
110 #define VK_MAX_EXTENSION_NAME_SIZE 256
111 #define VK_MAX_DESCRIPTION_SIZE 256
112 
113 
121 
122 typedef enum VkResult {
145  VK_SUBOPTIMAL_KHR = 1000001003,
156  VK_RESULT_MAX_ENUM = 0x7FFFFFFF
157 } VkResult;
158 
159 typedef enum VkStructureType {
444 
456 
464 
465 typedef enum VkFormat {
730  VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
731 } VkFormat;
732 
733 typedef enum VkImageType {
741 } VkImageType;
742 
743 typedef enum VkImageTiling {
750 } VkImageTiling;
751 
752 typedef enum VkPhysicalDeviceType {
763 
764 typedef enum VkQueryType {
772 } VkQueryType;
773 
774 typedef enum VkSharingMode {
781 } VkSharingMode;
782 
783 typedef enum VkImageLayout {
803 } VkImageLayout;
804 
805 typedef enum VkImageViewType {
818 
819 typedef enum VkComponentSwizzle {
832 
833 typedef enum VkVertexInputRate {
841 
842 typedef enum VkPrimitiveTopology {
859 
860 typedef enum VkPolygonMode {
869 } VkPolygonMode;
870 
871 typedef enum VkFrontFace {
878 } VkFrontFace;
879 
880 typedef enum VkCompareOp {
893 } VkCompareOp;
894 
895 typedef enum VkStencilOp {
908 } VkStencilOp;
909 
910 typedef enum VkLogicOp {
930  VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
931 } VkLogicOp;
932 
933 typedef enum VkBlendFactor {
957 } VkBlendFactor;
958 
959 typedef enum VkBlendOp {
965  VK_BLEND_OP_ZERO_EXT = 1000148000,
966  VK_BLEND_OP_SRC_EXT = 1000148001,
967  VK_BLEND_OP_DST_EXT = 1000148002,
976  VK_BLEND_OP_XOR_EXT = 1000148011,
1000  VK_BLEND_OP_PLUS_EXT = 1000148035,
1008  VK_BLEND_OP_RED_EXT = 1000148043,
1010  VK_BLEND_OP_BLUE_EXT = 1000148045,
1015 } VkBlendOp;
1016 
1017 typedef enum VkDynamicState {
1034 } VkDynamicState;
1035 
1036 typedef enum VkFilter {
1039  VK_FILTER_CUBIC_IMG = 1000015000,
1043  VK_FILTER_MAX_ENUM = 0x7FFFFFFF
1044 } VkFilter;
1045 
1046 typedef enum VkSamplerMipmapMode {
1054 
1055 typedef enum VkSamplerAddressMode {
1066 
1067 typedef enum VkBorderColor {
1078 } VkBorderColor;
1079 
1080 typedef enum VkDescriptorType {
1097 
1098 typedef enum VkAttachmentLoadOp {
1107 
1108 typedef enum VkAttachmentStoreOp {
1116 
1117 typedef enum VkPipelineBindPoint {
1125 
1126 typedef enum VkCommandBufferLevel {
1134 
1135 typedef enum VkIndexType {
1142 } VkIndexType;
1143 
1144 typedef enum VkSubpassContents {
1152 
1153 typedef enum VkObjectType {
1197 } VkObjectType;
1198 
1199 typedef VkFlags VkInstanceCreateFlags;
1200 
1237 typedef VkFlags VkFormatFeatureFlags;
1238 
1239 typedef enum VkImageUsageFlagBits {
1250 typedef VkFlags VkImageUsageFlags;
1251 
1274 typedef VkFlags VkImageCreateFlags;
1275 
1286 typedef VkFlags VkSampleCountFlags;
1287 
1288 typedef enum VkQueueFlagBits {
1290  VK_QUEUE_COMPUTE_BIT = 0x00000002,
1295 } VkQueueFlagBits;
1296 typedef VkFlags VkQueueFlags;
1297 
1307 typedef VkFlags VkMemoryPropertyFlags;
1308 
1309 typedef enum VkMemoryHeapFlagBits {
1315 typedef VkFlags VkMemoryHeapFlags;
1316 typedef VkFlags VkDeviceCreateFlags;
1317 
1323 
1345 typedef VkFlags VkPipelineStageFlags;
1346 typedef VkFlags VkMemoryMapFlags;
1347 
1361 typedef VkFlags VkImageAspectFlags;
1362 
1370 
1375 typedef VkFlags VkSparseMemoryBindFlags;
1376 
1381 typedef VkFlags VkFenceCreateFlags;
1382 typedef VkFlags VkSemaphoreCreateFlags;
1383 typedef VkFlags VkEventCreateFlags;
1384 typedef VkFlags VkQueryPoolCreateFlags;
1385 
1401 
1409 typedef VkFlags VkQueryResultFlags;
1410 
1418 typedef VkFlags VkBufferCreateFlags;
1419 
1432 typedef VkFlags VkBufferUsageFlags;
1433 typedef VkFlags VkBufferViewCreateFlags;
1434 typedef VkFlags VkImageViewCreateFlags;
1437 
1448 typedef VkFlags VkPipelineCreateFlags;
1450 
1459  VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
1467 
1468 typedef enum VkCullModeFlagBits {
1475 typedef VkFlags VkCullModeFlags;
1479 
1487 typedef VkFlags VkColorComponentFlags;
1490 typedef VkFlags VkShaderStageFlags;
1491 typedef VkFlags VkSamplerCreateFlags;
1492 
1498 
1506 typedef VkFlags VkRenderPassCreateFlags;
1507 
1513 
1520 
1521 typedef enum VkAccessFlagBits {
1544 typedef VkFlags VkAccessFlags;
1545 
1546 typedef enum VkDependencyFlagBits {
1554 typedef VkFlags VkDependencyFlags;
1555 
1563 
1568 typedef VkFlags VkCommandPoolResetFlags;
1569 
1577 
1582 typedef VkFlags VkQueryControlFlags;
1583 
1589 
1596 typedef VkFlags VkStencilFaceFlags;
1597 
1598 typedef struct VkApplicationInfo {
1600  const void* pNext;
1601  const char* pApplicationName;
1603  const char* pEngineName;
1607 
1608 typedef struct VkInstanceCreateInfo {
1610  const void* pNext;
1611  VkInstanceCreateFlags flags;
1614  const char* const* ppEnabledLayerNames;
1616  const char* const* ppEnabledExtensionNames;
1618 
1620  void* pUserData,
1621  size_t size,
1622  size_t alignment,
1623  VkSystemAllocationScope allocationScope);
1624 
1626  void* pUserData,
1627  void* pOriginal,
1628  size_t size,
1629  size_t alignment,
1630  VkSystemAllocationScope allocationScope);
1631 
1633  void* pUserData,
1634  void* pMemory);
1635 
1637  void* pUserData,
1638  size_t size,
1639  VkInternalAllocationType allocationType,
1640  VkSystemAllocationScope allocationScope);
1641 
1643  void* pUserData,
1644  size_t size,
1645  VkInternalAllocationType allocationType,
1646  VkSystemAllocationScope allocationScope);
1647 
1648 typedef struct VkAllocationCallbacks {
1649  void* pUserData;
1656 
1660  VkBool32 imageCubeArray;
1662  VkBool32 geometryShader;
1665  VkBool32 dualSrcBlend;
1666  VkBool32 logicOp;
1669  VkBool32 depthClamp;
1670  VkBool32 depthBiasClamp;
1672  VkBool32 depthBounds;
1673  VkBool32 wideLines;
1674  VkBool32 largePoints;
1675  VkBool32 alphaToOne;
1676  VkBool32 multiViewport;
1697  VkBool32 shaderFloat64;
1698  VkBool32 shaderInt64;
1699  VkBool32 shaderInt16;
1702  VkBool32 sparseBinding;
1714 
1715 typedef struct VkFormatProperties {
1716  VkFormatFeatureFlags linearTilingFeatures;
1717  VkFormatFeatureFlags optimalTilingFeatures;
1718  VkFormatFeatureFlags bufferFeatures;
1720 
1721 typedef struct VkExtent3D {
1725 } VkExtent3D;
1726 
1727 typedef struct VkImageFormatProperties {
1731  VkSampleCountFlags sampleCounts;
1732  VkDeviceSize maxResourceSize;
1734 
1735 typedef struct VkPhysicalDeviceLimits {
1788  uint32_t maxComputeWorkGroupCount[3];
1790  uint32_t maxComputeWorkGroupSize[3];
1799  uint32_t maxViewportDimensions[2];
1800  float viewportBoundsRange[2];
1816  VkSampleCountFlags framebufferColorSampleCounts;
1817  VkSampleCountFlags framebufferDepthSampleCounts;
1821  VkSampleCountFlags sampledImageColorSampleCounts;
1823  VkSampleCountFlags sampledImageDepthSampleCounts;
1825  VkSampleCountFlags storageImageSampleCounts;
1833  float pointSizeRange[2];
1834  float lineWidthRange[2];
1837  VkBool32 strictLines;
1841  VkDeviceSize nonCoherentAtomSize;
1843 
1851 
1859  uint8_t pipelineCacheUUID[VK_UUID_SIZE];
1863 
1864 typedef struct VkQueueFamilyProperties {
1865  VkQueueFlags queueFlags;
1870 
1871 typedef struct VkMemoryType {
1872  VkMemoryPropertyFlags propertyFlags;
1874 } VkMemoryType;
1875 
1876 typedef struct VkMemoryHeap {
1877  VkDeviceSize size;
1878  VkMemoryHeapFlags flags;
1879 } VkMemoryHeap;
1880 
1887 
1889 typedef struct VkDeviceQueueCreateInfo {
1891  const void* pNext;
1892  VkDeviceQueueCreateFlags flags;
1895  const float* pQueuePriorities;
1897 
1898 typedef struct VkDeviceCreateInfo {
1900  const void* pNext;
1901  VkDeviceCreateFlags flags;
1905  const char* const* ppEnabledLayerNames;
1907  const char* const* ppEnabledExtensionNames;
1910 
1911 typedef struct VkExtensionProperties {
1912  char extensionName[VK_MAX_EXTENSION_NAME_SIZE];
1915 
1916 typedef struct VkLayerProperties {
1920  char description[VK_MAX_DESCRIPTION_SIZE];
1922 
1923 typedef struct VkSubmitInfo {
1925  const void* pNext;
1927  const VkSemaphore* pWaitSemaphores;
1928  const VkPipelineStageFlags* pWaitDstStageMask;
1930  const VkCommandBuffer* pCommandBuffers;
1932  const VkSemaphore* pSignalSemaphores;
1933 } VkSubmitInfo;
1934 
1935 typedef struct VkMemoryAllocateInfo {
1937  const void* pNext;
1938  VkDeviceSize allocationSize;
1941 
1942 typedef struct VkMappedMemoryRange {
1944  const void* pNext;
1945  VkDeviceMemory memory;
1946  VkDeviceSize offset;
1947  VkDeviceSize size;
1949 
1950 typedef struct VkMemoryRequirements {
1951  VkDeviceSize size;
1952  VkDeviceSize alignment;
1955 
1957  VkImageAspectFlags aspectMask;
1959  VkSparseImageFormatFlags flags;
1961 
1965  VkDeviceSize imageMipTailSize;
1966  VkDeviceSize imageMipTailOffset;
1967  VkDeviceSize imageMipTailStride;
1969 
1970 typedef struct VkSparseMemoryBind {
1971  VkDeviceSize resourceOffset;
1972  VkDeviceSize size;
1973  VkDeviceMemory memory;
1974  VkDeviceSize memoryOffset;
1975  VkSparseMemoryBindFlags flags;
1977 
1979  VkBuffer buffer;
1983 
1985  VkImage image;
1989 
1990 typedef struct VkImageSubresource {
1991  VkImageAspectFlags aspectMask;
1995 
1996 typedef struct VkOffset3D {
2000 } VkOffset3D;
2001 
2002 typedef struct VkSparseImageMemoryBind {
2006  VkDeviceMemory memory;
2007  VkDeviceSize memoryOffset;
2008  VkSparseMemoryBindFlags flags;
2010 
2012  VkImage image;
2016 
2017 typedef struct VkBindSparseInfo {
2019  const void* pNext;
2021  const VkSemaphore* pWaitSemaphores;
2029  const VkSemaphore* pSignalSemaphores;
2031 
2032 typedef struct VkFenceCreateInfo {
2034  const void* pNext;
2035  VkFenceCreateFlags flags;
2037 
2038 typedef struct VkSemaphoreCreateInfo {
2040  const void* pNext;
2041  VkSemaphoreCreateFlags flags;
2043 
2044 typedef struct VkEventCreateInfo {
2046  const void* pNext;
2047  VkEventCreateFlags flags;
2049 
2050 typedef struct VkQueryPoolCreateInfo {
2052  const void* pNext;
2053  VkQueryPoolCreateFlags flags;
2056  VkQueryPipelineStatisticFlags pipelineStatistics;
2058 
2059 typedef struct VkBufferCreateInfo {
2061  const void* pNext;
2062  VkBufferCreateFlags flags;
2063  VkDeviceSize size;
2064  VkBufferUsageFlags usage;
2069 
2070 typedef struct VkBufferViewCreateInfo {
2072  const void* pNext;
2073  VkBufferViewCreateFlags flags;
2074  VkBuffer buffer;
2076  VkDeviceSize offset;
2077  VkDeviceSize range;
2079 
2080 typedef struct VkImageCreateInfo {
2082  const void* pNext;
2083  VkImageCreateFlags flags;
2091  VkImageUsageFlags usage;
2097 
2098 typedef struct VkSubresourceLayout {
2099  VkDeviceSize offset;
2100  VkDeviceSize size;
2101  VkDeviceSize rowPitch;
2102  VkDeviceSize arrayPitch;
2103  VkDeviceSize depthPitch;
2105 
2106 typedef struct VkComponentMapping {
2112 
2113 typedef struct VkImageSubresourceRange {
2114  VkImageAspectFlags aspectMask;
2120 
2121 typedef struct VkImageViewCreateInfo {
2123  const void* pNext;
2124  VkImageViewCreateFlags flags;
2125  VkImage image;
2131 
2134  const void* pNext;
2135  VkShaderModuleCreateFlags flags;
2136  size_t codeSize;
2137  const uint32_t* pCode;
2139 
2142  const void* pNext;
2143  VkPipelineCacheCreateFlags flags;
2145  const void* pInitialData;
2147 
2151  size_t size;
2153 
2154 typedef struct VkSpecializationInfo {
2157  size_t dataSize;
2158  const void* pData;
2160 
2163  const void* pNext;
2164  VkPipelineShaderStageCreateFlags flags;
2166  VkShaderModule module;
2167  const char* pName;
2170 
2176 
2183 
2186  const void* pNext;
2187  VkPipelineVertexInputStateCreateFlags flags;
2193 
2196  const void* pNext;
2197  VkPipelineInputAssemblyStateCreateFlags flags;
2201 
2204  const void* pNext;
2205  VkPipelineTessellationStateCreateFlags flags;
2208 
2209 typedef struct VkViewport {
2210  float x;
2211  float y;
2212  float width;
2213  float height;
2214  float minDepth;
2215  float maxDepth;
2216 } VkViewport;
2217 
2218 typedef struct VkOffset2D {
2221 } VkOffset2D;
2222 
2223 typedef struct VkExtent2D {
2226 } VkExtent2D;
2227 
2228 typedef struct VkRect2D {
2231 } VkRect2D;
2232 
2235  const void* pNext;
2236  VkPipelineViewportStateCreateFlags flags;
2242 
2245  const void* pNext;
2246  VkPipelineRasterizationStateCreateFlags flags;
2250  VkCullModeFlags cullMode;
2256  float lineWidth;
2258 
2261  const void* pNext;
2262  VkPipelineMultisampleStateCreateFlags flags;
2266  const VkSampleMask* pSampleMask;
2270 
2271 typedef struct VkStencilOpState {
2280 
2283  const void* pNext;
2284  VkPipelineDepthStencilStateCreateFlags flags;
2295 
2297  VkBool32 blendEnable;
2304  VkColorComponentFlags colorWriteMask;
2306 
2309  const void* pNext;
2310  VkPipelineColorBlendStateCreateFlags flags;
2311  VkBool32 logicOpEnable;
2315  float blendConstants[4];
2317 
2320  const void* pNext;
2321  VkPipelineDynamicStateCreateFlags flags;
2325 
2328  const void* pNext;
2329  VkPipelineCreateFlags flags;
2341  VkPipelineLayout layout;
2342  VkRenderPass renderPass;
2347 
2350  const void* pNext;
2351  VkPipelineCreateFlags flags;
2353  VkPipelineLayout layout;
2357 
2358 typedef struct VkPushConstantRange {
2359  VkShaderStageFlags stageFlags;
2363 
2366  const void* pNext;
2367  VkPipelineLayoutCreateFlags flags;
2369  const VkDescriptorSetLayout* pSetLayouts;
2373 
2374 typedef struct VkSamplerCreateInfo {
2376  const void* pNext;
2377  VkSamplerCreateFlags flags;
2384  float mipLodBias;
2387  VkBool32 compareEnable;
2389  float minLod;
2390  float maxLod;
2394 
2399  VkShaderStageFlags stageFlags;
2400  const VkSampler* pImmutableSamplers;
2402 
2405  const void* pNext;
2406  VkDescriptorSetLayoutCreateFlags flags;
2410 
2411 typedef struct VkDescriptorPoolSize {
2415 
2418  const void* pNext;
2419  VkDescriptorPoolCreateFlags flags;
2424 
2427  const void* pNext;
2428  VkDescriptorPool descriptorPool;
2430  const VkDescriptorSetLayout* pSetLayouts;
2432 
2433 typedef struct VkDescriptorImageInfo {
2434  VkSampler sampler;
2435  VkImageView imageView;
2438 
2439 typedef struct VkDescriptorBufferInfo {
2440  VkBuffer buffer;
2441  VkDeviceSize offset;
2442  VkDeviceSize range;
2444 
2445 typedef struct VkWriteDescriptorSet {
2447  const void* pNext;
2448  VkDescriptorSet dstSet;
2455  const VkBufferView* pTexelBufferView;
2457 
2458 typedef struct VkCopyDescriptorSet {
2460  const void* pNext;
2461  VkDescriptorSet srcSet;
2464  VkDescriptorSet dstSet;
2469 
2470 typedef struct VkFramebufferCreateInfo {
2472  const void* pNext;
2473  VkFramebufferCreateFlags flags;
2474  VkRenderPass renderPass;
2476  const VkImageView* pAttachments;
2481 
2482 typedef struct VkAttachmentDescription {
2483  VkAttachmentDescriptionFlags flags;
2493 
2494 typedef struct VkAttachmentReference {
2498 
2499 typedef struct VkSubpassDescription {
2500  VkSubpassDescriptionFlags flags;
2511 
2512 typedef struct VkSubpassDependency {
2515  VkPipelineStageFlags srcStageMask;
2516  VkPipelineStageFlags dstStageMask;
2517  VkAccessFlags srcAccessMask;
2518  VkAccessFlags dstAccessMask;
2519  VkDependencyFlags dependencyFlags;
2521 
2522 typedef struct VkRenderPassCreateInfo {
2524  const void* pNext;
2525  VkRenderPassCreateFlags flags;
2533 
2534 typedef struct VkCommandPoolCreateInfo {
2536  const void* pNext;
2537  VkCommandPoolCreateFlags flags;
2540 
2543  const void* pNext;
2544  VkCommandPool commandPool;
2548 
2551  const void* pNext;
2552  VkRenderPass renderPass;
2554  VkFramebuffer framebuffer;
2556  VkQueryControlFlags queryFlags;
2557  VkQueryPipelineStatisticFlags pipelineStatistics;
2559 
2562  const void* pNext;
2563  VkCommandBufferUsageFlags flags;
2566 
2567 typedef struct VkBufferCopy {
2568  VkDeviceSize srcOffset;
2569  VkDeviceSize dstOffset;
2570  VkDeviceSize size;
2571 } VkBufferCopy;
2572 
2574  VkImageAspectFlags aspectMask;
2579 
2580 typedef struct VkImageCopy {
2586 } VkImageCopy;
2587 
2588 typedef struct VkImageBlit {
2590  VkOffset3D srcOffsets[2];
2592  VkOffset3D dstOffsets[2];
2593 } VkImageBlit;
2594 
2595 typedef struct VkBufferImageCopy {
2596  VkDeviceSize bufferOffset;
2603 
2604 typedef union VkClearColorValue {
2605  float float32[4];
2606  int32_t int32[4];
2607  uint32_t uint32[4];
2609 
2611  float depth;
2614 
2615 typedef union VkClearValue {
2618 } VkClearValue;
2619 
2620 typedef struct VkClearAttachment {
2621  VkImageAspectFlags aspectMask;
2625 
2626 typedef struct VkClearRect {
2630 } VkClearRect;
2631 
2632 typedef struct VkImageResolve {
2638 } VkImageResolve;
2639 
2640 typedef struct VkMemoryBarrier {
2642  const void* pNext;
2643  VkAccessFlags srcAccessMask;
2644  VkAccessFlags dstAccessMask;
2645 } VkMemoryBarrier;
2646 
2647 typedef struct VkBufferMemoryBarrier {
2649  const void* pNext;
2650  VkAccessFlags srcAccessMask;
2651  VkAccessFlags dstAccessMask;
2654  VkBuffer buffer;
2655  VkDeviceSize offset;
2656  VkDeviceSize size;
2658 
2659 typedef struct VkImageMemoryBarrier {
2661  const void* pNext;
2662  VkAccessFlags srcAccessMask;
2663  VkAccessFlags dstAccessMask;
2668  VkImage image;
2671 
2672 typedef struct VkRenderPassBeginInfo {
2674  const void* pNext;
2675  VkRenderPass renderPass;
2676  VkFramebuffer framebuffer;
2681 
2687 
2695 
2696 typedef struct VkDrawIndirectCommand {
2702 
2703 
2704 typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
2705 typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
2706 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
2709 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
2711 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
2713 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
2714 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
2715 typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
2716 typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
2717 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2718 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2720 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2721 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
2722 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
2723 typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
2725 typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
2726 typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
2727 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
2728 typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
2729 typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2730 typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2731 typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
2732 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2733 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2734 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
2735 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
2736 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
2738 typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
2739 typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
2740 typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
2741 typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
2742 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
2743 typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
2744 typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
2745 typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
2746 typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
2747 typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
2748 typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
2749 typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
2750 typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
2751 typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
2752 typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
2753 typedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
2754 typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
2755 typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
2756 typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
2757 typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
2758 typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
2759 typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
2760 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
2761 typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
2762 typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
2763 typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
2764 typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
2765 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
2766 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
2767 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
2768 typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
2769 typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2770 typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2771 typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
2772 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
2773 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
2774 typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
2775 typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
2776 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
2777 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
2778 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
2779 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
2780 typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
2781 typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
2782 typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
2783 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
2784 typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
2785 typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
2786 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
2787 typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
2788 typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
2789 typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
2790 typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
2791 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
2792 typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
2793 typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
2794 typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
2795 typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
2796 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
2797 typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
2798 typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
2799 typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
2800 typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
2801 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
2802 typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
2803 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
2804 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
2805 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
2806 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
2807 typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets);
2808 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
2809 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
2810 typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
2811 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
2812 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2813 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2814 typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
2815 typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
2816 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
2817 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
2818 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
2819 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
2820 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
2821 typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
2822 typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
2823 typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2824 typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2825 typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
2826 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
2827 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
2828 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
2829 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
2830 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
2831 typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
2832 typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
2833 typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
2834 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
2835 typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
2836 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
2837 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
2838 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
2839 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
2840 typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
2841 
2842 #ifndef VK_NO_PROTOTYPES
2844  const VkInstanceCreateInfo* pCreateInfo,
2845  const VkAllocationCallbacks* pAllocator,
2846  VkInstance* pInstance);
2847 
2849  VkInstance instance,
2850  const VkAllocationCallbacks* pAllocator);
2851 
2853  VkInstance instance,
2854  uint32_t* pPhysicalDeviceCount,
2855  VkPhysicalDevice* pPhysicalDevices);
2856 
2858  VkPhysicalDevice physicalDevice,
2859  VkPhysicalDeviceFeatures* pFeatures);
2860 
2862  VkPhysicalDevice physicalDevice,
2863  VkFormat format,
2864  VkFormatProperties* pFormatProperties);
2865 
2867  VkPhysicalDevice physicalDevice,
2868  VkFormat format,
2869  VkImageType type,
2870  VkImageTiling tiling,
2871  VkImageUsageFlags usage,
2872  VkImageCreateFlags flags,
2873  VkImageFormatProperties* pImageFormatProperties);
2874 
2876  VkPhysicalDevice physicalDevice,
2877  VkPhysicalDeviceProperties* pProperties);
2878 
2880  VkPhysicalDevice physicalDevice,
2881  uint32_t* pQueueFamilyPropertyCount,
2882  VkQueueFamilyProperties* pQueueFamilyProperties);
2883 
2885  VkPhysicalDevice physicalDevice,
2886  VkPhysicalDeviceMemoryProperties* pMemoryProperties);
2887 
2889  VkInstance instance,
2890  const char* pName);
2891 
2893  VkDevice device,
2894  const char* pName);
2895 
2897  VkPhysicalDevice physicalDevice,
2898  const VkDeviceCreateInfo* pCreateInfo,
2899  const VkAllocationCallbacks* pAllocator,
2900  VkDevice* pDevice);
2901 
2903  VkDevice device,
2904  const VkAllocationCallbacks* pAllocator);
2905 
2907  const char* pLayerName,
2908  uint32_t* pPropertyCount,
2909  VkExtensionProperties* pProperties);
2910 
2912  VkPhysicalDevice physicalDevice,
2913  const char* pLayerName,
2914  uint32_t* pPropertyCount,
2915  VkExtensionProperties* pProperties);
2916 
2918  uint32_t* pPropertyCount,
2919  VkLayerProperties* pProperties);
2920 
2922  VkPhysicalDevice physicalDevice,
2923  uint32_t* pPropertyCount,
2924  VkLayerProperties* pProperties);
2925 
2927  VkDevice device,
2928  uint32_t queueFamilyIndex,
2929  uint32_t queueIndex,