vulkan.h revision a15a4bf4bafd6114ae8f28c2df2fc622cb3baace
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
44a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall#define VK_API_VERSION VK_MAKE_VERSION(0, 181, 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,
1725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_CMD_BUFFER_CREATE_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,
21004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
2115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,
2125ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STRUCTURE_TYPE_NUM = (VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
21304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
21404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStructureType;
21504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
21604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
21704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SYSTEM_ALLOC_TYPE_API_OBJECT = 0,
21804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SYSTEM_ALLOC_TYPE_INTERNAL = 1,
21904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SYSTEM_ALLOC_TYPE_INTERNAL_TEMP = 2,
22004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SYSTEM_ALLOC_TYPE_INTERNAL_SHADER = 3,
22104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SYSTEM_ALLOC_TYPE_DEBUG = 4,
22204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SYSTEM_ALLOC_TYPE_BEGIN_RANGE = VK_SYSTEM_ALLOC_TYPE_API_OBJECT,
22304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SYSTEM_ALLOC_TYPE_END_RANGE = VK_SYSTEM_ALLOC_TYPE_DEBUG,
22404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SYSTEM_ALLOC_TYPE_NUM = (VK_SYSTEM_ALLOC_TYPE_DEBUG - VK_SYSTEM_ALLOC_TYPE_API_OBJECT + 1),
22504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SYSTEM_ALLOC_TYPE_MAX_ENUM = 0x7FFFFFFF
22604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSystemAllocType;
22704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
22904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_UNDEFINED = 0,
23004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R4G4_UNORM = 1,
23104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R4G4_USCALED = 2,
23204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R4G4B4A4_UNORM = 3,
23304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R4G4B4A4_USCALED = 4,
23404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R5G6B5_UNORM = 5,
23504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R5G6B5_USCALED = 6,
23604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R5G5B5A1_UNORM = 7,
23704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R5G5B5A1_USCALED = 8,
23804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_UNORM = 9,
23904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SNORM = 10,
24004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_USCALED = 11,
24104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SSCALED = 12,
24204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_UINT = 13,
24304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SINT = 14,
24404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8_SRGB = 15,
24504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_UNORM = 16,
24604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SNORM = 17,
24704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_USCALED = 18,
24804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SSCALED = 19,
24904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_UINT = 20,
25004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SINT = 21,
25104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8_SRGB = 22,
25204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_UNORM = 23,
25304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SNORM = 24,
25404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_USCALED = 25,
25504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SSCALED = 26,
25604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_UINT = 27,
25704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SINT = 28,
25804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8_SRGB = 29,
25904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_UNORM = 30,
26004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_SNORM = 31,
26104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_USCALED = 32,
26204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_SSCALED = 33,
26304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_UINT = 34,
26404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_SINT = 35,
26504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R8G8B8A8_SRGB = 36,
26604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_UNORM = 37,
26704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_SNORM = 38,
26804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_USCALED = 39,
26904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_SSCALED = 40,
27004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_UINT = 41,
27104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R10G10B10A2_SINT = 42,
27204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_UNORM = 43,
27304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_SNORM = 44,
27404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_USCALED = 45,
27504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_SSCALED = 46,
27604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_UINT = 47,
27704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_SINT = 48,
27804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16_SFLOAT = 49,
27904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_UNORM = 50,
28004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_SNORM = 51,
28104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_USCALED = 52,
28204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_SSCALED = 53,
28304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_UINT = 54,
28404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_SINT = 55,
28504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16_SFLOAT = 56,
28604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_UNORM = 57,
28704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_SNORM = 58,
28804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_USCALED = 59,
28904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_SSCALED = 60,
29004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_UINT = 61,
29104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_SINT = 62,
29204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16_SFLOAT = 63,
29304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_UNORM = 64,
29404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_SNORM = 65,
29504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_USCALED = 66,
29604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_SSCALED = 67,
29704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_UINT = 68,
29804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_SINT = 69,
29904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R16G16B16A16_SFLOAT = 70,
30004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32_UINT = 71,
30104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32_SINT = 72,
30204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32_SFLOAT = 73,
30304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32_UINT = 74,
30404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32_SINT = 75,
30504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32_SFLOAT = 76,
30604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32_UINT = 77,
30704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32_SINT = 78,
30804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32_SFLOAT = 79,
30904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32A32_UINT = 80,
31004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32A32_SINT = 81,
31104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R32G32B32A32_SFLOAT = 82,
31204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R64_SFLOAT = 83,
31304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R64G64_SFLOAT = 84,
31404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R64G64B64_SFLOAT = 85,
31504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R64G64B64A64_SFLOAT = 86,
31604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R11G11B10_UFLOAT = 87,
31704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_R9G9B9E5_UFLOAT = 88,
31804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_D16_UNORM = 89,
3195ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_FORMAT_D24_UNORM_X8 = 90,
32004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_D32_SFLOAT = 91,
32104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_S8_UINT = 92,
32204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_D16_UNORM_S8_UINT = 93,
32304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_D24_UNORM_S8_UINT = 94,
32404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_D32_SFLOAT_S8_UINT = 95,
32504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC1_RGB_UNORM = 96,
32604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC1_RGB_SRGB = 97,
32704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC1_RGBA_UNORM = 98,
32804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC1_RGBA_SRGB = 99,
32904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC2_UNORM = 100,
33004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC2_SRGB = 101,
33104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC3_UNORM = 102,
33204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC3_SRGB = 103,
33304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC4_UNORM = 104,
33404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC4_SNORM = 105,
33504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC5_UNORM = 106,
33604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC5_SNORM = 107,
33704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC6H_UFLOAT = 108,
33804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC6H_SFLOAT = 109,
33904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC7_UNORM = 110,
34004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BC7_SRGB = 111,
34104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8_UNORM = 112,
34204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8_SRGB = 113,
34304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8A1_UNORM = 114,
34404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8A1_SRGB = 115,
34504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8A8_UNORM = 116,
34604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ETC2_R8G8B8A8_SRGB = 117,
34704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_EAC_R11_UNORM = 118,
34804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_EAC_R11_SNORM = 119,
34904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_EAC_R11G11_UNORM = 120,
35004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_EAC_R11G11_SNORM = 121,
35104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_4x4_UNORM = 122,
35204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_4x4_SRGB = 123,
35304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_5x4_UNORM = 124,
35404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_5x4_SRGB = 125,
35504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_5x5_UNORM = 126,
35604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_5x5_SRGB = 127,
35704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_6x5_UNORM = 128,
35804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_6x5_SRGB = 129,
35904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_6x6_UNORM = 130,
36004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_6x6_SRGB = 131,
36104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x5_UNORM = 132,
36204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x5_SRGB = 133,
36304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x6_UNORM = 134,
36404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x6_SRGB = 135,
36504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x8_UNORM = 136,
36604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_8x8_SRGB = 137,
36704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x5_UNORM = 138,
36804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x5_SRGB = 139,
36904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x6_UNORM = 140,
37004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x6_SRGB = 141,
37104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x8_UNORM = 142,
37204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x8_SRGB = 143,
37304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x10_UNORM = 144,
37404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_10x10_SRGB = 145,
37504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_12x10_UNORM = 146,
37604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_12x10_SRGB = 147,
37704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_12x12_UNORM = 148,
37804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_ASTC_12x12_SRGB = 149,
37904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B4G4R4A4_UNORM = 150,
38004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B5G5R5A1_UNORM = 151,
38104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B5G6R5_UNORM = 152,
38204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B5G6R5_USCALED = 153,
38304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_UNORM = 154,
38404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_SNORM = 155,
38504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_USCALED = 156,
38604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_SSCALED = 157,
38704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_UINT = 158,
38804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_SINT = 159,
38904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8_SRGB = 160,
39004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_UNORM = 161,
39104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_SNORM = 162,
39204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_USCALED = 163,
39304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_SSCALED = 164,
39404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_UINT = 165,
39504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_SINT = 166,
39604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B8G8R8A8_SRGB = 167,
39704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_UNORM = 168,
39804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_SNORM = 169,
39904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_USCALED = 170,
40004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_SSCALED = 171,
40104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_UINT = 172,
40204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_B10G10R10A2_SINT = 173,
40304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
40404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_END_RANGE = VK_FORMAT_B10G10R10A2_SINT,
40504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_NUM = (VK_FORMAT_B10G10R10A2_SINT - VK_FORMAT_UNDEFINED + 1),
40604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
40704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormat;
40804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
40904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
41004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_1D = 0,
41104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_2D = 1,
41204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_3D = 2,
41304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
41404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
41504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_NUM = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
41604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
41704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageType;
41804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
41904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
42004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TILING_LINEAR = 0,
42104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TILING_OPTIMAL = 1,
42204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_LINEAR,
42304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_OPTIMAL,
42404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TILING_NUM = (VK_IMAGE_TILING_OPTIMAL - VK_IMAGE_TILING_LINEAR + 1),
42504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
42604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageTiling;
42704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
42804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
42904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
43004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
43104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
43204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
43304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
43404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
43504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
43604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_NUM = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
43704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
43804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceType;
43904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
44004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
44104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_OCCLUSION = 0,
44204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
44304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
44404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_PIPELINE_STATISTICS,
44504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_NUM = (VK_QUERY_TYPE_PIPELINE_STATISTICS - VK_QUERY_TYPE_OCCLUSION + 1),
44604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
44704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryType;
44804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
44904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
45004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_EXCLUSIVE = 0,
45104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_CONCURRENT = 1,
45204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
45304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
45404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_NUM = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
45504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
45604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSharingMode;
45704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
45804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
4595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_UNDEFINED = 0,
4605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_GENERAL = 1,
4615ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
4625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
4635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
4645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
4655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_TRANSFER_SOURCE_OPTIMAL = 6,
4665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_TRANSFER_DESTINATION_OPTIMAL = 7,
4675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
4685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
4695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
4705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_NUM = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
4715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
4725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageLayout;
47304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
47404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
47504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_1D = 0,
47604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_2D = 1,
47704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_3D = 2,
47804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_CUBE = 3,
47904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
48004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
48104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
48204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
48304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
48404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_NUM = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
48504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
48604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewType;
48704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
48804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
48904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_ZERO = 0,
49004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_ONE = 1,
49104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_R = 2,
49204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_G = 3,
49304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_B = 4,
49404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_A = 5,
49504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_BEGIN_RANGE = VK_CHANNEL_SWIZZLE_ZERO,
49604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_END_RANGE = VK_CHANNEL_SWIZZLE_A,
49704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_NUM = (VK_CHANNEL_SWIZZLE_A - VK_CHANNEL_SWIZZLE_ZERO + 1),
49804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
49904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkChannelSwizzle;
50004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
50104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
50204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_VERTEX_INPUT_STEP_RATE_VERTEX = 0,
50304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_VERTEX_INPUT_STEP_RATE_INSTANCE = 1,
50404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_VERTEX_INPUT_STEP_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_STEP_RATE_VERTEX,
50504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_VERTEX_INPUT_STEP_RATE_END_RANGE = VK_VERTEX_INPUT_STEP_RATE_INSTANCE,
50604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_VERTEX_INPUT_STEP_RATE_NUM = (VK_VERTEX_INPUT_STEP_RATE_INSTANCE - VK_VERTEX_INPUT_STEP_RATE_VERTEX + 1),
50704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_VERTEX_INPUT_STEP_RATE_MAX_ENUM = 0x7FFFFFFF
50804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputStepRate;
50904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
51004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
51104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
51204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
51304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
51404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
51504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
51604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
51704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_LIST_ADJ = 6,
51804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_ADJ = 7,
51904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_ADJ = 8,
52004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_ADJ = 9,
52104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_PATCH = 10,
52204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
52304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH,
52404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_NUM = (VK_PRIMITIVE_TOPOLOGY_PATCH - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
52504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
52604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPrimitiveTopology;
52704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
52804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
52904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FILL_MODE_POINTS = 0,
53004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FILL_MODE_WIREFRAME = 1,
53104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FILL_MODE_SOLID = 2,
53204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FILL_MODE_BEGIN_RANGE = VK_FILL_MODE_POINTS,
53304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FILL_MODE_END_RANGE = VK_FILL_MODE_SOLID,
53404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FILL_MODE_NUM = (VK_FILL_MODE_SOLID - VK_FILL_MODE_POINTS + 1),
53504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FILL_MODE_MAX_ENUM = 0x7FFFFFFF
53604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFillMode;
53704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
53804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
53904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CULL_MODE_NONE = 0,
54004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CULL_MODE_FRONT = 1,
54104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CULL_MODE_BACK = 2,
54204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CULL_MODE_FRONT_AND_BACK = 3,
54304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CULL_MODE_BEGIN_RANGE = VK_CULL_MODE_NONE,
54404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CULL_MODE_END_RANGE = VK_CULL_MODE_FRONT_AND_BACK,
54504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CULL_MODE_NUM = (VK_CULL_MODE_FRONT_AND_BACK - VK_CULL_MODE_NONE + 1),
54604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CULL_MODE_MAX_ENUM = 0x7FFFFFFF
54704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCullMode;
54804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
54904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
55004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_CCW = 0,
55104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_CW = 1,
55204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_CCW,
55304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CW,
55404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_NUM = (VK_FRONT_FACE_CW - VK_FRONT_FACE_CCW + 1),
55504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
55604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFrontFace;
55704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
55804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
55904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NEVER = 0,
56004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_LESS = 1,
56104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_EQUAL = 2,
56204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_LESS_EQUAL = 3,
56304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_GREATER = 4,
56404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NOT_EQUAL = 5,
56504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_GREATER_EQUAL = 6,
56604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_ALWAYS = 7,
56704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
56804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
56904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_NUM = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
57004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
57104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCompareOp;
57204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
57304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
57404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_KEEP = 0,
57504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_ZERO = 1,
57604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_REPLACE = 2,
57704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_INC_CLAMP = 3,
57804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_DEC_CLAMP = 4,
57904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_INVERT = 5,
58004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_INC_WRAP = 6,
58104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_DEC_WRAP = 7,
58204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
58304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DEC_WRAP,
58404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_NUM = (VK_STENCIL_OP_DEC_WRAP - VK_STENCIL_OP_KEEP + 1),
58504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
58604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOp;
58704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
58804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
58904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_CLEAR = 0,
59004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND = 1,
59104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND_REVERSE = 2,
59204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_COPY = 3,
59304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_AND_INVERTED = 4,
59404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NOOP = 5,
59504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_XOR = 6,
59604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR = 7,
59704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NOR = 8,
59804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_EQUIV = 9,
59904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_INVERT = 10,
60004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR_REVERSE = 11,
60104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_COPY_INVERTED = 12,
60204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_OR_INVERTED = 13,
60304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NAND = 14,
60404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_SET = 15,
60504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
60604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
60704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_NUM = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
60804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
60904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLogicOp;
61004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
61104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
61204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ZERO = 0,
61304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE = 1,
61404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_SRC_COLOR = 2,
61504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_SRC_COLOR = 3,
61604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_DEST_COLOR = 4,
61704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_DEST_COLOR = 5,
61804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_SRC_ALPHA = 6,
61904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_SRC_ALPHA = 7,
62004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_DEST_ALPHA = 8,
62104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_DEST_ALPHA = 9,
62204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_CONSTANT_COLOR = 10,
62304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_CONSTANT_COLOR = 11,
62404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_CONSTANT_ALPHA = 12,
62504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_CONSTANT_ALPHA = 13,
62604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_SRC_ALPHA_SATURATE = 14,
62704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_SRC1_COLOR = 15,
62804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_SRC1_COLOR = 16,
62904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_SRC1_ALPHA = 17,
63004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_ONE_MINUS_SRC1_ALPHA = 18,
63104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_BEGIN_RANGE = VK_BLEND_ZERO,
63204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_END_RANGE = VK_BLEND_ONE_MINUS_SRC1_ALPHA,
63304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_NUM = (VK_BLEND_ONE_MINUS_SRC1_ALPHA - VK_BLEND_ZERO + 1),
63404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_MAX_ENUM = 0x7FFFFFFF
63504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBlend;
63604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
63704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
63804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_ADD = 0,
63904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_SUBTRACT = 1,
64004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_REVERSE_SUBTRACT = 2,
64104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MIN = 3,
64204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MAX = 4,
64304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
64404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
64504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_NUM = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
64604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
64704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBlendOp;
64804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
64904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
6505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_VIEWPORT = 0,
6515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_SCISSOR = 1,
6525ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_LINE_WIDTH = 2,
6535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
6545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
6555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
6565ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
6575ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
6585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
6595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
6605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
6615ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_NUM = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
6625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
6635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDynamicState;
6645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
6655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef enum {
66604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_FILTER_NEAREST = 0,
66704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_FILTER_LINEAR = 1,
66804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_FILTER_BEGIN_RANGE = VK_TEX_FILTER_NEAREST,
66904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_FILTER_END_RANGE = VK_TEX_FILTER_LINEAR,
67004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_FILTER_NUM = (VK_TEX_FILTER_LINEAR - VK_TEX_FILTER_NEAREST + 1),
67104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_FILTER_MAX_ENUM = 0x7FFFFFFF
67204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkTexFilter;
67304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
67404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
67504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_MIPMAP_MODE_BASE = 0,
67604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_MIPMAP_MODE_NEAREST = 1,
67704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_MIPMAP_MODE_LINEAR = 2,
67804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_MIPMAP_MODE_BEGIN_RANGE = VK_TEX_MIPMAP_MODE_BASE,
67904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_MIPMAP_MODE_END_RANGE = VK_TEX_MIPMAP_MODE_LINEAR,
68004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_MIPMAP_MODE_NUM = (VK_TEX_MIPMAP_MODE_LINEAR - VK_TEX_MIPMAP_MODE_BASE + 1),
68104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TEX_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
68204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkTexMipmapMode;
68304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
68404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
6855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_TEX_ADDRESS_MODE_WRAP = 0,
6865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_TEX_ADDRESS_MODE_MIRROR = 1,
6875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_TEX_ADDRESS_MODE_CLAMP = 2,
6885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_TEX_ADDRESS_MODE_MIRROR_ONCE = 3,
6895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_TEX_ADDRESS_MODE_CLAMP_BORDER = 4,
690acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VK_TEX_ADDRESS_MODE_BEGIN_RANGE = VK_TEX_ADDRESS_MODE_WRAP,
691acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VK_TEX_ADDRESS_MODE_END_RANGE = VK_TEX_ADDRESS_MODE_CLAMP_BORDER,
692acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VK_TEX_ADDRESS_MODE_NUM = (VK_TEX_ADDRESS_MODE_CLAMP_BORDER - VK_TEX_ADDRESS_MODE_WRAP + 1),
693acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VK_TEX_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
6945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkTexAddressMode;
69504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
69604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
69704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
69804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
69904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
70004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
70104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
70204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
70304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
70404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
70504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_NUM = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
70604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
70704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBorderColor;
70804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
70904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
71004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_SAMPLER = 0,
71104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
71204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
71304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
71404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
71504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
71604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
71704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
71804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
71904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
72004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
72104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
72204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
72304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_NUM = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
72404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
72504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorType;
72604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
72704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
72804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_POOL_USAGE_ONE_SHOT = 0,
72904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_POOL_USAGE_DYNAMIC = 1,
73004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_POOL_USAGE_BEGIN_RANGE = VK_DESCRIPTOR_POOL_USAGE_ONE_SHOT,
73104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_POOL_USAGE_END_RANGE = VK_DESCRIPTOR_POOL_USAGE_DYNAMIC,
73204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_POOL_USAGE_NUM = (VK_DESCRIPTOR_POOL_USAGE_DYNAMIC - VK_DESCRIPTOR_POOL_USAGE_ONE_SHOT + 1),
73304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_POOL_USAGE_MAX_ENUM = 0x7FFFFFFF
73404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorPoolUsage;
73504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
73604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
73704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_SET_USAGE_ONE_SHOT = 0,
73804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_SET_USAGE_STATIC = 1,
73904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_SET_USAGE_BEGIN_RANGE = VK_DESCRIPTOR_SET_USAGE_ONE_SHOT,
74004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_SET_USAGE_END_RANGE = VK_DESCRIPTOR_SET_USAGE_STATIC,
74104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_SET_USAGE_NUM = (VK_DESCRIPTOR_SET_USAGE_STATIC - VK_DESCRIPTOR_SET_USAGE_ONE_SHOT + 1),
74204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_DESCRIPTOR_SET_USAGE_MAX_ENUM = 0x7FFFFFFF
74304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetUsage;
74404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
74504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
74604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_LOAD = 0,
74704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
74804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
74904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
75004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
75104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_NUM = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
75204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
75304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentLoadOp;
75404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
75504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
75604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_STORE = 0,
75704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
75804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
75904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
76004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_NUM = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
76104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
76204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentStoreOp;
76304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
76404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
76504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_BIND_POINT_COMPUTE = 0,
76604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_BIND_POINT_GRAPHICS = 1,
76704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
76804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
76904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_BIND_POINT_NUM = (VK_PIPELINE_BIND_POINT_GRAPHICS - VK_PIPELINE_BIND_POINT_COMPUTE + 1),
77004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
77104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineBindPoint;
77204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
77304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
77404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_BUFFER_LEVEL_PRIMARY = 0,
77504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_BUFFER_LEVEL_SECONDARY = 1,
77604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_BUFFER_LEVEL_BEGIN_RANGE = VK_CMD_BUFFER_LEVEL_PRIMARY,
77704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_BUFFER_LEVEL_END_RANGE = VK_CMD_BUFFER_LEVEL_SECONDARY,
77804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_BUFFER_LEVEL_NUM = (VK_CMD_BUFFER_LEVEL_SECONDARY - VK_CMD_BUFFER_LEVEL_PRIMARY + 1),
77904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
78004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdBufferLevel;
78104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
78204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
78304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_UINT16 = 0,
78404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_UINT32 = 1,
78504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
78604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
78704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_NUM = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
78804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
78904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkIndexType;
79004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
79104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
79204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TIMESTAMP_TYPE_TOP = 0,
79304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TIMESTAMP_TYPE_BOTTOM = 1,
79404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TIMESTAMP_TYPE_BEGIN_RANGE = VK_TIMESTAMP_TYPE_TOP,
79504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TIMESTAMP_TYPE_END_RANGE = VK_TIMESTAMP_TYPE_BOTTOM,
79604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TIMESTAMP_TYPE_NUM = (VK_TIMESTAMP_TYPE_BOTTOM - VK_TIMESTAMP_TYPE_TOP + 1),
79704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_TIMESTAMP_TYPE_MAX_ENUM = 0x7FFFFFFF
79804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkTimestampType;
79904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
80004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
80104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_INLINE = 0,
80204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_SECONDARY_CMD_BUFFERS = 1,
80304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_BEGIN_RANGE = VK_RENDER_PASS_CONTENTS_INLINE,
80404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_END_RANGE = VK_RENDER_PASS_CONTENTS_SECONDARY_CMD_BUFFERS,
80504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_NUM = (VK_RENDER_PASS_CONTENTS_SECONDARY_CMD_BUFFERS - VK_RENDER_PASS_CONTENTS_INLINE + 1),
80604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_RENDER_PASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
80704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassContents;
80804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
80904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
81004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
81104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
81204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
81304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
81404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
81504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
81604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
81704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
81804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
81904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
82004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
8215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_FORMAT_FEATURE_BLIT_SOURCE_BIT = 0x00000400,
8225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_FORMAT_FEATURE_BLIT_DESTINATION_BIT = 0x00000800,
82304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatFeatureFlagBits;
82404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFormatFeatureFlags;
82504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
82604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
82704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_TRANSFER_SOURCE_BIT = 0x00000001,
82804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_TRANSFER_DESTINATION_BIT = 0x00000002,
82904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
83004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
83104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
8325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
83304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
83404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
83504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageUsageFlagBits;
83604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkImageUsageFlags;
83704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
83804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
8395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
8405ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
8415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
8425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
8435ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
8445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageCreateFlagBits;
8455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageCreateFlags;
8465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
8475ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef enum {
8485ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_1_BIT = 0x00000001,
8495ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_2_BIT = 0x00000002,
8505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_4_BIT = 0x00000004,
8515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_8_BIT = 0x00000008,
8525ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_16_BIT = 0x00000010,
8535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_32_BIT = 0x00000020,
8545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_SAMPLE_COUNT_64_BIT = 0x00000040,
8555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkSampleCountFlagBits;
8565ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkSampleCountFlags;
8575ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
8585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef enum {
85904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_GRAPHICS_BIT = 0x00000001,
86004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_COMPUTE_BIT = 0x00000002,
86104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_DMA_BIT = 0x00000004,
86204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_SPARSE_MEMMGR_BIT = 0x00000008,
86304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUEUE_EXTENDED_BIT = 0x40000000,
86404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueueFlagBits;
86504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueueFlags;
86604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
86704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
86804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_PROPERTY_DEVICE_ONLY = 0,
86904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000001,
87004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_PROPERTY_HOST_NON_COHERENT_BIT = 0x00000002,
87104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_PROPERTY_HOST_UNCACHED_BIT = 0x00000004,
872acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000008,
87304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryPropertyFlagBits;
87404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryPropertyFlags;
87504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
87604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
8775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_MEMORY_HEAP_HOST_LOCAL_BIT = 0x00000001,
87804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeapFlagBits;
87904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryHeapFlags;
88004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryMapFlags;
88104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
88204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
883a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
884a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
885a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
886a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
887a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkImageAspectFlagBits;
888a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
889a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef enum {
89004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SPARSE_IMAGE_FMT_SINGLE_MIPTAIL_BIT = 0x00000001,
89104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SPARSE_IMAGE_FMT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
89204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SPARSE_IMAGE_FMT_NONSTD_BLOCK_SIZE_BIT = 0x00000004,
89304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatFlagBits;
89404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseImageFormatFlags;
89504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
89604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
89704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_SPARSE_MEMORY_BIND_REPLICATE_64KIB_BLOCK_BIT = 0x00000001,
89804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseMemoryBindFlagBits;
89904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSparseMemoryBindFlags;
90004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
90104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
90204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
90304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateFlagBits;
90404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkFenceCreateFlags;
90504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSemaphoreCreateFlags;
90604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkEventCreateFlags;
90704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
90804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
909ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
910ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
911ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
912ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
913ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
914ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
915ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
916ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
917ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
918ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
919ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
92004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPipelineStatisticFlagBits;
92104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryPipelineStatisticFlags;
92204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
92304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
92404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_DEFAULT = 0,
92504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_64_BIT = 0x00000001,
92604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
92704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
92804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
92904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryResultFlagBits;
93004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryResultFlags;
93104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
93204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
93304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_TRANSFER_SOURCE_BIT = 0x00000001,
93404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_TRANSFER_DESTINATION_BIT = 0x00000002,
93504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
93604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
93704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
93804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
93904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
94004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
94104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
94204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferUsageFlagBits;
94304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkBufferUsageFlags;
94404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
94504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
9465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
94704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
94804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
94904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCreateFlagBits;
95004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkBufferCreateFlags;
9515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageAspectFlags;
95204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
95304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
9545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_VIEW_CREATE_READ_ONLY_DEPTH_BIT = 0x00000001,
9555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_IMAGE_VIEW_CREATE_READ_ONLY_STENCIL_BIT = 0x00000002,
9565ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageViewCreateFlagBits;
9575ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkImageViewCreateFlags;
95804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderModuleCreateFlags;
95904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderCreateFlags;
96004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
96104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
962a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
963a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
964a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
965a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
966a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
967a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
968a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
969a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkShaderStageFlagBits;
970a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
971a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef enum {
97204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_R_BIT = 0x00000001,
97304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_G_BIT = 0x00000002,
97404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_B_BIT = 0x00000004,
97504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CHANNEL_A_BIT = 0x00000008,
97604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkChannelFlagBits;
97704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkChannelFlags;
97804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
97904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
98004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
98104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
98204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
98304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineCreateFlagBits;
98404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkPipelineCreateFlags;
98504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkShaderStageFlags;
98604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
98704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
9885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
9895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkAttachmentDescriptionFlagBits;
9905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkAttachmentDescriptionFlags;
99104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkSubpassDescriptionFlags;
99204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
99304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
99404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
99504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
99604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
99704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
998ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
999ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
100004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
100104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
100204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
100304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
100404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
100504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
100604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
10075ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_PIPELINE_STAGE_HOST_BIT = 0x00002000,
100804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_PIPELINE_STAGE_ALL_GRAPHICS = 0x000007FF,
10095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_PIPELINE_STAGE_ALL_GPU_COMMANDS = 0x00001FFF,
101004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineStageFlagBits;
101104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkPipelineStageFlags;
101204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
101304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
101404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_HOST_WRITE_BIT = 0x00000001,
101504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_SHADER_WRITE_BIT = 0x00000002,
101604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT = 0x00000004,
101704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000008,
101804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_OUTPUT_TRANSFER_BIT = 0x00000010,
101904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryOutputFlagBits;
102004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryOutputFlags;
102104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
102204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
102304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_HOST_READ_BIT = 0x00000001,
102404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT = 0x00000002,
102504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_INDEX_FETCH_BIT = 0x00000004,
102604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT = 0x00000008,
102704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_UNIFORM_READ_BIT = 0x00000010,
102804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_SHADER_READ_BIT = 0x00000020,
102904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT = 0x00000040,
103004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000080,
103104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_INPUT_ATTACHMENT_BIT = 0x00000100,
103204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_MEMORY_INPUT_TRANSFER_BIT = 0x00000200,
103304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryInputFlagBits;
103404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkMemoryInputFlags;
103504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
103604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
103704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
103804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_CMD_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
103904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdPoolCreateFlagBits;
104004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkCmdPoolCreateFlags;
104104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
104204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
10435ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_CMD_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
104404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdPoolResetFlagBits;
104504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkCmdPoolResetFlags;
104604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkCmdBufferCreateFlags;
104704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
104804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
1049a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_CMD_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
1050a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_CMD_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
1051a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VK_CMD_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
1052a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkCmdBufferUsageFlagBits;
1053a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef VkFlags VkCmdBufferUsageFlags;
105404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
105504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
10565ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_CMD_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
105704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdBufferResetFlagBits;
105804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkCmdBufferResetFlags;
105904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
106004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
10615ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_NONE = 0,
10625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
10635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VK_STENCIL_FACE_BACK_BIT = 0x00000002,
10645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkStencilFaceFlagBits;
10655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkFlags VkStencilFaceFlags;
106604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
106704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef enum {
106804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VK_QUERY_CONTROL_CONSERVATIVE_BIT = 0x00000001,
106904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryControlFlagBits;
107004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkFlags VkQueryControlFlags;
107104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
107204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void* (VKAPI *PFN_vkAllocFunction)(
107304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                           pUserData,
107404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                          size,
107504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                          alignment,
107604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSystemAllocType               allocType);
107704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
107804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkFreeFunction)(
107904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                           pUserData,
108004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                           pMem);
108104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
10825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkVoidFunction)(void);
10835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
10845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
10855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStructureType                             sType;
10865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const void*                                 pNext;
10875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const char*                                 pAppName;
10885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    appVersion;
10895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const char*                                 pEngineName;
10905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    engineVersion;
10915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    apiVersion;
10925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkApplicationInfo;
10935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
109404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
109504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pUserData;
109604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    PFN_vkAllocFunction                         pfnAlloc;
109704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    PFN_vkFreeFunction                          pfnFree;
109804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAllocCallbacks;
109904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
110004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
110104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
110204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
110304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkApplicationInfo*                    pAppInfo;
110404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkAllocCallbacks*                     pAllocCb;
110504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    layerCount;
110604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledLayerNames;
110704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    extensionCount;
110804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledExtensionNames;
110904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkInstanceCreateInfo;
111004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
111104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
111204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    robustBufferAccess;
111304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    fullDrawIndexUint32;
111404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    imageCubeArray;
111504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    independentBlend;
111604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    geometryShader;
111704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    tessellationShader;
111804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sampleRateShading;
111904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    dualSourceBlend;
112004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    logicOp;
11215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    multiDrawIndirect;
1122ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkBool32                                    depthClamp;
112304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthBiasClamp;
112404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    fillModeNonSolid;
112504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthBounds;
112604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    wideLines;
112704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    largePoints;
112804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    textureCompressionETC2;
112904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    textureCompressionASTC_LDR;
113004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    textureCompressionBC;
11315ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    occlusionQueryNonConservative;
113204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    pipelineStatisticsQuery;
113304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    vertexSideEffects;
113404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    tessellationSideEffects;
113504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    geometrySideEffects;
113604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    fragmentSideEffects;
113704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderTessellationPointSize;
113804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderGeometryPointSize;
11395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    shaderImageGatherExtended;
114004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageImageExtendedFormats;
114104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageImageMultisample;
114204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderUniformBufferArrayDynamicIndexing;
114304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderSampledImageArrayDynamicIndexing;
114404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageBufferArrayDynamicIndexing;
114504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderStorageImageArrayDynamicIndexing;
114604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderClipDistance;
114704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderCullDistance;
114804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderFloat64;
114904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderInt64;
115004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderInt16;
115104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderResourceResidency;
115204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    shaderResourceMinLOD;
11535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    alphaToOne;
11545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    sparseBinding;
115504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyBuffer;
115604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyImage2D;
115704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyImage3D;
115804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency2Samples;
115904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency4Samples;
116004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency8Samples;
116104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidency16Samples;
116204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sparseResidencyAliased;
116304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceFeatures;
116404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
116504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
116604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatFeatureFlags                        linearTilingFeatures;
116704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatFeatureFlags                        optimalTilingFeatures;
11685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkFormatFeatureFlags                        bufferFeatures;
116904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFormatProperties;
117004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
117104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
11725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     width;
11735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     height;
11745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     depth;
11755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent3D;
11765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
11775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
11785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkExtent3D                                  maxExtent;
11795ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxMipLevels;
1180a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    maxArrayLayers;
11815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkSampleCountFlags                          sampleCounts;
11825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                maxResourceSize;
118304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageFormatProperties;
118404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
118504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
118604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageDimension1D;
118704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageDimension2D;
118804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageDimension3D;
118904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageDimensionCube;
119004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxImageArrayLayers;
11915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkSampleCountFlags                          sampleCounts;
119204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxTexelBufferSize;
119304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxUniformBufferSize;
119404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxStorageBufferSize;
119504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPushConstantsSize;
119604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxMemoryAllocationCount;
119704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                bufferImageGranularity;
11985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                sparseAddressSpaceSize;
119904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxBoundDescriptorSets;
120004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSets;
120104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorSamplers;
120204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorUniformBuffers;
120304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorStorageBuffers;
120404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorSampledImages;
120504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxPerStageDescriptorStorageImages;
120604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetSamplers;
120704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetUniformBuffers;
12085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxDescriptorSetUniformBuffersDynamic;
120904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetStorageBuffers;
12105ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxDescriptorSetStorageBuffersDynamic;
121104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetSampledImages;
121204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDescriptorSetStorageImages;
121304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputAttributes;
12145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxVertexInputBindings;
121504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputAttributeOffset;
121604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexInputBindingStride;
121704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxVertexOutputComponents;
1218ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationGenLevel;
1219ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationPatchSize;
1220ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerVertexInputComponents;
1221ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerVertexOutputComponents;
1222ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlPerPatchOutputComponents;
1223ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationControlTotalOutputComponents;
1224ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationEvaluationInputComponents;
1225ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    maxTessellationEvaluationOutputComponents;
122604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryShaderInvocations;
122704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryInputComponents;
122804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryOutputComponents;
122904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryOutputVertices;
123004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxGeometryTotalOutputComponents;
123104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFragmentInputComponents;
123204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFragmentOutputBuffers;
123304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFragmentDualSourceBuffers;
123404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFragmentCombinedOutputResources;
123504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeSharedMemorySize;
123604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupCount[3];
123704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupInvocations;
123804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxComputeWorkGroupSize[3];
123904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subPixelPrecisionBits;
124004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subTexelPrecisionBits;
124104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipmapPrecisionBits;
124204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDrawIndexedIndexValue;
124304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxDrawIndirectInstanceCount;
124404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    primitiveRestartForPatches;
124504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxSamplerLodBias;
124604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxSamplerAnisotropy;
124704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxViewports;
124804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxViewportDimensions[2];
124904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       viewportBoundsRange[2];
125004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    viewportSubPixelBits;
125104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    minMemoryMapAlignment;
125204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    minTexelBufferOffsetAlignment;
125304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    minUniformBufferOffsetAlignment;
125404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    minStorageBufferOffsetAlignment;
125504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    minTexelOffset;
125604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxTexelOffset;
125704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    minTexelGatherOffset;
125804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxTexelGatherOffset;
125904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minInterpolationOffset;
126004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxInterpolationOffset;
126104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subPixelInterpolationOffsetBits;
126204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferWidth;
126304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferHeight;
126404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferLayers;
126504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferColorSamples;
126604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferDepthSamples;
126704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxFramebufferStencilSamples;
126804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxColorAttachments;
126904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampledImageColorSamples;
127004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampledImageDepthSamples;
127104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampledImageIntegerSamples;
127204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxStorageImageSamples;
127304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxSampleMaskWords;
127404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint64_t                                    timestampFrequency;
127504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxClipDistances;
127604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxCullDistances;
127704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    maxCombinedClipAndCullDistances;
127804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       pointSizeRange[2];
127904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       lineWidthRange[2];
128004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       pointSizeGranularity;
128104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       lineWidthGranularity;
128204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceLimits;
128304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
128404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
12855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyStandard2DBlockShape;
12865ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyStandard2DMSBlockShape;
12875ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyStandard3DBlockShape;
12885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyAlignedMipSize;
12895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyNonResident;
12905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    residencyNonResidentStrict;
12915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPhysicalDeviceSparseProperties;
12925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
12935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
129404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    apiVersion;
129504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    driverVersion;
129604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vendorId;
129704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    deviceId;
129804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceType                        deviceType;
129904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    char                                        deviceName[VK_MAX_PHYSICAL_DEVICE_NAME];
130004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint8_t                                     pipelineCacheUUID[VK_UUID_LENGTH];
13015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkPhysicalDeviceLimits                      limits;
13025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkPhysicalDeviceSparseProperties            sparseProperties;
130304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceProperties;
130404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
130504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
130604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueueFlags                                queueFlags;
130704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueCount;
1308acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    uint32_t                                    timestampValidBits;
13095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkQueueFamilyProperties;
131004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
131104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
131204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryPropertyFlags                       propertyFlags;
131304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    heapIndex;
131404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryType;
131504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
131604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
131704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
131804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryHeapFlags                           flags;
131904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryHeap;
132004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
132104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
132204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeCount;
132304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryType                                memoryTypes[VK_MAX_MEMORY_TYPES];
132404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryHeapCount;
132504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryHeap                                memoryHeaps[VK_MAX_MEMORY_HEAPS];
132604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPhysicalDeviceMemoryProperties;
132704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
132804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
13295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStructureType                             sType;
13305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const void*                                 pNext;
133104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex;
133204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueCount;
133304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceQueueCreateInfo;
133404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
133504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
133604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
133704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1338ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    requestedQueueCount;
133904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceQueueCreateInfo*              pRequestedQueues;
134004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    layerCount;
134104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledLayerNames;
134204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    extensionCount;
134304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*const*                           ppEnabledExtensionNames;
134404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPhysicalDeviceFeatures*             pEnabledFeatures;
134504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDeviceCreateInfo;
134604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
134704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
134804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    char                                        extName[VK_MAX_EXTENSION_NAME];
134904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    specVersion;
135004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkExtensionProperties;
135104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
135204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
135304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    char                                        layerName[VK_MAX_EXTENSION_NAME];
135404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    specVersion;
135504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    implVersion;
135604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    char                                        description[VK_MAX_DESCRIPTION];
135704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkLayerProperties;
135804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
135904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1360a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    waitSemCount;
1361a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkSemaphore*                          pWaitSemaphores;
1362a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    cmdBufferCount;
1363a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkCmdBuffer*                          pCommandBuffers;
1364a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    signalSemCount;
1365a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkSemaphore*                          pSignalSemaphores;
1366a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall} VkSubmitInfo;
1367a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall
1368a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Halltypedef struct {
136904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
137004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
137104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                allocationSize;
137204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeIndex;
137304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryAllocInfo;
137404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
137504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
137604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
137704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
137804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem;
137904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
138004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
138104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMappedMemoryRange;
138204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
138304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
138404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
138504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                alignment;
138604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memoryTypeBits;
138704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryRequirements;
138804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
138904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1390a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageAspectFlagBits                       aspect;
139104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  imageGranularity;
139204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatFlags                    flags;
139304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageFormatProperties;
139404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
139504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
139604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatProperties               formatProps;
139704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    imageMipTailStartLOD;
139804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailSize;
139904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailOffset;
140004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                imageMipTailStride;
140104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryRequirements;
140204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
140304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
140404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                rangeOffset;
140504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                rangeSize;
140604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                memOffset;
140704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem;
140804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseMemoryBindFlags                     flags;
140904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseMemoryBindInfo;
141004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
141104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1412a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageAspectFlagBits                       aspect;
141304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipLevel;
14145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    arrayLayer;
141504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresource;
141604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
141704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
141804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     x;
141904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     y;
142004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     z;
142104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkOffset3D;
142204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
142304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
142404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresource                          subresource;
142504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  offset;
142604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
142704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                memOffset;
142804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem;
142904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseMemoryBindFlags                     flags;
143004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSparseImageMemoryBindInfo;
143104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
143204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
143304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
143404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
143504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFenceCreateFlags                          flags;
143604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFenceCreateInfo;
143704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
143804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
143904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
144004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
144104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphoreCreateFlags                      flags;
144204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSemaphoreCreateInfo;
144304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
144404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
144504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
144604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
144704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEventCreateFlags                          flags;
144804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkEventCreateInfo;
144904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
145004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
145104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
145204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
145304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryType                                 queryType;
145404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    slots;
145504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPipelineStatisticFlags               pipelineStatistics;
145604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkQueryPoolCreateInfo;
145704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
145804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
145904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
146004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
146104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
146204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferUsageFlags                          usage;
146304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferCreateFlags                         flags;
146404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSharingMode                               sharingMode;
146504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyCount;
146604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pQueueFamilyIndices;
146704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCreateInfo;
146804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
146904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
147004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
147104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
147204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer;
147304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
147404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
147504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                range;
147604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferViewCreateInfo;
147704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
147804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
147904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
148004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
148104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 imageType;
148204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
148304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
148404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mipLevels;
1485a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    arrayLayers;
148604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    samples;
148704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling;
148804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage;
148904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageCreateFlags                          flags;
149004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSharingMode                               sharingMode;
149104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyCount;
149204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pQueueFamilyIndices;
14935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageLayout                               initialLayout;
149404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCreateInfo;
149504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
149604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
149704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
149804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
149904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                rowPitch;
150004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                depthPitch;
150104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubresourceLayout;
150204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
150304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
150404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelSwizzle                            r;
150504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelSwizzle                            g;
150604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelSwizzle                            b;
150704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelSwizzle                            a;
150804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkChannelMapping;
150904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
151004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
15115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageAspectFlags                          aspectMask;
151204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    baseMipLevel;
1513a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    numLevels;
15145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    baseArrayLayer;
1515a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    numLayers;
151604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageSubresourceRange;
151704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
151804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
151904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
152004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
152104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image;
152204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageViewType                             viewType;
152304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
152404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelMapping                            channels;
152504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresourceRange                     subresourceRange;
15265ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageViewCreateFlags                      flags;
152704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageViewCreateInfo;
152804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
152904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
153004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
153104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
153204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      codeSize;
153304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pCode;
153404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModuleCreateFlags                   flags;
153504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkShaderModuleCreateInfo;
153604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
153704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
153804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
153904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
154004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule                              module;
154104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName;
154204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderCreateFlags                         flags;
1543a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkShaderStageFlagBits                       stage;
154404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkShaderCreateInfo;
154504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
154604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
154704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
154804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
154904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      initialSize;
155004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 initialData;
155104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      maxSize;
155204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineCacheCreateInfo;
155304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
155404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
155504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    constantId;
155604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      size;
155704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    offset;
155804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationMapEntry;
155904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
156004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
156104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    mapEntryCount;
156204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSpecializationMapEntry*             pMap;
156304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t                                      dataSize;
156404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pData;
156504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSpecializationInfo;
156604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
156704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
156804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
156904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1570a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkShaderStageFlagBits                       stage;
157104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShader                                    shader;
157204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSpecializationInfo*                 pSpecializationInfo;
157304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineShaderStageCreateInfo;
157404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
157504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
157604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    binding;
157704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    strideInBytes;
157804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkVertexInputStepRate                       stepRate;
157904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputBindingDescription;
158004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
158104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
158204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    location;
158304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    binding;
158404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
158504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    offsetInBytes;
158604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkVertexInputAttributeDescription;
158704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
158804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
158904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
159004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
159104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bindingCount;
159204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
159304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attributeCount;
159404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
159504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineVertexInputStateCreateInfo;
159604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
159704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
159804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
159904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
160004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPrimitiveTopology                         topology;
160104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    primitiveRestartEnable;
160204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineInputAssemblyStateCreateInfo;
160304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
160404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
160504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
160604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
160704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    patchControlPoints;
160804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineTessellationStateCreateInfo;
160904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
161004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
16115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       originX;
16125ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       originY;
16135ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       width;
16145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       height;
16155ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepth;
16165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepth;
16175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkViewport;
16185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16195ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
16205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     x;
16215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     y;
16225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkOffset2D;
16235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
16255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     width;
16265ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     height;
16275ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkExtent2D;
16285ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
16305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkOffset2D                                  offset;
16315ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkExtent2D                                  extent;
16325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkRect2D;
16335ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
16345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
163504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
163604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
163704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    viewportCount;
16385ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkViewport*                           pViewports;
16395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    scissorCount;
16405ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkRect2D*                             pScissors;
164104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineViewportStateCreateInfo;
164204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
164304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
164404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
164504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1646ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkBool32                                    depthClampEnable;
164704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    rasterizerDiscardEnable;
164804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFillMode                                  fillMode;
164904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCullMode                                  cullMode;
165004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFrontFace                                 frontFace;
16515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    depthBiasEnable;
16525ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBias;
16535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBiasClamp;
16545ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       slopeScaledDepthBias;
16555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       lineWidth;
165604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineRasterStateCreateInfo;
165704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
165804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
165904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
166004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
166104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rasterSamples;
166204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    sampleShadingEnable;
166304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minSampleShading;
16645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkSampleMask*                         pSampleMask;
1665acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VkBool32                                    alphaToCoverageEnable;
1666acfa53409aa45de2c12f10617222e0d593e8f2dfJesse Hall    VkBool32                                    alphaToOneEnable;
166704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineMultisampleStateCreateInfo;
166804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
166904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
167004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOp                                 stencilFailOp;
167104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOp                                 stencilPassOp;
167204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOp                                 stencilDepthFailOp;
167304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCompareOp                                 stencilCompareOp;
16745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilCompareMask;
16755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilWriteMask;
16765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilReference;
167704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkStencilOpState;
167804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
167904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
168004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
168104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
168204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthTestEnable;
168304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    depthWriteEnable;
168404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCompareOp                                 depthCompareOp;
16855ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    depthBoundsTestEnable;
168604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    stencilTestEnable;
168704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOpState                            front;
168804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStencilOpState                            back;
16895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepthBounds;
16905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepthBounds;
169104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineDepthStencilStateCreateInfo;
169204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
169304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
169404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    blendEnable;
169504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlend                                     srcBlendColor;
169604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlend                                     destBlendColor;
169704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlendOp                                   blendOpColor;
169804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlend                                     srcBlendAlpha;
169904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlend                                     destBlendAlpha;
170004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBlendOp                                   blendOpAlpha;
170104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkChannelFlags                              channelWriteMask;
170204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendAttachmentState;
170304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
170404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
170504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
170604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
170704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    logicOpEnable;
170804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLogicOp                                   logicOp;
170904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
171004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineColorBlendAttachmentState*  pAttachments;
17115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       blendConst[4];
171204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineColorBlendStateCreateInfo;
171304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
171404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
171504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
171604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
17175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    dynamicStateCount;
17185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkDynamicState*                       pDynamicStates;
17195ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkPipelineDynamicStateCreateInfo;
17205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
17215ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
17225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStructureType                             sType;
17235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const void*                                 pNext;
172404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stageCount;
172504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineShaderStageCreateInfo*      pStages;
172604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
172704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
172804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineTessellationStateCreateInfo* pTessellationState;
172904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineViewportStateCreateInfo*    pViewportState;
173004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineRasterStateCreateInfo*      pRasterState;
173104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
173204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
173304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineColorBlendStateCreateInfo*  pColorBlendState;
17345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkPipelineDynamicStateCreateInfo*     pDynamicState;
173504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCreateFlags                       flags;
173604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout;
173704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
173804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subpass;
173904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  basePipelineHandle;
174004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     basePipelineIndex;
174104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkGraphicsPipelineCreateInfo;
174204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
174304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
174404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
174504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
17465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkPipelineShaderStageCreateInfo             stage;
174704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCreateFlags                       flags;
174804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout;
174904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  basePipelineHandle;
175004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     basePipelineIndex;
175104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkComputePipelineCreateInfo;
175204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
175304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
175404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags;
175504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    start;
175604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    length;
175704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPushConstantRange;
175804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
175904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
176004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
176104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
176204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    descriptorSetCount;
176304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayout*                pSetLayouts;
176404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    pushConstantRangeCount;
176504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPushConstantRange*                  pPushConstantRanges;
176604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkPipelineLayoutCreateInfo;
176704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
176804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
176904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
177004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
177104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkTexFilter                                 magFilter;
177204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkTexFilter                                 minFilter;
177304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkTexMipmapMode                             mipMode;
17745ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkTexAddressMode                            addressModeU;
17755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkTexAddressMode                            addressModeV;
17765ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkTexAddressMode                            addressModeW;
177704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       mipLodBias;
177804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxAnisotropy;
177904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    compareEnable;
178004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCompareOp                                 compareOp;
178104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       minLod;
178204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    float                                       maxLod;
178304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBorderColor                               borderColor;
17845ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBool32                                    unnormalizedCoordinates;
178504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSamplerCreateInfo;
178604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
178704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
178804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            descriptorType;
178904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    arraySize;
179004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags;
179104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSampler*                            pImmutableSamplers;
179204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutBinding;
179304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
179404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
179504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
179604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
179704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count;
179804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayoutBinding*         pBinding;
179904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorSetLayoutCreateInfo;
180004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
180104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
180204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            type;
180304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count;
180404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorTypeCount;
180504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
180604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
180704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
180804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
18095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDescriptorPoolUsage                       poolUsage;
18105ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    maxSets;
181104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count;
181204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorTypeCount*                pTypeCount;
181304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorPoolCreateInfo;
181404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
181504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1816a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkSampler                                   sampler;
1817a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageView                                 imageView;
1818a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageLayout                               imageLayout;
1819a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkDescriptorImageInfo;
1820a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall
1821a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef struct {
18225ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkBuffer                                    buffer;
18235ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                offset;
18245ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDeviceSize                                range;
18255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkDescriptorBufferInfo;
18265ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
1827a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef union {
1828a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkDescriptorImageInfo                       imageInfo;
18295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDescriptorBufferInfo                      bufferInfo;
1830a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkBufferView                                texelBufferView;
183104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDescriptorInfo;
183204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
183304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
183404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
183504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
183604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSet                             destSet;
183704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destBinding;
183804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destArrayElement;
183904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count;
184004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorType                            descriptorType;
184104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorInfo*                     pDescriptors;
184204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkWriteDescriptorSet;
184304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
184404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
184504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
184604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
184704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSet                             srcSet;
184804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcBinding;
184904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcArrayElement;
185004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSet                             destSet;
185104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destBinding;
185204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destArrayElement;
185304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count;
185404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCopyDescriptorSet;
185504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
185604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
185704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
185804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
185904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
186004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
18615ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkImageView*                          pAttachments;
186204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    width;
186304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    height;
186404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    layers;
186504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkFramebufferCreateInfo;
186604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
186704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
186804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
186904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
187004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format;
187104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    samples;
187204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentLoadOp                          loadOp;
187304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentStoreOp                         storeOp;
187404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentLoadOp                          stencilLoadOp;
187504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentStoreOp                         stencilStoreOp;
187604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               initialLayout;
187704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               finalLayout;
18785ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkAttachmentDescriptionFlags                flags;
187904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentDescription;
188004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
188104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
188204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachment;
188304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               layout;
188404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkAttachmentReference;
188504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
188604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
188704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
188804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
188904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint;
189004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSubpassDescriptionFlags                   flags;
189104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    inputCount;
18925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pInputAttachments;
189304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    colorCount;
18945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pColorAttachments;
18955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pResolveAttachments;
189604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkAttachmentReference                       depthStencilAttachment;
189704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    preserveCount;
18985ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkAttachmentReference*                pPreserveAttachments;
189904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDescription;
190004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
190104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
190204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
190304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
190404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcSubpass;
190504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destSubpass;
190604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask;
190704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        destStageMask;
190804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryOutputFlags                         outputMask;
190904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryInputFlags                          inputMask;
191004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    byRegion;
191104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkSubpassDependency;
191204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
191304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
191404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
191504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
191604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    attachmentCount;
191704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkAttachmentDescription*              pAttachments;
191804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    subpassCount;
191904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSubpassDescription*                 pSubpasses;
192004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    dependencyCount;
192104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSubpassDependency*                  pDependencies;
192204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassCreateInfo;
192304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
192404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
192504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
192604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
192704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex;
192804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPoolCreateFlags                        flags;
192904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdPoolCreateInfo;
193004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
193104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
193204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
193304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
193404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPool                                   cmdPool;
193504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBufferLevel                            level;
193604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBufferCreateFlags                      flags;
193704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdBufferCreateInfo;
193804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
193904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
194004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
194104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
1942a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkCmdBufferUsageFlags                       flags;
194304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
19445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    subpass;
194504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer                               framebuffer;
194604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkCmdBufferBeginInfo;
194704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
194804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
194904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                srcOffset;
195004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destOffset;
195104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                copySize;
195204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferCopy;
195304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
195404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
1955a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkImageAspectFlags                          aspect;
19565ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    mipLevel;
1957a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    baseArrayLayer;
1958a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    numLayers;
19595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkImageSubresourceCopy;
19605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
19615ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
19625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      srcSubresource;
196304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
19645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      destSubresource;
196504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  destOffset;
196604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
196704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageCopy;
196804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
196904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
19705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      srcSubresource;
197104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
197204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  srcExtent;
19735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      destSubresource;
197404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  destOffset;
197504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  destExtent;
197604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageBlit;
197704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
197804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
197904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                bufferOffset;
198004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bufferRowLength;
198104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bufferImageHeight;
19825ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      imageSubresource;
198304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  imageOffset;
198404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  imageExtent;
198504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferImageCopy;
198604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
198704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef union {
19885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       float32[4];
19895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    int32_t                                     int32[4];
19905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    uint32[4];
199104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkClearColorValue;
199204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
199304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
19945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depth;
19955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencil;
19965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall} VkClearDepthStencilValue;
19975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
1998ae38f7355fd03b777313e13586585a74e0dee05bJesse Halltypedef union {
1999ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearColorValue                           color;
2000ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearDepthStencilValue                    depthStencil;
2001ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearValue;
2002ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
2003ae38f7355fd03b777313e13586585a74e0dee05bJesse Halltypedef struct {
2004ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkImageAspectFlags                          aspectMask;
2005ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    colorAttachment;
2006ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    VkClearValue                                clearValue;
2007ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall} VkClearAttachment;
2008ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall
20095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef struct {
2010a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    VkRect2D                                    rect;
2011a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    baseArrayLayer;
2012a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    uint32_t                                    numLayers;
2013a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall} VkClearRect;
201404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
201504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
20165ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      srcSubresource;
201704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  srcOffset;
20185ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageSubresourceCopy                      destSubresource;
201904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkOffset3D                                  destOffset;
202004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent3D                                  extent;
202104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageResolve;
202204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
202304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
202404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
202504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
202604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass;
202704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer                               framebuffer;
202804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRect2D                                    renderArea;
20295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    clearValueCount;
20305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkClearValue*                         pClearValues;
203104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkRenderPassBeginInfo;
203204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
203304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
203404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
203504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
203604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryOutputFlags                         outputMask;
203704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryInputFlags                          inputMask;
203804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcQueueFamilyIndex;
203904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destQueueFamilyIndex;
204004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer;
204104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset;
204204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size;
204304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkBufferMemoryBarrier;
204404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
204504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
204604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    x;
204704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    y;
204804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    z;
204904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDispatchIndirectCmd;
205004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
205104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
205204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    indexCount;
205304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    instanceCount;
205404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstIndex;
205504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     vertexOffset;
205604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstInstance;
205704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDrawIndexedIndirectCmd;
205804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
205904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
206004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vertexCount;
206104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    instanceCount;
206204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstVertex;
206304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstInstance;
206404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkDrawIndirectCmd;
206504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
206604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
206704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
206804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
206904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryOutputFlags                         outputMask;
207004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryInputFlags                          inputMask;
207104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               oldLayout;
207204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               newLayout;
207304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcQueueFamilyIndex;
207404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    destQueueFamilyIndex;
207504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image;
207604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageSubresourceRange                     subresourceRange;
207704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkImageMemoryBarrier;
207804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
207904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef struct {
208004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkStructureType                             sType;
208104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 pNext;
208204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryOutputFlags                         outputMask;
208304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryInputFlags                          inputMask;
208404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall} VkMemoryBarrier;
208504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
208604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
208704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, VkInstance* pInstance);
20885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyInstance)(VkInstance instance);
208904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
2090606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
2091606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
2092606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
2093606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
2094606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pCount, VkQueueFamilyProperties* pQueueFamilyProperties);
2095606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
209604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef PFN_vkVoidFunction (VKAPI *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
209704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef PFN_vkVoidFunction (VKAPI *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
209804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, VkDevice* pDevice);
20995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyDevice)(VkDevice device);
21005ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pCount, VkExtensionProperties* pProperties);
21015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pCount, VkExtensionProperties* pProperties);
21025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pCount, VkLayerProperties* pProperties);
21035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkResult (VKAPI *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pCount, VkLayerProperties* pProperties);
2104606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
2105a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Halltypedef VkResult (VKAPI *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmitInfo, VkFence fence);
210604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkQueueWaitIdle)(VkQueue queue);
210704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkDeviceWaitIdle)(VkDevice device);
210804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkAllocMemory)(VkDevice device, const VkMemoryAllocInfo* pAllocInfo, VkDeviceMemory* pMem);
21095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory mem);
211004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory mem, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
21115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory mem);
211204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memRangeCount, const VkMappedMemoryRange* pMemRanges);
211304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memRangeCount, const VkMappedMemoryRange* pMemRanges);
2114606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
211504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory mem, VkDeviceSize memOffset);
211604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory mem, VkDeviceSize memOffset);
2117606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
2118606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
2119606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pNumRequirements, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
2120606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, uint32_t samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pNumProperties, VkSparseImageFormatProperties* pProperties);
212104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkQueueBindSparseBufferMemory)(VkQueue queue, VkBuffer buffer, uint32_t numBindings, const VkSparseMemoryBindInfo* pBindInfo);
212204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkQueueBindSparseImageOpaqueMemory)(VkQueue queue, VkImage image, uint32_t numBindings, const VkSparseMemoryBindInfo* pBindInfo);
212304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkQueueBindSparseImageMemory)(VkQueue queue, VkImage image, uint32_t numBindings, const VkSparseImageMemoryBindInfo* pBindInfo);
212404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, VkFence* pFence);
21255ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyFence)(VkDevice device, VkFence fence);
212604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
212704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
212804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
212904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, VkSemaphore* pSemaphore);
21305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore);
213104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkQueueSignalSemaphore)(VkQueue queue, VkSemaphore semaphore);
213204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkQueueWaitSemaphore)(VkQueue queue, VkSemaphore semaphore);
213304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, VkEvent* pEvent);
21345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyEvent)(VkDevice device, VkEvent event);
213504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
213604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkSetEvent)(VkDevice device, VkEvent event);
213704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetEvent)(VkDevice device, VkEvent event);
213804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, VkQueryPool* pQueryPool);
21395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool);
214004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, size_t* pDataSize, void* pData, VkQueryResultFlags flags);
214104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, VkBuffer* pBuffer);
21425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer);
214304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, VkBufferView* pView);
21445ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView);
214504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, VkImage* pImage);
21465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyImage)(VkDevice device, VkImage image);
2147606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
214804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, VkImageView* pView);
21495ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView);
215004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModule* pShaderModule);
21515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule);
215204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateShader)(VkDevice device, const VkShaderCreateInfo* pCreateInfo, VkShader* pShader);
21535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyShader)(VkDevice device, VkShader shader);
215404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, VkPipelineCache* pPipelineCache);
21555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache);
215604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef size_t (VKAPI *PFN_vkGetPipelineCacheSize)(VkDevice device, VkPipelineCache pipelineCache);
2157606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef VkResult (VKAPI *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t dataSize, void* pData);
215804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache destCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
215904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, const VkGraphicsPipelineCreateInfo* pCreateInfos, VkPipeline* pPipelines);
216004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, const VkComputePipelineCreateInfo* pCreateInfos, VkPipeline* pPipelines);
21615ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline);
216204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, VkPipelineLayout* pPipelineLayout);
21635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout);
216404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, VkSampler* pSampler);
21655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler);
216604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayout* pSetLayout);
21675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout);
21685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkResult (VKAPI *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, VkDescriptorPool* pDescriptorPool);
21695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool);
217004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool);
21715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef VkResult (VKAPI *PFN_vkAllocDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorSetUsage setUsage, uint32_t count, const VkDescriptorSetLayout* pSetLayouts, VkDescriptorSet* pDescriptorSets);
217204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t count, const VkDescriptorSet* pDescriptorSets);
21735ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t writeCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t copyCount, const VkCopyDescriptorSet* pDescriptorCopies);
217404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, VkFramebuffer* pFramebuffer);
21755ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer);
217604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, VkRenderPass* pRenderPass);
21775ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass);
2178606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Halltypedef void (VKAPI *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
217904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateCommandPool)(VkDevice device, const VkCmdPoolCreateInfo* pCreateInfo, VkCmdPool* pCmdPool);
21805ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyCommandPool)(VkDevice device, VkCmdPool cmdPool);
218104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetCommandPool)(VkDevice device, VkCmdPool cmdPool, VkCmdPoolResetFlags flags);
218204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkCreateCommandBuffer)(VkDevice device, const VkCmdBufferCreateInfo* pCreateInfo, VkCmdBuffer* pCmdBuffer);
21835ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkDestroyCommandBuffer)(VkDevice device, VkCmdBuffer commandBuffer);
218404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkBeginCommandBuffer)(VkCmdBuffer cmdBuffer, const VkCmdBufferBeginInfo* pBeginInfo);
218504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkEndCommandBuffer)(VkCmdBuffer cmdBuffer);
218604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef VkResult (VKAPI *PFN_vkResetCommandBuffer)(VkCmdBuffer cmdBuffer, VkCmdBufferResetFlags flags);
218704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBindPipeline)(VkCmdBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
21885ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetViewport)(VkCmdBuffer cmdBuffer, uint32_t viewportCount, const VkViewport* pViewports);
21895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetScissor)(VkCmdBuffer cmdBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
21905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetLineWidth)(VkCmdBuffer cmdBuffer, float lineWidth);
21915ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetDepthBias)(VkCmdBuffer cmdBuffer, float depthBias, float depthBiasClamp, float slopeScaledDepthBias);
21925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetBlendConstants)(VkCmdBuffer cmdBuffer, const float blendConst[4]);
21935ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetDepthBounds)(VkCmdBuffer cmdBuffer, float minDepthBounds, float maxDepthBounds);
21945ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetStencilCompareMask)(VkCmdBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilCompareMask);
21955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetStencilWriteMask)(VkCmdBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilWriteMask);
21965ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdSetStencilReference)(VkCmdBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilReference);
219704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse 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);
219804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBindIndexBuffer)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
219904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBindVertexBuffers)(VkCmdBuffer cmdBuffer, uint32_t startBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
22005ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdDraw)(VkCmdBuffer cmdBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
22015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdDrawIndexed)(VkCmdBuffer cmdBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
220204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdDrawIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, uint32_t stride);
220304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdDrawIndexedIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, uint32_t stride);
220404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdDispatch)(VkCmdBuffer cmdBuffer, uint32_t x, uint32_t y, uint32_t z);
220504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdDispatchIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset);
220604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdCopyBuffer)(VkCmdBuffer cmdBuffer, VkBuffer srcBuffer, VkBuffer destBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
220704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdCopyImage)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
220804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBlitImage)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkTexFilter filter);
220904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdCopyBufferToImage)(VkCmdBuffer cmdBuffer, VkBuffer srcBuffer, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
221004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdCopyImageToBuffer)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer destBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
221104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdUpdateBuffer)(VkCmdBuffer cmdBuffer, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize dataSize, const uint32_t* pData);
221204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdFillBuffer)(VkCmdBuffer cmdBuffer, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize fillSize, uint32_t data);
221304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdClearColorImage)(VkCmdBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
22145ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Halltypedef void (VKAPI *PFN_vkCmdClearDepthStencilImage)(VkCmdBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2215a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Halltypedef void (VKAPI *PFN_vkCmdClearAttachments)(VkCmdBuffer cmdBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
221604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdResolveImage)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
221704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdSetEvent)(VkCmdBuffer cmdBuffer, VkEvent event, VkPipelineStageFlags stageMask);
221804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdResetEvent)(VkCmdBuffer cmdBuffer, VkEvent event, VkPipelineStageFlags stageMask);
221904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdWaitEvents)(VkCmdBuffer cmdBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags destStageMask, uint32_t memBarrierCount, const void* const* ppMemBarriers);
222004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdPipelineBarrier)(VkCmdBuffer cmdBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags destStageMask, VkBool32 byRegion, uint32_t memBarrierCount, const void* const* ppMemBarriers);
222104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBeginQuery)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t slot, VkQueryControlFlags flags);
222204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdEndQuery)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t slot);
222304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdResetQueryPool)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount);
222404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdWriteTimestamp)(VkCmdBuffer cmdBuffer, VkTimestampType timestampType, VkBuffer destBuffer, VkDeviceSize destOffset);
222504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdCopyQueryPoolResults)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize destStride, VkQueryResultFlags flags);
222604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdPushConstants)(VkCmdBuffer cmdBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t start, uint32_t length, const void* values);
222704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdBeginRenderPass)(VkCmdBuffer cmdBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkRenderPassContents contents);
222804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdNextSubpass)(VkCmdBuffer cmdBuffer, VkRenderPassContents contents);
222904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdEndRenderPass)(VkCmdBuffer cmdBuffer);
223004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Halltypedef void (VKAPI *PFN_vkCmdExecuteCommands)(VkCmdBuffer cmdBuffer, uint32_t cmdBuffersCount, const VkCmdBuffer* pCmdBuffers);
223104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
223204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef VK_PROTOTYPES
223304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateInstance(
223404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkInstanceCreateInfo*                 pCreateInfo,
223504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance*                                 pInstance);
223604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyInstance(
223804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance);
223904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
224004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkEnumeratePhysicalDevices(
224104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
224204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pPhysicalDeviceCount,
224304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice*                           pPhysicalDevices);
224404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2245606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceFeatures(
224604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
224704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceFeatures*                   pFeatures);
224804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2249606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceFormatProperties(
225004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
225104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
225204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormatProperties*                         pFormatProperties);
225304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2254606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceImageFormatProperties(
225504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
225604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
225704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
225804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
225904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
22605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkImageCreateFlags                          flags,
226104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageFormatProperties*                    pImageFormatProperties);
226204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2263606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceProperties(
226404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
226504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceProperties*                 pProperties);
226604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2267606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceQueueFamilyProperties(
226804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
22695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t*                                   pCount,
22705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkQueueFamilyProperties*                    pQueueFamilyProperties);
227104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2272606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceMemoryProperties(
227304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
227404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
227504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
227604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallPFN_vkVoidFunction VKAPI vkGetInstanceProcAddr(
227704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkInstance                                  instance,
227804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
227904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
228004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallPFN_vkVoidFunction VKAPI vkGetDeviceProcAddr(
228104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
228204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pName);
228304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
228404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateDevice(
228504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
228604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceCreateInfo*                   pCreateInfo,
228704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice*                                   pDevice);
228804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22895ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyDevice(
229004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device);
229104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22925ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateInstanceExtensionProperties(
229304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
229404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pCount,
229504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
229604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
22975ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateDeviceExtensionProperties(
229804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
229904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const char*                                 pLayerName,
230004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pCount,
230104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtensionProperties*                      pProperties);
230204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23035ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateInstanceLayerProperties(
230404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pCount,
230504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
230604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23075ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse HallVkResult VKAPI vkEnumerateDeviceLayerProperties(
230804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
230904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pCount,
231004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkLayerProperties*                          pProperties);
231104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2312606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetDeviceQueue(
231304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
231404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueFamilyIndex,
231504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queueIndex,
231604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue*                                    pQueue);
231704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
231804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueSubmit(
231904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
2320a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    uint32_t                                    submitCount,
2321a366a5186ea941c5653cbdb8df18dc19318912b6Jesse Hall    const VkSubmitInfo*                         pSubmitInfo,
232204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
232304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
232404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueWaitIdle(
232504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue);
232604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
232704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkDeviceWaitIdle(
232804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device);
232904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
233004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkAllocMemory(
233104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
233204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkMemoryAllocInfo*                    pAllocInfo,
233304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory*                             pMem);
233404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkFreeMemory(
233604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
233704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem);
233804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
233904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkMapMemory(
234004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
234104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem,
234204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
234304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                size,
234404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryMapFlags                            flags,
234504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void**                                      ppData);
234604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
23475ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkUnmapMemory(
234804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
234904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem);
235004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
235104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkFlushMappedMemoryRanges(
235204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
235304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memRangeCount,
235404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkMappedMemoryRange*                  pMemRanges);
235504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
235604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkInvalidateMappedMemoryRanges(
235704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
235804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memRangeCount,
235904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkMappedMemoryRange*                  pMemRanges);
236004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2361606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetDeviceMemoryCommitment(
236204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
236304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              memory,
236404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize*                               pCommittedMemoryInBytes);
236504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
236604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkBindBufferMemory(
236704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
236804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
236904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem,
237004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                memOffset);
237104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
237204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkBindImageMemory(
237304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
237404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
237504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceMemory                              mem,
237604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                memOffset);
237704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2378606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetBufferMemoryRequirements(
237904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
238004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
238104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
238204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2383606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetImageMemoryRequirements(
238404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
238504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
238604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkMemoryRequirements*                       pMemoryRequirements);
238704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2388606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetImageSparseMemoryRequirements(
238904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
239004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
239104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pNumRequirements,
239204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
239304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2394606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetPhysicalDeviceSparseImageFormatProperties(
239504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPhysicalDevice                            physicalDevice,
239604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFormat                                    format,
239704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageType                                 type,
239804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    samples,
239904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageUsageFlags                           usage,
240004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageTiling                               tiling,
240104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t*                                   pNumProperties,
240204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSparseImageFormatProperties*              pProperties);
240304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
240404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueBindSparseBufferMemory(
240504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
240604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
240704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    numBindings,
240804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSparseMemoryBindInfo*               pBindInfo);
240904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
241004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueBindSparseImageOpaqueMemory(
241104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
241204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
241304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    numBindings,
241404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSparseMemoryBindInfo*               pBindInfo);
241504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
241604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueBindSparseImageMemory(
241704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
241804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
241904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    numBindings,
242004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSparseImageMemoryBindInfo*          pBindInfo);
242104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
242204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateFence(
242304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
242404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFenceCreateInfo*                    pCreateInfo,
242504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence*                                    pFence);
242604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24275ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyFence(
242804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
242904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
243004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
243104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetFences(
243204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
243304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
243404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences);
243504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
243604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetFenceStatus(
243704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
243804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFence                                     fence);
243904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
244004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkWaitForFences(
244104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
244204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    fenceCount,
244304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFence*                              pFences,
244404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    waitAll,
244504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint64_t                                    timeout);
244604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
244704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateSemaphore(
244804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
244904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSemaphoreCreateInfo*                pCreateInfo,
245004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphore*                                pSemaphore);
245104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24525ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroySemaphore(
245304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
245404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphore                                 semaphore);
245504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
245604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueSignalSemaphore(
245704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
245804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphore                                 semaphore);
245904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
246004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkQueueWaitSemaphore(
246104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueue                                     queue,
246204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSemaphore                                 semaphore);
246304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
246404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateEvent(
246504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
246604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEventCreateInfo*                    pCreateInfo,
246704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent*                                    pEvent);
246804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyEvent(
247004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
247104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
247204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
247304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetEventStatus(
247404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
247504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
247604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
247704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkSetEvent(
247804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
247904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
248004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
248104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetEvent(
248204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
248304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event);
248404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
248504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateQueryPool(
248604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
248704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkQueryPoolCreateInfo*                pCreateInfo,
248804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool*                                pQueryPool);
248904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
24905ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyQueryPool(
249104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
249204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool);
249304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
249404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetQueryPoolResults(
249504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
249604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
249704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
249804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
249904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    size_t*                                     pDataSize,
250004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData,
250104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
250204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
250304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateBuffer(
250404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
250504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCreateInfo*                   pCreateInfo,
250604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer*                                   pBuffer);
250704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25085ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyBuffer(
250904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
251004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer);
251104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
251204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateBufferView(
251304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
251404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferViewCreateInfo*               pCreateInfo,
251504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferView*                               pView);
251604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25175ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyBufferView(
251804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
251904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBufferView                                bufferView);
252004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
252104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateImage(
252204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
252304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCreateInfo*                    pCreateInfo,
252404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage*                                    pImage);
252504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25265ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyImage(
252704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
252804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image);
252904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2530606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetImageSubresourceLayout(
253104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
253204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
253304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresource*                   pSubresource,
253404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSubresourceLayout*                        pLayout);
253504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
253604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateImageView(
253704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
253804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageViewCreateInfo*                pCreateInfo,
253904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageView*                                pView);
254004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyImageView(
254204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
254304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageView                                 imageView);
254404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
254504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateShaderModule(
254604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
254704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkShaderModuleCreateInfo*             pCreateInfo,
254804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule*                             pShaderModule);
254904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25505ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyShaderModule(
255104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
255204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderModule                              shaderModule);
255304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
255404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateShader(
255504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
255604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkShaderCreateInfo*                   pCreateInfo,
255704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShader*                                   pShader);
255804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25595ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyShader(
256004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
256104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShader                                    shader);
256204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
256304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreatePipelineCache(
256404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
256504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCacheCreateInfo*            pCreateInfo,
256604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache*                            pPipelineCache);
256704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
25685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyPipelineCache(
256904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache);
257104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
257204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallsize_t VKAPI vkGetPipelineCacheSize(
257304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache);
257504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
257604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkGetPipelineCacheData(
257704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
257804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
2579606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hall    size_t                                      dataSize,
258004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    void*                                       pData);
258104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
258204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkMergePipelineCaches(
258304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
258404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             destCache,
258504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    srcCacheCount,
258604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineCache*                      pSrcCaches);
258704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
258804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateGraphicsPipelines(
258904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
259004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
259104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count,
259204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkGraphicsPipelineCreateInfo*         pCreateInfos,
259304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
259404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
259504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateComputePipelines(
259604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
259704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineCache                             pipelineCache,
259804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count,
259904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkComputePipelineCreateInfo*          pCreateInfos,
260004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline*                                 pPipelines);
260104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26025ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyPipeline(
260304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  pipeline);
260504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
260604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreatePipelineLayout(
260704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
260804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkPipelineLayoutCreateInfo*           pCreateInfo,
260904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout*                           pPipelineLayout);
261004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26115ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyPipelineLayout(
261204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
261304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            pipelineLayout);
261404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
261504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateSampler(
261604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
261704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkSamplerCreateInfo*                  pCreateInfo,
261804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSampler*                                  pSampler);
261904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26205ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroySampler(
262104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
262204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkSampler                                   sampler);
262304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
262404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateDescriptorSetLayout(
262504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
262604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
262704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSetLayout*                      pSetLayout);
262804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyDescriptorSetLayout(
263004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
263104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSetLayout                       descriptorSetLayout);
263204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
263304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateDescriptorPool(
263404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
263504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorPoolCreateInfo*           pCreateInfo,
263604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool*                           pDescriptorPool);
263704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26385ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyDescriptorPool(
263904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
264004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool                            descriptorPool);
264104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
264204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetDescriptorPool(
264304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
264404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool                            descriptorPool);
264504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
264604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkAllocDescriptorSets(
264704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
264804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool                            descriptorPool,
264904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorSetUsage                        setUsage,
265004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count,
265104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSetLayout*                pSetLayouts,
26525ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkDescriptorSet*                            pDescriptorSets);
265304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
265404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkFreeDescriptorSets(
265504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
265604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDescriptorPool                            descriptorPool,
265704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count,
265804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets);
265904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkUpdateDescriptorSets(
266104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
266204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    writeCount,
266304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkWriteDescriptorSet*                 pDescriptorWrites,
266404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    copyCount,
266504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCopyDescriptorSet*                  pDescriptorCopies);
266604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
266704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateFramebuffer(
266804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
266904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkFramebufferCreateInfo*              pCreateInfo,
267004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer*                              pFramebuffer);
267104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26725ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyFramebuffer(
267304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
267404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkFramebuffer                               framebuffer);
267504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
267604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateRenderPass(
267704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
267804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassCreateInfo*               pCreateInfo,
267904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass*                               pRenderPass);
268004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26815ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyRenderPass(
268204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
268304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass);
268404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2685606a54e194a5884c628130ba2eda1b3bfbc157d7Jesse Hallvoid VKAPI vkGetRenderAreaGranularity(
268604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
268704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPass                                renderPass,
268804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkExtent2D*                                 pGranularity);
268904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
269004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateCommandPool(
269104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
269204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCmdPoolCreateInfo*                  pCreateInfo,
269304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPool*                                  pCmdPool);
269404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
26955ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyCommandPool(
269604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
269704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPool                                   cmdPool);
269804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
269904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetCommandPool(
270004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
270104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPool                                   cmdPool,
270204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdPoolResetFlags                         flags);
270304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
270404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkCreateCommandBuffer(
270504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
270604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCmdBufferCreateInfo*                pCreateInfo,
270704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer*                                pCmdBuffer);
270804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkDestroyCommandBuffer(
271004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDevice                                    device,
271104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 commandBuffer);
271204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
271304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkBeginCommandBuffer(
271404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
271504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCmdBufferBeginInfo*                 pBeginInfo);
271604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
271704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkEndCommandBuffer(
271804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer);
271904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
272004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse HallVkResult VKAPI vkResetCommandBuffer(
272104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
272204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBufferResetFlags                       flags);
272304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
272404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindPipeline(
272504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
272604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
272704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipeline                                  pipeline);
272804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27295ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetViewport(
27305ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkCmdBuffer                                 cmdBuffer,
27315ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    viewportCount,
27325ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkViewport*                           pViewports);
27335ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
27345ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetScissor(
27355ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkCmdBuffer                                 cmdBuffer,
27365ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    scissorCount,
27375ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkRect2D*                             pScissors);
27385ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
27395ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetLineWidth(
27405ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkCmdBuffer                                 cmdBuffer,
27415ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       lineWidth);
27425ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
27435ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetDepthBias(
274404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
27455ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBias,
27465ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       depthBiasClamp,
27475ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       slopeScaledDepthBias);
274804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27495ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetBlendConstants(
275004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
27515ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const float                                 blendConst[4]);
275204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27535ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetDepthBounds(
275404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
27555ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       minDepthBounds,
27565ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    float                                       maxDepthBounds);
275704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
27585ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetStencilCompareMask(
275904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
27605ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
27615ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilCompareMask);
27625ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
27635ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetStencilWriteMask(
27645ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkCmdBuffer                                 cmdBuffer,
27655ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
27665ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilWriteMask);
27675ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall
27685ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hallvoid VKAPI vkCmdSetStencilReference(
27695ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkCmdBuffer                                 cmdBuffer,
27705ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    VkStencilFaceFlags                          faceMask,
27715ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    stencilReference);
277204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
277304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindDescriptorSets(
277404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
277504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineBindPoint                         pipelineBindPoint,
277604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
277704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    firstSet,
277804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    setCount,
277904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDescriptorSet*                      pDescriptorSets,
278004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    dynamicOffsetCount,
278104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pDynamicOffsets);
278204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
278304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindIndexBuffer(
278404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
278504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
278604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
278704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkIndexType                                 indexType);
278804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
278904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBindVertexBuffers(
279004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
279104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startBinding,
279204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    bindingCount,
279304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBuffer*                             pBuffers,
279404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkDeviceSize*                         pOffsets);
279504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
279604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDraw(
279704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
279804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    vertexCount,
27995ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
28005ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstVertex,
28015ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
280204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
280304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDrawIndexed(
280404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
280504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    indexCount,
28065ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    instanceCount,
28075ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstIndex,
280804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    int32_t                                     vertexOffset,
28095ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    uint32_t                                    firstInstance);
281004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
281104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDrawIndirect(
281204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
281304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
281404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
281504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count,
281604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
281704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
281804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDrawIndexedIndirect(
281904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
282004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
282104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset,
282204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    count,
282304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    stride);
282404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
282504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDispatch(
282604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
282704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    x,
282804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    y,
282904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    z);
283004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
283104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdDispatchIndirect(
283204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
283304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    buffer,
283404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                offset);
283504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
283604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyBuffer(
283704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
283804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
283904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
284004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
284104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferCopy*                         pRegions);
284204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
284304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyImage(
284404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
284504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
284604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
284704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     destImage,
284804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               destImageLayout,
284904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
285004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageCopy*                          pRegions);
285104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
285204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBlitImage(
285304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
285404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
285504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
285604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     destImage,
285704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               destImageLayout,
285804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
285904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageBlit*                          pRegions,
286004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkTexFilter                                 filter);
286104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
286204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyBufferToImage(
286304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
286404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    srcBuffer,
286504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     destImage,
286604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               destImageLayout,
286704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
286804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
286904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
287004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyImageToBuffer(
287104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
287204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
287304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
287404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
287504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
287604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkBufferImageCopy*                    pRegions);
287704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
287804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdUpdateBuffer(
287904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
288004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
288104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destOffset,
288204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                dataSize,
288304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const uint32_t*                             pData);
288404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
288504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdFillBuffer(
288604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
288704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
288804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destOffset,
288904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                fillSize,
289004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    data);
289104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
289204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdClearColorImage(
289304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
289404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
289504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
289604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkClearColorValue*                    pColor,
289704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
289804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
289904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
290004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdClearDepthStencilImage(
290104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
290204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     image,
290304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               imageLayout,
29045ae3abb3ca6728de04935b0c81bcdbdfc37b0d47Jesse Hall    const VkClearDepthStencilValue*             pDepthStencil,
290504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rangeCount,
290604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageSubresourceRange*              pRanges);
290704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
2908ae38f7355fd03b777313e13586585a74e0dee05bJesse Hallvoid VKAPI vkCmdClearAttachments(
290904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
2910ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    uint32_t                                    attachmentCount,
2911ae38f7355fd03b777313e13586585a74e0dee05bJesse Hall    const VkClearAttachment*                    pAttachments,
291204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    rectCount,
2913a15a4bf4bafd6114ae8f28c2df2fc622cb3baaceJesse Hall    const VkClearRect*                          pRects);
291404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
291504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdResolveImage(
291604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
291704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     srcImage,
291804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               srcImageLayout,
291904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImage                                     destImage,
292004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkImageLayout                               destImageLayout,
292104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    regionCount,
292204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkImageResolve*                       pRegions);
292304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
292404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdSetEvent(
292504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
292604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
292704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
292804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
292904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdResetEvent(
293004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
293104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkEvent                                     event,
293204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        stageMask);
293304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
293404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdWaitEvents(
293504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
293604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    eventCount,
293704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkEvent*                              pEvents,
293804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
293904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        destStageMask,
294004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memBarrierCount,
294104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void* const*                          ppMemBarriers);
294204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
294304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdPipelineBarrier(
294404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
294504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        srcStageMask,
294604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineStageFlags                        destStageMask,
294704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBool32                                    byRegion,
294804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    memBarrierCount,
294904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void* const*                          ppMemBarriers);
295004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
295104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBeginQuery(
295204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
295304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
295404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    slot,
295504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryControlFlags                         flags);
295604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
295704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdEndQuery(
295804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
295904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
296004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    slot);
296104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
296204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdResetQueryPool(
296304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
296404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
296504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
296604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount);
296704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
296804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdWriteTimestamp(
296904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
297004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkTimestampType                             timestampType,
297104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
297204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destOffset);
297304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
297404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdCopyQueryPoolResults(
297504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
297604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryPool                                 queryPool,
297704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    startQuery,
297804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    queryCount,
297904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkBuffer                                    destBuffer,
298004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destOffset,
298104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkDeviceSize                                destStride,
298204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkQueryResultFlags                          flags);
298304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
298404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdPushConstants(
298504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
298604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkPipelineLayout                            layout,
298704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkShaderStageFlags                          stageFlags,
298804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    start,
298904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    length,
299004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const void*                                 values);
299104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
299204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdBeginRenderPass(
299304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
299404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkRenderPassBeginInfo*                pRenderPassBegin,
299504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPassContents                        contents);
299604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
299704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdNextSubpass(
299804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
299904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkRenderPassContents                        contents);
300004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
300104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdEndRenderPass(
300204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer);
300304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
300404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hallvoid VKAPI vkCmdExecuteCommands(
300504f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    VkCmdBuffer                                 cmdBuffer,
300604f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    uint32_t                                    cmdBuffersCount,
300704f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall    const VkCmdBuffer*                          pCmdBuffers);
300804f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
300904f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
301004f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#ifdef __cplusplus
301104f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall}
301204f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
301304f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall
301404f4f4746481571148eaf3aaf768ee5c6dccec9dJesse Hall#endif
3015