vulkan.h revision fbf97b0e5e25349b951dce1016b263ec3acbf376
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
44fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall#define VK_API_VERSION VK_MAKE_VERSION(0, 183, 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
8804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse 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_TIMESTAMP_TYPE_TOP = 0,
77604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TIMESTAMP_TYPE_BOTTOM = 1,
77704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TIMESTAMP_TYPE_BEGIN_RANGE = VK_TIMESTAMP_TYPE_TOP,
77804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TIMESTAMP_TYPE_END_RANGE = VK_TIMESTAMP_TYPE_BOTTOM,
77904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TIMESTAMP_TYPE_NUM = (VK_TIMESTAMP_TYPE_BOTTOM - VK_TIMESTAMP_TYPE_TOP + 1),
78004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TIMESTAMP_TYPE_MAX_ENUM = 0x7FFFFFFF
78104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkTimestampType;
78204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
78304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
78404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_INLINE = 0,
78504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_SECONDARY_CMD_BUFFERS = 1,
78604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_BEGIN_RANGE = VK_RENDER_PASS_CONTENTS_INLINE,
78704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_END_RANGE = VK_RENDER_PASS_CONTENTS_SECONDARY_CMD_BUFFERS,
78804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_NUM = (VK_RENDER_PASS_CONTENTS_SECONDARY_CMD_BUFFERS - VK_RENDER_PASS_CONTENTS_INLINE + 1),
78904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
79004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassContents;
79104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
79204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
79304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
79404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
79504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
79604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
79704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
79804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
79904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
80004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
80104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
80204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
80304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
8045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_FORMAT_FEATURE_BLIT_SOURCE_BIT = 0x00000400,
8055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_FORMAT_FEATURE_BLIT_DESTINATION_BIT = 0x00000800,
80604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatFeatureFlagBits;
80704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFormatFeatureFlags;
80804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
80904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
81004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_TRANSFER_SOURCE_BIT = 0x00000001,
81104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_TRANSFER_DESTINATION_BIT = 0x00000002,
81204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
81304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
81404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
8155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
81604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
81704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
81804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageUsageFlagBits;
81904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkImageUsageFlags;
82004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
82104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
8225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
8235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
8245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
8255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
8265ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
8275ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageCreateFlagBits;
8285ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageCreateFlags;
8295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
8305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef enum {
8315ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_1_BIT = 0x00000001,
8325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_2_BIT = 0x00000002,
8335ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_4_BIT = 0x00000004,
8345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_8_BIT = 0x00000008,
8355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_16_BIT = 0x00000010,
8365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_32_BIT = 0x00000020,
8375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_64_BIT = 0x00000040,
8385ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkSampleCountFlagBits;
8395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkSampleCountFlags;
8405ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
8415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef enum {
84204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_GRAPHICS_BIT = 0x00000001,
84304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_COMPUTE_BIT = 0x00000002,
84404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_DMA_BIT = 0x00000004,
84504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_SPARSE_MEMMGR_BIT = 0x00000008,
84604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_EXTENDED_BIT = 0x40000000,
84704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueueFlagBits;
84804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueueFlags;
84904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
85004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
85104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_PROPERTY_DEVICE_ONLY = 0,
85204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000001,
85304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_PROPERTY_HOST_NON_COHERENT_BIT = 0x00000002,
85404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_PROPERTY_HOST_UNCACHED_BIT = 0x00000004,
855acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000008,
85604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryPropertyFlagBits;
85704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryPropertyFlags;
85804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
85904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
8605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_MEMORY_HEAP_HOST_LOCAL_BIT = 0x00000001,
86104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeapFlagBits;
86204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryHeapFlags;
86304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryMapFlags;
86404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
86504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
866a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
867a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
868a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
869a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
870a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkImageAspectFlagBits;
871a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
872a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef enum {
87304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SPARSE_IMAGE_FMT_SINGLE_MIPTAIL_BIT = 0x00000001,
87404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SPARSE_IMAGE_FMT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
87504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SPARSE_IMAGE_FMT_NONSTD_BLOCK_SIZE_BIT = 0x00000004,
87604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatFlagBits;
87704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseImageFormatFlags;
87804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
87904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
88004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SPARSE_MEMORY_BIND_REPLICATE_64KIB_BLOCK_BIT = 0x00000001,
88104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseMemoryBindFlagBits;
88204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseMemoryBindFlags;
88304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
88404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
88504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
88604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateFlagBits;
88704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFenceCreateFlags;
88804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSemaphoreCreateFlags;
88904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkEventCreateFlags;
89004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
89104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
892ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
893ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
894ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
895ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
896ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
897ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
898ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
899ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
900ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
901ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
902ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
90304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPipelineStatisticFlagBits;
90404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryPipelineStatisticFlags;
90504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
90604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
90704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_DEFAULT = 0,
90804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_64_BIT = 0x00000001,
90904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
91004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
91104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
91204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryResultFlagBits;
91304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryResultFlags;
91404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
91504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
91604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_TRANSFER_SOURCE_BIT = 0x00000001,
91704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_TRANSFER_DESTINATION_BIT = 0x00000002,
91804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
91904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
92004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
92104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
92204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
92304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
92404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
92504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferUsageFlagBits;
92604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkBufferUsageFlags;
92704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
92804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
9295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
93004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
93104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
93204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCreateFlagBits;
93304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkBufferCreateFlags;
9345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageAspectFlags;
93504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
93604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
9375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_VIEW_CREATE_READ_ONLY_DEPTH_BIT = 0x00000001,
9385ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_VIEW_CREATE_READ_ONLY_STENCIL_BIT = 0x00000002,
9395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageViewCreateFlagBits;
9405ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageViewCreateFlags;
94104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderModuleCreateFlags;
94204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderCreateFlags;
94304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
94404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
945a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
946a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
947a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
948a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
949a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
950a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
951a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
952a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkShaderStageFlagBits;
953a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
954a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef enum {
95504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_R_BIT = 0x00000001,
95604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_G_BIT = 0x00000002,
95704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_B_BIT = 0x00000004,
95804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_A_BIT = 0x00000008,
95904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkChannelFlagBits;
96004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkChannelFlags;
96104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
96204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
96304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
96404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
96504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
96604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineCreateFlagBits;
96704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkPipelineCreateFlags;
96804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderStageFlags;
96904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
97004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
971fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
972fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall} VkDescriptorPoolCreateFlagBits;
973fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolCreateFlags;
974fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkFlags VkDescriptorPoolResetFlags;
975fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
976fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef enum {
9775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
9785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkAttachmentDescriptionFlagBits;
9795ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkAttachmentDescriptionFlags;
98004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSubpassDescriptionFlags;
98104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
98204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
98304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
98404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
98504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
98604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
987ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
988ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
98904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
99004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
99104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
99204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
99304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
99404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
99504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
9965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_PIPELINE_STAGE_HOST_BIT = 0x00002000,
99704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_ALL_GRAPHICS = 0x000007FF,
9985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_PIPELINE_STAGE_ALL_GPU_COMMANDS = 0x00001FFF,
99904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineStageFlagBits;
100004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkPipelineStageFlags;
100104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
100204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
100304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_HOST_WRITE_BIT = 0x00000001,
100404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_SHADER_WRITE_BIT = 0x00000002,
100504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT = 0x00000004,
100604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000008,
100704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_TRANSFER_BIT = 0x00000010,
100804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryOutputFlagBits;
100904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryOutputFlags;
101004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
101104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
101204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_HOST_READ_BIT = 0x00000001,
101304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT = 0x00000002,
101404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_INDEX_FETCH_BIT = 0x00000004,
101504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT = 0x00000008,
101604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_UNIFORM_READ_BIT = 0x00000010,
101704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_SHADER_READ_BIT = 0x00000020,
101804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT = 0x00000040,
101904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000080,
102004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_INPUT_ATTACHMENT_BIT = 0x00000100,
102104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_TRANSFER_BIT = 0x00000200,
102204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryInputFlagBits;
102304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryInputFlags;
102404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
102504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
102604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
102704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
102804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdPoolCreateFlagBits;
102904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkCmdPoolCreateFlags;
103004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
103104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
10325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_CMD_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
103304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdPoolResetFlagBits;
103404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkCmdPoolResetFlags;
103504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
103604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
1037a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_CMD_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
1038a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_CMD_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
1039a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_CMD_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
1040a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkCmdBufferUsageFlagBits;
1041a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef VkFlags VkCmdBufferUsageFlags;
104204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
104304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
10445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_CMD_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
104504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdBufferResetFlagBits;
104604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkCmdBufferResetFlags;
104704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
104804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
10495ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_NONE = 0,
10505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
10515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_BACK_BIT = 0x00000002,
10525ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkStencilFaceFlagBits;
10535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkStencilFaceFlags;
105404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
105504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
105604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_CONTROL_CONSERVATIVE_BIT = 0x00000001,
105704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryControlFlagBits;
105804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryControlFlags;
105904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
106004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void* (VKAPI *PFN_vkAllocFunction)(
106104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                           pUserData,
106204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                          size,
106304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                          alignment,
106404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSystemAllocType               allocType);
106504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
106604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkFreeFunction)(
106704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                           pUserData,
106804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                           pMem);
106904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkVoidFunction)(void);
10715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
10725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
10735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStructureType                             sType;
10745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const void*                                 pNext;
10755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const char*                                 pAppName;
10765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    appVersion;
10775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const char*                                 pEngineName;
10785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    engineVersion;
10795ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    apiVersion;
10805ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkApplicationInfo;
10815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
108204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
108304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pUserData;
108404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    PFN_vkAllocFunction                         pfnAlloc;
108504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    PFN_vkFreeFunction                          pfnFree;
108604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAllocCallbacks;
108704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
108804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
108904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
109004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
109104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkApplicationInfo*                    pAppInfo;
109204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkAllocCallbacks*                     pAllocCb;
109304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    layerCount;
109404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledLayerNames;
109504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    extensionCount;
109604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledExtensionNames;
109704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkInstanceCreateInfo;
109804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
109904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
110004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    robustBufferAccess;
110104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    fullDrawIndexUint32;
110204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    imageCubeArray;
110304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    independentBlend;
110404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    geometryShader;
110504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    tessellationShader;
110604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sampleRateShading;
110704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    dualSourceBlend;
110804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    logicOp;
11095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    multiDrawIndirect;
1110ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkBool32                                    depthClamp;
111104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthBiasClamp;
111204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    fillModeNonSolid;
111304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthBounds;
111404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    wideLines;
111504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    largePoints;
1116fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkBool32                                    alphaToOne;
1117fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkBool32                                    multiViewport;
1118fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkBool32                                    samplerAnisotropy;
111904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    textureCompressionETC2;
112004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    textureCompressionASTC_LDR;
112104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    textureCompressionBC;
11225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    occlusionQueryNonConservative;
112304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    pipelineStatisticsQuery;
112404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    vertexSideEffects;
112504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    tessellationSideEffects;
112604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    geometrySideEffects;
112704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    fragmentSideEffects;
112804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderTessellationPointSize;
112904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderGeometryPointSize;
11305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    shaderImageGatherExtended;
113104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageImageExtendedFormats;
113204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageImageMultisample;
113304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderUniformBufferArrayDynamicIndexing;
113404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderSampledImageArrayDynamicIndexing;
113504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageBufferArrayDynamicIndexing;
113604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageImageArrayDynamicIndexing;
113704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderClipDistance;
113804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderCullDistance;
113904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderFloat64;
114004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderInt64;
114104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderInt16;
114204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderResourceResidency;
114304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderResourceMinLOD;
11445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    sparseBinding;
114504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyBuffer;
114604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyImage2D;
114704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyImage3D;
114804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency2Samples;
114904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency4Samples;
115004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency8Samples;
115104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency16Samples;
115204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyAliased;
115304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceFeatures;
115404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
115504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
115604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatFeatureFlags                        linearTilingFeatures;
115704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatFeatureFlags                        optimalTilingFeatures;
11585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkFormatFeatureFlags                        bufferFeatures;
115904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatProperties;
116004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
116104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
11625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     width;
11635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     height;
11645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     depth;
11655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent3D;
11665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
11675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
11685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkExtent3D                                  maxExtent;
11695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxMipLevels;
1170a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    maxArrayLayers;
11715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkSampleCountFlags                          sampleCounts;
11725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                maxResourceSize;
117304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageFormatProperties;
117404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
117504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
117604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageDimension1D;
117704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageDimension2D;
117804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageDimension3D;
117904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageDimensionCube;
118004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageArrayLayers;
11815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkSampleCountFlags                          sampleCounts;
118204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxTexelBufferSize;
1183fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    maxUniformBufferRange;
1184fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    maxStorageBufferRange;
118504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPushConstantsSize;
118604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxMemoryAllocationCount;
118704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                bufferImageGranularity;
11885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                sparseAddressSpaceSize;
118904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxBoundDescriptorSets;
119004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorSamplers;
119104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorUniformBuffers;
119204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorStorageBuffers;
119304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorSampledImages;
119404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorStorageImages;
119504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetSamplers;
119604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetUniformBuffers;
11975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxDescriptorSetUniformBuffersDynamic;
119804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetStorageBuffers;
11995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxDescriptorSetStorageBuffersDynamic;
120004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetSampledImages;
120104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetStorageImages;
120204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputAttributes;
12035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxVertexInputBindings;
120404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputAttributeOffset;
120504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputBindingStride;
120604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexOutputComponents;
1207ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationGenLevel;
1208ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationPatchSize;
1209ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerVertexInputComponents;
1210ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerVertexOutputComponents;
1211ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerPatchOutputComponents;
1212ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlTotalOutputComponents;
1213ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationEvaluationInputComponents;
1214ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationEvaluationOutputComponents;
121504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryShaderInvocations;
121604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryInputComponents;
121704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryOutputComponents;
121804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryOutputVertices;
121904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryTotalOutputComponents;
122004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFragmentInputComponents;
1221fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    maxFragmentOutputAttachments;
1222fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    maxFragmentDualSourceAttachments;
122304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFragmentCombinedOutputResources;
122404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeSharedMemorySize;
122504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupCount[3];
122604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupInvocations;
122704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupSize[3];
122804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subPixelPrecisionBits;
122904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subTexelPrecisionBits;
123004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipmapPrecisionBits;
123104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDrawIndexedIndexValue;
123204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDrawIndirectInstanceCount;
123304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    primitiveRestartForPatches;
123404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxSamplerLodBias;
123504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxSamplerAnisotropy;
123604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxViewports;
123704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxViewportDimensions[2];
123804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       viewportBoundsRange[2];
123904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    viewportSubPixelBits;
124004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    minMemoryMapAlignment;
124104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    minTexelBufferOffsetAlignment;
124204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    minUniformBufferOffsetAlignment;
124304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    minStorageBufferOffsetAlignment;
1244fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    int32_t                                     minTexelOffset;
124504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxTexelOffset;
1246fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    int32_t                                     minTexelGatherOffset;
124704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxTexelGatherOffset;
124804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minInterpolationOffset;
124904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxInterpolationOffset;
125004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subPixelInterpolationOffsetBits;
125104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferWidth;
125204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferHeight;
125304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferLayers;
125404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferColorSamples;
125504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferDepthSamples;
125604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferStencilSamples;
125704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxColorAttachments;
125804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampledImageColorSamples;
125904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampledImageDepthSamples;
126004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampledImageIntegerSamples;
126104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxStorageImageSamples;
126204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampleMaskWords;
126304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint64_t                                    timestampFrequency;
126404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxClipDistances;
126504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxCullDistances;
126604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxCombinedClipAndCullDistances;
1267fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    discreteQueuePriorities;
126804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       pointSizeRange[2];
126904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       lineWidthRange[2];
127004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       pointSizeGranularity;
127104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       lineWidthGranularity;
127204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceLimits;
127304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
127404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
12755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyStandard2DBlockShape;
12765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyStandard2DMSBlockShape;
12775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyStandard3DBlockShape;
12785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyAlignedMipSize;
12795ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyNonResident;
12805ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyNonResidentStrict;
12815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPhysicalDeviceSparseProperties;
12825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
12835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
128404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    apiVersion;
128504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    driverVersion;
128604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vendorId;
128704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    deviceId;
128804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceType                        deviceType;
128904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    char                                        deviceName[VK_MAX_PHYSICAL_DEVICE_NAME];
129004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint8_t                                     pipelineCacheUUID[VK_UUID_LENGTH];
12915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkPhysicalDeviceLimits                      limits;
12925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkPhysicalDeviceSparseProperties            sparseProperties;
129304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceProperties;
129404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
129504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
129604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueueFlags                                queueFlags;
129704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueCount;
1298acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    uint32_t                                    timestampValidBits;
12995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkQueueFamilyProperties;
130004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
130104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
130204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryPropertyFlags                       propertyFlags;
130304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    heapIndex;
130404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryType;
130504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
130604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
130704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
130804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryHeapFlags                           flags;
130904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeap;
131004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
131104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
131204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeCount;
131304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryType                                memoryTypes[VK_MAX_MEMORY_TYPES];
131404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryHeapCount;
131504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryHeap                                memoryHeaps[VK_MAX_MEMORY_HEAPS];
131604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceMemoryProperties;
131704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
131804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
13195ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStructureType                             sType;
13205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const void*                                 pNext;
132104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex;
132204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueCount;
1323fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const float*                                pQueuePriorities;
132404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceQueueCreateInfo;
132504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
132604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
132704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
132804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1329ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    requestedQueueCount;
133004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceQueueCreateInfo*              pRequestedQueues;
133104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    layerCount;
133204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledLayerNames;
133304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    extensionCount;
133404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledExtensionNames;
133504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPhysicalDeviceFeatures*             pEnabledFeatures;
133604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceCreateInfo;
133704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
133804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
133904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    char                                        extName[VK_MAX_EXTENSION_NAME];
134004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    specVersion;
134104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkExtensionProperties;
134204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
134304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
134404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    char                                        layerName[VK_MAX_EXTENSION_NAME];
134504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    specVersion;
134604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    implVersion;
134704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    char                                        description[VK_MAX_DESCRIPTION];
134804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLayerProperties;
134904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
135004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1351a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    waitSemCount;
1352a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
1353a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    cmdBufferCount;
1354a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkCmdBuffer*                          pCommandBuffers;
1355a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    signalSemCount;
1356a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkSemaphore*                          pSignalSemaphores;
1357a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall} VkSubmitInfo;
1358a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall
1359a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Halltypedef struct {
136004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
136104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
136204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                allocationSize;
136304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeIndex;
136404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryAllocInfo;
136504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
136604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
136704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
136804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
136904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem;
137004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
137104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
137204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMappedMemoryRange;
137304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
137404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
137504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
137604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                alignment;
137704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeBits;
137804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryRequirements;
137904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
138004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1381a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageAspectFlagBits                       aspect;
138204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  imageGranularity;
138304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatFlags                    flags;
138404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatProperties;
138504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
138604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
138704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatProperties               formatProps;
138804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    imageMipTailStartLOD;
138904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailSize;
139004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailOffset;
139104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailStride;
139204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryRequirements;
139304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
139404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
139504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                rangeOffset;
139604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                rangeSize;
139704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                memOffset;
139804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem;
139904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseMemoryBindFlags                     flags;
140004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseMemoryBindInfo;
140104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
140204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1403a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageAspectFlagBits                       aspect;
140404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipLevel;
14055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    arrayLayer;
140604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresource;
140704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
140804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
140904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     x;
141004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     y;
141104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     z;
141204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkOffset3D;
141304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
141404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
141504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresource                          subresource;
141604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  offset;
141704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
141804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                memOffset;
141904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem;
142004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseMemoryBindFlags                     flags;
142104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryBindInfo;
142204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
142304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
142404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
142504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
142604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFenceCreateFlags                          flags;
142704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateInfo;
142804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
142904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
143004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
143104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
143204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphoreCreateFlags                      flags;
143304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSemaphoreCreateInfo;
143404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
143504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
143604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
143704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
143804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEventCreateFlags                          flags;
143904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkEventCreateInfo;
144004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
144104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
144204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
144304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
144404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryType                                 queryType;
144504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    slots;
144604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPipelineStatisticFlags               pipelineStatistics;
144704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPoolCreateInfo;
144804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
144904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
145004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
145104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
145204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
145304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferUsageFlags                          usage;
145404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferCreateFlags                         flags;
145504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSharingMode                               sharingMode;
145604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyCount;
145704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pQueueFamilyIndices;
145804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCreateInfo;
145904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
146004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
146104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
146204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
146304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer;
146404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
146504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
146604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                range;
146704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferViewCreateInfo;
146804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
146904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
147004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
147104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
147204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 imageType;
147304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
147404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
147504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipLevels;
1476a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    arrayLayers;
147704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    samples;
147804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling;
147904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage;
148004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageCreateFlags                          flags;
148104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSharingMode                               sharingMode;
148204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyCount;
148304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pQueueFamilyIndices;
14845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageLayout                               initialLayout;
148504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCreateInfo;
148604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
148704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
148804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
148904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
149004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                rowPitch;
149104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                depthPitch;
149204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubresourceLayout;
149304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
149404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
149504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelSwizzle                            r;
149604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelSwizzle                            g;
149704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelSwizzle                            b;
149804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelSwizzle                            a;
149904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkChannelMapping;
150004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
150104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
15025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageAspectFlags                          aspectMask;
150304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    baseMipLevel;
1504a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    numLevels;
15055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    baseArrayLayer;
1506a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    numLayers;
150704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresourceRange;
150804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
150904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
151004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
151104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
151204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image;
151304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageViewType                             viewType;
151404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
151504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelMapping                            channels;
151604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresourceRange                     subresourceRange;
15175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageViewCreateFlags                      flags;
151804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewCreateInfo;
151904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
152004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
152104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
152204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
152304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      codeSize;
152404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pCode;
152504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModuleCreateFlags                   flags;
152604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkShaderModuleCreateInfo;
152704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
152804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
152904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
153004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
153104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule                              module;
153204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName;
153304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderCreateFlags                         flags;
1534a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkShaderStageFlagBits                       stage;
153504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkShaderCreateInfo;
153604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
153704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
153804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
153904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
154004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      initialSize;
154104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 initialData;
154204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      maxSize;
154304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineCacheCreateInfo;
154404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
154504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
154604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    constantId;
154704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      size;
154804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    offset;
154904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationMapEntry;
155004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
155104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
155204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mapEntryCount;
155304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSpecializationMapEntry*             pMap;
155404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      dataSize;
155504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pData;
155604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationInfo;
155704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
155804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
155904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
156004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1561a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkShaderStageFlagBits                       stage;
156204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShader                                    shader;
156304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSpecializationInfo*                 pSpecializationInfo;
156404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineShaderStageCreateInfo;
156504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
156604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
156704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    binding;
156804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    strideInBytes;
156904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkVertexInputStepRate                       stepRate;
157004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputBindingDescription;
157104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
157204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
157304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    location;
157404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    binding;
157504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
157604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    offsetInBytes;
157704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputAttributeDescription;
157804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
157904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
158004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
158104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
158204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bindingCount;
158304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
158404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attributeCount;
158504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
158604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineVertexInputStateCreateInfo;
158704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
158804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
158904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
159004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
159104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPrimitiveTopology                         topology;
159204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    primitiveRestartEnable;
159304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineInputAssemblyStateCreateInfo;
159404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
159504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
159604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
159704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
159804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    patchControlPoints;
159904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineTessellationStateCreateInfo;
160004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
160104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
16025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       originX;
16035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       originY;
16045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       width;
16055ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       height;
16065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepth;
16075ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepth;
16085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkViewport;
16095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16105ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
16115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     x;
16125ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     y;
16135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkOffset2D;
16145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
16165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     width;
16175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     height;
16185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent2D;
16195ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
16215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkOffset2D                                  offset;
16225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkExtent2D                                  extent;
16235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkRect2D;
16245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
162604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
162704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
162804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    viewportCount;
16295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkViewport*                           pViewports;
16305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    scissorCount;
16315ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkRect2D*                             pScissors;
163204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineViewportStateCreateInfo;
163304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
163404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
163504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
163604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1637ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkBool32                                    depthClampEnable;
163804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    rasterizerDiscardEnable;
163904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFillMode                                  fillMode;
164004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCullMode                                  cullMode;
164104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFrontFace                                 frontFace;
16425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    depthBiasEnable;
16435ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBias;
16445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBiasClamp;
16455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       slopeScaledDepthBias;
16465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       lineWidth;
164704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineRasterStateCreateInfo;
164804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
164904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
165004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
165104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
165204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rasterSamples;
165304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sampleShadingEnable;
165404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minSampleShading;
16555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkSampleMask*                         pSampleMask;
1656acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VkBool32                                    alphaToCoverageEnable;
1657acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VkBool32                                    alphaToOneEnable;
165804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineMultisampleStateCreateInfo;
165904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
166004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
166104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOp                                 stencilFailOp;
166204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOp                                 stencilPassOp;
166304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOp                                 stencilDepthFailOp;
166404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCompareOp                                 stencilCompareOp;
16655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilCompareMask;
16665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilWriteMask;
16675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilReference;
166804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOpState;
166904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
167004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
167104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
167204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
167304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthTestEnable;
167404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthWriteEnable;
167504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCompareOp                                 depthCompareOp;
16765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    depthBoundsTestEnable;
167704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    stencilTestEnable;
167804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOpState                            front;
167904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOpState                            back;
16805ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepthBounds;
16815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepthBounds;
168204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineDepthStencilStateCreateInfo;
168304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
168404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
168504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    blendEnable;
168604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlend                                     srcBlendColor;
168704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlend                                     destBlendColor;
168804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlendOp                                   blendOpColor;
168904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlend                                     srcBlendAlpha;
169004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlend                                     destBlendAlpha;
169104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlendOp                                   blendOpAlpha;
169204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelFlags                              channelWriteMask;
169304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendAttachmentState;
169404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
169504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
169604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
169704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
169804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    logicOpEnable;
169904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLogicOp                                   logicOp;
170004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
170104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineColorBlendAttachmentState*  pAttachments;
17025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       blendConst[4];
170304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendStateCreateInfo;
170404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
170504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
170604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
170704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
17085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    dynamicStateCount;
17095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkDynamicState*                       pDynamicStates;
17105ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPipelineDynamicStateCreateInfo;
17115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
17125ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
17135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStructureType                             sType;
17145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const void*                                 pNext;
171504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stageCount;
171604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineShaderStageCreateInfo*      pStages;
171704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
171804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
171904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineTessellationStateCreateInfo* pTessellationState;
172004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineViewportStateCreateInfo*    pViewportState;
172104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineRasterStateCreateInfo*      pRasterState;
172204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
172304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
172404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineColorBlendStateCreateInfo*  pColorBlendState;
17255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkPipelineDynamicStateCreateInfo*     pDynamicState;
172604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCreateFlags                       flags;
172704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout;
172804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
172904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subpass;
173004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  basePipelineHandle;
173104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     basePipelineIndex;
173204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkGraphicsPipelineCreateInfo;
173304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
173404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
173504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
173604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
17375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkPipelineShaderStageCreateInfo             stage;
173804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCreateFlags                       flags;
173904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout;
174004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  basePipelineHandle;
174104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     basePipelineIndex;
174204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkComputePipelineCreateInfo;
174304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
174404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
174504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags;
174604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    start;
174704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    length;
174804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPushConstantRange;
174904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
175004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
175104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
175204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
175304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    descriptorSetCount;
175404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayout*                pSetLayouts;
175504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    pushConstantRangeCount;
175604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPushConstantRange*                  pPushConstantRanges;
175704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineLayoutCreateInfo;
175804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
175904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
176004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
176104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
176204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkTexFilter                                 magFilter;
176304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkTexFilter                                 minFilter;
176404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkTexMipmapMode                             mipMode;
17655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkTexAddressMode                            addressModeU;
17665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkTexAddressMode                            addressModeV;
17675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkTexAddressMode                            addressModeW;
176804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       mipLodBias;
176904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxAnisotropy;
177004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    compareEnable;
177104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCompareOp                                 compareOp;
177204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minLod;
177304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxLod;
177404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBorderColor                               borderColor;
17755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    unnormalizedCoordinates;
177604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSamplerCreateInfo;
177704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
177804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
177904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            descriptorType;
178004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    arraySize;
178104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags;
178204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSampler*                            pImmutableSamplers;
178304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutBinding;
178404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
178504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
178604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
178704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
178804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count;
178904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayoutBinding*         pBinding;
179004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutCreateInfo;
179104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
179204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
179304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            type;
179404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count;
179504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorTypeCount;
179604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
179704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
179804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
179904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1800fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPoolCreateFlags                 flags;
18015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxSets;
180204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count;
180304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorTypeCount*                pTypeCount;
180404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorPoolCreateInfo;
180504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
180604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1807fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkStructureType                             sType;
1808fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const void*                                 pNext;
1809fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPool                            descriptorPool;
1810fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    count;
1811fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorSetLayout*                pSetLayouts;
1812fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall} VkDescriptorSetAllocInfo;
1813fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall
1814fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef struct {
1815a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkSampler                                   sampler;
1816a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageView                                 imageView;
1817a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageLayout                               imageLayout;
1818a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkDescriptorImageInfo;
1819a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
1820a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef struct {
18215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBuffer                                    buffer;
18225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                offset;
18235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                range;
18245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDescriptorBufferInfo;
18255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
182604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
182704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
182804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
182904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSet                             destSet;
183004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destBinding;
183104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destArrayElement;
183204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count;
183304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            descriptorType;
1834fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorImageInfo*                pImageInfo;
1835fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorBufferInfo*               pBufferInfo;
1836fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkBufferView*                         pTexelBufferView;
183704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkWriteDescriptorSet;
183804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
183904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
184004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
184104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
184204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSet                             srcSet;
184304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcBinding;
184404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcArrayElement;
184504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSet                             destSet;
184604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destBinding;
184704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destArrayElement;
184804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count;
184904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCopyDescriptorSet;
185004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
185104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
185204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
185304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
185404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
185504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
18565ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkImageView*                          pAttachments;
185704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    width;
185804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    height;
185904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    layers;
186004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFramebufferCreateInfo;
186104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
186204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
186304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
186404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
186504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
186604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    samples;
186704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentLoadOp                          loadOp;
186804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentStoreOp                         storeOp;
186904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentLoadOp                          stencilLoadOp;
187004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentStoreOp                         stencilStoreOp;
187104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               initialLayout;
187204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               finalLayout;
18735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkAttachmentDescriptionFlags                flags;
187404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentDescription;
187504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
187604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
187704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachment;
187804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               layout;
187904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentReference;
188004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
188104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
188204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
188304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
188404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint;
188504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSubpassDescriptionFlags                   flags;
188604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    inputCount;
18875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pInputAttachments;
188804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    colorCount;
18895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pColorAttachments;
18905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pResolveAttachments;
189104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentReference                       depthStencilAttachment;
189204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    preserveCount;
18935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pPreserveAttachments;
189404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDescription;
189504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
189604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
189704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
189804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
189904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcSubpass;
190004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destSubpass;
190104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask;
190204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        destStageMask;
190304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryOutputFlags                         outputMask;
190404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryInputFlags                          inputMask;
190504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    byRegion;
190604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDependency;
190704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
190804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
190904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
191004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
191104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
191204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkAttachmentDescription*              pAttachments;
191304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subpassCount;
191404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSubpassDescription*                 pSubpasses;
191504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    dependencyCount;
191604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSubpassDependency*                  pDependencies;
191704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassCreateInfo;
191804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
191904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
192004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
192104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
192204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex;
192304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPoolCreateFlags                        flags;
192404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdPoolCreateInfo;
192504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
192604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
192704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
192804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
192904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPool                                   cmdPool;
193004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBufferLevel                            level;
1931fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    count;
1932fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall} VkCmdBufferAllocInfo;
193304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
193404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
193504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
193604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1937a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkCmdBufferUsageFlags                       flags;
193804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
19395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    subpass;
194004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer                               framebuffer;
194104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdBufferBeginInfo;
194204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
194304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
194404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                srcOffset;
194504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destOffset;
194604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                copySize;
194704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCopy;
194804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
194904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1950a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageAspectFlags                          aspect;
19515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    mipLevel;
1952a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    baseArrayLayer;
1953a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    numLayers;
19545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageSubresourceCopy;
19555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
19565ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
19575ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      srcSubresource;
195804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
19595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      destSubresource;
196004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  destOffset;
196104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
196204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCopy;
196304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
196404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
19655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      srcSubresource;
196604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
196704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  srcExtent;
19685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      destSubresource;
196904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  destOffset;
197004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  destExtent;
197104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageBlit;
197204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
197304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
197404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                bufferOffset;
197504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bufferRowLength;
197604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bufferImageHeight;
19775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      imageSubresource;
197804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  imageOffset;
197904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  imageExtent;
198004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferImageCopy;
198104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
198204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef union {
19835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       float32[4];
19845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     int32[4];
19855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    uint32[4];
198604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkClearColorValue;
198704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
198804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
19895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depth;
19905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencil;
19915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkClearDepthStencilValue;
19925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
1993ae38f7355fd03b777313e13586585a74e0dee05bJesse Halltypedef union {
1994ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearColorValue                           color;
1995ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearDepthStencilValue                    depthStencil;
1996ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearValue;
1997ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
1998ae38f7355fd03b777313e13586585a74e0dee05bJesse Halltypedef struct {
1999ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkImageAspectFlags                          aspectMask;
2000ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    colorAttachment;
2001ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearValue                                clearValue;
2002ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearAttachment;
2003ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
20045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
2005a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkRect2D                                    rect;
2006a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    baseArrayLayer;
2007a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    numLayers;
2008a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkClearRect;
200904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
201004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
20115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      srcSubresource;
201204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
20135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      destSubresource;
201404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  destOffset;
201504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
201604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageResolve;
201704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
201804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
201904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
202004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
202104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
202204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer                               framebuffer;
202304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRect2D                                    renderArea;
20245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    clearValueCount;
20255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkClearValue*                         pClearValues;
202604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassBeginInfo;
202704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
202804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
202904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
203004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
203104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryOutputFlags                         outputMask;
203204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryInputFlags                          inputMask;
203304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcQueueFamilyIndex;
203404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destQueueFamilyIndex;
203504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer;
203604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
203704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
203804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferMemoryBarrier;
203904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
204004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
204104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    x;
204204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    y;
204304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    z;
204404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDispatchIndirectCmd;
204504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
204604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
204704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    indexCount;
204804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    instanceCount;
204904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstIndex;
205004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     vertexOffset;
205104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstInstance;
205204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDrawIndexedIndirectCmd;
205304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
205404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
205504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vertexCount;
205604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    instanceCount;
205704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstVertex;
205804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstInstance;
205904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDrawIndirectCmd;
206004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
206104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
206204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
206304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
206404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryOutputFlags                         outputMask;
206504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryInputFlags                          inputMask;
206604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               oldLayout;
206704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               newLayout;
206804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcQueueFamilyIndex;
206904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destQueueFamilyIndex;
207004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image;
207104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresourceRange                     subresourceRange;
207204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageMemoryBarrier;
207304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
207404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
207504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
207604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
207704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryOutputFlags                         outputMask;
207804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryInputFlags                          inputMask;
207904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryBarrier;
208004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
208104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
208204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, VkInstance* pInstance);
20835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyInstance)(VkInstance instance);
208404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
2085606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
2086606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
2087606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
2088606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
2089606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pCount, VkQueueFamilyProperties* pQueueFamilyProperties);
2090606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
209104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef PFN_vkVoidFunction (VKAPI *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
209204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef PFN_vkVoidFunction (VKAPI *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
209304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, VkDevice* pDevice);
20945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyDevice)(VkDevice device);
20955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pCount, VkExtensionProperties* pProperties);
20965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pCount, VkExtensionProperties* pProperties);
20975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pCount, VkLayerProperties* pProperties);
20985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pCount, VkLayerProperties* pProperties);
2099606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
2100a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Halltypedef VkResult (VKAPI *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmitInfo, VkFence fence);
210104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkQueueWaitIdle)(VkQueue queue);
210204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkDeviceWaitIdle)(VkDevice device);
210304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkAllocMemory)(VkDevice device, const VkMemoryAllocInfo* pAllocInfo, VkDeviceMemory* pMem);
21045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory mem);
210504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory mem, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
21065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory mem);
210704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memRangeCount, const VkMappedMemoryRange* pMemRanges);
210804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memRangeCount, const VkMappedMemoryRange* pMemRanges);
2109606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
211004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory mem, VkDeviceSize memOffset);
211104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory mem, VkDeviceSize memOffset);
2112606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
2113606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
2114606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pNumRequirements, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
2115606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, uint32_t samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pNumProperties, VkSparseImageFormatProperties* pProperties);
211604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkQueueBindSparseBufferMemory)(VkQueue queue, VkBuffer buffer, uint32_t numBindings, const VkSparseMemoryBindInfo* pBindInfo);
211704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkQueueBindSparseImageOpaqueMemory)(VkQueue queue, VkImage image, uint32_t numBindings, const VkSparseMemoryBindInfo* pBindInfo);
211804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkQueueBindSparseImageMemory)(VkQueue queue, VkImage image, uint32_t numBindings, const VkSparseImageMemoryBindInfo* pBindInfo);
211904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, VkFence* pFence);
21205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyFence)(VkDevice device, VkFence fence);
212104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
212204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
212304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
212404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, VkSemaphore* pSemaphore);
21255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore);
212604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkQueueSignalSemaphore)(VkQueue queue, VkSemaphore semaphore);
212704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkQueueWaitSemaphore)(VkQueue queue, VkSemaphore semaphore);
212804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, VkEvent* pEvent);
21295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyEvent)(VkDevice device, VkEvent event);
213004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
213104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkSetEvent)(VkDevice device, VkEvent event);
213204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetEvent)(VkDevice device, VkEvent event);
213304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, VkQueryPool* pQueryPool);
21345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool);
213504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, size_t* pDataSize, void* pData, VkQueryResultFlags flags);
213604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, VkBuffer* pBuffer);
21375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer);
213804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, VkBufferView* pView);
21395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView);
214004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, VkImage* pImage);
21415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyImage)(VkDevice device, VkImage image);
2142606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
214304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, VkImageView* pView);
21445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView);
214504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModule* pShaderModule);
21465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule);
214704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateShader)(VkDevice device, const VkShaderCreateInfo* pCreateInfo, VkShader* pShader);
21485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyShader)(VkDevice device, VkShader shader);
214904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, VkPipelineCache* pPipelineCache);
21505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache);
215104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef size_t (VKAPI *PFN_vkGetPipelineCacheSize)(VkDevice device, VkPipelineCache pipelineCache);
2152606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t dataSize, void* pData);
215304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache destCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
215404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, const VkGraphicsPipelineCreateInfo* pCreateInfos, VkPipeline* pPipelines);
215504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, const VkComputePipelineCreateInfo* pCreateInfos, VkPipeline* pPipelines);
21565ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline);
215704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, VkPipelineLayout* pPipelineLayout);
21585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout);
215904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, VkSampler* pSampler);
21605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler);
216104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayout* pSetLayout);
21625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout);
21635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, VkDescriptorPool* pDescriptorPool);
21645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool);
2165fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkResult (VKAPI *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
2166fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkResult (VKAPI *PFN_vkAllocDescriptorSets)(VkDevice device, const VkDescriptorSetAllocInfo* pAllocInfo, VkDescriptorSet* pDescriptorSets);
216704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t count, const VkDescriptorSet* pDescriptorSets);
21685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t writeCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t copyCount, const VkCopyDescriptorSet* pDescriptorCopies);
216904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, VkFramebuffer* pFramebuffer);
21705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer);
217104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, VkRenderPass* pRenderPass);
21725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass);
2173606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
217404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateCommandPool)(VkDevice device, const VkCmdPoolCreateInfo* pCreateInfo, VkCmdPool* pCmdPool);
21755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyCommandPool)(VkDevice device, VkCmdPool cmdPool);
217604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetCommandPool)(VkDevice device, VkCmdPool cmdPool, VkCmdPoolResetFlags flags);
2177fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef VkResult (VKAPI *PFN_vkAllocCommandBuffers)(VkDevice device, const VkCmdBufferAllocInfo* pAllocInfo, VkCmdBuffer* pCmdBuffers);
2178fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Halltypedef void (VKAPI *PFN_vkFreeCommandBuffers)(VkDevice device, VkCmdPool cmdPool, uint32_t count, const VkCmdBuffer* pCommandBuffers);
217904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkBeginCommandBuffer)(VkCmdBuffer cmdBuffer, const VkCmdBufferBeginInfo* pBeginInfo);
218004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkEndCommandBuffer)(VkCmdBuffer cmdBuffer);
218104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetCommandBuffer)(VkCmdBuffer cmdBuffer, VkCmdBufferResetFlags flags);
218204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBindPipeline)(VkCmdBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
21835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetViewport)(VkCmdBuffer cmdBuffer, uint32_t viewportCount, const VkViewport* pViewports);
21845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetScissor)(VkCmdBuffer cmdBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
21855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetLineWidth)(VkCmdBuffer cmdBuffer, float lineWidth);
21865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetDepthBias)(VkCmdBuffer cmdBuffer, float depthBias, float depthBiasClamp, float slopeScaledDepthBias);
21875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetBlendConstants)(VkCmdBuffer cmdBuffer, const float blendConst[4]);
21885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetDepthBounds)(VkCmdBuffer cmdBuffer, float minDepthBounds, float maxDepthBounds);
21895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetStencilCompareMask)(VkCmdBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilCompareMask);
21905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetStencilWriteMask)(VkCmdBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilWriteMask);
21915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetStencilReference)(VkCmdBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilReference);
219204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse 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);
219304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBindIndexBuffer)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
219404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBindVertexBuffers)(VkCmdBuffer cmdBuffer, uint32_t startBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
21955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdDraw)(VkCmdBuffer cmdBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
21965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdDrawIndexed)(VkCmdBuffer cmdBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
219704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdDrawIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, uint32_t stride);
219804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdDrawIndexedIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, uint32_t stride);
219904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdDispatch)(VkCmdBuffer cmdBuffer, uint32_t x, uint32_t y, uint32_t z);
220004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdDispatchIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset);
220104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdCopyBuffer)(VkCmdBuffer cmdBuffer, VkBuffer srcBuffer, VkBuffer destBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
220204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdCopyImage)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
220304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBlitImage)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkTexFilter filter);
220404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdCopyBufferToImage)(VkCmdBuffer cmdBuffer, VkBuffer srcBuffer, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
220504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdCopyImageToBuffer)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer destBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
220604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdUpdateBuffer)(VkCmdBuffer cmdBuffer, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize dataSize, const uint32_t* pData);
220704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdFillBuffer)(VkCmdBuffer cmdBuffer, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize fillSize, uint32_t data);
220804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdClearColorImage)(VkCmdBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
22095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdClearDepthStencilImage)(VkCmdBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2210a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef void (VKAPI *PFN_vkCmdClearAttachments)(VkCmdBuffer cmdBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
221104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdResolveImage)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
221204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdSetEvent)(VkCmdBuffer cmdBuffer, VkEvent event, VkPipelineStageFlags stageMask);
221304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdResetEvent)(VkCmdBuffer cmdBuffer, VkEvent event, VkPipelineStageFlags stageMask);
221404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdWaitEvents)(VkCmdBuffer cmdBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags destStageMask, uint32_t memBarrierCount, const void* const* ppMemBarriers);
221504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdPipelineBarrier)(VkCmdBuffer cmdBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags destStageMask, VkBool32 byRegion, uint32_t memBarrierCount, const void* const* ppMemBarriers);
221604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBeginQuery)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t slot, VkQueryControlFlags flags);
221704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdEndQuery)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t slot);
221804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdResetQueryPool)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount);
221904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdWriteTimestamp)(VkCmdBuffer cmdBuffer, VkTimestampType timestampType, VkBuffer destBuffer, VkDeviceSize destOffset);
222004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdCopyQueryPoolResults)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize destStride, VkQueryResultFlags flags);
222104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdPushConstants)(VkCmdBuffer cmdBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t start, uint32_t length, const void* values);
222204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBeginRenderPass)(VkCmdBuffer cmdBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkRenderPassContents contents);
222304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdNextSubpass)(VkCmdBuffer cmdBuffer, VkRenderPassContents contents);
222404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdEndRenderPass)(VkCmdBuffer cmdBuffer);
222504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdExecuteCommands)(VkCmdBuffer cmdBuffer, uint32_t cmdBuffersCount, const VkCmdBuffer* pCmdBuffers);
222604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
222704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef VK_PROTOTYPES
222804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateInstance(
222904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkInstanceCreateInfo*                 pCreateInfo,
223004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance*                                 pInstance);
223104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyInstance(
223304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance);
223404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
223504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkEnumeratePhysicalDevices(
223604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
223704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pPhysicalDeviceCount,
223804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice*                           pPhysicalDevices);
223904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2240606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceFeatures(
224104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
224204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceFeatures*                   pFeatures);
224304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2244606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceFormatProperties(
224504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
224604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
224704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatProperties*                         pFormatProperties);
224804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2249606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceImageFormatProperties(
225004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
225104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
225204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
225304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
225404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
22555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageCreateFlags                          flags,
225604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageFormatProperties*                    pImageFormatProperties);
225704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2258606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceProperties(
225904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
226004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceProperties*                 pProperties);
226104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2262606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceQueueFamilyProperties(
226304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
22645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t*                                   pCount,
22655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkQueueFamilyProperties*                    pQueueFamilyProperties);
226604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2267606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceMemoryProperties(
226804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
226904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
227004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
227104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallPFN_vkVoidFunction VKAPI vkGetInstanceProcAddr(
227204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
227304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
227404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
227504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallPFN_vkVoidFunction VKAPI vkGetDeviceProcAddr(
227604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
227704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
227804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
227904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateDevice(
228004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
228104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceCreateInfo*                   pCreateInfo,
228204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice*                                   pDevice);
228304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyDevice(
228504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device);
228604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateInstanceExtensionProperties(
228804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
228904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pCount,
229004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
229104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateDeviceExtensionProperties(
229304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
229404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
229504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pCount,
229604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
229704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateInstanceLayerProperties(
229904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pCount,
230004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
230104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateDeviceLayerProperties(
230304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
230404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pCount,
230504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
230604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2307606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetDeviceQueue(
230804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
230904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex,
231004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueIndex,
231104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue*                                    pQueue);
231204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
231304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueSubmit(
231404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
2315a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    submitCount,
2316a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkSubmitInfo*                         pSubmitInfo,
231704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
231804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
231904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueWaitIdle(
232004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue);
232104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
232204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkDeviceWaitIdle(
232304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device);
232404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
232504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkAllocMemory(
232604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
232704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkMemoryAllocInfo*                    pAllocInfo,
232804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory*                             pMem);
232904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkFreeMemory(
233104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
233204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem);
233304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
233404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkMapMemory(
233504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
233604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem,
233704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
233804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size,
233904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryMapFlags                            flags,
234004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void**                                      ppData);
234104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkUnmapMemory(
234304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
234404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem);
234504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
234604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkFlushMappedMemoryRanges(
234704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
234804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memRangeCount,
234904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkMappedMemoryRange*                  pMemRanges);
235004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
235104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkInvalidateMappedMemoryRanges(
235204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
235304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memRangeCount,
235404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkMappedMemoryRange*                  pMemRanges);
235504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2356606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetDeviceMemoryCommitment(
235704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
235804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              memory,
235904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize*                               pCommittedMemoryInBytes);
236004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
236104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkBindBufferMemory(
236204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
236304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
236404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem,
236504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                memOffset);
236604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
236704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkBindImageMemory(
236804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
236904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
237004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem,
237104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                memOffset);
237204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2373606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetBufferMemoryRequirements(
237404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
237504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
237604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
237704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2378606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetImageMemoryRequirements(
237904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
238004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
238104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
238204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2383606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetImageSparseMemoryRequirements(
238404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
238504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
238604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pNumRequirements,
238704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
238804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2389606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceSparseImageFormatProperties(
239004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
239104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
239204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
239304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    samples,
239404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
239504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
239604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pNumProperties,
239704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatProperties*              pProperties);
239804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
239904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueBindSparseBufferMemory(
240004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
240104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
240204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    numBindings,
240304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSparseMemoryBindInfo*               pBindInfo);
240404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
240504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueBindSparseImageOpaqueMemory(
240604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
240704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
240804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    numBindings,
240904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSparseMemoryBindInfo*               pBindInfo);
241004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
241104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueBindSparseImageMemory(
241204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
241304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
241404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    numBindings,
241504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSparseImageMemoryBindInfo*          pBindInfo);
241604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
241704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateFence(
241804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
241904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFenceCreateInfo*                    pCreateInfo,
242004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence*                                    pFence);
242104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyFence(
242304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
242404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
242504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
242604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetFences(
242704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
242804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
242904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences);
243004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
243104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetFenceStatus(
243204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
243304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
243404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
243504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkWaitForFences(
243604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
243704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
243804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences,
243904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    waitAll,
244004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint64_t                                    timeout);
244104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
244204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateSemaphore(
244304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
244404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSemaphoreCreateInfo*                pCreateInfo,
244504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphore*                                pSemaphore);
244604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24475ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroySemaphore(
244804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
244904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphore                                 semaphore);
245004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
245104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueSignalSemaphore(
245204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
245304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphore                                 semaphore);
245404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
245504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueWaitSemaphore(
245604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
245704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphore                                 semaphore);
245804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
245904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateEvent(
246004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
246104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEventCreateInfo*                    pCreateInfo,
246204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent*                                    pEvent);
246304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyEvent(
246504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
246604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
246704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
246804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetEventStatus(
246904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
247004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
247104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
247204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkSetEvent(
247304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
247404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
247504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
247604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetEvent(
247704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
247804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
247904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
248004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateQueryPool(
248104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
248204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkQueryPoolCreateInfo*                pCreateInfo,
248304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool*                                pQueryPool);
248404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyQueryPool(
248604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
248704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool);
248804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
248904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetQueryPoolResults(
249004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
249104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
249204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
249304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
249404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t*                                     pDataSize,
249504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData,
249604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
249704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
249804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateBuffer(
249904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
250004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCreateInfo*                   pCreateInfo,
250104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer*                                   pBuffer);
250204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyBuffer(
250404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
250504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer);
250604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
250704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateBufferView(
250804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
250904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferViewCreateInfo*               pCreateInfo,
251004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferView*                               pView);
251104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25125ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyBufferView(
251304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
251404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferView                                bufferView);
251504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
251604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateImage(
251704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
251804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCreateInfo*                    pCreateInfo,
251904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage*                                    pImage);
252004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyImage(
252204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
252304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image);
252404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2525606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetImageSubresourceLayout(
252604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
252704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
252804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresource*                   pSubresource,
252904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSubresourceLayout*                        pLayout);
253004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
253104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateImageView(
253204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
253304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageViewCreateInfo*                pCreateInfo,
253404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageView*                                pView);
253504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyImageView(
253704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
253804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageView                                 imageView);
253904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
254004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateShaderModule(
254104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
254204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkShaderModuleCreateInfo*             pCreateInfo,
254304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule*                             pShaderModule);
254404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyShaderModule(
254604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
254704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule                              shaderModule);
254804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
254904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateShader(
255004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
255104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkShaderCreateInfo*                   pCreateInfo,
255204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShader*                                   pShader);
255304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyShader(
255504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
255604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShader                                    shader);
255704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
255804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreatePipelineCache(
255904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
256004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCacheCreateInfo*            pCreateInfo,
256104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache*                            pPipelineCache);
256204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyPipelineCache(
256404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
256504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache);
256604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
256704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallsize_t VKAPI vkGetPipelineCacheSize(
256804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
256904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache);
257004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
257104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetPipelineCacheData(
257204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
2574606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hall    size_t                                      dataSize,
257504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData);
257604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
257704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkMergePipelineCaches(
257804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             destCache,
258004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcCacheCount,
258104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCache*                      pSrcCaches);
258204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
258304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateGraphicsPipelines(
258404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
258504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
258604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count,
258704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkGraphicsPipelineCreateInfo*         pCreateInfos,
258804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
258904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
259004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateComputePipelines(
259104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
259204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
259304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count,
259404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkComputePipelineCreateInfo*          pCreateInfos,
259504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
259604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyPipeline(
259804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
259904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  pipeline);
260004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
260104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreatePipelineLayout(
260204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineLayoutCreateInfo*           pCreateInfo,
260404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout*                           pPipelineLayout);
260504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyPipelineLayout(
260704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            pipelineLayout);
260904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
261004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateSampler(
261104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
261204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSamplerCreateInfo*                  pCreateInfo,
261304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSampler*                                  pSampler);
261404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroySampler(
261604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
261704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSampler                                   sampler);
261804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
261904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateDescriptorSetLayout(
262004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
262104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
262204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSetLayout*                      pSetLayout);
262304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyDescriptorSetLayout(
262504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
262604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSetLayout                       descriptorSetLayout);
262704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
262804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateDescriptorPool(
262904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
263004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorPoolCreateInfo*           pCreateInfo,
263104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool*                           pDescriptorPool);
263204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26335ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyDescriptorPool(
263404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
263504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool                            descriptorPool);
263604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
263704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetDescriptorPool(
263804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2639fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPool                            descriptorPool,
2640fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkDescriptorPoolResetFlags                  flags);
264104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
264204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkAllocDescriptorSets(
264304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2644fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkDescriptorSetAllocInfo*             pAllocInfo,
26455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDescriptorSet*                            pDescriptorSets);
264604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
264704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkFreeDescriptorSets(
264804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
264904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool                            descriptorPool,
265004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count,
265104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets);
265204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkUpdateDescriptorSets(
265404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    writeCount,
265604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkWriteDescriptorSet*                 pDescriptorWrites,
265704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    copyCount,
265804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCopyDescriptorSet*                  pDescriptorCopies);
265904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
266004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateFramebuffer(
266104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
266204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFramebufferCreateInfo*              pCreateInfo,
266304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer*                              pFramebuffer);
266404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyFramebuffer(
266604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
266704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer                               framebuffer);
266804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
266904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateRenderPass(
267004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
267104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassCreateInfo*               pCreateInfo,
267204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass*                               pRenderPass);
267304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyRenderPass(
267504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
267604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass);
267704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2678606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetRenderAreaGranularity(
267904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
268004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass,
268104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent2D*                                 pGranularity);
268204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
268304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateCommandPool(
268404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
268504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCmdPoolCreateInfo*                  pCreateInfo,
268604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPool*                                  pCmdPool);
268704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyCommandPool(
268904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
269004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPool                                   cmdPool);
269104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
269204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetCommandPool(
269304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
269404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPool                                   cmdPool,
269504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPoolResetFlags                         flags);
269604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2697fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse HallVkResult VKAPI vkAllocCommandBuffers(
269804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2699fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkCmdBufferAllocInfo*                 pAllocInfo,
2700fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkCmdBuffer*                                pCmdBuffers);
270104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2702fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hallvoid VKAPI vkFreeCommandBuffers(
270304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
2704fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    VkCmdPool                                   cmdPool,
2705fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    uint32_t                                    count,
2706fbf97b0e5e25349b951dce1016b263ec3acbf376Jesse Hall    const VkCmdBuffer*                          pCommandBuffers);
270704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
270804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkBeginCommandBuffer(
270904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
271004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCmdBufferBeginInfo*                 pBeginInfo);
271104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
271204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkEndCommandBuffer(
271304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer);
271404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
271504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetCommandBuffer(
271604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
271704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBufferResetFlags                       flags);
271804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
271904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindPipeline(
272004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
272104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
272204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  pipeline);
272304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetViewport(
27255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkCmdBuffer                                 cmdBuffer,
27265ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    viewportCount,
27275ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkViewport*                           pViewports);
27285ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
27295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetScissor(
27305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkCmdBuffer                                 cmdBuffer,
27315ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    scissorCount,
27325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkRect2D*                             pScissors);
27335ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
27345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetLineWidth(
27355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkCmdBuffer                                 cmdBuffer,
27365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       lineWidth);
27375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
27385ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetDepthBias(
273904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
27405ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBias,
27415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBiasClamp,
27425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       slopeScaledDepthBias);
274304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetBlendConstants(
274504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
27465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const float                                 blendConst[4]);
274704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetDepthBounds(
274904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
27505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepthBounds,
27515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepthBounds);
275204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetStencilCompareMask(
275404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
27555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
27565ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilCompareMask);
27575ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
27585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetStencilWriteMask(
27595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkCmdBuffer                                 cmdBuffer,
27605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
27615ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilWriteMask);
27625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
27635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetStencilReference(
27645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkCmdBuffer                                 cmdBuffer,
27655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
27665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilReference);
276704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
276804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindDescriptorSets(
276904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
277004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
277104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
277204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstSet,
277304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    setCount,
277404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets,
277504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    dynamicOffsetCount,
277604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pDynamicOffsets);
277704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
277804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindIndexBuffer(
277904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
278004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
278104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
278204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkIndexType                                 indexType);
278304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
278404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindVertexBuffers(
278504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
278604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startBinding,
278704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bindingCount,
278804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBuffer*                             pBuffers,
278904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceSize*                         pOffsets);
279004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
279104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDraw(
279204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
279304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vertexCount,
27945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
27955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstVertex,
27965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
279704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
279804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDrawIndexed(
279904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
280004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    indexCount,
28015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
28025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstIndex,
280304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     vertexOffset,
28045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
280504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
280604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDrawIndirect(
280704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
280804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
280904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
281004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count,
281104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
281204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
281304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDrawIndexedIndirect(
281404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
281504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
281604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
281704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count,
281804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
281904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
282004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDispatch(
282104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
282204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    x,
282304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    y,
282404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    z);
282504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
282604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDispatchIndirect(
282704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
282804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
282904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset);
283004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
283104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyBuffer(
283204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
283304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
283404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
283504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
283604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCopy*                         pRegions);
283704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
283804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyImage(
283904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
284004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
284104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
284204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     destImage,
284304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               destImageLayout,
284404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
284504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCopy*                          pRegions);
284604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
284704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBlitImage(
284804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
284904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
285004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
285104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     destImage,
285204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               destImageLayout,
285304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
285404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageBlit*                          pRegions,
285504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkTexFilter                                 filter);
285604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
285704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyBufferToImage(
285804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
285904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
286004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     destImage,
286104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               destImageLayout,
286204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
286304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
286404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
286504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyImageToBuffer(
286604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
286704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
286804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
286904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
287004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
287104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
287204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
287304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdUpdateBuffer(
287404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
287504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
287604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destOffset,
287704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                dataSize,
287804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pData);
287904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
288004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdFillBuffer(
288104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
288204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
288304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destOffset,
288404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                fillSize,
288504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    data);
288604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
288704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdClearColorImage(
288804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
288904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
289004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
289104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkClearColorValue*                    pColor,
289204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
289304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
289404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
289504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdClearDepthStencilImage(
289604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
289704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
289804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
28995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkClearDepthStencilValue*             pDepthStencil,
290004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
290104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
290204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2903ae38f7355fd03b777313e13586585a74e0dee05bJesse Hallvoid VKAPI vkCmdClearAttachments(
290404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
2905ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    attachmentCount,
2906ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    const VkClearAttachment*                    pAttachments,
290704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rectCount,
2908a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    const VkClearRect*                          pRects);
290904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
291004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdResolveImage(
291104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
291204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
291304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
291404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     destImage,
291504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               destImageLayout,
291604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
291704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageResolve*                       pRegions);
291804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
291904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdSetEvent(
292004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
292104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
292204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
292304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
292404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdResetEvent(
292504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
292604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
292704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
292804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
292904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdWaitEvents(
293004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
293104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    eventCount,
293204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEvent*                              pEvents,
293304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
293404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        destStageMask,
293504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memBarrierCount,
293604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void* const*                          ppMemBarriers);
293704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
293804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdPipelineBarrier(
293904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
294004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
294104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        destStageMask,
294204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    byRegion,
294304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memBarrierCount,
294404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void* const*                          ppMemBarriers);
294504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
294604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBeginQuery(
294704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
294804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
294904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    slot,
295004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryControlFlags                         flags);
295104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
295204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdEndQuery(
295304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
295404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
295504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    slot);
295604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
295704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdResetQueryPool(
295804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
295904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
296004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
296104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount);
296204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
296304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdWriteTimestamp(
296404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
296504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkTimestampType                             timestampType,
296604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
296704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destOffset);
296804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
296904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyQueryPoolResults(
297004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
297104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
297204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
297304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
297404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
297504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destOffset,
297604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destStride,
297704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
297804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
297904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdPushConstants(
298004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
298104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
298204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags,
298304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    start,
298404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    length,
298504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 values);
298604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
298704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBeginRenderPass(
298804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
298904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassBeginInfo*                pRenderPassBegin,
299004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPassContents                        contents);
299104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
299204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdNextSubpass(
299304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
299404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPassContents                        contents);
299504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
299604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdEndRenderPass(
299704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer);
299804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
299904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdExecuteCommands(
300004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
300104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    cmdBuffersCount,
300204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCmdBuffer*                          pCmdBuffers);
300304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
300404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
300504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef __cplusplus
300604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
300704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
300804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
300904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
3010