vulkan.h revision 6f39a6d1c6202b5d1bb0aa0dc9b2e130e5b73666
104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifndef __vulkan_h_
204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#define __vulkan_h_ 1
304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef __cplusplus
504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallextern "C" {
604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall/*
904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** Copyright (c) 2015 The Khronos Group Inc.
1004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall**
1104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** Permission is hereby granted, free of charge, to any person obtaining a
1204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** copy of this software and/or associated documentation files (the
1304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** "Materials"), to deal in the Materials without restriction, including
1404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** without limitation the rights to use, copy, modify, merge, publish,
1504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** distribute, sublicense, and/or sell copies of the Materials, and to
1604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** permit persons to whom the Materials are furnished to do so, subject to
1704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** the following conditions:
1804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall**
1904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** The above copyright notice and this permission notice shall be included
2004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** in all copies or substantial portions of the Materials.
2104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall**
2204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
2304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
2404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
2504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
2604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
2704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
2804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
2904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall*/
3004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall/*
3204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall** This header is generated from the Khronos Vulkan XML API Registry.
3304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall**
3404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall*/
3504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
3704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#define VK_VERSION_1_0 1
3804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#include "vk_platform.h"
3904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#define VK_MAKE_VERSION(major, minor, patch) \
4104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    ((major << 22) | (minor << 12) | patch)
4204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
4304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall// Vulkan API version supported by this file
446f39a6d1c6202b5d1bb0aa0dc9b2e130e5b73666Jesse Hall#define VK_API_VERSION VK_MAKE_VERSION(0, 185, 0)
455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
47acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall#if defined(__cplusplus) && ((defined(_MSC_VER) && _MSC_VER >= 1800) || __cplusplus >= 201103L)
485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    #define VK_NULL_HANDLE nullptr
495ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#else
505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    #define VK_NULL_HANDLE 0
515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#endif
5204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#define VK_DEFINE_HANDLE(obj) typedef struct obj##_T* obj;
5504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
5704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#if defined(__cplusplus)
585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    #if ((defined(_MSC_VER) && _MSC_VER >= 1800) || __cplusplus >= 201103L)
5904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall        // The bool operator only works if there are no implicit conversions from an obj to
6004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall        // a bool-compatible type, which can then be used to unintentionally violate type safety.
6104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall        // C++11 and above supports the "explicit" keyword on conversion operators to stop this
6204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall        // from happening. Otherwise users of C++ below C++11 won't get direct access to evaluating
6304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall        // the object handle as a bool in expressions like:
6404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall        //     if (obj) vkDestroy(obj);
6504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall        #define VK_NONDISP_HANDLE_OPERATOR_BOOL() explicit operator bool() const { return handle != 0; }
665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall        #define VK_NONDISP_HANDLE_CONSTRUCTOR_FROM_UINT64(obj) \
675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall            explicit obj(uint64_t x) : handle(x) { } \
685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall            obj(decltype(nullptr)) : handle(0) { }
6904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    #else
7004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall        #define VK_NONDISP_HANDLE_OPERATOR_BOOL()
715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall        #define VK_NONDISP_HANDLE_CONSTRUCTOR_FROM_UINT64(obj) \
725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall            obj(uint64_t x) : handle(x) { }
7304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    #endif
7404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    #define VK_DEFINE_NONDISP_HANDLE(obj) \
7504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall        struct obj { \
7604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall            obj() : handle(0) { } \
775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall            VK_NONDISP_HANDLE_CONSTRUCTOR_FROM_UINT64(obj) \
7804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall            obj& operator =(uint64_t x) { handle = x; return *this; } \
7904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall            bool operator==(const obj& other) const { return handle == other.handle; } \
8004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall            bool operator!=(const obj& other) const { return handle != other.handle; } \
8104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall            bool operator!() const { return !handle; } \
8204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall            VK_NONDISP_HANDLE_OPERATOR_BOOL() \
8304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall            uint64_t handle; \
8404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall        };
8504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#else
8604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    #define VK_DEFINE_NONDISP_HANDLE(obj) typedef struct obj##_T { uint64_t handle; } obj;
8704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
88a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall
8904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef uint32_t VkBool32;
925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef uint32_t VkFlags;
935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef uint64_t VkDeviceSize;
945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef uint32_t VkSampleMask;
9504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
9604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkInstance)
9704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkPhysicalDevice)
9804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkDevice)
9904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkQueue)
100a366a5186ea941c5653cbdb8df18dc19318912b6Jesse HallVK_DEFINE_NONDISP_HANDLE(VkSemaphore)
10104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_HANDLE(VkCmdBuffer)
10204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkFence)
10304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkDeviceMemory)
10404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkBuffer)
10504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkImage)
10604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkEvent)
10704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkQueryPool)
10804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkBufferView)
10904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkImageView)
11004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkShaderModule)
11104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkShader)
11204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkPipelineCache)
11304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkPipelineLayout)
11404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkRenderPass)
11504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkPipeline)
11604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkDescriptorSetLayout)
11704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkSampler)
11804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkDescriptorPool)
11904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkDescriptorSet)
12004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkFramebuffer)
12104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVK_DEFINE_NONDISP_HANDLE(VkCmdPool)
12204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
1235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_LOD_CLAMP_NONE                 1000.0f
1245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_REMAINING_MIP_LEVELS           (~0U)
1255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_REMAINING_ARRAY_LAYERS         (~0U)
1265ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_WHOLE_SIZE                     (~0ULL)
1275ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_ATTACHMENT_UNUSED              (~0U)
1285ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_TRUE                           1
1295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_FALSE                          0
1305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_QUEUE_FAMILY_IGNORED           (~0U)
1315ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_SUBPASS_EXTERNAL               (~0U)
1325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_MAX_PHYSICAL_DEVICE_NAME       256
1335ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_UUID_LENGTH                    16
1345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_MAX_MEMORY_TYPES               32
1355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_MAX_MEMORY_HEAPS               16
1365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_MAX_EXTENSION_NAME             256
1375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall#define VK_MAX_DESCRIPTION                256
1385ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
13904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
14004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
14104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SUCCESS = 0,
142a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_NOT_READY = 1,
143a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_TIMEOUT = 2,
144a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_EVENT_SET = 3,
145a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_EVENT_RESET = 4,
146a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_INCOMPLETE = 5,
1475ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_OUT_OF_HOST_MEMORY = -1,
1485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
14904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ERROR_INITIALIZATION_FAILED = -3,
1505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_DEVICE_LOST = -4,
1515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_MEMORY_MAP_FAILED = -5,
1525ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_LAYER_NOT_PRESENT = -6,
1535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ERROR_EXTENSION_NOT_PRESENT = -7,
154606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hall    VK_ERROR_FEATURE_NOT_PRESENT = -8,
155606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hall    VK_ERROR_INCOMPATIBLE_DRIVER = -9,
1565ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_RESULT_BEGIN_RANGE = VK_ERROR_INCOMPATIBLE_DRIVER,
15704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RESULT_END_RANGE = VK_INCOMPLETE,
1585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_RESULT_NUM = (VK_INCOMPLETE - VK_ERROR_INCOMPATIBLE_DRIVER + 1),
15904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RESULT_MAX_ENUM = 0x7FFFFFFF
16004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkResult;
16104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
16204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
16304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
16404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 1,
16504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_MEMORY_ALLOC_INFO = 2,
16604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 3,
1675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 4,
1685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_SHADER_CREATE_INFO = 5,
1695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 6,
1705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 7,
1715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 8,
172fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VK_STRUCTURE_TYPE_CMD_BUFFER_ALLOC_INFO = 9,
1735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
1745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 11,
1755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 12,
1765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 13,
1775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 14,
1785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 15,
1795ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 16,
1805ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 17,
1815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 18,
1825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 19,
1835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_RASTER_STATE_CREATE_INFO = 20,
1845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 21,
1855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 22,
1865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 23,
1875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 24,
1885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 25,
1895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 26,
1905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 27,
1915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO = 28,
1925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 29,
1935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_MEMORY_BARRIER = 30,
1945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 31,
1955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 32,
1965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
1975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 34,
1985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 35,
1995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 36,
2005ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 37,
2015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 38,
2025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 39,
2035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION = 40,
2045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION = 41,
2055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY = 42,
2065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
2075ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_CMD_POOL_CREATE_INFO = 44,
2085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 45,
2095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 46,
210fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO = 47,
21104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
212fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO,
213fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VK_STRUCTURE_TYPE_NUM = (VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
21404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
21504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStructureType;
21604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
21804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SYSTEM_ALLOC_TYPE_API_OBJECT = 0,
21904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SYSTEM_ALLOC_TYPE_INTERNAL = 1,
22004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SYSTEM_ALLOC_TYPE_INTERNAL_TEMP = 2,
22104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SYSTEM_ALLOC_TYPE_INTERNAL_SHADER = 3,
22204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SYSTEM_ALLOC_TYPE_DEBUG = 4,
22304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SYSTEM_ALLOC_TYPE_BEGIN_RANGE = VK_SYSTEM_ALLOC_TYPE_API_OBJECT,
22404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SYSTEM_ALLOC_TYPE_END_RANGE = VK_SYSTEM_ALLOC_TYPE_DEBUG,
22504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SYSTEM_ALLOC_TYPE_NUM = (VK_SYSTEM_ALLOC_TYPE_DEBUG - VK_SYSTEM_ALLOC_TYPE_API_OBJECT + 1),
22604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SYSTEM_ALLOC_TYPE_MAX_ENUM = 0x7FFFFFFF
22704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSystemAllocType;
22804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
23004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_UNDEFINED = 0,
23104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R4G4_UNORM = 1,
23204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R4G4_USCALED = 2,
23304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R4G4B4A4_UNORM = 3,
23404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R4G4B4A4_USCALED = 4,
23504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R5G6B5_UNORM = 5,
23604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R5G6B5_USCALED = 6,
23704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R5G5B5A1_UNORM = 7,
23804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R5G5B5A1_USCALED = 8,
23904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_UNORM = 9,
24004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SNORM = 10,
24104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_USCALED = 11,
24204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SSCALED = 12,
24304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_UINT = 13,
24404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SINT = 14,
24504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SRGB = 15,
24604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_UNORM = 16,
24704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SNORM = 17,
24804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_USCALED = 18,
24904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SSCALED = 19,
25004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_UINT = 20,
25104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SINT = 21,
25204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SRGB = 22,
25304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_UNORM = 23,
25404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SNORM = 24,
25504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_USCALED = 25,
25604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SSCALED = 26,
25704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_UINT = 27,
25804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SINT = 28,
25904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SRGB = 29,
26004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_UNORM = 30,
26104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_SNORM = 31,
26204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_USCALED = 32,
26304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_SSCALED = 33,
26404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_UINT = 34,
26504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_SINT = 35,
26604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_SRGB = 36,
26704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_UNORM = 37,
26804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_SNORM = 38,
26904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_USCALED = 39,
27004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_SSCALED = 40,
27104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_UINT = 41,
27204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_SINT = 42,
27304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_UNORM = 43,
27404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_SNORM = 44,
27504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_USCALED = 45,
27604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_SSCALED = 46,
27704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_UINT = 47,
27804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_SINT = 48,
27904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_SFLOAT = 49,
28004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_UNORM = 50,
28104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_SNORM = 51,
28204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_USCALED = 52,
28304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_SSCALED = 53,
28404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_UINT = 54,
28504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_SINT = 55,
28604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_SFLOAT = 56,
28704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_UNORM = 57,
28804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_SNORM = 58,
28904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_USCALED = 59,
29004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_SSCALED = 60,
29104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_UINT = 61,
29204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_SINT = 62,
29304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_SFLOAT = 63,
29404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_UNORM = 64,
29504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_SNORM = 65,
29604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_USCALED = 66,
29704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_SSCALED = 67,
29804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_UINT = 68,
29904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_SINT = 69,
30004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_SFLOAT = 70,
30104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32_UINT = 71,
30204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32_SINT = 72,
30304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32_SFLOAT = 73,
30404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32_UINT = 74,
30504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32_SINT = 75,
30604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32_SFLOAT = 76,
30704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32_UINT = 77,
30804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32_SINT = 78,
30904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32_SFLOAT = 79,
31004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32A32_UINT = 80,
31104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32A32_SINT = 81,
31204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32A32_SFLOAT = 82,
31304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R64_SFLOAT = 83,
31404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R64G64_SFLOAT = 84,
31504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R64G64B64_SFLOAT = 85,
31604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R64G64B64A64_SFLOAT = 86,
31704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R11G11B10_UFLOAT = 87,
31804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R9G9B9E5_UFLOAT = 88,
31904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_D16_UNORM = 89,
3205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_FORMAT_D24_UNORM_X8 = 90,
32104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_D32_SFLOAT = 91,
32204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_S8_UINT = 92,
32304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_D16_UNORM_S8_UINT = 93,
32404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_D24_UNORM_S8_UINT = 94,
32504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_D32_SFLOAT_S8_UINT = 95,
32604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC1_RGB_UNORM = 96,
32704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC1_RGB_SRGB = 97,
32804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC1_RGBA_UNORM = 98,
32904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC1_RGBA_SRGB = 99,
33004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC2_UNORM = 100,
33104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC2_SRGB = 101,
33204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC3_UNORM = 102,
33304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC3_SRGB = 103,
33404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC4_UNORM = 104,
33504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC4_SNORM = 105,
33604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC5_UNORM = 106,
33704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC5_SNORM = 107,
33804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC6H_UFLOAT = 108,
33904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC6H_SFLOAT = 109,
34004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC7_UNORM = 110,
34104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC7_SRGB = 111,
34204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8_UNORM = 112,
34304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8_SRGB = 113,
34404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8A1_UNORM = 114,
34504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8A1_SRGB = 115,
34604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8A8_UNORM = 116,
34704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8A8_SRGB = 117,
34804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_EAC_R11_UNORM = 118,
34904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_EAC_R11_SNORM = 119,
35004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_EAC_R11G11_UNORM = 120,
35104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_EAC_R11G11_SNORM = 121,
35204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_4x4_UNORM = 122,
35304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_4x4_SRGB = 123,
35404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_5x4_UNORM = 124,
35504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_5x4_SRGB = 125,
35604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_5x5_UNORM = 126,
35704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_5x5_SRGB = 127,
35804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_6x5_UNORM = 128,
35904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_6x5_SRGB = 129,
36004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_6x6_UNORM = 130,
36104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_6x6_SRGB = 131,
36204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x5_UNORM = 132,
36304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x5_SRGB = 133,
36404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x6_UNORM = 134,
36504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x6_SRGB = 135,
36604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x8_UNORM = 136,
36704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x8_SRGB = 137,
36804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x5_UNORM = 138,
36904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x5_SRGB = 139,
37004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x6_UNORM = 140,
37104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x6_SRGB = 141,
37204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x8_UNORM = 142,
37304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x8_SRGB = 143,
37404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x10_UNORM = 144,
37504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x10_SRGB = 145,
37604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_12x10_UNORM = 146,
37704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_12x10_SRGB = 147,
37804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_12x12_UNORM = 148,
37904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_12x12_SRGB = 149,
38004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B4G4R4A4_UNORM = 150,
38104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B5G5R5A1_UNORM = 151,
38204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B5G6R5_UNORM = 152,
38304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B5G6R5_USCALED = 153,
38404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_UNORM = 154,
38504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_SNORM = 155,
38604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_USCALED = 156,
38704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_SSCALED = 157,
38804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_UINT = 158,
38904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_SINT = 159,
39004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_SRGB = 160,
39104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_UNORM = 161,
39204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_SNORM = 162,
39304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_USCALED = 163,
39404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_SSCALED = 164,
39504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_UINT = 165,
39604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_SINT = 166,
39704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_SRGB = 167,
39804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_UNORM = 168,
39904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_SNORM = 169,
40004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_USCALED = 170,
40104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_SSCALED = 171,
40204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_UINT = 172,
40304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_SINT = 173,
40404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
40504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_END_RANGE = VK_FORMAT_B10G10R10A2_SINT,
40604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_NUM = (VK_FORMAT_B10G10R10A2_SINT - VK_FORMAT_UNDEFINED + 1),
40704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
40804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormat;
40904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
41004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
41104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_1D = 0,
41204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_2D = 1,
41304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_3D = 2,
41404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
41504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
41604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_NUM = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
41704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
41804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageType;
41904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
42004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
42104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TILING_LINEAR = 0,
42204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TILING_OPTIMAL = 1,
42304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_LINEAR,
42404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_OPTIMAL,
42504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TILING_NUM = (VK_IMAGE_TILING_OPTIMAL - VK_IMAGE_TILING_LINEAR + 1),
42604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
42704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageTiling;
42804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
42904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
43004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
43104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
43204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
43304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
43404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
43504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
43604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
43704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_NUM = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
43804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
43904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceType;
44004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
44104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
44204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_OCCLUSION = 0,
44304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
44404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
44504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_PIPELINE_STATISTICS,
44604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_NUM = (VK_QUERY_TYPE_PIPELINE_STATISTICS - VK_QUERY_TYPE_OCCLUSION + 1),
44704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
44804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryType;
44904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
45004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
45104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_EXCLUSIVE = 0,
45204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_CONCURRENT = 1,
45304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
45404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
45504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_NUM = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
45604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
45704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSharingMode;
45804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
45904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
4605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_UNDEFINED = 0,
4615ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_GENERAL = 1,
4625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
4635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
4645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
4655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
4665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_TRANSFER_SOURCE_OPTIMAL = 6,
4675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_TRANSFER_DESTINATION_OPTIMAL = 7,
4685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
4695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
4705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
4715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_NUM = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
4725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
4735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageLayout;
47404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
47504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
47604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_1D = 0,
47704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_2D = 1,
47804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_3D = 2,
47904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_CUBE = 3,
48004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
48104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
48204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
48304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
48404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
48504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_NUM = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
48604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
48704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewType;
48804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
48904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
49004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_ZERO = 0,
49104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_ONE = 1,
49204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_R = 2,
49304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_G = 3,
49404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_B = 4,
49504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_A = 5,
49604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_BEGIN_RANGE = VK_CHANNEL_SWIZZLE_ZERO,
49704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_END_RANGE = VK_CHANNEL_SWIZZLE_A,
49804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_NUM = (VK_CHANNEL_SWIZZLE_A - VK_CHANNEL_SWIZZLE_ZERO + 1),
49904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
50004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkChannelSwizzle;
50104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
50204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
50304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_VERTEX_INPUT_STEP_RATE_VERTEX = 0,
50404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_VERTEX_INPUT_STEP_RATE_INSTANCE = 1,
50504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_VERTEX_INPUT_STEP_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_STEP_RATE_VERTEX,
50604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_VERTEX_INPUT_STEP_RATE_END_RANGE = VK_VERTEX_INPUT_STEP_RATE_INSTANCE,
50704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_VERTEX_INPUT_STEP_RATE_NUM = (VK_VERTEX_INPUT_STEP_RATE_INSTANCE - VK_VERTEX_INPUT_STEP_RATE_VERTEX + 1),
50804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_VERTEX_INPUT_STEP_RATE_MAX_ENUM = 0x7FFFFFFF
50904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputStepRate;
51004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
51104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
51204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
51304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
51404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
51504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
51604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
51704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
51804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST_ADJ = 6,
51904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_ADJ = 7,
52004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_ADJ = 8,
52104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_ADJ = 9,
52204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_PATCH = 10,
52304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
52404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH,
52504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_NUM = (VK_PRIMITIVE_TOPOLOGY_PATCH - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
52604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
52704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPrimitiveTopology;
52804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
52904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
53004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FILL_MODE_POINTS = 0,
53104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FILL_MODE_WIREFRAME = 1,
53204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FILL_MODE_SOLID = 2,
53304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FILL_MODE_BEGIN_RANGE = VK_FILL_MODE_POINTS,
53404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FILL_MODE_END_RANGE = VK_FILL_MODE_SOLID,
53504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FILL_MODE_NUM = (VK_FILL_MODE_SOLID - VK_FILL_MODE_POINTS + 1),
53604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FILL_MODE_MAX_ENUM = 0x7FFFFFFF
53704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFillMode;
53804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
53904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
54004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CULL_MODE_NONE = 0,
54104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CULL_MODE_FRONT = 1,
54204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CULL_MODE_BACK = 2,
54304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CULL_MODE_FRONT_AND_BACK = 3,
54404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CULL_MODE_BEGIN_RANGE = VK_CULL_MODE_NONE,
54504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CULL_MODE_END_RANGE = VK_CULL_MODE_FRONT_AND_BACK,
54604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CULL_MODE_NUM = (VK_CULL_MODE_FRONT_AND_BACK - VK_CULL_MODE_NONE + 1),
54704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CULL_MODE_MAX_ENUM = 0x7FFFFFFF
54804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCullMode;
54904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
55004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
55104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_CCW = 0,
55204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_CW = 1,
55304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_CCW,
55404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CW,
55504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_NUM = (VK_FRONT_FACE_CW - VK_FRONT_FACE_CCW + 1),
55604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
55704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFrontFace;
55804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
55904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
56004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NEVER = 0,
56104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_LESS = 1,
56204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_EQUAL = 2,
56304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_LESS_EQUAL = 3,
56404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_GREATER = 4,
56504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NOT_EQUAL = 5,
56604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_GREATER_EQUAL = 6,
56704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_ALWAYS = 7,
56804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
56904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
57004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NUM = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
57104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
57204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCompareOp;
57304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
57404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
57504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_KEEP = 0,
57604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_ZERO = 1,
57704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_REPLACE = 2,
57804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_INC_CLAMP = 3,
57904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_DEC_CLAMP = 4,
58004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_INVERT = 5,
58104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_INC_WRAP = 6,
58204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_DEC_WRAP = 7,
58304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
58404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DEC_WRAP,
58504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_NUM = (VK_STENCIL_OP_DEC_WRAP - VK_STENCIL_OP_KEEP + 1),
58604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
58704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOp;
58804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
58904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
59004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_CLEAR = 0,
59104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND = 1,
59204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND_REVERSE = 2,
59304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_COPY = 3,
59404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND_INVERTED = 4,
59504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NOOP = 5,
59604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_XOR = 6,
59704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR = 7,
59804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NOR = 8,
59904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_EQUIV = 9,
60004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_INVERT = 10,
60104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR_REVERSE = 11,
60204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_COPY_INVERTED = 12,
60304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR_INVERTED = 13,
60404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NAND = 14,
60504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_SET = 15,
60604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
60704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
60804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NUM = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
60904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
61004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLogicOp;
61104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
61204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
61304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ZERO = 0,
61404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE = 1,
61504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_SRC_COLOR = 2,
61604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_SRC_COLOR = 3,
61704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_DEST_COLOR = 4,
61804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_DEST_COLOR = 5,
61904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_SRC_ALPHA = 6,
62004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_SRC_ALPHA = 7,
62104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_DEST_ALPHA = 8,
62204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_DEST_ALPHA = 9,
62304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_CONSTANT_COLOR = 10,
62404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_CONSTANT_COLOR = 11,
62504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_CONSTANT_ALPHA = 12,
62604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_CONSTANT_ALPHA = 13,
62704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_SRC_ALPHA_SATURATE = 14,
62804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_SRC1_COLOR = 15,
62904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_SRC1_COLOR = 16,
63004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_SRC1_ALPHA = 17,
63104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_SRC1_ALPHA = 18,
63204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_BEGIN_RANGE = VK_BLEND_ZERO,
63304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_END_RANGE = VK_BLEND_ONE_MINUS_SRC1_ALPHA,
63404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_NUM = (VK_BLEND_ONE_MINUS_SRC1_ALPHA - VK_BLEND_ZERO + 1),
63504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_MAX_ENUM = 0x7FFFFFFF
63604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBlend;
63704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
63804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
63904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_ADD = 0,
64004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_SUBTRACT = 1,
64104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_REVERSE_SUBTRACT = 2,
64204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MIN = 3,
64304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MAX = 4,
64404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
64504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
64604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_NUM = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
64704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
64804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBlendOp;
64904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
65004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
6515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_VIEWPORT = 0,
6525ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_SCISSOR = 1,
6535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_LINE_WIDTH = 2,
6545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
6555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
6565ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
6575ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
6585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
6595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
6605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
6615ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
6625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_NUM = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
6635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
6645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDynamicState;
6655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
6665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef enum {
66704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_FILTER_NEAREST = 0,
66804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_FILTER_LINEAR = 1,
66904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_FILTER_BEGIN_RANGE = VK_TEX_FILTER_NEAREST,
67004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_FILTER_END_RANGE = VK_TEX_FILTER_LINEAR,
67104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_FILTER_NUM = (VK_TEX_FILTER_LINEAR - VK_TEX_FILTER_NEAREST + 1),
67204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_FILTER_MAX_ENUM = 0x7FFFFFFF
67304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkTexFilter;
67404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
67504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
67604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_MIPMAP_MODE_BASE = 0,
67704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_MIPMAP_MODE_NEAREST = 1,
67804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_MIPMAP_MODE_LINEAR = 2,
67904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_MIPMAP_MODE_BEGIN_RANGE = VK_TEX_MIPMAP_MODE_BASE,
68004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_MIPMAP_MODE_END_RANGE = VK_TEX_MIPMAP_MODE_LINEAR,
68104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_MIPMAP_MODE_NUM = (VK_TEX_MIPMAP_MODE_LINEAR - VK_TEX_MIPMAP_MODE_BASE + 1),
68204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
68304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkTexMipmapMode;
68404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
68504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
6865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_TEX_ADDRESS_MODE_WRAP = 0,
6875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_TEX_ADDRESS_MODE_MIRROR = 1,
6885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_TEX_ADDRESS_MODE_CLAMP = 2,
6895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_TEX_ADDRESS_MODE_MIRROR_ONCE = 3,
6905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_TEX_ADDRESS_MODE_CLAMP_BORDER = 4,
691acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VK_TEX_ADDRESS_MODE_BEGIN_RANGE = VK_TEX_ADDRESS_MODE_WRAP,
692acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VK_TEX_ADDRESS_MODE_END_RANGE = VK_TEX_ADDRESS_MODE_CLAMP_BORDER,
693acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VK_TEX_ADDRESS_MODE_NUM = (VK_TEX_ADDRESS_MODE_CLAMP_BORDER - VK_TEX_ADDRESS_MODE_WRAP + 1),
694acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VK_TEX_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
6955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkTexAddressMode;
69604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
69704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
69804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
69904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
70004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
70104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
70204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
70304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
70404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
70504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
70604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_NUM = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
70704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
70804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBorderColor;
70904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
71004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
71104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_SAMPLER = 0,
71204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
71304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
71404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
71504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
71604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
71704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
71804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
71904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
72004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
72104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
72204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
72304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
72404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_NUM = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
72504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
72604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorType;
72704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
72804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
72904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_LOAD = 0,
73004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
73104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
73204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
73304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
73404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_NUM = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
73504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
73604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentLoadOp;
73704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
73804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
73904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_STORE = 0,
74004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
74104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
74204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
74304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_NUM = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
74404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
74504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentStoreOp;
74604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
74704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
74804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_BIND_POINT_COMPUTE = 0,
74904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_BIND_POINT_GRAPHICS = 1,
75004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
75104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
75204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_BIND_POINT_NUM = (VK_PIPELINE_BIND_POINT_GRAPHICS - VK_PIPELINE_BIND_POINT_COMPUTE + 1),
75304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
75404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineBindPoint;
75504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
75604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
75704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_BUFFER_LEVEL_PRIMARY = 0,
75804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_BUFFER_LEVEL_SECONDARY = 1,
75904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_BUFFER_LEVEL_BEGIN_RANGE = VK_CMD_BUFFER_LEVEL_PRIMARY,
76004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_BUFFER_LEVEL_END_RANGE = VK_CMD_BUFFER_LEVEL_SECONDARY,
76104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_BUFFER_LEVEL_NUM = (VK_CMD_BUFFER_LEVEL_SECONDARY - VK_CMD_BUFFER_LEVEL_PRIMARY + 1),
76204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
76304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdBufferLevel;
76404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
76504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
76604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_UINT16 = 0,
76704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_UINT32 = 1,
76804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
76904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
77004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_NUM = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
77104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
77204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkIndexType;
77304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
77404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
77504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_INLINE = 0,
77604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_SECONDARY_CMD_BUFFERS = 1,
77704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_BEGIN_RANGE = VK_RENDER_PASS_CONTENTS_INLINE,
77804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_END_RANGE = VK_RENDER_PASS_CONTENTS_SECONDARY_CMD_BUFFERS,
77904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_NUM = (VK_RENDER_PASS_CONTENTS_SECONDARY_CMD_BUFFERS - VK_RENDER_PASS_CONTENTS_INLINE + 1),
78004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
78104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassContents;
78204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
78304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
78404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
78504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
78604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
78704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
78804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
78904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
79004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
79104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
79204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
79304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
79404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
7955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_FORMAT_FEATURE_BLIT_SOURCE_BIT = 0x00000400,
7965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_FORMAT_FEATURE_BLIT_DESTINATION_BIT = 0x00000800,
79704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatFeatureFlagBits;
79804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFormatFeatureFlags;
79904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
80004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
80104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_TRANSFER_SOURCE_BIT = 0x00000001,
80204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_TRANSFER_DESTINATION_BIT = 0x00000002,
80304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
80404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
80504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
8065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
80704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
80804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
80904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageUsageFlagBits;
81004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkImageUsageFlags;
81104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
81204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
8135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
8145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
8155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
8165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
8175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
8185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageCreateFlagBits;
8195ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageCreateFlags;
8205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
8215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef enum {
8225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_1_BIT = 0x00000001,
8235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_2_BIT = 0x00000002,
8245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_4_BIT = 0x00000004,
8255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_8_BIT = 0x00000008,
8265ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_16_BIT = 0x00000010,
8275ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_32_BIT = 0x00000020,
8285ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_64_BIT = 0x00000040,
8295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkSampleCountFlagBits;
8305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkSampleCountFlags;
8315ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
8325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef enum {
83304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_GRAPHICS_BIT = 0x00000001,
83404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_COMPUTE_BIT = 0x00000002,
83504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_DMA_BIT = 0x00000004,
83604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_SPARSE_MEMMGR_BIT = 0x00000008,
83704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_EXTENDED_BIT = 0x40000000,
83804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueueFlagBits;
83904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueueFlags;
84004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
84104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
84204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_PROPERTY_DEVICE_ONLY = 0,
84304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000001,
84404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_PROPERTY_HOST_NON_COHERENT_BIT = 0x00000002,
84504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_PROPERTY_HOST_UNCACHED_BIT = 0x00000004,
846acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000008,
84704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryPropertyFlagBits;
84804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryPropertyFlags;
84904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
85004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
8515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_MEMORY_HEAP_HOST_LOCAL_BIT = 0x00000001,
85204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeapFlagBits;
85304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryHeapFlags;
85404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryMapFlags;
85504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
85604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
857a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
858a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
859a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
860a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
861a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkImageAspectFlagBits;
862a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
863a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef enum {
86404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SPARSE_IMAGE_FMT_SINGLE_MIPTAIL_BIT = 0x00000001,
86504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SPARSE_IMAGE_FMT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
86604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SPARSE_IMAGE_FMT_NONSTD_BLOCK_SIZE_BIT = 0x00000004,
86704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatFlagBits;
86804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseImageFormatFlags;
86904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
87004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
871a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VK_SPARSE_MEMORY_BIND_REPLICATE_BLOCK_BIT = 0x00000001,
87204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseMemoryBindFlagBits;
87304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseMemoryBindFlags;
87404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
87504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
87604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
87704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateFlagBits;
87804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFenceCreateFlags;
87904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSemaphoreCreateFlags;
88004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkEventCreateFlags;
88104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
88204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
883ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
884ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
885ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
886ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
887ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
888ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
889ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
890ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
891ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
892ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
893ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
89404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPipelineStatisticFlagBits;
89504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryPipelineStatisticFlags;
89604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
89704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
89804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_DEFAULT = 0,
89904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_64_BIT = 0x00000001,
90004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
90104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
90204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
90304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryResultFlagBits;
90404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryResultFlags;
90504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
90604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
90704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_TRANSFER_SOURCE_BIT = 0x00000001,
90804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_TRANSFER_DESTINATION_BIT = 0x00000002,
90904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
91004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
91104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
91204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
91304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
91404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
91504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
91604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferUsageFlagBits;
91704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkBufferUsageFlags;
91804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
91904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
9205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
92104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
92204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
92304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCreateFlagBits;
92404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkBufferCreateFlags;
9255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageAspectFlags;
92604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
92704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
9285ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_VIEW_CREATE_READ_ONLY_DEPTH_BIT = 0x00000001,
9295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_VIEW_CREATE_READ_ONLY_STENCIL_BIT = 0x00000002,
9305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageViewCreateFlagBits;
9315ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageViewCreateFlags;
93204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderModuleCreateFlags;
93304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderCreateFlags;
93404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
93504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
936a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
937a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
938a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
939a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
940a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
941a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
942a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
943a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkShaderStageFlagBits;
944a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
945a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef enum {
94604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_R_BIT = 0x00000001,
94704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_G_BIT = 0x00000002,
94804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_B_BIT = 0x00000004,
94904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_A_BIT = 0x00000008,
95004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkChannelFlagBits;
95104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkChannelFlags;
95204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
95304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
95404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
95504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
95604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
95704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineCreateFlagBits;
95804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkPipelineCreateFlags;
95904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderStageFlags;
96004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
96104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
962fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
963fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall} VkDescriptorPoolCreateFlagBits;
964fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolCreateFlags;
965fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolResetFlags;
966fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
967fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef enum {
9685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
9695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkAttachmentDescriptionFlagBits;
9705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkAttachmentDescriptionFlags;
97104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSubpassDescriptionFlags;
97204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
97304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
97404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
97504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
97604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
97704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
978ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
979ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
98004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
98104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
98204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
98304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
98404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
98504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
98604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
9875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_PIPELINE_STAGE_HOST_BIT = 0x00002000,
98804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_ALL_GRAPHICS = 0x000007FF,
9895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_PIPELINE_STAGE_ALL_GPU_COMMANDS = 0x00001FFF,
99004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineStageFlagBits;
99104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkPipelineStageFlags;
99204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
99304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
99404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_HOST_WRITE_BIT = 0x00000001,
99504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_SHADER_WRITE_BIT = 0x00000002,
99604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT = 0x00000004,
99704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000008,
99804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_TRANSFER_BIT = 0x00000010,
99904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryOutputFlagBits;
100004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryOutputFlags;
100104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
100204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
100304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_HOST_READ_BIT = 0x00000001,
100404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT = 0x00000002,
100504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_INDEX_FETCH_BIT = 0x00000004,
100604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT = 0x00000008,
100704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_UNIFORM_READ_BIT = 0x00000010,
100804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_SHADER_READ_BIT = 0x00000020,
100904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT = 0x00000040,
101004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000080,
101104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_INPUT_ATTACHMENT_BIT = 0x00000100,
101204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_TRANSFER_BIT = 0x00000200,
101304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryInputFlagBits;
101404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryInputFlags;
101504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
101604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
101704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
101804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
101904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdPoolCreateFlagBits;
102004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkCmdPoolCreateFlags;
102104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
102204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
10235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_CMD_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
102404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdPoolResetFlagBits;
102504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkCmdPoolResetFlags;
102604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
102704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
1028a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_CMD_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
1029a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_CMD_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
1030a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_CMD_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
1031a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkCmdBufferUsageFlagBits;
1032a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef VkFlags VkCmdBufferUsageFlags;
103304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
103404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
10355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_CMD_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
103604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdBufferResetFlagBits;
103704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkCmdBufferResetFlags;
103804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
103904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
10405ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_NONE = 0,
10415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
10425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_BACK_BIT = 0x00000002,
10435ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkStencilFaceFlagBits;
10445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkStencilFaceFlags;
104504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
104604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
104704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_CONTROL_CONSERVATIVE_BIT = 0x00000001,
104804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryControlFlagBits;
104904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryControlFlags;
105004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
105104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void* (VKAPI *PFN_vkAllocFunction)(
105204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                           pUserData,
105304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                          size,
105404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                          alignment,
105504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSystemAllocType               allocType);
105604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
105704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkFreeFunction)(
105804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                           pUserData,
105904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                           pMem);
106004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10615ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkVoidFunction)(void);
10625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
10635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
10645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStructureType                             sType;
10655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const void*                                 pNext;
10665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const char*                                 pAppName;
10675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    appVersion;
10685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const char*                                 pEngineName;
10695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    engineVersion;
10705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    apiVersion;
10715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkApplicationInfo;
10725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
107304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
107404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pUserData;
107504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    PFN_vkAllocFunction                         pfnAlloc;
107604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    PFN_vkFreeFunction                          pfnFree;
107704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAllocCallbacks;
107804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
107904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
108004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
108104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
108204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkApplicationInfo*                    pAppInfo;
108304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkAllocCallbacks*                     pAllocCb;
108404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    layerCount;
108504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledLayerNames;
108604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    extensionCount;
108704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledExtensionNames;
108804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkInstanceCreateInfo;
108904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
109004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
109104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    robustBufferAccess;
109204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    fullDrawIndexUint32;
109304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    imageCubeArray;
109404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    independentBlend;
109504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    geometryShader;
109604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    tessellationShader;
109704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sampleRateShading;
109804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    dualSourceBlend;
109904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    logicOp;
11005ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    multiDrawIndirect;
1101ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkBool32                                    depthClamp;
110204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthBiasClamp;
110304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    fillModeNonSolid;
110404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthBounds;
110504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    wideLines;
1106a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkBool32                                    strictLines;
110704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    largePoints;
1108fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkBool32                                    alphaToOne;
1109fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkBool32                                    multiViewport;
1110fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkBool32                                    samplerAnisotropy;
111104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    textureCompressionETC2;
111204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    textureCompressionASTC_LDR;
111304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    textureCompressionBC;
11145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    occlusionQueryNonConservative;
111504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    pipelineStatisticsQuery;
111604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    vertexSideEffects;
111704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    tessellationSideEffects;
111804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    geometrySideEffects;
111904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    fragmentSideEffects;
112004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderTessellationPointSize;
112104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderGeometryPointSize;
11225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    shaderImageGatherExtended;
112304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageImageExtendedFormats;
112404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageImageMultisample;
112504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderUniformBufferArrayDynamicIndexing;
112604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderSampledImageArrayDynamicIndexing;
112704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageBufferArrayDynamicIndexing;
112804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageImageArrayDynamicIndexing;
112904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderClipDistance;
113004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderCullDistance;
113104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderFloat64;
113204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderInt64;
113304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderInt16;
113404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderResourceResidency;
113504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderResourceMinLOD;
11365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    sparseBinding;
113704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyBuffer;
113804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyImage2D;
113904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyImage3D;
114004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency2Samples;
114104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency4Samples;
114204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency8Samples;
114304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency16Samples;
114404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyAliased;
114504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceFeatures;
114604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
114704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
114804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatFeatureFlags                        linearTilingFeatures;
114904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatFeatureFlags                        optimalTilingFeatures;
11505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkFormatFeatureFlags                        bufferFeatures;
115104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatProperties;
115204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
115304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
11545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     width;
11555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     height;
11565ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     depth;
11575ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent3D;
11585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
11595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
11605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkExtent3D                                  maxExtent;
11615ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxMipLevels;
1162a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    maxArrayLayers;
11635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkSampleCountFlags                          sampleCounts;
11645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                maxResourceSize;
116504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageFormatProperties;
116604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
116704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
116804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageDimension1D;
116904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageDimension2D;
117004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageDimension3D;
117104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageDimensionCube;
117204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageArrayLayers;
11735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkSampleCountFlags                          sampleCounts;
117404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxTexelBufferSize;
1175fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    maxUniformBufferRange;
1176fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    maxStorageBufferRange;
117704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPushConstantsSize;
117804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxMemoryAllocationCount;
117904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                bufferImageGranularity;
11805ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                sparseAddressSpaceSize;
118104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxBoundDescriptorSets;
118204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorSamplers;
118304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorUniformBuffers;
118404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorStorageBuffers;
118504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorSampledImages;
118604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorStorageImages;
118704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetSamplers;
118804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetUniformBuffers;
11895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxDescriptorSetUniformBuffersDynamic;
119004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetStorageBuffers;
11915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxDescriptorSetStorageBuffersDynamic;
119204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetSampledImages;
119304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetStorageImages;
119404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputAttributes;
11955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxVertexInputBindings;
119604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputAttributeOffset;
119704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputBindingStride;
119804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexOutputComponents;
1199ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationGenLevel;
1200ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationPatchSize;
1201ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerVertexInputComponents;
1202ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerVertexOutputComponents;
1203ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerPatchOutputComponents;
1204ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlTotalOutputComponents;
1205ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationEvaluationInputComponents;
1206ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationEvaluationOutputComponents;
120704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryShaderInvocations;
120804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryInputComponents;
120904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryOutputComponents;
121004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryOutputVertices;
121104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryTotalOutputComponents;
121204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFragmentInputComponents;
1213fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    maxFragmentOutputAttachments;
1214fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    maxFragmentDualSourceAttachments;
121504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFragmentCombinedOutputResources;
121604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeSharedMemorySize;
121704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupCount[3];
121804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupInvocations;
121904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupSize[3];
122004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subPixelPrecisionBits;
122104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subTexelPrecisionBits;
122204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipmapPrecisionBits;
122304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDrawIndexedIndexValue;
122404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDrawIndirectInstanceCount;
122504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    primitiveRestartForPatches;
122604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxSamplerLodBias;
122704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxSamplerAnisotropy;
122804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxViewports;
122904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxViewportDimensions[2];
123004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       viewportBoundsRange[2];
123104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    viewportSubPixelBits;
123204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    minMemoryMapAlignment;
123304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    minTexelBufferOffsetAlignment;
123404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    minUniformBufferOffsetAlignment;
123504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    minStorageBufferOffsetAlignment;
1236fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    int32_t                                     minTexelOffset;
123704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxTexelOffset;
1238fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    int32_t                                     minTexelGatherOffset;
123904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxTexelGatherOffset;
124004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minInterpolationOffset;
124104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxInterpolationOffset;
124204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subPixelInterpolationOffsetBits;
124304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferWidth;
124404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferHeight;
124504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferLayers;
124604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferColorSamples;
124704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferDepthSamples;
124804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferStencilSamples;
124904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxColorAttachments;
125004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampledImageColorSamples;
125104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampledImageDepthSamples;
125204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampledImageIntegerSamples;
125304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxStorageImageSamples;
125404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampleMaskWords;
1255a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       timestampPeriod;
125604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxClipDistances;
125704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxCullDistances;
125804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxCombinedClipAndCullDistances;
1259fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    discreteQueuePriorities;
126004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       pointSizeRange[2];
126104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       lineWidthRange[2];
126204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       pointSizeGranularity;
126304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       lineWidthGranularity;
1264a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    uint32_t                                    recommendedBufferCopyOffsetAlignment;
1265a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    uint32_t                                    recommendedBufferCopyRowPitchAlignment;
126604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceLimits;
126704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
126804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
12695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyStandard2DBlockShape;
12705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyStandard2DMSBlockShape;
12715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyStandard3DBlockShape;
12725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyAlignedMipSize;
12735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyNonResident;
12745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyNonResidentStrict;
12755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPhysicalDeviceSparseProperties;
12765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
12775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
127804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    apiVersion;
127904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    driverVersion;
128004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vendorId;
128104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    deviceId;
128204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceType                        deviceType;
128304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    char                                        deviceName[VK_MAX_PHYSICAL_DEVICE_NAME];
128404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint8_t                                     pipelineCacheUUID[VK_UUID_LENGTH];
12855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkPhysicalDeviceLimits                      limits;
12865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkPhysicalDeviceSparseProperties            sparseProperties;
128704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceProperties;
128804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
128904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
129004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueueFlags                                queueFlags;
129104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueCount;
1292acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    uint32_t                                    timestampValidBits;
12935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkQueueFamilyProperties;
129404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
129504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
129604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryPropertyFlags                       propertyFlags;
129704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    heapIndex;
129804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryType;
129904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
130004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
130104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
130204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryHeapFlags                           flags;
130304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeap;
130404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
130504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
130604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeCount;
130704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryType                                memoryTypes[VK_MAX_MEMORY_TYPES];
130804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryHeapCount;
130904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryHeap                                memoryHeaps[VK_MAX_MEMORY_HEAPS];
131004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceMemoryProperties;
131104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
131204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
13135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStructureType                             sType;
13145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const void*                                 pNext;
131504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex;
131604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueCount;
1317fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const float*                                pQueuePriorities;
131804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceQueueCreateInfo;
131904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
132004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
132104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
132204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1323ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    requestedQueueCount;
132404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceQueueCreateInfo*              pRequestedQueues;
132504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    layerCount;
132604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledLayerNames;
132704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    extensionCount;
132804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledExtensionNames;
132904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPhysicalDeviceFeatures*             pEnabledFeatures;
133004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceCreateInfo;
133104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
133204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
133304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    char                                        extName[VK_MAX_EXTENSION_NAME];
133404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    specVersion;
133504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkExtensionProperties;
133604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
133704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
133804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    char                                        layerName[VK_MAX_EXTENSION_NAME];
133904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    specVersion;
134004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    implVersion;
134104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    char                                        description[VK_MAX_DESCRIPTION];
134204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLayerProperties;
134304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
134404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1345a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    waitSemCount;
1346a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
1347a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    cmdBufferCount;
1348a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkCmdBuffer*                          pCommandBuffers;
1349a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    signalSemCount;
1350a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkSemaphore*                          pSignalSemaphores;
1351a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall} VkSubmitInfo;
1352a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall
1353a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Halltypedef struct {
135404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
135504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
135604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                allocationSize;
135704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeIndex;
135804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryAllocInfo;
135904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
136004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
136104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
136204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
136304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem;
136404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
136504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
136604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMappedMemoryRange;
136704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
136804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
136904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
137004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                alignment;
137104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeBits;
137204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryRequirements;
137304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
137404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1375a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageAspectFlagBits                       aspect;
137604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  imageGranularity;
137704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatFlags                    flags;
137804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatProperties;
137904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
138004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
138104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatProperties               formatProps;
138204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    imageMipTailStartLOD;
138304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailSize;
138404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailOffset;
138504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailStride;
138604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryRequirements;
138704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
138804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
138904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                rangeOffset;
139004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                rangeSize;
139104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                memOffset;
139204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem;
139304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseMemoryBindFlags                     flags;
139404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseMemoryBindInfo;
139504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
139604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1397a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageAspectFlagBits                       aspect;
139804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipLevel;
13995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    arrayLayer;
140004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresource;
140104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
140204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
140304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     x;
140404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     y;
140504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     z;
140604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkOffset3D;
140704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
140804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
140904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresource                          subresource;
141004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  offset;
141104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
141204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                memOffset;
141304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem;
141404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseMemoryBindFlags                     flags;
141504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryBindInfo;
141604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
141704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
141804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
141904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
142004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFenceCreateFlags                          flags;
142104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateInfo;
142204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
142304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
142404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
142504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
142604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphoreCreateFlags                      flags;
142704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSemaphoreCreateInfo;
142804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
142904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
143004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
143104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
143204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEventCreateFlags                          flags;
143304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkEventCreateInfo;
143404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
143504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
143604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
143704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
143804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryType                                 queryType;
143904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    slots;
144004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPipelineStatisticFlags               pipelineStatistics;
144104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPoolCreateInfo;
144204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
144304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
144404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
144504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
144604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
144704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferUsageFlags                          usage;
144804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferCreateFlags                         flags;
144904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSharingMode                               sharingMode;
145004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyCount;
145104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pQueueFamilyIndices;
145204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCreateInfo;
145304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
145404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
145504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
145604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
145704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer;
145804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
145904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
146004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                range;
146104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferViewCreateInfo;
146204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
146304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
146404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
146504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
146604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 imageType;
146704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
146804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
146904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipLevels;
1470a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    arrayLayers;
147104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    samples;
147204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling;
147304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage;
147404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageCreateFlags                          flags;
147504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSharingMode                               sharingMode;
147604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyCount;
147704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pQueueFamilyIndices;
14785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageLayout                               initialLayout;
147904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCreateInfo;
148004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
148104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
148204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
148304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
148404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                rowPitch;
148504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                depthPitch;
148604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubresourceLayout;
148704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
148804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
148904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelSwizzle                            r;
149004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelSwizzle                            g;
149104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelSwizzle                            b;
149204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelSwizzle                            a;
149304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkChannelMapping;
149404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
149504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
14965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageAspectFlags                          aspectMask;
149704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    baseMipLevel;
1498a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    numLevels;
14995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    baseArrayLayer;
1500a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    numLayers;
150104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresourceRange;
150204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
150304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
150404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
150504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
150604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image;
150704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageViewType                             viewType;
150804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
150904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelMapping                            channels;
151004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresourceRange                     subresourceRange;
15115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageViewCreateFlags                      flags;
151204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewCreateInfo;
151304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
151404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
151504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
151604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
151704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      codeSize;
1518a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    const uint32_t*                             pCode;
151904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModuleCreateFlags                   flags;
152004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkShaderModuleCreateInfo;
152104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
152204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
152304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
152404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
152504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule                              module;
152604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName;
152704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderCreateFlags                         flags;
1528a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkShaderStageFlagBits                       stage;
152904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkShaderCreateInfo;
153004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
153104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
153204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
153304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
153404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      initialSize;
153504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 initialData;
153604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      maxSize;
153704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineCacheCreateInfo;
153804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
153904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
154004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    constantId;
154104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      size;
154204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    offset;
154304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationMapEntry;
154404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
154504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
154604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mapEntryCount;
154704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSpecializationMapEntry*             pMap;
154804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      dataSize;
154904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pData;
155004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationInfo;
155104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
155204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
155304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
155404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
155504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShader                                    shader;
155604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSpecializationInfo*                 pSpecializationInfo;
155704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineShaderStageCreateInfo;
155804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
155904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
156004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    binding;
156104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    strideInBytes;
156204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkVertexInputStepRate                       stepRate;
156304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputBindingDescription;
156404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
156504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
156604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    location;
156704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    binding;
156804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
156904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    offsetInBytes;
157004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputAttributeDescription;
157104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
157204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
157304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
157404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
157504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bindingCount;
157604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
157704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attributeCount;
157804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
157904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineVertexInputStateCreateInfo;
158004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
158104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
158204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
158304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
158404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPrimitiveTopology                         topology;
158504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    primitiveRestartEnable;
158604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineInputAssemblyStateCreateInfo;
158704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
158804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
158904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
159004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
159104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    patchControlPoints;
159204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineTessellationStateCreateInfo;
159304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
159404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
15955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       originX;
15965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       originY;
15975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       width;
15985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       height;
15995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepth;
16005ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepth;
16015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkViewport;
16025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
16045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     x;
16055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     y;
16065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkOffset2D;
16075ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
16095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     width;
16105ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     height;
16115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent2D;
16125ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
16145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkOffset2D                                  offset;
16155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkExtent2D                                  extent;
16165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkRect2D;
16175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
161904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
162004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
162104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    viewportCount;
16225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkViewport*                           pViewports;
16235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    scissorCount;
16245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkRect2D*                             pScissors;
162504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineViewportStateCreateInfo;
162604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
162704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
162804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
162904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1630ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkBool32                                    depthClampEnable;
163104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    rasterizerDiscardEnable;
163204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFillMode                                  fillMode;
163304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCullMode                                  cullMode;
163404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFrontFace                                 frontFace;
16355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    depthBiasEnable;
1636a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasConstantFactor;
16375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBiasClamp;
1638a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasSlopeFactor;
16395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       lineWidth;
164004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineRasterStateCreateInfo;
164104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
164204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
164304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
164404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
164504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rasterSamples;
164604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sampleShadingEnable;
164704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minSampleShading;
16485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkSampleMask*                         pSampleMask;
1649acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VkBool32                                    alphaToCoverageEnable;
1650acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VkBool32                                    alphaToOneEnable;
165104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineMultisampleStateCreateInfo;
165204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
165304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
165404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOp                                 stencilFailOp;
165504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOp                                 stencilPassOp;
165604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOp                                 stencilDepthFailOp;
165704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCompareOp                                 stencilCompareOp;
16585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilCompareMask;
16595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilWriteMask;
16605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilReference;
166104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOpState;
166204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
166304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
166404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
166504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
166604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthTestEnable;
166704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthWriteEnable;
166804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCompareOp                                 depthCompareOp;
16695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    depthBoundsTestEnable;
167004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    stencilTestEnable;
167104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOpState                            front;
167204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOpState                            back;
16735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepthBounds;
16745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepthBounds;
167504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineDepthStencilStateCreateInfo;
167604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
167704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
167804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    blendEnable;
167904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlend                                     srcBlendColor;
168004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlend                                     destBlendColor;
168104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlendOp                                   blendOpColor;
168204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlend                                     srcBlendAlpha;
168304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlend                                     destBlendAlpha;
168404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlendOp                                   blendOpAlpha;
168504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelFlags                              channelWriteMask;
168604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendAttachmentState;
168704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
168804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
168904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
169004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
169104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    logicOpEnable;
169204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLogicOp                                   logicOp;
169304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
169404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineColorBlendAttachmentState*  pAttachments;
16955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       blendConst[4];
169604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendStateCreateInfo;
169704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
169804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
169904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
170004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
17015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    dynamicStateCount;
17025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkDynamicState*                       pDynamicStates;
17035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPipelineDynamicStateCreateInfo;
17045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
17055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
17065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStructureType                             sType;
17075ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const void*                                 pNext;
170804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stageCount;
170904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineShaderStageCreateInfo*      pStages;
171004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
171104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
171204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineTessellationStateCreateInfo* pTessellationState;
171304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineViewportStateCreateInfo*    pViewportState;
171404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineRasterStateCreateInfo*      pRasterState;
171504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
171604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
171704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineColorBlendStateCreateInfo*  pColorBlendState;
17185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkPipelineDynamicStateCreateInfo*     pDynamicState;
171904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCreateFlags                       flags;
172004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout;
172104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
172204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subpass;
172304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  basePipelineHandle;
172404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     basePipelineIndex;
172504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkGraphicsPipelineCreateInfo;
172604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
172704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
172804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
172904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
17305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkPipelineShaderStageCreateInfo             stage;
173104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCreateFlags                       flags;
173204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout;
173304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  basePipelineHandle;
173404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     basePipelineIndex;
173504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkComputePipelineCreateInfo;
173604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
173704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
173804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags;
173904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    start;
174004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    length;
174104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPushConstantRange;
174204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
174304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
174404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
174504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
174604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    descriptorSetCount;
174704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayout*                pSetLayouts;
174804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    pushConstantRangeCount;
174904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPushConstantRange*                  pPushConstantRanges;
175004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineLayoutCreateInfo;
175104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
175204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
175304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
175404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
175504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkTexFilter                                 magFilter;
175604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkTexFilter                                 minFilter;
175704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkTexMipmapMode                             mipMode;
17585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkTexAddressMode                            addressModeU;
17595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkTexAddressMode                            addressModeV;
17605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkTexAddressMode                            addressModeW;
176104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       mipLodBias;
176204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxAnisotropy;
176304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    compareEnable;
176404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCompareOp                                 compareOp;
176504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minLod;
176604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxLod;
176704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBorderColor                               borderColor;
17685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    unnormalizedCoordinates;
176904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSamplerCreateInfo;
177004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
177104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
177204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            descriptorType;
177304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    arraySize;
177404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags;
177504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSampler*                            pImmutableSamplers;
177604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutBinding;
177704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
177804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
177904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
178004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
178104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count;
178204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayoutBinding*         pBinding;
178304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutCreateInfo;
178404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
178504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
178604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            type;
178704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count;
178804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorTypeCount;
178904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
179004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
179104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
179204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1793fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPoolCreateFlags                 flags;
17945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxSets;
179504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count;
179604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorTypeCount*                pTypeCount;
179704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorPoolCreateInfo;
179804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
179904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1800fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkStructureType                             sType;
1801fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const void*                                 pNext;
1802fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPool                            descriptorPool;
1803fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    count;
1804fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorSetLayout*                pSetLayouts;
1805fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall} VkDescriptorSetAllocInfo;
1806fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
1807fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef struct {
1808a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkSampler                                   sampler;
1809a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageView                                 imageView;
1810a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageLayout                               imageLayout;
1811a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkDescriptorImageInfo;
1812a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
1813a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef struct {
18145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBuffer                                    buffer;
18155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                offset;
18165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                range;
18175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDescriptorBufferInfo;
18185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
181904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
182004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
182104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
182204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSet                             destSet;
182304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destBinding;
182404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destArrayElement;
182504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count;
182604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            descriptorType;
1827fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorImageInfo*                pImageInfo;
1828fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorBufferInfo*               pBufferInfo;
1829fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkBufferView*                         pTexelBufferView;
183004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkWriteDescriptorSet;
183104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
183204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
183304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
183404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
183504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSet                             srcSet;
183604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcBinding;
183704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcArrayElement;
183804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSet                             destSet;
183904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destBinding;
184004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destArrayElement;
184104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count;
184204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCopyDescriptorSet;
184304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
184404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
184504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
184604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
184704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
184804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
18495ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkImageView*                          pAttachments;
185004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    width;
185104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    height;
185204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    layers;
185304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFramebufferCreateInfo;
185404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
185504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
185604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
185704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
185804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
185904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    samples;
186004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentLoadOp                          loadOp;
186104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentStoreOp                         storeOp;
186204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentLoadOp                          stencilLoadOp;
186304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentStoreOp                         stencilStoreOp;
186404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               initialLayout;
186504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               finalLayout;
18665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkAttachmentDescriptionFlags                flags;
186704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentDescription;
186804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
186904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
187004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachment;
187104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               layout;
187204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentReference;
187304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
187404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
187504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
187604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
187704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint;
187804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSubpassDescriptionFlags                   flags;
187904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    inputCount;
18805ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pInputAttachments;
188104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    colorCount;
18825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pColorAttachments;
18835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pResolveAttachments;
188404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentReference                       depthStencilAttachment;
188504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    preserveCount;
18865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pPreserveAttachments;
188704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDescription;
188804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
188904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
189004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
189104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
189204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcSubpass;
189304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destSubpass;
189404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask;
189504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        destStageMask;
189604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryOutputFlags                         outputMask;
189704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryInputFlags                          inputMask;
189804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    byRegion;
189904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDependency;
190004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
190104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
190204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
190304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
190404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
190504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkAttachmentDescription*              pAttachments;
190604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subpassCount;
190704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSubpassDescription*                 pSubpasses;
190804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    dependencyCount;
190904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSubpassDependency*                  pDependencies;
191004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassCreateInfo;
191104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
191204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
191304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
191404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
191504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex;
191604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPoolCreateFlags                        flags;
191704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdPoolCreateInfo;
191804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
191904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
192004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
192104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
192204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPool                                   cmdPool;
192304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBufferLevel                            level;
1924fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    count;
1925fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall} VkCmdBufferAllocInfo;
192604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
192704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
192804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
192904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1930a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkCmdBufferUsageFlags                       flags;
193104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
19325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    subpass;
193304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer                               framebuffer;
193404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdBufferBeginInfo;
193504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
193604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
193704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                srcOffset;
193804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destOffset;
193904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                copySize;
194004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCopy;
194104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
194204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1943a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageAspectFlags                          aspect;
19445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    mipLevel;
1945a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    baseArrayLayer;
1946a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    numLayers;
19475ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageSubresourceCopy;
19485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
19495ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
19505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      srcSubresource;
195104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
19525ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      destSubresource;
195304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  destOffset;
195404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
195504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCopy;
195604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
195704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
19585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      srcSubresource;
195904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
196004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  srcExtent;
19615ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      destSubresource;
196204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  destOffset;
196304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  destExtent;
196404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageBlit;
196504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
196604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
196704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                bufferOffset;
196804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bufferRowLength;
196904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bufferImageHeight;
19705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      imageSubresource;
197104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  imageOffset;
197204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  imageExtent;
197304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferImageCopy;
197404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
197504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef union {
19765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       float32[4];
19775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     int32[4];
19785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    uint32[4];
197904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkClearColorValue;
198004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
198104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
19825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depth;
19835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencil;
19845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkClearDepthStencilValue;
19855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
1986ae38f7355fd03b777313e13586585a74e0dee05bJesse Halltypedef union {
1987ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearColorValue                           color;
1988ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearDepthStencilValue                    depthStencil;
1989ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearValue;
1990ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
1991ae38f7355fd03b777313e13586585a74e0dee05bJesse Halltypedef struct {
1992ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkImageAspectFlags                          aspectMask;
1993ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    colorAttachment;
1994ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearValue                                clearValue;
1995ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearAttachment;
1996ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
19975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
1998a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkRect2D                                    rect;
1999a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    baseArrayLayer;
2000a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    numLayers;
2001a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkClearRect;
200204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
200304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
20045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      srcSubresource;
200504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
20065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      destSubresource;
200704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  destOffset;
200804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
200904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageResolve;
201004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
201104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
201204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
201304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
201404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
201504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer                               framebuffer;
201604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRect2D                                    renderArea;
20175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    clearValueCount;
20185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkClearValue*                         pClearValues;
201904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassBeginInfo;
202004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
202104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
202204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
202304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
202404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryOutputFlags                         outputMask;
202504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryInputFlags                          inputMask;
202604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcQueueFamilyIndex;
202704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destQueueFamilyIndex;
202804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer;
202904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
203004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
203104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferMemoryBarrier;
203204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
203304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
203404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    x;
203504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    y;
203604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    z;
203704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDispatchIndirectCmd;
203804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
203904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
204004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    indexCount;
204104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    instanceCount;
204204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstIndex;
204304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     vertexOffset;
204404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstInstance;
204504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDrawIndexedIndirectCmd;
204604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
204704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
204804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vertexCount;
204904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    instanceCount;
205004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstVertex;
205104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstInstance;
205204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDrawIndirectCmd;
205304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
205404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
205504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
205604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
205704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryOutputFlags                         outputMask;
205804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryInputFlags                          inputMask;
205904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               oldLayout;
206004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               newLayout;
206104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcQueueFamilyIndex;
206204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destQueueFamilyIndex;
206304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image;
206404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresourceRange                     subresourceRange;
206504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageMemoryBarrier;
206604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
206704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
206804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
206904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
207004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryOutputFlags                         outputMask;
207104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryInputFlags                          inputMask;
207204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryBarrier;
207304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
207404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
207504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, VkInstance* pInstance);
20765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyInstance)(VkInstance instance);
207704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
2078606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
2079606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
2080606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
2081606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
2082606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pCount, VkQueueFamilyProperties* pQueueFamilyProperties);
2083606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
208404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef PFN_vkVoidFunction (VKAPI *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
208504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef PFN_vkVoidFunction (VKAPI *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
208604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, VkDevice* pDevice);
20875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyDevice)(VkDevice device);
20885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pCount, VkExtensionProperties* pProperties);
20895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pCount, VkExtensionProperties* pProperties);
20905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pCount, VkLayerProperties* pProperties);
20915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pCount, VkLayerProperties* pProperties);
2092606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
2093a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Halltypedef VkResult (VKAPI *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmitInfo, VkFence fence);
209404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkQueueWaitIdle)(VkQueue queue);
209504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkDeviceWaitIdle)(VkDevice device);
209604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkAllocMemory)(VkDevice device, const VkMemoryAllocInfo* pAllocInfo, VkDeviceMemory* pMem);
20975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory mem);
209804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory mem, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
20995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory mem);
210004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memRangeCount, const VkMappedMemoryRange* pMemRanges);
210104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memRangeCount, const VkMappedMemoryRange* pMemRanges);
2102606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
210304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory mem, VkDeviceSize memOffset);
210404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory mem, VkDeviceSize memOffset);
2105606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
2106606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
2107606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pNumRequirements, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
2108606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, uint32_t samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pNumProperties, VkSparseImageFormatProperties* pProperties);
210904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkQueueBindSparseBufferMemory)(VkQueue queue, VkBuffer buffer, uint32_t numBindings, const VkSparseMemoryBindInfo* pBindInfo);
211004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkQueueBindSparseImageOpaqueMemory)(VkQueue queue, VkImage image, uint32_t numBindings, const VkSparseMemoryBindInfo* pBindInfo);
211104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkQueueBindSparseImageMemory)(VkQueue queue, VkImage image, uint32_t numBindings, const VkSparseImageMemoryBindInfo* pBindInfo);
211204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, VkFence* pFence);
21135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyFence)(VkDevice device, VkFence fence);
211404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
211504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
211604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
211704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, VkSemaphore* pSemaphore);
21185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore);
211904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, VkEvent* pEvent);
21205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyEvent)(VkDevice device, VkEvent event);
212104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
212204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkSetEvent)(VkDevice device, VkEvent event);
212304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetEvent)(VkDevice device, VkEvent event);
212404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, VkQueryPool* pQueryPool);
21255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool);
2126a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Halltypedef VkResult (VKAPI *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
212704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, VkBuffer* pBuffer);
21285ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer);
212904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, VkBufferView* pView);
21305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView);
213104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, VkImage* pImage);
21325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyImage)(VkDevice device, VkImage image);
2133606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
213404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, VkImageView* pView);
21355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView);
213604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModule* pShaderModule);
21375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule);
213804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateShader)(VkDevice device, const VkShaderCreateInfo* pCreateInfo, VkShader* pShader);
21395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyShader)(VkDevice device, VkShader shader);
214004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, VkPipelineCache* pPipelineCache);
21415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache);
2142a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
214304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache destCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
214404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, const VkGraphicsPipelineCreateInfo* pCreateInfos, VkPipeline* pPipelines);
214504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, const VkComputePipelineCreateInfo* pCreateInfos, VkPipeline* pPipelines);
21465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline);
214704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, VkPipelineLayout* pPipelineLayout);
21485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout);
214904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, VkSampler* pSampler);
21505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler);
215104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayout* pSetLayout);
21525ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout);
21535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, VkDescriptorPool* pDescriptorPool);
21545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool);
2155fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkResult (VKAPI *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
2156fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkResult (VKAPI *PFN_vkAllocDescriptorSets)(VkDevice device, const VkDescriptorSetAllocInfo* pAllocInfo, VkDescriptorSet* pDescriptorSets);
215704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t count, const VkDescriptorSet* pDescriptorSets);
21585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t writeCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t copyCount, const VkCopyDescriptorSet* pDescriptorCopies);
215904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, VkFramebuffer* pFramebuffer);
21605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer);
216104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, VkRenderPass* pRenderPass);
21625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass);
2163606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
216404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateCommandPool)(VkDevice device, const VkCmdPoolCreateInfo* pCreateInfo, VkCmdPool* pCmdPool);
21655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyCommandPool)(VkDevice device, VkCmdPool cmdPool);
216604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetCommandPool)(VkDevice device, VkCmdPool cmdPool, VkCmdPoolResetFlags flags);
2167fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkResult (VKAPI *PFN_vkAllocCommandBuffers)(VkDevice device, const VkCmdBufferAllocInfo* pAllocInfo, VkCmdBuffer* pCmdBuffers);
2168fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef void (VKAPI *PFN_vkFreeCommandBuffers)(VkDevice device, VkCmdPool cmdPool, uint32_t count, const VkCmdBuffer* pCommandBuffers);
216904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkBeginCommandBuffer)(VkCmdBuffer cmdBuffer, const VkCmdBufferBeginInfo* pBeginInfo);
217004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkEndCommandBuffer)(VkCmdBuffer cmdBuffer);
217104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetCommandBuffer)(VkCmdBuffer cmdBuffer, VkCmdBufferResetFlags flags);
217204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBindPipeline)(VkCmdBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
21735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetViewport)(VkCmdBuffer cmdBuffer, uint32_t viewportCount, const VkViewport* pViewports);
21745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetScissor)(VkCmdBuffer cmdBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
21755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetLineWidth)(VkCmdBuffer cmdBuffer, float lineWidth);
2176a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Halltypedef void (VKAPI *PFN_vkCmdSetDepthBias)(VkCmdBuffer cmdBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
21775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetBlendConstants)(VkCmdBuffer cmdBuffer, const float blendConst[4]);
21785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetDepthBounds)(VkCmdBuffer cmdBuffer, float minDepthBounds, float maxDepthBounds);
21795ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetStencilCompareMask)(VkCmdBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilCompareMask);
21805ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetStencilWriteMask)(VkCmdBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilWriteMask);
21815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetStencilReference)(VkCmdBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilReference);
218204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBindDescriptorSets)(VkCmdBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets);
218304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBindIndexBuffer)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
218404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBindVertexBuffers)(VkCmdBuffer cmdBuffer, uint32_t startBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
21855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdDraw)(VkCmdBuffer cmdBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
21865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdDrawIndexed)(VkCmdBuffer cmdBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
218704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdDrawIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, uint32_t stride);
218804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdDrawIndexedIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, uint32_t stride);
218904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdDispatch)(VkCmdBuffer cmdBuffer, uint32_t x, uint32_t y, uint32_t z);
219004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdDispatchIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset);
219104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdCopyBuffer)(VkCmdBuffer cmdBuffer, VkBuffer srcBuffer, VkBuffer destBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
219204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdCopyImage)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
219304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBlitImage)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkTexFilter filter);
219404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdCopyBufferToImage)(VkCmdBuffer cmdBuffer, VkBuffer srcBuffer, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
219504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdCopyImageToBuffer)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer destBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
219604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdUpdateBuffer)(VkCmdBuffer cmdBuffer, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize dataSize, const uint32_t* pData);
219704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdFillBuffer)(VkCmdBuffer cmdBuffer, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize fillSize, uint32_t data);
219804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdClearColorImage)(VkCmdBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
21995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdClearDepthStencilImage)(VkCmdBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2200a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef void (VKAPI *PFN_vkCmdClearAttachments)(VkCmdBuffer cmdBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
220104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdResolveImage)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
220204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdSetEvent)(VkCmdBuffer cmdBuffer, VkEvent event, VkPipelineStageFlags stageMask);
220304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdResetEvent)(VkCmdBuffer cmdBuffer, VkEvent event, VkPipelineStageFlags stageMask);
220404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdWaitEvents)(VkCmdBuffer cmdBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags destStageMask, uint32_t memBarrierCount, const void* const* ppMemBarriers);
220504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdPipelineBarrier)(VkCmdBuffer cmdBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags destStageMask, VkBool32 byRegion, uint32_t memBarrierCount, const void* const* ppMemBarriers);
220604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBeginQuery)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t slot, VkQueryControlFlags flags);
220704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdEndQuery)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t slot);
220804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdResetQueryPool)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount);
22096f39a6d1c6202b5d1bb0aa0dc9b2e130e5b73666Jesse Halltypedef void (VKAPI *PFN_vkCmdWriteTimestamp)(VkCmdBuffer cmdBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer destBuffer, VkDeviceSize destOffset);
2210a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Halltypedef void (VKAPI *PFN_vkCmdCopyQueryPoolResults)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize stride, VkQueryResultFlags flags);
221104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdPushConstants)(VkCmdBuffer cmdBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t start, uint32_t length, const void* values);
221204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBeginRenderPass)(VkCmdBuffer cmdBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkRenderPassContents contents);
221304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdNextSubpass)(VkCmdBuffer cmdBuffer, VkRenderPassContents contents);
221404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdEndRenderPass)(VkCmdBuffer cmdBuffer);
221504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdExecuteCommands)(VkCmdBuffer cmdBuffer, uint32_t cmdBuffersCount, const VkCmdBuffer* pCmdBuffers);
221604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
221704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef VK_PROTOTYPES
221804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateInstance(
221904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkInstanceCreateInfo*                 pCreateInfo,
222004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance*                                 pInstance);
222104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyInstance(
222304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance);
222404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
222504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkEnumeratePhysicalDevices(
222604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
222704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pPhysicalDeviceCount,
222804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice*                           pPhysicalDevices);
222904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2230606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceFeatures(
223104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
223204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceFeatures*                   pFeatures);
223304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2234606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceFormatProperties(
223504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
223604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
223704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatProperties*                         pFormatProperties);
223804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2239606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceImageFormatProperties(
224004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
224104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
224204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
224304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
224404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
22455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageCreateFlags                          flags,
224604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageFormatProperties*                    pImageFormatProperties);
224704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2248606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceProperties(
224904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
225004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceProperties*                 pProperties);
225104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2252606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceQueueFamilyProperties(
225304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
22545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t*                                   pCount,
22555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkQueueFamilyProperties*                    pQueueFamilyProperties);
225604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2257606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceMemoryProperties(
225804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
225904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
226004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
226104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallPFN_vkVoidFunction VKAPI vkGetInstanceProcAddr(
226204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
226304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
226404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
226504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallPFN_vkVoidFunction VKAPI vkGetDeviceProcAddr(
226604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
226704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
226804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
226904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateDevice(
227004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
227104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceCreateInfo*                   pCreateInfo,
227204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice*                                   pDevice);
227304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyDevice(
227504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device);
227604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateInstanceExtensionProperties(
227804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
227904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pCount,
228004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
228104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateDeviceExtensionProperties(
228304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
228404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
228504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pCount,
228604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
228704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateInstanceLayerProperties(
228904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pCount,
229004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
229104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateDeviceLayerProperties(
229304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
229404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pCount,
229504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
229604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2297606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetDeviceQueue(
229804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
229904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex,
230004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueIndex,
230104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue*                                    pQueue);
230204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
230304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueSubmit(
230404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
2305a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    submitCount,
2306a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkSubmitInfo*                         pSubmitInfo,
230704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
230804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
230904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueWaitIdle(
231004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue);
231104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
231204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkDeviceWaitIdle(
231304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device);
231404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
231504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkAllocMemory(
231604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
231704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkMemoryAllocInfo*                    pAllocInfo,
231804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory*                             pMem);
231904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkFreeMemory(
232104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
232204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem);
232304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
232404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkMapMemory(
232504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
232604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem,
232704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
232804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size,
232904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryMapFlags                            flags,
233004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void**                                      ppData);
233104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkUnmapMemory(
233304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
233404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem);
233504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
233604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkFlushMappedMemoryRanges(
233704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
233804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memRangeCount,
233904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkMappedMemoryRange*                  pMemRanges);
234004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
234104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkInvalidateMappedMemoryRanges(
234204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
234304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memRangeCount,
234404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkMappedMemoryRange*                  pMemRanges);
234504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2346606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetDeviceMemoryCommitment(
234704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
234804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              memory,
234904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize*                               pCommittedMemoryInBytes);
235004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
235104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkBindBufferMemory(
235204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
235304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
235404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem,
235504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                memOffset);
235604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
235704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkBindImageMemory(
235804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
235904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
236004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem,
236104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                memOffset);
236204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2363606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetBufferMemoryRequirements(
236404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
236504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
236604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
236704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2368606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetImageMemoryRequirements(
236904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
237004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
237104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
237204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2373606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetImageSparseMemoryRequirements(
237404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
237504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
237604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pNumRequirements,
237704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
237804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2379606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceSparseImageFormatProperties(
238004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
238104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
238204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
238304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    samples,
238404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
238504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
238604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pNumProperties,
238704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatProperties*              pProperties);
238804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
238904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueBindSparseBufferMemory(
239004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
239104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
239204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    numBindings,
239304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSparseMemoryBindInfo*               pBindInfo);
239404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
239504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueBindSparseImageOpaqueMemory(
239604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
239704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
239804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    numBindings,
239904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSparseMemoryBindInfo*               pBindInfo);
240004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
240104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueBindSparseImageMemory(
240204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
240304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
240404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    numBindings,
240504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSparseImageMemoryBindInfo*          pBindInfo);
240604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
240704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateFence(
240804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
240904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFenceCreateInfo*                    pCreateInfo,
241004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence*                                    pFence);
241104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24125ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyFence(
241304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
241404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
241504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
241604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetFences(
241704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
241804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
241904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences);
242004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
242104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetFenceStatus(
242204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
242304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
242404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
242504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkWaitForFences(
242604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
242704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
242804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences,
242904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    waitAll,
243004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint64_t                                    timeout);
243104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
243204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateSemaphore(
243304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
243404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSemaphoreCreateInfo*                pCreateInfo,
243504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphore*                                pSemaphore);
243604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroySemaphore(
243804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
243904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphore                                 semaphore);
244004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
244104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateEvent(
244204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
244304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEventCreateInfo*                    pCreateInfo,
244404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent*                                    pEvent);
244504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyEvent(
244704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
244804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
244904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
245004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetEventStatus(
245104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
245204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
245304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
245404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkSetEvent(
245504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
245604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
245704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
245804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetEvent(
245904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
246004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
246104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
246204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateQueryPool(
246304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
246404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkQueryPoolCreateInfo*                pCreateInfo,
246504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool*                                pQueryPool);
246604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyQueryPool(
246804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
246904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool);
247004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
247104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetQueryPoolResults(
247204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
247304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
247404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
247504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
2476a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t                                      dataSize,
247704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData,
2478a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
247904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
248004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
248104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateBuffer(
248204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
248304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCreateInfo*                   pCreateInfo,
248404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer*                                   pBuffer);
248504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyBuffer(
248704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
248804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer);
248904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
249004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateBufferView(
249104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
249204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferViewCreateInfo*               pCreateInfo,
249304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferView*                               pView);
249404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyBufferView(
249604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
249704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferView                                bufferView);
249804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
249904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateImage(
250004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
250104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCreateInfo*                    pCreateInfo,
250204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage*                                    pImage);
250304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyImage(
250504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
250604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image);
250704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2508606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetImageSubresourceLayout(
250904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
251004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
251104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresource*                   pSubresource,
251204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSubresourceLayout*                        pLayout);
251304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
251404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateImageView(
251504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
251604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageViewCreateInfo*                pCreateInfo,
251704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageView*                                pView);
251804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25195ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyImageView(
252004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
252104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageView                                 imageView);
252204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
252304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateShaderModule(
252404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
252504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkShaderModuleCreateInfo*             pCreateInfo,
252604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule*                             pShaderModule);
252704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25285ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyShaderModule(
252904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
253004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule                              shaderModule);
253104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
253204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateShader(
253304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
253404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkShaderCreateInfo*                   pCreateInfo,
253504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShader*                                   pShader);
253604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyShader(
253804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
253904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShader                                    shader);
254004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
254104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreatePipelineCache(
254204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
254304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCacheCreateInfo*            pCreateInfo,
254404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache*                            pPipelineCache);
254504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyPipelineCache(
254704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
254804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache);
254904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
255004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetPipelineCacheData(
255104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
255204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
2553a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    size_t*                                     pDataSize,
255404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData);
255504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
255604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkMergePipelineCaches(
255704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
255804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             destCache,
255904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcCacheCount,
256004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCache*                      pSrcCaches);
256104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
256204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateGraphicsPipelines(
256304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
256404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
256504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count,
256604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkGraphicsPipelineCreateInfo*         pCreateInfos,
256704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
256804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
256904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateComputePipelines(
257004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
257204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count,
257304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkComputePipelineCreateInfo*          pCreateInfos,
257404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
257504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyPipeline(
257704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  pipeline);
257904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
258004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreatePipelineLayout(
258104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
258204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineLayoutCreateInfo*           pCreateInfo,
258304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout*                           pPipelineLayout);
258404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyPipelineLayout(
258604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
258704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            pipelineLayout);
258804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
258904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateSampler(
259004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
259104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSamplerCreateInfo*                  pCreateInfo,
259204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSampler*                                  pSampler);
259304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroySampler(
259504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
259604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSampler                                   sampler);
259704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
259804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateDescriptorSetLayout(
259904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
260104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSetLayout*                      pSetLayout);
260204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyDescriptorSetLayout(
260404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSetLayout                       descriptorSetLayout);
260604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
260704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateDescriptorPool(
260804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorPoolCreateInfo*           pCreateInfo,
261004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool*                           pDescriptorPool);
261104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26125ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyDescriptorPool(
261304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
261404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool                            descriptorPool);
261504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
261604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetDescriptorPool(
261704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2618fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPool                            descriptorPool,
2619fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPoolResetFlags                  flags);
262004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
262104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkAllocDescriptorSets(
262204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2623fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorSetAllocInfo*             pAllocInfo,
26245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDescriptorSet*                            pDescriptorSets);
262504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
262604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkFreeDescriptorSets(
262704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
262804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool                            descriptorPool,
262904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count,
263004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets);
263104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkUpdateDescriptorSets(
263304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
263404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    writeCount,
263504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkWriteDescriptorSet*                 pDescriptorWrites,
263604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    copyCount,
263704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCopyDescriptorSet*                  pDescriptorCopies);
263804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
263904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateFramebuffer(
264004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
264104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFramebufferCreateInfo*              pCreateInfo,
264204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer*                              pFramebuffer);
264304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyFramebuffer(
264504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
264604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer                               framebuffer);
264704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
264804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateRenderPass(
264904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassCreateInfo*               pCreateInfo,
265104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass*                               pRenderPass);
265204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyRenderPass(
265404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass);
265604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2657606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetRenderAreaGranularity(
265804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass,
266004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent2D*                                 pGranularity);
266104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
266204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateCommandPool(
266304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
266404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCmdPoolCreateInfo*                  pCreateInfo,
266504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPool*                                  pCmdPool);
266604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyCommandPool(
266804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
266904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPool                                   cmdPool);
267004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
267104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetCommandPool(
267204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
267304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPool                                   cmdPool,
267404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPoolResetFlags                         flags);
267504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2676fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse HallVkResult VKAPI vkAllocCommandBuffers(
267704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2678fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkCmdBufferAllocInfo*                 pAllocInfo,
2679fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkCmdBuffer*                                pCmdBuffers);
268004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2681fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hallvoid VKAPI vkFreeCommandBuffers(
268204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2683fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkCmdPool                                   cmdPool,
2684fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    count,
2685fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkCmdBuffer*                          pCommandBuffers);
268604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
268704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkBeginCommandBuffer(
268804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
268904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCmdBufferBeginInfo*                 pBeginInfo);
269004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
269104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkEndCommandBuffer(
269204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer);
269304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
269404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetCommandBuffer(
269504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
269604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBufferResetFlags                       flags);
269704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
269804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindPipeline(
269904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
270004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
270104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  pipeline);
270204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetViewport(
27045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkCmdBuffer                                 cmdBuffer,
27055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    viewportCount,
27065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkViewport*                           pViewports);
27075ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
27085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetScissor(
27095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkCmdBuffer                                 cmdBuffer,
27105ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    scissorCount,
27115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkRect2D*                             pScissors);
27125ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
27135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetLineWidth(
27145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkCmdBuffer                                 cmdBuffer,
27155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       lineWidth);
27165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
27175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetDepthBias(
271804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
2719a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasConstantFactor,
27205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBiasClamp,
2721a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    float                                       depthBiasSlopeFactor);
272204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetBlendConstants(
272404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
27255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const float                                 blendConst[4]);
272604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27275ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetDepthBounds(
272804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
27295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepthBounds,
27305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepthBounds);
273104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetStencilCompareMask(
273304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
27345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
27355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilCompareMask);
27365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
27375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetStencilWriteMask(
27385ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkCmdBuffer                                 cmdBuffer,
27395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
27405ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilWriteMask);
27415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
27425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetStencilReference(
27435ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkCmdBuffer                                 cmdBuffer,
27445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
27455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilReference);
274604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
274704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindDescriptorSets(
274804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
274904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
275004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
275104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstSet,
275204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    setCount,
275304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets,
275404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    dynamicOffsetCount,
275504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pDynamicOffsets);
275604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
275704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindIndexBuffer(
275804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
275904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
276004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
276104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkIndexType                                 indexType);
276204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
276304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindVertexBuffers(
276404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
276504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startBinding,
276604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bindingCount,
276704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBuffer*                             pBuffers,
276804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceSize*                         pOffsets);
276904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
277004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDraw(
277104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
277204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vertexCount,
27735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
27745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstVertex,
27755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
277604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
277704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDrawIndexed(
277804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
277904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    indexCount,
27805ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
27815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstIndex,
278204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     vertexOffset,
27835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
278404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
278504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDrawIndirect(
278604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
278704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
278804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
278904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count,
279004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
279104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
279204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDrawIndexedIndirect(
279304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
279404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
279504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
279604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count,
279704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
279804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
279904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDispatch(
280004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
280104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    x,
280204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    y,
280304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    z);
280404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
280504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDispatchIndirect(
280604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
280704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
280804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset);
280904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
281004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyBuffer(
281104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
281204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
281304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
281404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
281504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCopy*                         pRegions);
281604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
281704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyImage(
281804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
281904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
282004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
282104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     destImage,
282204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               destImageLayout,
282304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
282404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCopy*                          pRegions);
282504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
282604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBlitImage(
282704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
282804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
282904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
283004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     destImage,
283104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               destImageLayout,
283204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
283304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageBlit*                          pRegions,
283404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkTexFilter                                 filter);
283504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
283604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyBufferToImage(
283704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
283804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
283904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     destImage,
284004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               destImageLayout,
284104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
284204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
284304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
284404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyImageToBuffer(
284504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
284604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
284704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
284804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
284904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
285004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
285104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
285204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdUpdateBuffer(
285304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
285404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
285504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destOffset,
285604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                dataSize,
285704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pData);
285804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
285904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdFillBuffer(
286004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
286104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
286204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destOffset,
286304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                fillSize,
286404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    data);
286504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
286604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdClearColorImage(
286704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
286804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
286904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
287004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkClearColorValue*                    pColor,
287104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
287204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
287304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
287404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdClearDepthStencilImage(
287504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
287604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
287704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
28785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkClearDepthStencilValue*             pDepthStencil,
287904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
288004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
288104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2882ae38f7355fd03b777313e13586585a74e0dee05bJesse Hallvoid VKAPI vkCmdClearAttachments(
288304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
2884ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    attachmentCount,
2885ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    const VkClearAttachment*                    pAttachments,
288604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rectCount,
2887a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    const VkClearRect*                          pRects);
288804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
288904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdResolveImage(
289004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
289104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
289204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
289304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     destImage,
289404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               destImageLayout,
289504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
289604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageResolve*                       pRegions);
289704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
289804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdSetEvent(
289904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
290004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
290104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
290204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
290304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdResetEvent(
290404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
290504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
290604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
290704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
290804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdWaitEvents(
290904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
291004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    eventCount,
291104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEvent*                              pEvents,
291204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
291304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        destStageMask,
291404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memBarrierCount,
291504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void* const*                          ppMemBarriers);
291604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
291704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdPipelineBarrier(
291804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
291904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
292004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        destStageMask,
292104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    byRegion,
292204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memBarrierCount,
292304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void* const*                          ppMemBarriers);
292404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
292504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBeginQuery(
292604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
292704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
292804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    slot,
292904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryControlFlags                         flags);
293004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
293104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdEndQuery(
293204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
293304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
293404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    slot);
293504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
293604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdResetQueryPool(
293704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
293804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
293904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
294004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount);
294104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
294204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdWriteTimestamp(
294304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
29446f39a6d1c6202b5d1bb0aa0dc9b2e130e5b73666Jesse Hall    VkPipelineStageFlagBits                     pipelineStage,
294504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
294604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destOffset);
294704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
294804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyQueryPoolResults(
294904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
295004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
295104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
295204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
295304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
295404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destOffset,
2955a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall    VkDeviceSize                                stride,
295604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
295704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
295804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdPushConstants(
295904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
296004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
296104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags,
296204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    start,
296304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    length,
296404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 values);
296504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
296604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBeginRenderPass(
296704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
296804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassBeginInfo*                pRenderPassBegin,
296904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPassContents                        contents);
297004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
297104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdNextSubpass(
297204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
297304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPassContents                        contents);
297404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
297504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdEndRenderPass(
297604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer);
297704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
297804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdExecuteCommands(
297904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
298004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    cmdBuffersCount,
298104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCmdBuffer*                          pCmdBuffers);
298204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
298304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
29841356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define vk_ext_khr_surface 1
29851356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVK_DEFINE_NONDISP_HANDLE(VkSurfaceKHR)
29861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
29871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_SURFACE_REVISION       19
29881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_SURFACE_EXTENSION_NUMBER 1
29891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_SURFACE_EXTENSION_NAME "VK_EXT_KHR_surface"
29901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
29911356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef void (VKAPI *PFN_vkDestroySurfaceKHR)(VkInstance  instance, VkSurfaceKHR  surface);
29921356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface);
29931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
29941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
29951356b0d3179254a7a27e88abb2d2500385469f14Jesse Hallvoid VKAPI vkDestroySurfaceKHR(
29961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                   instance,
29971356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR                                 surface);
29981356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
29991356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkBool32 VKAPI vkGetPhysicalDeviceSurfaceSupportKHR(
30001356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
30011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    queueFamilyIndex,
30021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR                                surface);
30031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
30041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define vk_ext_khr_swapchain 1
30061356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVK_DEFINE_NONDISP_HANDLE(VkSwapchainKHR)
30071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_SWAPCHAIN_REVISION     59
30091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_SWAPCHAIN_EXTENSION_NUMBER 2
30101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_SWAPCHAIN_EXTENSION_NAME "VK_EXT_KHR_swapchain"
30111356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR ((VkStructureType)(int)0xc0000800)
30121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_STRUCTURE_TYPE_PRESENT_INFO_KHR ((VkStructureType)(int)0xc0000801)
30131356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_IMAGE_LAYOUT_PRESENT_SOURCE_KHR ((VkImageLayout)(int)0xc0000802)
30141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_SUBOPTIMAL_KHR                 ((VkResult)(int)0x40000403)
30151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_ERROR_OUT_OF_DATE_KHR          ((VkResult)(int)0xc0000804)
30161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30181356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef enum {
30191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_NONE_KHR = 0,
30201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT90_KHR = 1,
30211356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT180_KHR = 2,
30221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT270_KHR = 3,
30231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_KHR = 4,
30241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT90_KHR = 5,
30251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT180_KHR = 6,
30261356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT270_KHR = 7,
30271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_INHERIT_KHR = 8,
30281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_BEGIN_RANGE = VK_SURFACE_TRANSFORM_NONE_KHR,
30291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_END_RANGE = VK_SURFACE_TRANSFORM_INHERIT_KHR,
30301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_NUM = (VK_SURFACE_TRANSFORM_INHERIT_KHR - VK_SURFACE_TRANSFORM_NONE_KHR + 1),
30311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_MAX_ENUM = 0x7FFFFFFF
30321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceTransformKHR;
30331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30341356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef enum {
30351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_SRGB_NONLINEAR_KHR = 0,
30361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_BEGIN_RANGE = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
30371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_END_RANGE = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
30381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_NUM = (VK_COLORSPACE_SRGB_NONLINEAR_KHR - VK_COLORSPACE_SRGB_NONLINEAR_KHR + 1),
30391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_COLORSPACE_MAX_ENUM = 0x7FFFFFFF
30401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkColorSpaceKHR;
30411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30421356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef enum {
30431356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
30441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_MAILBOX_KHR = 1,
30451356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_FIFO_KHR = 2,
30461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_BEGIN_RANGE = VK_PRESENT_MODE_IMMEDIATE_KHR,
30471356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_END_RANGE = VK_PRESENT_MODE_FIFO_KHR,
30481356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_NUM = (VK_PRESENT_MODE_FIFO_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
30491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_PRESENT_MODE_MAX_ENUM = 0x7FFFFFFF
30501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentModeKHR;
30511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30531356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef enum {
30541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_NONE_BIT_KHR = 0x00000001,
30551356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT90_BIT_KHR = 0x00000002,
30561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT180_BIT_KHR = 0x00000004,
30571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_ROT270_BIT_KHR = 0x00000008,
30581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_BIT_KHR = 0x00000010,
30591356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT90_BIT_KHR = 0x00000020,
30601356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT180_BIT_KHR = 0x00000040,
30611356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_HMIRROR_ROT270_BIT_KHR = 0x00000080,
30621356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
30631356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceTransformFlagBitsKHR;
30641356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkSurfaceTransformFlagsKHR;
30651356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30661356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
30671356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    minImageCount;
30681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    maxImageCount;
30691356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  currentExtent;
30701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  minImageExtent;
30711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  maxImageExtent;
30721356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformFlagsKHR                  supportedTransforms;
30731356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformKHR                       currentTransform;
30741356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    maxImageArraySize;
30751356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkImageUsageFlags                           supportedUsageFlags;
30761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfacePropertiesKHR;
30771356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30781356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
30791356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkFormat                                    format;
30801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkColorSpaceKHR                             colorSpace;
30811356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceFormatKHR;
30821356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
30831356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
30841356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
30851356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const void*                                   pNext;
30861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR                                surface;
30871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    minImageCount;
30881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkFormat                                    imageFormat;
30891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkColorSpaceKHR                             imageColorSpace;
30901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  imageExtent;
30911356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkImageUsageFlags                           imageUsageFlags;
30921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformKHR                       preTransform;
30931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    imageArraySize;
30941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSharingMode                               sharingMode;
30951356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    queueFamilyCount;
30961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const uint32_t*                             pQueueFamilyIndices;
30971356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPresentModeKHR                            presentMode;
30981356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR                              oldSwapchain;
30991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkBool32                                    clipped;
31001356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSwapchainCreateInfoKHR;
31011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31021356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
31031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
31041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const void*                                   pNext;
31051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    swapchainCount;
31061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkSwapchainKHR*                       swapchains;
31071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const uint32_t*                             imageIndices;
31081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkPresentInfoKHR;
31091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31111356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkGetSurfacePropertiesKHR)(VkDevice  device, VkSurfaceKHR  surface, VkSurfacePropertiesKHR*  pSurfaceProperties);
31121356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkGetSurfaceFormatsKHR)(VkDevice  device, VkSurfaceKHR  surface, uint32_t*  pCount, VkSurfaceFormatKHR*  pSurfaceFormats);
31131356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkGetSurfacePresentModesKHR)(VkDevice  device, VkSurfaceKHR  surface, uint32_t*  pCount, VkPresentModeKHR*  pPresentModes);
31141356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateSwapchainKHR)(VkDevice  device, const VkSwapchainCreateInfoKHR*  pCreateInfo, VkSwapchainKHR*  pSwapchain);
31151356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef void (VKAPI *PFN_vkDestroySwapchainKHR)(VkDevice  device, VkSwapchainKHR  swapchain);
31161356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkGetSwapchainImagesKHR)(VkDevice  device, VkSwapchainKHR  swapchain, uint32_t*  pCount, VkImage*  pSwapchainImages);
31171356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkAcquireNextImageKHR)(VkDevice  device, VkSwapchainKHR  swapchain, uint64_t  timeout, VkSemaphore  semaphore, VkFence  fence, uint32_t*  pImageIndex);
31181356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkQueuePresentKHR)(VkQueue  queue, VkPresentInfoKHR*  pPresentInfo);
31191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31201356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
31211356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkGetSurfacePropertiesKHR(
31221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
31231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR                                 surface,
31241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfacePropertiesKHR*                      pSurfaceProperties);
31251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31261356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkGetSurfaceFormatsKHR(
31271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
31281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR                                 surface,
31291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t*                                    pCount,
31301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceFormatKHR*                          pSurfaceFormats);
31311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31321356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkGetSurfacePresentModesKHR(
31331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
31341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR                                 surface,
31351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t*                                    pCount,
31361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPresentModeKHR*                            pPresentModes);
31371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31381356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateSwapchainKHR(
31391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
31401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkSwapchainCreateInfoKHR*              pCreateInfo,
31411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR*                              pSwapchain);
31421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31431356b0d3179254a7a27e88abb2d2500385469f14Jesse Hallvoid VKAPI vkDestroySwapchainKHR(
31441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
31451356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR                               swapchain);
31461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31471356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkGetSwapchainImagesKHR(
31481356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
31491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR                               swapchain,
31501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t*                                    pCount,
31511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkImage*                                     pSwapchainImages);
31521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31531356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkAcquireNextImageKHR(
31541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDevice                                     device,
31551356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSwapchainKHR                               swapchain,
31561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint64_t                                     timeout,
31571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSemaphore                                  semaphore,
31581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkFence                                      fence,
31591356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t*                                    pImageIndex);
31601356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31611356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkQueuePresentKHR(
31621356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkQueue                                      queue,
31631356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPresentInfoKHR*                            pPresentInfo);
31641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
31651356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31661356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define vk_ext_khr_display 1
31671356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVK_DEFINE_NONDISP_HANDLE(VkDisplayKHR)
31681356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVK_DEFINE_NONDISP_HANDLE(VkDisplayModeKHR)
31691356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_DISPLAY_REVISION       16
31711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_DISPLAY_EXTENSION_NUMBER 3
31721356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_DISPLAY_EXTENSION_NAME "VK_EXT_KHR_display"
31731356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR ((VkStructureType)(int)0xc0000c00)
31741356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_STRUCTURE_TYPE_SURFACE_DESCRIPTION_DISPLAY_PLANE_KHR ((VkStructureType)(int)0xc0000c01)
31751356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31771356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef enum {
31781356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000001,
31791356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000002,
31801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000004,
31811356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPlaneAlphaFlagBitsKHR;
31821356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
31831356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31841356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
31851356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display;
31861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const char*                                   displayName;
31871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  physicalDimensions;
31881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  physicalResolution;
31891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformFlagsKHR                  supportedTransforms;
31901356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeCount;
31911356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkBool32                                    planeReorderPossible;
31921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPropertiesKHR;
31931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
31941356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
31951356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    pixelClock;
31961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  visibleRegion;
31971356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  totalRegion;
31981356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  physicalDimensions;
31991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    hSyncStart;
32001356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    hSyncEnd;
32011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    vSyncStart;
32021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    vSyncEnd;
32031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkBool32                                    interlaced;
32041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkBool32                                    doublescan;
32051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkBool32                                    hSyncPos;
32061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkBool32                                    vSyncPos;
32071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayTimingKHR;
32081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32091356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
32101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR                            displayMode;
32111356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayTimingKHR                          timing;
32121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModePropertiesKHR;
32131356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32141356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
32151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
32161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const void*                                   pNext;
32171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayTimingKHR                          timing;
32181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayModeCreateInfoKHR;
32191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32201356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
32211356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPlaneAlphaFlagsKHR                 supportedAlpha;
32221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkOffset2D                                  minSrcPosition;
32231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkOffset2D                                  maxSrcPosition;
32241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  minSrcExtent;
32251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  maxSrcExtent;
32261356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkOffset2D                                  minDstPosition;
32271356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkOffset2D                                  maxDstPosition;
32281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  minDstExtent;
32291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  maxDstExtent;
32301356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPlanePropertiesKHR;
32311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32321356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
32331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
32341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const void*                                   pNext;
32351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR                            displayMode;
32361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeIndex;
32371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeStackIndex;
32381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceTransformKHR                       transform;
32391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    float                                       globalAlpha;
32401356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPlaneAlphaFlagsKHR                 alphaMode;
32411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkExtent2D                                  imageSize;
32421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkSurfaceDescriptionDisplayPlaneKHR;
32431356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32451356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pCount, VkDisplayPropertiesKHR* pProperties);
32461356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pCount, VkDisplayModePropertiesKHR* pModeProperties);
32471356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR*pCreateInfo, VkDisplayModeKHR* pMode);
32481356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkGetDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlanePropertiesKHR* pProperties);
32491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32501356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
32511356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkGetPhysicalDeviceDisplayPropertiesKHR(
32521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
32531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t*                                   pCount,
32541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPropertiesKHR*                     pProperties);
32551356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32561356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkGetDisplayModePropertiesKHR(
32571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
32581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
32591356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t*                                   pCount,
32601356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModePropertiesKHR*                 pModeProperties);
32611356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32621356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateDisplayModeKHR(
32631356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
32641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
32651356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkDisplayModeCreateInfoKHR*           pCreateInfo,
32661356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR*                           pMode);
32671356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32681356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkGetDisplayPlanePropertiesKHR(
32691356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkPhysicalDevice                            physicalDevice,
32701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayKHR                                display,
32711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayModeKHR                            mode,
32721356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    uint32_t                                    planeIndex,
32731356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkDisplayPlanePropertiesKHR*                pProperties);
32741356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
32751356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define vk_ext_khr_display_swapchain 1
32771356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_DISPLAY_SWAPCHAIN_REVISION 4
32781356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NUMBER 4
32791356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_EXT_KHR_display_swapchain"
32801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_STRUCTURE_TYPE_DISPLAY_SWAPCHAIN_CREATE_INFO_KHR ((VkStructureType)(int)0xc0001000)
32811356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR ((VkStructureType)(int)0xc0001001)
32821356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_ERROR_INCOMPATIBLE_DISPLAY_KHR ((VkResult)(int)0xc0001002)
32831356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32841356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
32851356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
32861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const void*                                   pNext;
32871356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const VkSwapchainCreateInfoKHR*             pNextSwapchainCreateInfo;
32881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplaySwapchainCreateInfoKHR;
32891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32901356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef struct {
32911356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkStructureType                             sType;
32921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    const void*                                   pNext;
32931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkRect2D                                    srcRect;
32941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkRect2D                                    dstRect;
32951356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall} VkDisplayPresentInfoKHR;
32961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32971356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32981356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
32991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_X11_KHR
3300a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall#define vk_ext_khr_x11_surface 1
33011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <X11/Xlib.h>
33021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_X11_SURFACE_REVISION   1
33041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_X11_SURFACE_EXTENSION_NUMBER 5
33051356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_X11_SURFACE_EXTENSION_NAME "VK_EXT_KHR_x11_surface"
33061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33071356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateX11SurfaceKHR)(VkInstance instance, Display* dpy, Window root, Window window, VkSurfaceKHR* pSurface);
33081356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
33101356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateX11SurfaceKHR(
33111356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
33121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    Display*                                    dpy,
33131356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    Window                                      root,
33141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    Window                                      window,
33151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
33161356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
33171356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_X11_KHR */
33181356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33191356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_XCB_KHR
3320a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall#define vk_ext_khr_xcb_surface 1
33211356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <xcb/xcb.h>
33221356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33231356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_XCB_SURFACE_REVISION   1
33241356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_XCB_SURFACE_EXTENSION_NUMBER 6
33251356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_XCB_SURFACE_EXTENSION_NAME "VK_EXT_KHR_xcb_surface"
33261356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33271356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, xcb_connection_t* connection, xcb_window_t root, xcb_window_t window, VkSurfaceKHR* pSurface);
33281356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33291356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
33301356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateXcbSurfaceKHR(
33311356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
33321356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    xcb_connection_t*                           connection,
33331356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    xcb_window_t                                root,
33341356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    xcb_window_t                                window,
33351356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
33361356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
33371356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_XCB_KHR */
33381356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33391356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WAYLAND_KHR
3340a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall#define vk_ext_khr_wayland_surface 1
33411356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <wayland-client.h>
33421356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33431356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_WAYLAND_SURFACE_REVISION 1
33441356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_WAYLAND_SURFACE_EXTENSION_NUMBER 7
33451356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_EXT_KHR_wayland_surface"
33461356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33471356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, struct wl_display* display, struct wl_surface* surface, VkSurfaceKHR* pSurface);
33481356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33491356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
33501356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateWaylandSurfaceKHR(
33511356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
33521356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    struct wl_display*                          display,
33531356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    struct wl_surface*                          surface,
33541356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
33551356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
33561356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WAYLAND_KHR */
33571356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33581356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_MIR_KHR
3359a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall#define vk_ext_khr_mir_surface 1
33601356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <mir_toolkit/client_types.h>
33611356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33621356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_MIR_SURFACE_REVISION   1
33631356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_MIR_SURFACE_EXTENSION_NUMBER 8
33641356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_MIR_SURFACE_EXTENSION_NAME "VK_EXT_KHR_mir_surface"
33651356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33661356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, MirConnection* connection, MirSurface* mirSurface, VkSurfaceKHR* pSurface);
33671356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33681356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
33691356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateMirSurfaceKHR(
33701356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
33711356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    MirConnection*                              connection,
33721356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    MirSurface*                                 mirSurface,
33731356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
33741356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
33751356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_MIR_KHR */
33761356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33771356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_ANDROID_KHR
3378a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall#define vk_ext_khr_android_surface 1
33791356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <android/native_window.h>
33801356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33811356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_ANDROID_SURFACE_REVISION 1
33821356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_ANDROID_SURFACE_EXTENSION_NUMBER 9
33831356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_EXT_KHR_android_surface"
33841356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_ERROR_INVALID_ANDROID_WINDOW_KHR ((VkResult)(int)0xc0002400)
33851356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_ERROR_ANDROID_WINDOW_IN_USE_KHR ((VkResult)(int)0xc0002401)
33861356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33871356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, ANativeWindow* window, VkSurfaceKHR* pSurface);
33881356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33891356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
33901356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateAndroidSurfaceKHR(
33911356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
33921356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    ANativeWindow*                              window,
33931356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
33941356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
33951356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_ANDROID_KHR */
33961356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
33971356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_USE_PLATFORM_WIN32_KHR
3398a9bb62b44be381292b893055cd01cdc89ba55c97Jesse Hall#define vk_ext_khr_win32_surface 1
33991356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#include <windows.h>
34001356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34011356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_WIN32_SURFACE_REVISION 1
34021356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_WIN32_SURFACE_EXTENSION_NUMBER 10
34031356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#define VK_EXT_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_EXT_KHR_win32_surface"
34041356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34051356b0d3179254a7a27e88abb2d2500385469f14Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, HINSTANCE hinstance, HWND hwnd, VkSurfaceKHR* pSurface);
34061356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
34071356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#ifdef VK_PROTOTYPES
34081356b0d3179254a7a27e88abb2d2500385469f14Jesse HallVkResult VKAPI vkCreateWin32SurfaceKHR(
34091356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkInstance                                  instance,
34101356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    HINSTANCE                                   hinstance,
34111356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    HWND                                        hwnd,
34121356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall    VkSurfaceKHR*                               pSurface);
34131356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif
34141356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall#endif /* VK_USE_PLATFORM_WIN32_KHR */
34151356b0d3179254a7a27e88abb2d2500385469f14Jesse Hall
341604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef __cplusplus
341704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
341804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
341904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
342004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
3421