189ad8547b998deee053a9f4419c658e01226134fJon Ashburn#ifndef VULKAN_H_
289ad8547b998deee053a9f4419c658e01226134fJon Ashburn#define VULKAN_H_ 1
3fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
4fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter#ifdef __cplusplus
5fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchterextern "C" {
6fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter#endif
7fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
889e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter/*
9673df32bf377f479f0f48378b5b1bc5eb7b2371aKarl Schultz** Copyright (c) 2015-2016 The Khronos Group Inc.
10bd0c2fea0250850d635e990c6a7c76b768d1a63dJon Ashburn**
1143b53e83705f02245da6ae61e31273866a35b833Jon Ashburn** Licensed under the Apache License, Version 2.0 (the "License");
1243b53e83705f02245da6ae61e31273866a35b833Jon Ashburn** you may not use this file except in compliance with the License.
1343b53e83705f02245da6ae61e31273866a35b833Jon Ashburn** You may obtain a copy of the License at
1489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter**
1543b53e83705f02245da6ae61e31273866a35b833Jon Ashburn**     http://www.apache.org/licenses/LICENSE-2.0
1689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter**
1743b53e83705f02245da6ae61e31273866a35b833Jon Ashburn** Unless required by applicable law or agreed to in writing, software
1843b53e83705f02245da6ae61e31273866a35b833Jon Ashburn** distributed under the License is distributed on an "AS IS" BASIS,
1943b53e83705f02245da6ae61e31273866a35b833Jon Ashburn** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2043b53e83705f02245da6ae61e31273866a35b833Jon Ashburn** See the License for the specific language governing permissions and
2143b53e83705f02245da6ae61e31273866a35b833Jon Ashburn** limitations under the License.
2289e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter*/
2389e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
24fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter/*
25fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter** This header is generated from the Khronos Vulkan XML API Registry.
26fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter**
27fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter*/
2889e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2989e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
30fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter#define VK_VERSION_1_0 1
312040b4334073da11b538582dc66689facba60ca8Courtney Goeltzenleuchter#include "vk_platform.h"
3289e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
33fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter#define VK_MAKE_VERSION(major, minor, patch) \
345716d69a908f9f81637f090a7d1d6e82a1dfe007Jon Ashburn    (((major) << 22) | ((minor) << 12) | (patch))
3589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
36f1ea418f193d10a8455cdf47e0eeeeb1f4d8b5bfJon Ashburn// DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
37f1ea418f193d10a8455cdf47e0eeeeb1f4d8b5bfJon Ashburn//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0)
38f1ea418f193d10a8455cdf47e0eeeeb1f4d8b5bfJon Ashburn
39f1ea418f193d10a8455cdf47e0eeeeb1f4d8b5bfJon Ashburn// Vulkan 1.0 version number
40f1ea418f193d10a8455cdf47e0eeeeb1f4d8b5bfJon Ashburn#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)
41f0dfbe8607f9f9d2abc09d09cf127c2bcf8a7503Cody Northrop
425716d69a908f9f81637f090a7d1d6e82a1dfe007Jon Ashburn#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
435716d69a908f9f81637f090a7d1d6e82a1dfe007Jon Ashburn#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
445716d69a908f9f81637f090a7d1d6e82a1dfe007Jon Ashburn#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
45f1ea418f193d10a8455cdf47e0eeeeb1f4d8b5bfJon Ashburn// Version of this file
465a4bba16656e9ee21c616129775fe28ebab30556Mark Lobodzinski#define VK_HEADER_VERSION 31
47f1ea418f193d10a8455cdf47e0eeeeb1f4d8b5bfJon Ashburn
48f0dfbe8607f9f9d2abc09d09cf127c2bcf8a7503Cody Northrop
49e420a33ff7bdcf67b8a487592af78a3ca2f29ee6Chia-I Wu#define VK_NULL_HANDLE 0
50e420a33ff7bdcf67b8a487592af78a3ca2f29ee6Chia-I Wu
5189e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
5289e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
53c04519cd6e39256351df868dc721259d904f4542Chia-I Wu#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
54de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
55de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
56c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE)
5722dfb18d96da38b30c22f776ffe780e111463050Mark Lobodzinski#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
58c04519cd6e39256351df868dc721259d904f4542Chia-I Wu        #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
59230e62505478ab0d9b05003e0e48baa5f090c6a0Mike Stroyan#else
60c04519cd6e39256351df868dc721259d904f4542Chia-I Wu        #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
61230e62505478ab0d9b05003e0e48baa5f090c6a0Mike Stroyan#endif
62c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#endif
63fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
64fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
65fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
662d013adc4235d5986b6f691d5c3edf096d40aaa6Cody Northroptypedef uint32_t VkFlags;
67ebd0760198c8699e758ba30270730d29003fed56Chia-I Wutypedef uint32_t VkBool32;
682d013adc4235d5986b6f691d5c3edf096d40aaa6Cody Northroptypedef uint64_t VkDeviceSize;
692d013adc4235d5986b6f691d5c3edf096d40aaa6Cody Northroptypedef uint32_t VkSampleMask;
70230e62505478ab0d9b05003e0e48baa5f090c6a0Mike Stroyan
71de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony BarbourVK_DEFINE_HANDLE(VkInstance)
72de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony BarbourVK_DEFINE_HANDLE(VkPhysicalDevice)
73de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony BarbourVK_DEFINE_HANDLE(VkDevice)
74de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony BarbourVK_DEFINE_HANDLE(VkQueue)
751f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
761f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_HANDLE(VkCommandBuffer)
771f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
781f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
791f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
801f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
811f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
821f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
831f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
841f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
851f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
861f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
871f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
881f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
891f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
901f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
911f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
921f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
931f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
941f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
951f85191a3a8479194ecb7b937aee284cf80cf08fChia-I WuVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
9689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
972d013adc4235d5986b6f691d5c3edf096d40aaa6Cody Northrop#define VK_LOD_CLAMP_NONE                 1000.0f
98ec167684024322845150ec98cd75ddc831ef6dabCourtney Goeltzenleuchter#define VK_REMAINING_MIP_LEVELS           (~0U)
993dee8087999562e0637326175a3cf6cab858158eCourtney Goeltzenleuchter#define VK_REMAINING_ARRAY_LAYERS         (~0U)
1002d013adc4235d5986b6f691d5c3edf096d40aaa6Cody Northrop#define VK_WHOLE_SIZE                     (~0ULL)
1012d013adc4235d5986b6f691d5c3edf096d40aaa6Cody Northrop#define VK_ATTACHMENT_UNUSED              (~0U)
1022d013adc4235d5986b6f691d5c3edf096d40aaa6Cody Northrop#define VK_TRUE                           1
1032d013adc4235d5986b6f691d5c3edf096d40aaa6Cody Northrop#define VK_FALSE                          0
1042d013adc4235d5986b6f691d5c3edf096d40aaa6Cody Northrop#define VK_QUEUE_FAMILY_IGNORED           (~0U)
10512e649fbd1c633f9f727d6d224fd7a0b3458ff28Courtney Goeltzenleuchter#define VK_SUBPASS_EXTERNAL               (~0U)
1064291d8822ec2a685ef89ec2b210ff16857e25310Chia-I Wu#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256
1074291d8822ec2a685ef89ec2b210ff16857e25310Chia-I Wu#define VK_UUID_SIZE                      16
1082d013adc4235d5986b6f691d5c3edf096d40aaa6Cody Northrop#define VK_MAX_MEMORY_TYPES               32
1092d013adc4235d5986b6f691d5c3edf096d40aaa6Cody Northrop#define VK_MAX_MEMORY_HEAPS               16
1104291d8822ec2a685ef89ec2b210ff16857e25310Chia-I Wu#define VK_MAX_EXTENSION_NAME_SIZE        256
1114291d8822ec2a685ef89ec2b210ff16857e25310Chia-I Wu#define VK_MAX_DESCRIPTION_SIZE           256
1122d013adc4235d5986b6f691d5c3edf096d40aaa6Cody Northrop
11389e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1141b6e8ce6795cd0b009a55219c887d5737ccb6dcfJon Ashburntypedef enum VkPipelineCacheHeaderVersion {
1151b6e8ce6795cd0b009a55219c887d5737ccb6dcfJon Ashburn    VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1161b6e8ce6795cd0b009a55219c887d5737ccb6dcfJon Ashburn    VK_PIPELINE_CACHE_HEADER_VERSION_BEGIN_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
1171b6e8ce6795cd0b009a55219c887d5737ccb6dcfJon Ashburn    VK_PIPELINE_CACHE_HEADER_VERSION_END_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
1181b6e8ce6795cd0b009a55219c887d5737ccb6dcfJon Ashburn    VK_PIPELINE_CACHE_HEADER_VERSION_RANGE_SIZE = (VK_PIPELINE_CACHE_HEADER_VERSION_ONE - VK_PIPELINE_CACHE_HEADER_VERSION_ONE + 1),
1191b6e8ce6795cd0b009a55219c887d5737ccb6dcfJon Ashburn    VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
1201b6e8ce6795cd0b009a55219c887d5737ccb6dcfJon Ashburn} VkPipelineCacheHeaderVersion;
1211b6e8ce6795cd0b009a55219c887d5737ccb6dcfJon Ashburn
122d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkResult {
123fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_SUCCESS = 0,
12437a43a64af08599b5fe5429c6c331f42f765fca9Courtney Goeltzenleuchter    VK_NOT_READY = 1,
12537a43a64af08599b5fe5429c6c331f42f765fca9Courtney Goeltzenleuchter    VK_TIMEOUT = 2,
12637a43a64af08599b5fe5429c6c331f42f765fca9Courtney Goeltzenleuchter    VK_EVENT_SET = 3,
12737a43a64af08599b5fe5429c6c331f42f765fca9Courtney Goeltzenleuchter    VK_EVENT_RESET = 4,
12837a43a64af08599b5fe5429c6c331f42f765fca9Courtney Goeltzenleuchter    VK_INCOMPLETE = 5,
129ac544f3737b45a5b35251100a3396aa8be397d8dCourtney Goeltzenleuchter    VK_ERROR_OUT_OF_HOST_MEMORY = -1,
130ac544f3737b45a5b35251100a3396aa8be397d8dCourtney Goeltzenleuchter    VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
131ac544f3737b45a5b35251100a3396aa8be397d8dCourtney Goeltzenleuchter    VK_ERROR_INITIALIZATION_FAILED = -3,
132ac544f3737b45a5b35251100a3396aa8be397d8dCourtney Goeltzenleuchter    VK_ERROR_DEVICE_LOST = -4,
133ac544f3737b45a5b35251100a3396aa8be397d8dCourtney Goeltzenleuchter    VK_ERROR_MEMORY_MAP_FAILED = -5,
134ac544f3737b45a5b35251100a3396aa8be397d8dCourtney Goeltzenleuchter    VK_ERROR_LAYER_NOT_PRESENT = -6,
135ac544f3737b45a5b35251100a3396aa8be397d8dCourtney Goeltzenleuchter    VK_ERROR_EXTENSION_NOT_PRESENT = -7,
136ee928111d0dcec1822ad7860b178e98c658f7175Courtney Goeltzenleuchter    VK_ERROR_FEATURE_NOT_PRESENT = -8,
137ee928111d0dcec1822ad7860b178e98c658f7175Courtney Goeltzenleuchter    VK_ERROR_INCOMPATIBLE_DRIVER = -9,
13864a9b66fc6479923fe4a4457818cfe8ae2603ebcChia-I Wu    VK_ERROR_TOO_MANY_OBJECTS = -10,
1395202c54bd0212e17a51d6183e9a7ecd9517f233cChia-I Wu    VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
14022dfb18d96da38b30c22f776ffe780e111463050Mark Lobodzinski    VK_ERROR_FRAGMENTED_POOL = -12,
141bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VK_ERROR_SURFACE_LOST_KHR = -1000000000,
142bd897d82d89ac576544e8b2aad1136edbee0e6f2Jon Ashburn    VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
143bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VK_SUBOPTIMAL_KHR = 1000001003,
144bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
145bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
1461b6e8ce6795cd0b009a55219c887d5737ccb6dcfJon Ashburn    VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
147b68d473ca3f2534caea1ab72de87837a34920a42Jon Ashburn    VK_ERROR_INVALID_SHADER_NV = -1000012000,
14822dfb18d96da38b30c22f776ffe780e111463050Mark Lobodzinski    VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL,
149fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_RESULT_END_RANGE = VK_INCOMPLETE,
15022dfb18d96da38b30c22f776ffe780e111463050Mark Lobodzinski    VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FRAGMENTED_POOL + 1),
151fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_RESULT_MAX_ENUM = 0x7FFFFFFF
152fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkResult;
15389e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
154d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkStructureType {
155fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
156ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
157ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
158ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
159ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
160c1f5e4068eab0504d4b68f78f88c55312ef96328Chia-I Wu    VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
161ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
162ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
163ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
164ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
16509772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter    VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
166ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
167ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
168ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
169ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
170ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
171ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
172062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
173062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
174062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
175062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
176062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
177062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
178062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
179062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
180062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
181062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
182062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
183062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
184062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
185062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
186062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
187062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
188062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
189c1f5e4068eab0504d4b68f78f88c55312ef96328Chia-I Wu    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
190062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
191062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
192062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
193062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
194062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
195c1f5e4068eab0504d4b68f78f88c55312ef96328Chia-I Wu    VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
196a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
197a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
198a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
199a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
200a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
201a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
202a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
203a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
204bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
205bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
206bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
207bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
208bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
209bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
210bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
211bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
212bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
213bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
214bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
21589ad8547b998deee053a9f4419c658e01226134fJon Ashburn    VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
216a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
21775917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
21875917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
21975917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
2206fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
2216fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
2226fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
223c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
224c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
225c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
226c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
227c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
22883b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski    VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
229fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
230424e31d7fe7421d49381c6ccd987ee2239ab62f2Chia-I Wu    VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
231424e31d7fe7421d49381c6ccd987ee2239ab62f2Chia-I Wu    VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
232fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
233fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkStructureType;
23489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
235d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkSystemAllocationScope {
2365eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
2371f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
2381f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
2391f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
2401f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
2415eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
2421f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
2435eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1),
2441f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
2451f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu} VkSystemAllocationScope;
24669f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu
247d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkInternalAllocationType {
248c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
249c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
250c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
251c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1),
252c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
253c04519cd6e39256351df868dc721259d904f4542Chia-I Wu} VkInternalAllocationType;
25489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
255d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkFormat {
25660ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_UNDEFINED = 0,
25760ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R4G4_UNORM_PACK8 = 1,
25860ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
25960ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
26060ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
26160ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
26260ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
26360ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
26460ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
26560ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8_UNORM = 9,
26660ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8_SNORM = 10,
26760ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8_USCALED = 11,
26860ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8_SSCALED = 12,
26960ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8_UINT = 13,
27060ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8_SINT = 14,
27160ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8_SRGB = 15,
27260ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8_UNORM = 16,
27360ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8_SNORM = 17,
27460ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8_USCALED = 18,
27560ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8_SSCALED = 19,
27660ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8_UINT = 20,
27760ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8_SINT = 21,
27860ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8_SRGB = 22,
27960ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8B8_UNORM = 23,
28060ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8B8_SNORM = 24,
28160ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8B8_USCALED = 25,
28260ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8B8_SSCALED = 26,
28360ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8B8_UINT = 27,
28460ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8B8_SINT = 28,
28560ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8B8_SRGB = 29,
28660ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_B8G8R8_UNORM = 30,
28760ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_B8G8R8_SNORM = 31,
28860ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_B8G8R8_USCALED = 32,
28960ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_B8G8R8_SSCALED = 33,
29060ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_B8G8R8_UINT = 34,
29160ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_B8G8R8_SINT = 35,
29260ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_B8G8R8_SRGB = 36,
29360ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8B8A8_UNORM = 37,
29460ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8B8A8_SNORM = 38,
29560ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8B8A8_USCALED = 39,
29660ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8B8A8_SSCALED = 40,
29760ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8B8A8_UINT = 41,
29860ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8B8A8_SINT = 42,
29960ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R8G8B8A8_SRGB = 43,
30060ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_B8G8R8A8_UNORM = 44,
30160ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_B8G8R8A8_SNORM = 45,
30260ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_B8G8R8A8_USCALED = 46,
30360ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_B8G8R8A8_SSCALED = 47,
30460ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_B8G8R8A8_UINT = 48,
30560ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_B8G8R8A8_SINT = 49,
30660ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_B8G8R8A8_SRGB = 50,
30760ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
30860ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
30960ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
31060ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
31160ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
31260ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
31360ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
31460ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
31560ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
31660ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
31760ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
31860ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
31960ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
32060ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
32160ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
32260ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
32360ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
32460ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
32560ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
32660ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16_UNORM = 70,
32760ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16_SNORM = 71,
32860ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16_USCALED = 72,
32960ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16_SSCALED = 73,
33060ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16_UINT = 74,
33160ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16_SINT = 75,
33260ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16_SFLOAT = 76,
33360ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16_UNORM = 77,
33460ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16_SNORM = 78,
33560ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16_USCALED = 79,
33660ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16_SSCALED = 80,
33760ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16_UINT = 81,
33860ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16_SINT = 82,
33960ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16_SFLOAT = 83,
34060ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16B16_UNORM = 84,
34160ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16B16_SNORM = 85,
34260ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16B16_USCALED = 86,
34360ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16B16_SSCALED = 87,
34460ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16B16_UINT = 88,
34560ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16B16_SINT = 89,
34660ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16B16_SFLOAT = 90,
34760ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16B16A16_UNORM = 91,
34860ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16B16A16_SNORM = 92,
34960ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16B16A16_USCALED = 93,
35060ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16B16A16_SSCALED = 94,
35160ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16B16A16_UINT = 95,
35260ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16B16A16_SINT = 96,
35360ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R16G16B16A16_SFLOAT = 97,
35460ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R32_UINT = 98,
35560ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R32_SINT = 99,
35660ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R32_SFLOAT = 100,
35760ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R32G32_UINT = 101,
35860ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R32G32_SINT = 102,
35960ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R32G32_SFLOAT = 103,
36060ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R32G32B32_UINT = 104,
36160ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R32G32B32_SINT = 105,
36260ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R32G32B32_SFLOAT = 106,
36360ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R32G32B32A32_UINT = 107,
36460ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R32G32B32A32_SINT = 108,
36560ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R32G32B32A32_SFLOAT = 109,
36660ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R64_UINT = 110,
36760ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R64_SINT = 111,
36860ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R64_SFLOAT = 112,
36960ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R64G64_UINT = 113,
37060ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R64G64_SINT = 114,
37160ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R64G64_SFLOAT = 115,
37260ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R64G64B64_UINT = 116,
37360ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R64G64B64_SINT = 117,
37460ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R64G64B64_SFLOAT = 118,
37560ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R64G64B64A64_UINT = 119,
37660ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R64G64B64A64_SINT = 120,
37760ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_R64G64B64A64_SFLOAT = 121,
37860ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
37960ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
38060ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_D16_UNORM = 124,
38160ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
38260ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_D32_SFLOAT = 126,
38360ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_S8_UINT = 127,
38460ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_D16_UNORM_S8_UINT = 128,
38560ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_D24_UNORM_S8_UINT = 129,
38660ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
38760ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
38860ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
38960ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
39060ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
39160ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_BC2_UNORM_BLOCK = 135,
39260ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_BC2_SRGB_BLOCK = 136,
39360ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_BC3_UNORM_BLOCK = 137,
39460ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_BC3_SRGB_BLOCK = 138,
39560ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_BC4_UNORM_BLOCK = 139,
39660ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_BC4_SNORM_BLOCK = 140,
39760ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_BC5_UNORM_BLOCK = 141,
39860ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_BC5_SNORM_BLOCK = 142,
39960ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
40060ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
40160ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_BC7_UNORM_BLOCK = 145,
40260ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_BC7_SRGB_BLOCK = 146,
40360ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
40460ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
40560ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
40660ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
40760ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
40860ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
40960ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
41060ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
41160ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
41260ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
41360ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
41460ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
41560ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
41660ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
41760ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
41860ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
41960ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
42060ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
42160ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
42260ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
42360ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
42460ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
42560ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
42660ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
42760ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
42860ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
42960ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
43060ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
43160ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
43260ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
43360ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
43460ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
43560ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
43660ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
43760ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
43860ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
43960ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
44060ad4a9804a59f36a410ad8292fc7c6ee0065a33Chia-I Wu    VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
44122dfb18d96da38b30c22f776ffe780e111463050Mark Lobodzinski    VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
44222dfb18d96da38b30c22f776ffe780e111463050Mark Lobodzinski    VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
44322dfb18d96da38b30c22f776ffe780e111463050Mark Lobodzinski    VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
44422dfb18d96da38b30c22f776ffe780e111463050Mark Lobodzinski    VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
44522dfb18d96da38b30c22f776ffe780e111463050Mark Lobodzinski    VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
44622dfb18d96da38b30c22f776ffe780e111463050Mark Lobodzinski    VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
44722dfb18d96da38b30c22f776ffe780e111463050Mark Lobodzinski    VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
44822dfb18d96da38b30c22f776ffe780e111463050Mark Lobodzinski    VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
449fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
4506880c8ef75c8a90d4cd5af18fddaa9c828da828bChia-I Wu    VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
4516880c8ef75c8a90d4cd5af18fddaa9c828da828bChia-I Wu    VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1),
452fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
453fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkFormat;
45489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
455d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkImageType {
456fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_TYPE_1D = 0,
457fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_TYPE_2D = 1,
458fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_TYPE_3D = 2,
459fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
460fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
4611f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
462fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
463382489d723fd0d3935da0dc7e1021c56c7b721d3Courtney Goeltzenleuchter} VkImageType;
46489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
465d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkImageTiling {
466ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_IMAGE_TILING_OPTIMAL = 0,
467ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_IMAGE_TILING_LINEAR = 1,
468ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
469ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
470c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
471fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
472382489d723fd0d3935da0dc7e1021c56c7b721d3Courtney Goeltzenleuchter} VkImageTiling;
47389e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
474d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkPhysicalDeviceType {
475fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
476fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
477fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
478fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
479fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
480fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
481fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
482c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
483fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
484fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkPhysicalDeviceType;
48589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
486d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkQueryType {
487fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_QUERY_TYPE_OCCLUSION = 0,
488fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
4898f6fd6e5dc034c65fe97e9fccb2cafcaee1613edChia-I Wu    VK_QUERY_TYPE_TIMESTAMP = 2,
490fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
4918f6fd6e5dc034c65fe97e9fccb2cafcaee1613edChia-I Wu    VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
492c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1),
493fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
494fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkQueryType;
495fa6d36ea26354e4d68e81b05d1199a83c9fa3d6aChris Forbes
496d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkSharingMode {
497fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_SHARING_MODE_EXCLUSIVE = 0,
498fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_SHARING_MODE_CONCURRENT = 1,
499fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
500fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
501c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
502fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
503fa6d36ea26354e4d68e81b05d1199a83c9fa3d6aChris Forbes} VkSharingMode;
504fa6d36ea26354e4d68e81b05d1199a83c9fa3d6aChris Forbes
505d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkImageLayout {
506d9c2c0236878a6b2462e03373ffa8e4829e158caCourtney Goeltzenleuchter    VK_IMAGE_LAYOUT_UNDEFINED = 0,
507d9c2c0236878a6b2462e03373ffa8e4829e158caCourtney Goeltzenleuchter    VK_IMAGE_LAYOUT_GENERAL = 1,
508d9c2c0236878a6b2462e03373ffa8e4829e158caCourtney Goeltzenleuchter    VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
509d9c2c0236878a6b2462e03373ffa8e4829e158caCourtney Goeltzenleuchter    VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
510d9c2c0236878a6b2462e03373ffa8e4829e158caCourtney Goeltzenleuchter    VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
511d9c2c0236878a6b2462e03373ffa8e4829e158caCourtney Goeltzenleuchter    VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
5121f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
5131f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
514d9c2c0236878a6b2462e03373ffa8e4829e158caCourtney Goeltzenleuchter    VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
515bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
516d9c2c0236878a6b2462e03373ffa8e4829e158caCourtney Goeltzenleuchter    VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
517d9c2c0236878a6b2462e03373ffa8e4829e158caCourtney Goeltzenleuchter    VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
518c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
519d9c2c0236878a6b2462e03373ffa8e4829e158caCourtney Goeltzenleuchter    VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
520d9c2c0236878a6b2462e03373ffa8e4829e158caCourtney Goeltzenleuchter} VkImageLayout;
521d9c2c0236878a6b2462e03373ffa8e4829e158caCourtney Goeltzenleuchter
522d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkImageViewType {
523fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_VIEW_TYPE_1D = 0,
524fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_VIEW_TYPE_2D = 1,
525fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_VIEW_TYPE_3D = 2,
526fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_VIEW_TYPE_CUBE = 3,
527fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
528fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
529fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
530fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
531fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
532c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
533fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
534fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkImageViewType;
53589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
536d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkComponentSwizzle {
537c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_COMPONENT_SWIZZLE_IDENTITY = 0,
538c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_COMPONENT_SWIZZLE_ZERO = 1,
539c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_COMPONENT_SWIZZLE_ONE = 2,
540c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_COMPONENT_SWIZZLE_R = 3,
541c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_COMPONENT_SWIZZLE_G = 4,
542c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_COMPONENT_SWIZZLE_B = 5,
543c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_COMPONENT_SWIZZLE_A = 6,
544c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY,
545c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A,
546c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1),
547c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
548c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu} VkComponentSwizzle;
54989e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
550d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkVertexInputRate {
551c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_VERTEX_INPUT_RATE_VERTEX = 0,
552c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_VERTEX_INPUT_RATE_INSTANCE = 1,
553c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX,
554c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE,
555c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1),
556c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
557c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu} VkVertexInputRate;
55889e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
559d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkPrimitiveTopology {
560fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
561fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
562fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
563fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
564fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
565fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
5661f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
5671f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
5681f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
5691f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
57099ba2bbe4eb86eaa5859ab17270f978e11a1d861Chia-I Wu    VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
571fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
57299ba2bbe4eb86eaa5859ab17270f978e11a1d861Chia-I Wu    VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
57399ba2bbe4eb86eaa5859ab17270f978e11a1d861Chia-I Wu    VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
574fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
575fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkPrimitiveTopology;
57689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
577d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkPolygonMode {
578c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_POLYGON_MODE_FILL = 0,
579c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_POLYGON_MODE_LINE = 1,
580c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_POLYGON_MODE_POINT = 2,
5814291d8822ec2a685ef89ec2b210ff16857e25310Chia-I Wu    VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL,
5824291d8822ec2a685ef89ec2b210ff16857e25310Chia-I Wu    VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT,
5834291d8822ec2a685ef89ec2b210ff16857e25310Chia-I Wu    VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1),
5844291d8822ec2a685ef89ec2b210ff16857e25310Chia-I Wu    VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
585c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu} VkPolygonMode;
58689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
587d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkFrontFace {
5881f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
5891f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_FRONT_FACE_CLOCKWISE = 1,
5901f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
5911f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE,
592c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1),
593fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
594fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkFrontFace;
59588eaa3bf0c7874f8b62cf35e3b649201ecc47c36Chia-I Wu
596d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkCompareOp {
597fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_COMPARE_OP_NEVER = 0,
598fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_COMPARE_OP_LESS = 1,
599fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_COMPARE_OP_EQUAL = 2,
6001f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_COMPARE_OP_LESS_OR_EQUAL = 3,
601fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_COMPARE_OP_GREATER = 4,
602fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_COMPARE_OP_NOT_EQUAL = 5,
6031f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
604fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_COMPARE_OP_ALWAYS = 7,
605fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
606fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
607c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
608fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
609fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkCompareOp;
6102c4e7c76b02d4ad0c09ff14bf9026dfcc0b9fa0cTony Barbour
611d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkStencilOp {
612fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_STENCIL_OP_KEEP = 0,
613fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_STENCIL_OP_ZERO = 1,
614fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_STENCIL_OP_REPLACE = 2,
6151f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
6161f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
617fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_STENCIL_OP_INVERT = 5,
6181f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
6191f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
620fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
6211f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP,
622c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1),
623fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
624fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkStencilOp;
62589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
626d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkLogicOp {
627fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_LOGIC_OP_CLEAR = 0,
628fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_LOGIC_OP_AND = 1,
629fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_LOGIC_OP_AND_REVERSE = 2,
630fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_LOGIC_OP_COPY = 3,
631fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_LOGIC_OP_AND_INVERTED = 4,
6321f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_LOGIC_OP_NO_OP = 5,
633fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_LOGIC_OP_XOR = 6,
634fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_LOGIC_OP_OR = 7,
635fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_LOGIC_OP_NOR = 8,
6361f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_LOGIC_OP_EQUIVALENT = 9,
637fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_LOGIC_OP_INVERT = 10,
638fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_LOGIC_OP_OR_REVERSE = 11,
639fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_LOGIC_OP_COPY_INVERTED = 12,
640fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_LOGIC_OP_OR_INVERTED = 13,
641fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_LOGIC_OP_NAND = 14,
642fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_LOGIC_OP_SET = 15,
643fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
644fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
645c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
646fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
647fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkLogicOp;
64889e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
649d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkBlendFactor {
650c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_BLEND_FACTOR_ZERO = 0,
651c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_BLEND_FACTOR_ONE = 1,
652c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_BLEND_FACTOR_SRC_COLOR = 2,
653c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
654c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_BLEND_FACTOR_DST_COLOR = 4,
655c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
656c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_BLEND_FACTOR_SRC_ALPHA = 6,
657c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
658c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_BLEND_FACTOR_DST_ALPHA = 8,
659c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
660c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
661c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
662c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
663c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
664c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
665c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_BLEND_FACTOR_SRC1_COLOR = 15,
666c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
667c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_BLEND_FACTOR_SRC1_ALPHA = 17,
668c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
6694291d8822ec2a685ef89ec2b210ff16857e25310Chia-I Wu    VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO,
6704291d8822ec2a685ef89ec2b210ff16857e25310Chia-I Wu    VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
6714291d8822ec2a685ef89ec2b210ff16857e25310Chia-I Wu    VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1),
6724291d8822ec2a685ef89ec2b210ff16857e25310Chia-I Wu    VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
673c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu} VkBlendFactor;
67489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
675d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkBlendOp {
676fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BLEND_OP_ADD = 0,
677fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BLEND_OP_SUBTRACT = 1,
678fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BLEND_OP_REVERSE_SUBTRACT = 2,
679fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BLEND_OP_MIN = 3,
680fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BLEND_OP_MAX = 4,
681fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
682fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
683c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
684fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
685fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkBlendOp;
68689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
687d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkDynamicState {
688e20aaa220a2aa1afc70b99e35b7a44edf3cae96eCourtney Goeltzenleuchter    VK_DYNAMIC_STATE_VIEWPORT = 0,
689e20aaa220a2aa1afc70b99e35b7a44edf3cae96eCourtney Goeltzenleuchter    VK_DYNAMIC_STATE_SCISSOR = 1,
690e20aaa220a2aa1afc70b99e35b7a44edf3cae96eCourtney Goeltzenleuchter    VK_DYNAMIC_STATE_LINE_WIDTH = 2,
691e20aaa220a2aa1afc70b99e35b7a44edf3cae96eCourtney Goeltzenleuchter    VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
692e20aaa220a2aa1afc70b99e35b7a44edf3cae96eCourtney Goeltzenleuchter    VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
693e20aaa220a2aa1afc70b99e35b7a44edf3cae96eCourtney Goeltzenleuchter    VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
694e20aaa220a2aa1afc70b99e35b7a44edf3cae96eCourtney Goeltzenleuchter    VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
695e20aaa220a2aa1afc70b99e35b7a44edf3cae96eCourtney Goeltzenleuchter    VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
696e20aaa220a2aa1afc70b99e35b7a44edf3cae96eCourtney Goeltzenleuchter    VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
697e20aaa220a2aa1afc70b99e35b7a44edf3cae96eCourtney Goeltzenleuchter    VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
698e20aaa220a2aa1afc70b99e35b7a44edf3cae96eCourtney Goeltzenleuchter    VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
6991f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
700e20aaa220a2aa1afc70b99e35b7a44edf3cae96eCourtney Goeltzenleuchter    VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
701e20aaa220a2aa1afc70b99e35b7a44edf3cae96eCourtney Goeltzenleuchter} VkDynamicState;
702e20aaa220a2aa1afc70b99e35b7a44edf3cae96eCourtney Goeltzenleuchter
703d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkFilter {
7043603b0843e868bd46b11eaf1d64ccdb260599609Chia-I Wu    VK_FILTER_NEAREST = 0,
7053603b0843e868bd46b11eaf1d64ccdb260599609Chia-I Wu    VK_FILTER_LINEAR = 1,
706f1ea418f193d10a8455cdf47e0eeeeb1f4d8b5bfJon Ashburn    VK_FILTER_CUBIC_IMG = 1000015000,
7073603b0843e868bd46b11eaf1d64ccdb260599609Chia-I Wu    VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
7083603b0843e868bd46b11eaf1d64ccdb260599609Chia-I Wu    VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
709c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
7103603b0843e868bd46b11eaf1d64ccdb260599609Chia-I Wu    VK_FILTER_MAX_ENUM = 0x7FFFFFFF
7113603b0843e868bd46b11eaf1d64ccdb260599609Chia-I Wu} VkFilter;
7123603b0843e868bd46b11eaf1d64ccdb260599609Chia-I Wu
713d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkSamplerMipmapMode {
714a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
715a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
716a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST,
7173603b0843e868bd46b11eaf1d64ccdb260599609Chia-I Wu    VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
718a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1),
7193603b0843e868bd46b11eaf1d64ccdb260599609Chia-I Wu    VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
7203603b0843e868bd46b11eaf1d64ccdb260599609Chia-I Wu} VkSamplerMipmapMode;
7213603b0843e868bd46b11eaf1d64ccdb260599609Chia-I Wu
722d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkSamplerAddressMode {
723ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
724ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
725ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
726ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
727ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
728ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
72989ad8547b998deee053a9f4419c658e01226134fJon Ashburn    VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
73089ad8547b998deee053a9f4419c658e01226134fJon Ashburn    VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
7313603b0843e868bd46b11eaf1d64ccdb260599609Chia-I Wu    VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
7323603b0843e868bd46b11eaf1d64ccdb260599609Chia-I Wu} VkSamplerAddressMode;
73389e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
734d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkBorderColor {
735fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
736fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
737fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
738fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
739fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
740fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
741fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
742fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
743c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
744fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
745fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkBorderColor;
74689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
747d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkDescriptorType {
748fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_DESCRIPTOR_TYPE_SAMPLER = 0,
749fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
750fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
751fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
752fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
753fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
754fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
755fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
756fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
757fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
758fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
759fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
760fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
761c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
762fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
763fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkDescriptorType;
76489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
765d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkAttachmentLoadOp {
766fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_ATTACHMENT_LOAD_OP_LOAD = 0,
767fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
768fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
769fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
770fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
771c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
772fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
773fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkAttachmentLoadOp;
77489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
775d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkAttachmentStoreOp {
776fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_ATTACHMENT_STORE_OP_STORE = 0,
777fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
778fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
779fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
780c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
781fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
782fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkAttachmentStoreOp;
78389e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
784d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkPipelineBindPoint {
785ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
786ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_PIPELINE_BIND_POINT_COMPUTE = 1,
787ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
788ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
7891f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
790fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
791fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkPipelineBindPoint;
79289e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
793d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkCommandBufferLevel {
7941f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
7951f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
7961f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
7971f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
798c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1),
7991f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
8001f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu} VkCommandBufferLevel;
80189e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
802d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkIndexType {
803fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_INDEX_TYPE_UINT16 = 0,
804fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_INDEX_TYPE_UINT32 = 1,
805fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
806fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
807c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
808fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
809fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkIndexType;
81089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
811d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkSubpassContents {
812c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_SUBPASS_CONTENTS_INLINE = 0,
813c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
814c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE,
815c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
816c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1),
817c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
818c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu} VkSubpassContents;
81989e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
820ebd0760198c8699e758ba30270730d29003fed56Chia-I Wutypedef VkFlags VkInstanceCreateFlags;
8212d013adc4235d5986b6f691d5c3edf096d40aaa6Cody Northrop
822d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkFormatFeatureFlagBits {
823fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
824fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
825fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
826fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
827fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
828fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
829fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
830fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
831fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
832fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
8331f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
8341f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
835bd897d82d89ac576544e8b2aad1136edbee0e6f2Jon Ashburn    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
836f1ea418f193d10a8455cdf47e0eeeeb1f4d8b5bfJon Ashburn    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
837c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
838fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkFormatFeatureFlagBits;
839fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchtertypedef VkFlags VkFormatFeatureFlags;
84089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
841d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkImageUsageFlagBits {
8421f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
8431f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
844fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
845fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
846fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
847c3b8eea2f5e66db11651068575f4712cf195f542Courtney Goeltzenleuchter    VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
848fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
849fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
850c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
851fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkImageUsageFlagBits;
852fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchtertypedef VkFlags VkImageUsageFlags;
85389e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
854d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkImageCreateFlagBits {
855c6d66ec0af7b6b7f912919977b3ce401b8d6f95dCourtney Goeltzenleuchter    VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
856d9860782101f583ed33f74cd5488252a554b8ba9Courtney Goeltzenleuchter    VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
857d9860782101f583ed33f74cd5488252a554b8ba9Courtney Goeltzenleuchter    VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
858ec9dedf14146238ce7c888b02578c79ba4e5fd1bCourtney Goeltzenleuchter    VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
859ec9dedf14146238ce7c888b02578c79ba4e5fd1bCourtney Goeltzenleuchter    VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
860c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
861d9860782101f583ed33f74cd5488252a554b8ba9Courtney Goeltzenleuchter} VkImageCreateFlagBits;
862d9860782101f583ed33f74cd5488252a554b8ba9Courtney Goeltzenleuchtertypedef VkFlags VkImageCreateFlags;
863d9860782101f583ed33f74cd5488252a554b8ba9Courtney Goeltzenleuchter
864d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkSampleCountFlagBits {
865b88d01ec235c30afce8ef1fb64c8a6edc5bbfcfbCourtney Goeltzenleuchter    VK_SAMPLE_COUNT_1_BIT = 0x00000001,
866b88d01ec235c30afce8ef1fb64c8a6edc5bbfcfbCourtney Goeltzenleuchter    VK_SAMPLE_COUNT_2_BIT = 0x00000002,
867b88d01ec235c30afce8ef1fb64c8a6edc5bbfcfbCourtney Goeltzenleuchter    VK_SAMPLE_COUNT_4_BIT = 0x00000004,
868b88d01ec235c30afce8ef1fb64c8a6edc5bbfcfbCourtney Goeltzenleuchter    VK_SAMPLE_COUNT_8_BIT = 0x00000008,
869b88d01ec235c30afce8ef1fb64c8a6edc5bbfcfbCourtney Goeltzenleuchter    VK_SAMPLE_COUNT_16_BIT = 0x00000010,
870b88d01ec235c30afce8ef1fb64c8a6edc5bbfcfbCourtney Goeltzenleuchter    VK_SAMPLE_COUNT_32_BIT = 0x00000020,
871b88d01ec235c30afce8ef1fb64c8a6edc5bbfcfbCourtney Goeltzenleuchter    VK_SAMPLE_COUNT_64_BIT = 0x00000040,
872c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
873a1ec009185663dea7d799403525b976c11224952Courtney Goeltzenleuchter} VkSampleCountFlagBits;
874a1ec009185663dea7d799403525b976c11224952Courtney Goeltzenleuchtertypedef VkFlags VkSampleCountFlags;
875a1ec009185663dea7d799403525b976c11224952Courtney Goeltzenleuchter
876d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkQueueFlagBits {
877fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_QUEUE_GRAPHICS_BIT = 0x00000001,
878fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_QUEUE_COMPUTE_BIT = 0x00000002,
879c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_QUEUE_TRANSFER_BIT = 0x00000004,
8807e470703805a7c93655ea18f553e225e84356429Chia-I Wu    VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
881c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
882fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkQueueFlagBits;
883fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchtertypedef VkFlags VkQueueFlags;
88489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
885d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkMemoryPropertyFlagBits {
88627d8ed9a91356894ae00fefedc7ef7895e796efeChia-I Wu    VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
88727d8ed9a91356894ae00fefedc7ef7895e796efeChia-I Wu    VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
88827d8ed9a91356894ae00fefedc7ef7895e796efeChia-I Wu    VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
88927d8ed9a91356894ae00fefedc7ef7895e796efeChia-I Wu    VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
89027d8ed9a91356894ae00fefedc7ef7895e796efeChia-I Wu    VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
891c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
892fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkMemoryPropertyFlagBits;
893fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchtertypedef VkFlags VkMemoryPropertyFlags;
89489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
895d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkMemoryHeapFlagBits {
89627d8ed9a91356894ae00fefedc7ef7895e796efeChia-I Wu    VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
897c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
898fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkMemoryHeapFlagBits;
899fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchtertypedef VkFlags VkMemoryHeapFlags;
900ebd0760198c8699e758ba30270730d29003fed56Chia-I Wutypedef VkFlags VkDeviceCreateFlags;
901ebd0760198c8699e758ba30270730d29003fed56Chia-I Wutypedef VkFlags VkDeviceQueueCreateFlags;
90298ce7e0df5c3add3df7216eef9fa6e49a2776c7aJon Ashburn
90398ce7e0df5c3add3df7216eef9fa6e49a2776c7aJon Ashburntypedef enum VkPipelineStageFlagBits {
90498ce7e0df5c3add3df7216eef9fa6e49a2776c7aJon Ashburn    VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
90598ce7e0df5c3add3df7216eef9fa6e49a2776c7aJon Ashburn    VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
90698ce7e0df5c3add3df7216eef9fa6e49a2776c7aJon Ashburn    VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
90798ce7e0df5c3add3df7216eef9fa6e49a2776c7aJon Ashburn    VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
90898ce7e0df5c3add3df7216eef9fa6e49a2776c7aJon Ashburn    VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
90998ce7e0df5c3add3df7216eef9fa6e49a2776c7aJon Ashburn    VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
91098ce7e0df5c3add3df7216eef9fa6e49a2776c7aJon Ashburn    VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
91198ce7e0df5c3add3df7216eef9fa6e49a2776c7aJon Ashburn    VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
91298ce7e0df5c3add3df7216eef9fa6e49a2776c7aJon Ashburn    VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
91398ce7e0df5c3add3df7216eef9fa6e49a2776c7aJon Ashburn    VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
91498ce7e0df5c3add3df7216eef9fa6e49a2776c7aJon Ashburn    VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
91598ce7e0df5c3add3df7216eef9fa6e49a2776c7aJon Ashburn    VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
91698ce7e0df5c3add3df7216eef9fa6e49a2776c7aJon Ashburn    VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
9176e2b8dc6fc29a96c84254a34d77b3e2ab6ee81f2Jon Ashburn    VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
918d3892692719770ca6cefb3d41071ce295e1be560Jon Ashburn    VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
919d3892692719770ca6cefb3d41071ce295e1be560Jon Ashburn    VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
920d3892692719770ca6cefb3d41071ce295e1be560Jon Ashburn    VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
921c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
92298ce7e0df5c3add3df7216eef9fa6e49a2776c7aJon Ashburn} VkPipelineStageFlagBits;
92398ce7e0df5c3add3df7216eef9fa6e49a2776c7aJon Ashburntypedef VkFlags VkPipelineStageFlags;
924fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchtertypedef VkFlags VkMemoryMapFlags;
92589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
926d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkImageAspectFlagBits {
927ba11ebe8763601875a5a0c925610088ab317ef06Courtney Goeltzenleuchter    VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
928ba11ebe8763601875a5a0c925610088ab317ef06Courtney Goeltzenleuchter    VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
929ba11ebe8763601875a5a0c925610088ab317ef06Courtney Goeltzenleuchter    VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
930ba11ebe8763601875a5a0c925610088ab317ef06Courtney Goeltzenleuchter    VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
931c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
932ba11ebe8763601875a5a0c925610088ab317ef06Courtney Goeltzenleuchter} VkImageAspectFlagBits;
933195c9e1571bc33a143af6a1adf7f6083a3b41f8dChia-I Wutypedef VkFlags VkImageAspectFlags;
934ba11ebe8763601875a5a0c925610088ab317ef06Courtney Goeltzenleuchter
935d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkSparseImageFormatFlagBits {
9367e470703805a7c93655ea18f553e225e84356429Chia-I Wu    VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
9377e470703805a7c93655ea18f553e225e84356429Chia-I Wu    VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
9387e470703805a7c93655ea18f553e225e84356429Chia-I Wu    VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
939c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
940fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkSparseImageFormatFlagBits;
941fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchtertypedef VkFlags VkSparseImageFormatFlags;
9420a64a65a74319046e8cddfa442991d244a8f4e92Chia-I Wu
9430a155debed8565af6658bfecea2bfd03b765660aChia-I Wutypedef enum VkSparseMemoryBindFlagBits {
9440a64a65a74319046e8cddfa442991d244a8f4e92Chia-I Wu    VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
945c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
9460a64a65a74319046e8cddfa442991d244a8f4e92Chia-I Wu} VkSparseMemoryBindFlagBits;
947fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchtertypedef VkFlags VkSparseMemoryBindFlags;
94889e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
949d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkFenceCreateFlagBits {
950fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
951c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
952fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkFenceCreateFlagBits;
953fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchtertypedef VkFlags VkFenceCreateFlags;
954fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchtertypedef VkFlags VkSemaphoreCreateFlags;
955fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchtertypedef VkFlags VkEventCreateFlags;
956ebd0760198c8699e758ba30270730d29003fed56Chia-I Wutypedef VkFlags VkQueryPoolCreateFlags;
95789e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
958d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkQueryPipelineStatisticFlagBits {
959b93427cf68ff3e8bde88e0f89379cc56a32fcd2cCourtney Goeltzenleuchter    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
960b93427cf68ff3e8bde88e0f89379cc56a32fcd2cCourtney Goeltzenleuchter    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
961b93427cf68ff3e8bde88e0f89379cc56a32fcd2cCourtney Goeltzenleuchter    VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
962b93427cf68ff3e8bde88e0f89379cc56a32fcd2cCourtney Goeltzenleuchter    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
963b93427cf68ff3e8bde88e0f89379cc56a32fcd2cCourtney Goeltzenleuchter    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
964b93427cf68ff3e8bde88e0f89379cc56a32fcd2cCourtney Goeltzenleuchter    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
965b93427cf68ff3e8bde88e0f89379cc56a32fcd2cCourtney Goeltzenleuchter    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
966b93427cf68ff3e8bde88e0f89379cc56a32fcd2cCourtney Goeltzenleuchter    VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
967b93427cf68ff3e8bde88e0f89379cc56a32fcd2cCourtney Goeltzenleuchter    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
968b93427cf68ff3e8bde88e0f89379cc56a32fcd2cCourtney Goeltzenleuchter    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
969b93427cf68ff3e8bde88e0f89379cc56a32fcd2cCourtney Goeltzenleuchter    VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
970c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
971fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkQueryPipelineStatisticFlagBits;
972fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchtertypedef VkFlags VkQueryPipelineStatisticFlags;
97389e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
974d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkQueryResultFlagBits {
975fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_QUERY_RESULT_64_BIT = 0x00000001,
976fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
977fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
978fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
979c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
980fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkQueryResultFlagBits;
981fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchtertypedef VkFlags VkQueryResultFlags;
9828205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour
983d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkBufferCreateFlagBits {
984ebd0760198c8699e758ba30270730d29003fed56Chia-I Wu    VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
985ebd0760198c8699e758ba30270730d29003fed56Chia-I Wu    VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
986ebd0760198c8699e758ba30270730d29003fed56Chia-I Wu    VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
987c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
988ebd0760198c8699e758ba30270730d29003fed56Chia-I Wu} VkBufferCreateFlagBits;
989ebd0760198c8699e758ba30270730d29003fed56Chia-I Wutypedef VkFlags VkBufferCreateFlags;
990ebd0760198c8699e758ba30270730d29003fed56Chia-I Wu
991d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkBufferUsageFlagBits {
9921f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
9931f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
994fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
995fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
996fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
997fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
998fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
999fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
1000fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
1001c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1002fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkBufferUsageFlagBits;
1003fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchtertypedef VkFlags VkBufferUsageFlags;
1004ebd0760198c8699e758ba30270730d29003fed56Chia-I Wutypedef VkFlags VkBufferViewCreateFlags;
10051856d6f9294c7f9544cb58823fbfddef1546229dCourtney Goeltzenleuchtertypedef VkFlags VkImageViewCreateFlags;
1006fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchtertypedef VkFlags VkShaderModuleCreateFlags;
1007062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wutypedef VkFlags VkPipelineCacheCreateFlags;
1008062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu
1009062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wutypedef enum VkPipelineCreateFlagBits {
1010062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
1011062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
1012062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu    VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
1013c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1014062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wu} VkPipelineCreateFlagBits;
1015062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wutypedef VkFlags VkPipelineCreateFlags;
1016062ad15850af42c5e45ec9dfb961ff243a6e8923Chia-I Wutypedef VkFlags VkPipelineShaderStageCreateFlags;
101789e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1018d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkShaderStageFlagBits {
10198e2f097c013646e6688ecd7041c6ebdd4372e5c2Courtney Goeltzenleuchter    VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
10208e2f097c013646e6688ecd7041c6ebdd4372e5c2Courtney Goeltzenleuchter    VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
10218e2f097c013646e6688ecd7041c6ebdd4372e5c2Courtney Goeltzenleuchter    VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
10228e2f097c013646e6688ecd7041c6ebdd4372e5c2Courtney Goeltzenleuchter    VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
10238e2f097c013646e6688ecd7041c6ebdd4372e5c2Courtney Goeltzenleuchter    VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
10248e2f097c013646e6688ecd7041c6ebdd4372e5c2Courtney Goeltzenleuchter    VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
1025b68d473ca3f2534caea1ab72de87837a34920a42Jon Ashburn    VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
10268e2f097c013646e6688ecd7041c6ebdd4372e5c2Courtney Goeltzenleuchter    VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
1027c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
10288e2f097c013646e6688ecd7041c6ebdd4372e5c2Courtney Goeltzenleuchter} VkShaderStageFlagBits;
1029ebd0760198c8699e758ba30270730d29003fed56Chia-I Wutypedef VkFlags VkPipelineVertexInputStateCreateFlags;
1030ebd0760198c8699e758ba30270730d29003fed56Chia-I Wutypedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
1031a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburntypedef VkFlags VkPipelineTessellationStateCreateFlags;
1032ebd0760198c8699e758ba30270730d29003fed56Chia-I Wutypedef VkFlags VkPipelineViewportStateCreateFlags;
1033c04519cd6e39256351df868dc721259d904f4542Chia-I Wutypedef VkFlags VkPipelineRasterizationStateCreateFlags;
1034ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu
1035d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkCullModeFlagBits {
1036ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_CULL_MODE_NONE = 0,
1037ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_CULL_MODE_FRONT_BIT = 0x00000001,
1038ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu    VK_CULL_MODE_BACK_BIT = 0x00000002,
1039b68d473ca3f2534caea1ab72de87837a34920a42Jon Ashburn    VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
1040c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1041ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wu} VkCullModeFlagBits;
1042ce532f7eb8ce347a0bc2c7d848d5017fa31d2533Chia-I Wutypedef VkFlags VkCullModeFlags;
1043ebd0760198c8699e758ba30270730d29003fed56Chia-I Wutypedef VkFlags VkPipelineMultisampleStateCreateFlags;
1044ebd0760198c8699e758ba30270730d29003fed56Chia-I Wutypedef VkFlags VkPipelineDepthStencilStateCreateFlags;
1045ebd0760198c8699e758ba30270730d29003fed56Chia-I Wutypedef VkFlags VkPipelineColorBlendStateCreateFlags;
10468e2f097c013646e6688ecd7041c6ebdd4372e5c2Courtney Goeltzenleuchter
1047d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkColorComponentFlagBits {
1048c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_COLOR_COMPONENT_R_BIT = 0x00000001,
1049c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_COLOR_COMPONENT_G_BIT = 0x00000002,
1050c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_COLOR_COMPONENT_B_BIT = 0x00000004,
1051c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    VK_COLOR_COMPONENT_A_BIT = 0x00000008,
1052c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1053c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu} VkColorComponentFlagBits;
10544291d8822ec2a685ef89ec2b210ff16857e25310Chia-I Wutypedef VkFlags VkColorComponentFlags;
1055ebd0760198c8699e758ba30270730d29003fed56Chia-I Wutypedef VkFlags VkPipelineDynamicStateCreateFlags;
1056ebd0760198c8699e758ba30270730d29003fed56Chia-I Wutypedef VkFlags VkPipelineLayoutCreateFlags;
1057fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchtertypedef VkFlags VkShaderStageFlags;
1058ebd0760198c8699e758ba30270730d29003fed56Chia-I Wutypedef VkFlags VkSamplerCreateFlags;
1059ebd0760198c8699e758ba30270730d29003fed56Chia-I Wutypedef VkFlags VkDescriptorSetLayoutCreateFlags;
106089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1061d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkDescriptorPoolCreateFlagBits {
1062831c183417705004ea225726d450b7259e7384c7Courtney Goeltzenleuchter    VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
1063c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1064831c183417705004ea225726d450b7259e7384c7Courtney Goeltzenleuchter} VkDescriptorPoolCreateFlagBits;
1065831c183417705004ea225726d450b7259e7384c7Courtney Goeltzenleuchtertypedef VkFlags VkDescriptorPoolCreateFlags;
1066831c183417705004ea225726d450b7259e7384c7Courtney Goeltzenleuchtertypedef VkFlags VkDescriptorPoolResetFlags;
1067ebd0760198c8699e758ba30270730d29003fed56Chia-I Wutypedef VkFlags VkFramebufferCreateFlags;
1068ebd0760198c8699e758ba30270730d29003fed56Chia-I Wutypedef VkFlags VkRenderPassCreateFlags;
1069831c183417705004ea225726d450b7259e7384c7Courtney Goeltzenleuchter
1070d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkAttachmentDescriptionFlagBits {
107112e649fbd1c633f9f727d6d224fd7a0b3458ff28Courtney Goeltzenleuchter    VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
1072c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
107312e649fbd1c633f9f727d6d224fd7a0b3458ff28Courtney Goeltzenleuchter} VkAttachmentDescriptionFlagBits;
107412e649fbd1c633f9f727d6d224fd7a0b3458ff28Courtney Goeltzenleuchtertypedef VkFlags VkAttachmentDescriptionFlags;
1075fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchtertypedef VkFlags VkSubpassDescriptionFlags;
10768205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour
1077d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkAccessFlagBits {
1078989de845e6627fecee8dceef882955149b7538baChia-I Wu    VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
1079989de845e6627fecee8dceef882955149b7538baChia-I Wu    VK_ACCESS_INDEX_READ_BIT = 0x00000002,
1080989de845e6627fecee8dceef882955149b7538baChia-I Wu    VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
1081989de845e6627fecee8dceef882955149b7538baChia-I Wu    VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
1082989de845e6627fecee8dceef882955149b7538baChia-I Wu    VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
1083989de845e6627fecee8dceef882955149b7538baChia-I Wu    VK_ACCESS_SHADER_READ_BIT = 0x00000020,
1084989de845e6627fecee8dceef882955149b7538baChia-I Wu    VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
1085989de845e6627fecee8dceef882955149b7538baChia-I Wu    VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
1086989de845e6627fecee8dceef882955149b7538baChia-I Wu    VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
1087989de845e6627fecee8dceef882955149b7538baChia-I Wu    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
1088989de845e6627fecee8dceef882955149b7538baChia-I Wu    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
1089989de845e6627fecee8dceef882955149b7538baChia-I Wu    VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
1090989de845e6627fecee8dceef882955149b7538baChia-I Wu    VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
1091989de845e6627fecee8dceef882955149b7538baChia-I Wu    VK_ACCESS_HOST_READ_BIT = 0x00002000,
1092989de845e6627fecee8dceef882955149b7538baChia-I Wu    VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
1093989de845e6627fecee8dceef882955149b7538baChia-I Wu    VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
1094989de845e6627fecee8dceef882955149b7538baChia-I Wu    VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
1095c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1096989de845e6627fecee8dceef882955149b7538baChia-I Wu} VkAccessFlagBits;
1097989de845e6627fecee8dceef882955149b7538baChia-I Wutypedef VkFlags VkAccessFlags;
10988205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour
1099d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkDependencyFlagBits {
11003ffcd73338dfeb8c3d9da4f5ba388311aad0d49fChia-I Wu    VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
1101c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11023ffcd73338dfeb8c3d9da4f5ba388311aad0d49fChia-I Wu} VkDependencyFlagBits;
11033ffcd73338dfeb8c3d9da4f5ba388311aad0d49fChia-I Wutypedef VkFlags VkDependencyFlags;
11043ffcd73338dfeb8c3d9da4f5ba388311aad0d49fChia-I Wu
1105d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkCommandPoolCreateFlagBits {
11061f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
11071f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
1108c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11091f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu} VkCommandPoolCreateFlagBits;
11101f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wutypedef VkFlags VkCommandPoolCreateFlags;
1111f02f9f8606b4b6b1604f7efd62ec5fc5bd6dfef8Cody Northrop
1112d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkCommandPoolResetFlagBits {
11131f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
1114c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11151f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu} VkCommandPoolResetFlagBits;
11161f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wutypedef VkFlags VkCommandPoolResetFlags;
1117f02f9f8606b4b6b1604f7efd62ec5fc5bd6dfef8Cody Northrop
1118d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkCommandBufferUsageFlagBits {
11191f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
11201f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
11211f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
1122c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11231f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu} VkCommandBufferUsageFlagBits;
11241f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wutypedef VkFlags VkCommandBufferUsageFlags;
11258205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour
1126fdc1cd0f75e5c7e6ce2c2991254469ebc85cbddeChia-I Wutypedef enum VkQueryControlFlagBits {
1127fdc1cd0f75e5c7e6ce2c2991254469ebc85cbddeChia-I Wu    VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
1128c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1129fdc1cd0f75e5c7e6ce2c2991254469ebc85cbddeChia-I Wu} VkQueryControlFlagBits;
1130fdc1cd0f75e5c7e6ce2c2991254469ebc85cbddeChia-I Wutypedef VkFlags VkQueryControlFlags;
1131fdc1cd0f75e5c7e6ce2c2991254469ebc85cbddeChia-I Wu
1132d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkCommandBufferResetFlagBits {
11331f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
1134c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
11351f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu} VkCommandBufferResetFlagBits;
11361f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wutypedef VkFlags VkCommandBufferResetFlags;
11378205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour
1138d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef enum VkStencilFaceFlagBits {
113909772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter    VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
114009772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter    VK_STENCIL_FACE_BACK_BIT = 0x00000002,
1141b68d473ca3f2534caea1ab72de87837a34920a42Jon Ashburn    VK_STENCIL_FRONT_AND_BACK = 0x00000003,
1142c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
114309772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter} VkStencilFaceFlagBits;
114409772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchtertypedef VkFlags VkStencilFaceFlags;
114509772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter
1146af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
11475eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    void*                                       pUserData,
11485eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    size_t                                      size,
11495eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    size_t                                      alignment,
11505eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    VkSystemAllocationScope                     allocationScope);
115169f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu
1152af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
11535eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    void*                                       pUserData,
11545eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    void*                                       pOriginal,
11555eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    size_t                                      size,
11565eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    size_t                                      alignment,
11575eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    VkSystemAllocationScope                     allocationScope);
115889e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1159af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkFreeFunction)(
11605eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    void*                                       pUserData,
11615eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    void*                                       pMemory);
11628205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour
1163af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
11645eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    void*                                       pUserData,
11655eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    size_t                                      size,
11665eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    VkInternalAllocationType                    allocationType,
11675eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    VkSystemAllocationScope                     allocationScope);
116869f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu
1169af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
11705eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    void*                                       pUserData,
11715eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    size_t                                      size,
11725eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    VkInternalAllocationType                    allocationType,
11735eca31fa20d1a7071e15d34e6b4e2869e744cb0eChia-I Wu    VkSystemAllocationScope                     allocationScope);
117469f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu
1175af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
11762d013adc4235d5986b6f691d5c3edf096d40aaa6Cody Northrop
1177d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkApplicationInfo {
11788a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType    sType;
11798a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*        pNext;
11808a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const char*        pApplicationName;
11818a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t           applicationVersion;
11828a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const char*        pEngineName;
11838a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t           engineVersion;
11848a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t           apiVersion;
11852d013adc4235d5986b6f691d5c3edf096d40aaa6Cody Northrop} VkApplicationInfo;
11862d013adc4235d5986b6f691d5c3edf096d40aaa6Cody Northrop
1187d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkInstanceCreateInfo {
11888a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType             sType;
11898a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                 pNext;
11908a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkInstanceCreateFlags       flags;
11918a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkApplicationInfo*    pApplicationInfo;
11928a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                    enabledLayerCount;
11938a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const char* const*          ppEnabledLayerNames;
11948a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                    enabledExtensionCount;
11958a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const char* const*          ppEnabledExtensionNames;
1196fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkInstanceCreateInfo;
119789e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1198d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkAllocationCallbacks {
11998a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    void*                                   pUserData;
12008a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    PFN_vkAllocationFunction                pfnAllocation;
12018a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    PFN_vkReallocationFunction              pfnReallocation;
12028a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    PFN_vkFreeFunction                      pfnFree;
12038a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    PFN_vkInternalAllocationNotification    pfnInternalAllocation;
12048a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    PFN_vkInternalFreeNotification          pfnInternalFree;
12051f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu} VkAllocationCallbacks;
120669f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu
1207d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkPhysicalDeviceFeatures {
12088a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    robustBufferAccess;
12098a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    fullDrawIndexUint32;
12108a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    imageCubeArray;
12118a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    independentBlend;
12128a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    geometryShader;
12138a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    tessellationShader;
12148a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    sampleRateShading;
12158a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    dualSrcBlend;
12168a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    logicOp;
12178a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    multiDrawIndirect;
12188a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    drawIndirectFirstInstance;
12198a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    depthClamp;
12208a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    depthBiasClamp;
12218a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    fillModeNonSolid;
12228a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    depthBounds;
12238a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    wideLines;
12248a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    largePoints;
12258a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    alphaToOne;
12268a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    multiViewport;
12278a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    samplerAnisotropy;
12288a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    textureCompressionETC2;
12298a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    textureCompressionASTC_LDR;
12308a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    textureCompressionBC;
12318a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    occlusionQueryPrecise;
12328a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    pipelineStatisticsQuery;
12338a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    vertexPipelineStoresAndAtomics;
12348a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    fragmentStoresAndAtomics;
12358a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    shaderTessellationAndGeometryPointSize;
12368a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    shaderImageGatherExtended;
12378a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    shaderStorageImageExtendedFormats;
12388a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    shaderStorageImageMultisample;
12398a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    shaderStorageImageReadWithoutFormat;
12408a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    shaderStorageImageWriteWithoutFormat;
12418a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    shaderUniformBufferArrayDynamicIndexing;
12428a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    shaderSampledImageArrayDynamicIndexing;
12438a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    shaderStorageBufferArrayDynamicIndexing;
12448a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    shaderStorageImageArrayDynamicIndexing;
12458a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    shaderClipDistance;
12468a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    shaderCullDistance;
12478a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    shaderFloat64;
12488a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    shaderInt64;
12498a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    shaderInt16;
12508a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    shaderResourceResidency;
12518a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    shaderResourceMinLod;
12528a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    sparseBinding;
12538a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    sparseResidencyBuffer;
12548a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    sparseResidencyImage2D;
12558a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    sparseResidencyImage3D;
12568a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    sparseResidency2Samples;
12578a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    sparseResidency4Samples;
12588a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    sparseResidency8Samples;
12598a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    sparseResidency16Samples;
12608a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    sparseResidencyAliased;
12618a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    variableMultisampleRate;
12628a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    inheritedQueries;
1263d757630a88456aa57e5699f42d96896f17d2f624Chris Forbes} VkPhysicalDeviceFeatures;
1264d757630a88456aa57e5699f42d96896f17d2f624Chris Forbes
1265d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkFormatProperties {
12668a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkFormatFeatureFlags    linearTilingFeatures;
12678a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkFormatFeatureFlags    optimalTilingFeatures;
12688a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkFormatFeatureFlags    bufferFeatures;
1269fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkFormatProperties;
1270fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
1271d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkExtent3D {
12728a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    width;
12738a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    height;
12748a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    depth;
1275d9860782101f583ed33f74cd5488252a554b8ba9Courtney Goeltzenleuchter} VkExtent3D;
1276d9860782101f583ed33f74cd5488252a554b8ba9Courtney Goeltzenleuchter
1277d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkImageFormatProperties {
12788a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent3D            maxExtent;
12798a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxMipLevels;
12808a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxArrayLayers;
12818a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSampleCountFlags    sampleCounts;
12828a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize          maxResourceSize;
1283fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkImageFormatProperties;
1284fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
1285d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkPhysicalDeviceLimits {
12868a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxImageDimension1D;
12878a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxImageDimension2D;
12888a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxImageDimension3D;
12898a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxImageDimensionCube;
12908a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxImageArrayLayers;
12918a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxTexelBufferElements;
12928a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxUniformBufferRange;
12938a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxStorageBufferRange;
12948a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxPushConstantsSize;
12958a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxMemoryAllocationCount;
12968a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxSamplerAllocationCount;
12978a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize          bufferImageGranularity;
12988a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize          sparseAddressSpaceSize;
12998a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxBoundDescriptorSets;
13008a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxPerStageDescriptorSamplers;
13018a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxPerStageDescriptorUniformBuffers;
13028a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxPerStageDescriptorStorageBuffers;
13038a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxPerStageDescriptorSampledImages;
13048a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxPerStageDescriptorStorageImages;
13058a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxPerStageDescriptorInputAttachments;
13068a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxPerStageResources;
13078a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxDescriptorSetSamplers;
13088a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxDescriptorSetUniformBuffers;
13098a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxDescriptorSetUniformBuffersDynamic;
13108a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxDescriptorSetStorageBuffers;
13118a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxDescriptorSetStorageBuffersDynamic;
13128a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxDescriptorSetSampledImages;
13138a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxDescriptorSetStorageImages;
13148a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxDescriptorSetInputAttachments;
13158a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxVertexInputAttributes;
13168a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxVertexInputBindings;
13178a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxVertexInputAttributeOffset;
13188a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxVertexInputBindingStride;
13198a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxVertexOutputComponents;
13208a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxTessellationGenerationLevel;
13218a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxTessellationPatchSize;
13228a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxTessellationControlPerVertexInputComponents;
13238a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxTessellationControlPerVertexOutputComponents;
13248a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxTessellationControlPerPatchOutputComponents;
13258a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxTessellationControlTotalOutputComponents;
13268a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxTessellationEvaluationInputComponents;
13278a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxTessellationEvaluationOutputComponents;
13288a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxGeometryShaderInvocations;
13298a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxGeometryInputComponents;
13308a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxGeometryOutputComponents;
13318a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxGeometryOutputVertices;
13328a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxGeometryTotalOutputComponents;
13338a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxFragmentInputComponents;
13348a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxFragmentOutputAttachments;
13358a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxFragmentDualSrcAttachments;
13368a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxFragmentCombinedOutputResources;
13378a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxComputeSharedMemorySize;
13388a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxComputeWorkGroupCount[3];
13398a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxComputeWorkGroupInvocations;
13408a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxComputeWorkGroupSize[3];
13418a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              subPixelPrecisionBits;
13428a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              subTexelPrecisionBits;
13438a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              mipmapPrecisionBits;
13448a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxDrawIndexedIndexValue;
13458a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxDrawIndirectCount;
13468a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                 maxSamplerLodBias;
13478a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                 maxSamplerAnisotropy;
13488a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxViewports;
13498a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxViewportDimensions[2];
13508a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                 viewportBoundsRange[2];
13518a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              viewportSubPixelBits;
13528a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    size_t                minMemoryMapAlignment;
13538a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize          minTexelBufferOffsetAlignment;
13548a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize          minUniformBufferOffsetAlignment;
13558a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize          minStorageBufferOffsetAlignment;
13568a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    int32_t               minTexelOffset;
13578a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxTexelOffset;
13588a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    int32_t               minTexelGatherOffset;
13598a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxTexelGatherOffset;
13608a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                 minInterpolationOffset;
13618a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                 maxInterpolationOffset;
13628a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              subPixelInterpolationOffsetBits;
13638a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxFramebufferWidth;
13648a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxFramebufferHeight;
13658a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxFramebufferLayers;
13668a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSampleCountFlags    framebufferColorSampleCounts;
13678a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSampleCountFlags    framebufferDepthSampleCounts;
13688a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSampleCountFlags    framebufferStencilSampleCounts;
13698a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSampleCountFlags    framebufferNoAttachmentsSampleCounts;
13708a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxColorAttachments;
13718a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSampleCountFlags    sampledImageColorSampleCounts;
13728a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSampleCountFlags    sampledImageIntegerSampleCounts;
13738a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSampleCountFlags    sampledImageDepthSampleCounts;
13748a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSampleCountFlags    sampledImageStencilSampleCounts;
13758a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSampleCountFlags    storageImageSampleCounts;
13768a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxSampleMaskWords;
13778a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32              timestampComputeAndGraphics;
13788a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                 timestampPeriod;
13798a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxClipDistances;
13808a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxCullDistances;
13818a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              maxCombinedClipAndCullDistances;
13828a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              discreteQueuePriorities;
13838a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                 pointSizeRange[2];
13848a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                 lineWidthRange[2];
13858a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                 pointSizeGranularity;
13868a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                 lineWidthGranularity;
13878a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32              strictLines;
13888a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32              standardSampleLocations;
13898a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize          optimalBufferCopyOffsetAlignment;
13908a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize          optimalBufferCopyRowPitchAlignment;
13918a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize          nonCoherentAtomSize;
1392d757630a88456aa57e5699f42d96896f17d2f624Chris Forbes} VkPhysicalDeviceLimits;
1393d757630a88456aa57e5699f42d96896f17d2f624Chris Forbes
1394d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkPhysicalDeviceSparseProperties {
13958a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    residencyStandard2DBlockShape;
13968a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    residencyStandard2DMultisampleBlockShape;
13978a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    residencyStandard3DBlockShape;
13988a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    residencyAlignedMipSize;
13998a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32    residencyNonResidentStrict;
14007dae6868682383bb8370d45784cbc94f357e745bMark Lobodzinski} VkPhysicalDeviceSparseProperties;
14017dae6868682383bb8370d45784cbc94f357e745bMark Lobodzinski
1402d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkPhysicalDeviceProperties {
14038a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                            apiVersion;
14048a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                            driverVersion;
14058a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                            vendorID;
14068a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                            deviceID;
14078a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPhysicalDeviceType                deviceType;
14088a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    char                                deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
14098a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint8_t                             pipelineCacheUUID[VK_UUID_SIZE];
14108a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPhysicalDeviceLimits              limits;
14118a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPhysicalDeviceSparseProperties    sparseProperties;
1412fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkPhysicalDeviceProperties;
141389e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1414d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkQueueFamilyProperties {
14158a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkQueueFlags    queueFlags;
14168a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t        queueCount;
14178a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t        timestampValidBits;
14188a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent3D      minImageTransferGranularity;
1419ef72e2a7cf4fa5708fdbfbc1c972a24ad0dbf809Cody Northrop} VkQueueFamilyProperties;
142089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1421d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkMemoryType {
14228a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkMemoryPropertyFlags    propertyFlags;
14238a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                 heapIndex;
1424fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkMemoryType;
142589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1426d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkMemoryHeap {
14278a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize         size;
14288a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkMemoryHeapFlags    flags;
1429fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkMemoryHeap;
1430fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
1431d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkPhysicalDeviceMemoryProperties {
14328a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t        memoryTypeCount;
14338a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
14348a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t        memoryHeapCount;
14358a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
1436fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkPhysicalDeviceMemoryProperties;
143789e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1438d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkDeviceQueueCreateInfo {
14398a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType             sType;
14408a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                 pNext;
14418a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceQueueCreateFlags    flags;
14428a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                    queueFamilyIndex;
14438a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                    queueCount;
14448a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const float*                pQueuePriorities;
1445ddcb6192458d696a106f48eeb12fd0390a3ca63fCourtney Goeltzenleuchter} VkDeviceQueueCreateInfo;
144689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1447d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkDeviceCreateInfo {
14488a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                    sType;
14498a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                        pNext;
14508a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceCreateFlags                flags;
14518a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                           queueCreateInfoCount;
14528a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkDeviceQueueCreateInfo*     pQueueCreateInfos;
14538a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                           enabledLayerCount;
14548a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const char* const*                 ppEnabledLayerNames;
14558a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                           enabledExtensionCount;
14568a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const char* const*                 ppEnabledExtensionNames;
14578a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkPhysicalDeviceFeatures*    pEnabledFeatures;
1458ddcb6192458d696a106f48eeb12fd0390a3ca63fCourtney Goeltzenleuchter} VkDeviceCreateInfo;
145989e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1460d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkExtensionProperties {
14618a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    char        extensionName[VK_MAX_EXTENSION_NAME_SIZE];
14628a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    specVersion;
1463fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkExtensionProperties;
1464723462910ef2f9ed0255b74399c835020a75a0b1Mark Lobodzinski
1465d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkLayerProperties {
14668a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    char        layerName[VK_MAX_EXTENSION_NAME_SIZE];
14678a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    specVersion;
14688a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    implementationVersion;
14698a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    char        description[VK_MAX_DESCRIPTION_SIZE];
1470fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkLayerProperties;
147189e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1472d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkSubmitInfo {
14738a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                sType;
14748a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                    pNext;
14758a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                       waitSemaphoreCount;
14768a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkSemaphore*             pWaitSemaphores;
14778a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkPipelineStageFlags*    pWaitDstStageMask;
14788a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                       commandBufferCount;
14798a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkCommandBuffer*         pCommandBuffers;
14808a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                       signalSemaphoreCount;
14818a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkSemaphore*             pSignalSemaphores;
14823ec31629900b5a52fa112d6670ffb6771fe9adcaCourtney Goeltzenleuchter} VkSubmitInfo;
14833ec31629900b5a52fa112d6670ffb6771fe9adcaCourtney Goeltzenleuchter
1484d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkMemoryAllocateInfo {
14858a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType    sType;
14868a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*        pNext;
14878a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize       allocationSize;
14888a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t           memoryTypeIndex;
14891f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu} VkMemoryAllocateInfo;
149089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1491d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkMappedMemoryRange {
14928a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType    sType;
14938a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*        pNext;
14948a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceMemory     memory;
14958a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize       offset;
14968a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize       size;
1497a569a50e85d51b0dff1b16cfd2c64222f921b6daCourtney Goeltzenleuchter} VkMappedMemoryRange;
1498a569a50e85d51b0dff1b16cfd2c64222f921b6daCourtney Goeltzenleuchter
1499d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkMemoryRequirements {
15008a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize    size;
15018a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize    alignment;
15028a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t        memoryTypeBits;
1503723462910ef2f9ed0255b74399c835020a75a0b1Mark Lobodzinski} VkMemoryRequirements;
1504723462910ef2f9ed0255b74399c835020a75a0b1Mark Lobodzinski
1505d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkSparseImageFormatProperties {
15068a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageAspectFlags          aspectMask;
15078a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent3D                  imageGranularity;
15088a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSparseImageFormatFlags    flags;
150983d4e6a42c5757e08a950027ebf00edf8d59c67aMark Lobodzinski} VkSparseImageFormatProperties;
151083d4e6a42c5757e08a950027ebf00edf8d59c67aMark Lobodzinski
1511d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkSparseImageMemoryRequirements {
15128a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSparseImageFormatProperties    formatProperties;
15138a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                         imageMipTailFirstLod;
15148a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize                     imageMipTailSize;
15158a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize                     imageMipTailOffset;
15168a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize                     imageMipTailStride;
151783d4e6a42c5757e08a950027ebf00edf8d59c67aMark Lobodzinski} VkSparseImageMemoryRequirements;
151883d4e6a42c5757e08a950027ebf00edf8d59c67aMark Lobodzinski
1519d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkSparseMemoryBind {
15208a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize               resourceOffset;
15218a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize               size;
15228a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceMemory             memory;
15238a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize               memoryOffset;
15248a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSparseMemoryBindFlags    flags;
152506809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu} VkSparseMemoryBind;
152606809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu
1527d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkSparseBufferMemoryBindInfo {
15288a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBuffer                     buffer;
15298a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                     bindCount;
15308a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkSparseMemoryBind*    pBinds;
153106809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu} VkSparseBufferMemoryBindInfo;
153206809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu
1533d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkSparseImageOpaqueMemoryBindInfo {
15348a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImage                      image;
15358a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                     bindCount;
15368a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkSparseMemoryBind*    pBinds;
153706809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu} VkSparseImageOpaqueMemoryBindInfo;
153883d4e6a42c5757e08a950027ebf00edf8d59c67aMark Lobodzinski
1539d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkImageSubresource {
15408a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageAspectFlags    aspectMask;
15418a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              mipLevel;
15428a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              arrayLayer;
1543fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkImageSubresource;
154489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1545d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkOffset3D {
15468a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    int32_t    x;
15478a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    int32_t    y;
15488a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    int32_t    z;
1549fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkOffset3D;
15508cd8ecde19f154f1779a7bcc93cb1a3519b57dbfChia-I Wu
1551d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkSparseImageMemoryBind {
15528a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageSubresource         subresource;
15538a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkOffset3D                 offset;
15548a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent3D                 extent;
15558a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceMemory             memory;
15568a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize               memoryOffset;
15578a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSparseMemoryBindFlags    flags;
155806809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu} VkSparseImageMemoryBind;
155906809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu
1560d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkSparseImageMemoryBindInfo {
15618a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImage                           image;
15628a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                          bindCount;
15638a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkSparseImageMemoryBind*    pBinds;
1564fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkSparseImageMemoryBindInfo;
156589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1566d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkBindSparseInfo {
1567fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkStructureType                             sType;
1568fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    const void*                                 pNext;
156906809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu    uint32_t                                    waitSemaphoreCount;
157006809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu    const VkSemaphore*                          pWaitSemaphores;
157106809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu    uint32_t                                    bufferBindCount;
157206809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu    const VkSparseBufferMemoryBindInfo*         pBufferBinds;
157306809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu    uint32_t                                    imageOpaqueBindCount;
157406809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu    const VkSparseImageOpaqueMemoryBindInfo*    pImageOpaqueBinds;
157506809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu    uint32_t                                    imageBindCount;
157606809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu    const VkSparseImageMemoryBindInfo*          pImageBinds;
157706809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu    uint32_t                                    signalSemaphoreCount;
157806809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu    const VkSemaphore*                          pSignalSemaphores;
157906809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu} VkBindSparseInfo;
158006809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu
1581d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkFenceCreateInfo {
15828a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType       sType;
15838a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*           pNext;
15848a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkFenceCreateFlags    flags;
1585fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkFenceCreateInfo;
15868cd8ecde19f154f1779a7bcc93cb1a3519b57dbfChia-I Wu
1587d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkSemaphoreCreateInfo {
15888a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType           sType;
15898a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*               pNext;
15908a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSemaphoreCreateFlags    flags;
1591fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkSemaphoreCreateInfo;
15928cd8ecde19f154f1779a7bcc93cb1a3519b57dbfChia-I Wu
1593d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkEventCreateInfo {
15948a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType       sType;
15958a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*           pNext;
15968a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkEventCreateFlags    flags;
1597fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkEventCreateInfo;
15988cd8ecde19f154f1779a7bcc93cb1a3519b57dbfChia-I Wu
1599d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkQueryPoolCreateInfo {
16008a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                  sType;
16018a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                      pNext;
16028a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkQueryPoolCreateFlags           flags;
16038a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkQueryType                      queryType;
16048a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                         queryCount;
16058a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkQueryPipelineStatisticFlags    pipelineStatistics;
1606fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkQueryPoolCreateInfo;
160789e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1608d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkBufferCreateInfo {
16098a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType        sType;
16108a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*            pNext;
16118a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBufferCreateFlags    flags;
16128a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize           size;
16138a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBufferUsageFlags     usage;
16148a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSharingMode          sharingMode;
16158a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t               queueFamilyIndexCount;
16168a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const uint32_t*        pQueueFamilyIndices;
1617ddcb6192458d696a106f48eeb12fd0390a3ca63fCourtney Goeltzenleuchter} VkBufferCreateInfo;
161889e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1619d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkBufferViewCreateInfo {
16208a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType            sType;
16218a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                pNext;
16228a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBufferViewCreateFlags    flags;
16238a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBuffer                   buffer;
16248a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkFormat                   format;
16258a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize               offset;
16268a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize               range;
1627ddcb6192458d696a106f48eeb12fd0390a3ca63fCourtney Goeltzenleuchter} VkBufferViewCreateInfo;
162889e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1629d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkImageCreateInfo {
16308a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType          sType;
16318a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*              pNext;
16328a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageCreateFlags       flags;
16338a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageType              imageType;
16348a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkFormat                 format;
16358a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent3D               extent;
16368a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                 mipLevels;
16378a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                 arrayLayers;
16388a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSampleCountFlagBits    samples;
16398a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageTiling            tiling;
16408a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageUsageFlags        usage;
16418a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSharingMode            sharingMode;
16428a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                 queueFamilyIndexCount;
16438a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const uint32_t*          pQueueFamilyIndices;
16448a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageLayout            initialLayout;
1645382489d723fd0d3935da0dc7e1021c56c7b721d3Courtney Goeltzenleuchter} VkImageCreateInfo;
164689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1647d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkSubresourceLayout {
16488a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize    offset;
16498a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize    size;
16508a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize    rowPitch;
16518a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize    arrayPitch;
16528a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize    depthPitch;
1653382489d723fd0d3935da0dc7e1021c56c7b721d3Courtney Goeltzenleuchter} VkSubresourceLayout;
165489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1655d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkComponentMapping {
16568a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkComponentSwizzle    r;
16578a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkComponentSwizzle    g;
16588a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkComponentSwizzle    b;
16598a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkComponentSwizzle    a;
1660c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu} VkComponentMapping;
1661fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
1662d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkImageSubresourceRange {
16638a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageAspectFlags    aspectMask;
16648a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              baseMipLevel;
16658a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              levelCount;
16668a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              baseArrayLayer;
16678a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              layerCount;
1668fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkImageSubresourceRange;
1669fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
1670d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkImageViewCreateInfo {
16718a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType            sType;
16728a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                pNext;
16738a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageViewCreateFlags     flags;
16748a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImage                    image;
16758a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageViewType            viewType;
16768a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkFormat                   format;
16778a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkComponentMapping         components;
16788a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageSubresourceRange    subresourceRange;
1679382489d723fd0d3935da0dc7e1021c56c7b721d3Courtney Goeltzenleuchter} VkImageViewCreateInfo;
168089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1681d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkShaderModuleCreateInfo {
16828a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType              sType;
16838a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                  pNext;
16848a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkShaderModuleCreateFlags    flags;
16858a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    size_t                       codeSize;
16868a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const uint32_t*              pCode;
16871d72310f0b57fc6f541051659376f5744be52687Courtney Goeltzenleuchter} VkShaderModuleCreateInfo;
16881d72310f0b57fc6f541051659376f5744be52687Courtney Goeltzenleuchter
1689d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkPipelineCacheCreateInfo {
16908a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType               sType;
16918a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                   pNext;
16928a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipelineCacheCreateFlags    flags;
16938a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    size_t                        initialDataSize;
16948a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                   pInitialData;
16950d60d274605d3061e5d8ac1cf38e4e9b5ee3ff1aJon Ashburn} VkPipelineCacheCreateInfo;
16960d60d274605d3061e5d8ac1cf38e4e9b5ee3ff1aJon Ashburn
1697d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkSpecializationMapEntry {
16988a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    constantID;
16998a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    offset;
17008a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    size_t      size;
1701382489d723fd0d3935da0dc7e1021c56c7b721d3Courtney Goeltzenleuchter} VkSpecializationMapEntry;
170289e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1703d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkSpecializationInfo {
17048a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                           mapEntryCount;
17058a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkSpecializationMapEntry*    pMapEntries;
17068a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    size_t                             dataSize;
17078a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                        pData;
1708382489d723fd0d3935da0dc7e1021c56c7b721d3Courtney Goeltzenleuchter} VkSpecializationInfo;
170989e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1710d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkPipelineShaderStageCreateInfo {
17118a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                     sType;
17128a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                         pNext;
17138a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipelineShaderStageCreateFlags    flags;
17148a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkShaderStageFlagBits               stage;
17158a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkShaderModule                      module;
17168a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const char*                         pName;
17178a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkSpecializationInfo*         pSpecializationInfo;
17180e0fb5cdf0f53e118ad3a405c3b881ef2ef4147dMark Lobodzinski} VkPipelineShaderStageCreateInfo;
171989e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1720d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkVertexInputBindingDescription {
17218a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t             binding;
17228a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t             stride;
17238a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkVertexInputRate    inputRate;
1724382489d723fd0d3935da0dc7e1021c56c7b721d3Courtney Goeltzenleuchter} VkVertexInputBindingDescription;
172589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1726d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkVertexInputAttributeDescription {
17278a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    location;
17288a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    binding;
17298a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkFormat    format;
17308a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    offset;
1731382489d723fd0d3935da0dc7e1021c56c7b721d3Courtney Goeltzenleuchter} VkVertexInputAttributeDescription;
173289e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1733d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkPipelineVertexInputStateCreateInfo {
1734fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkStructureType                             sType;
1735fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    const void*                                 pNext;
1736ebd0760198c8699e758ba30270730d29003fed56Chia-I Wu    VkPipelineVertexInputStateCreateFlags       flags;
1737763a749795bb4827efbbf19cbc87b959511496ddChia-I Wu    uint32_t                                    vertexBindingDescriptionCount;
1738f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkVertexInputBindingDescription*      pVertexBindingDescriptions;
1739763a749795bb4827efbbf19cbc87b959511496ddChia-I Wu    uint32_t                                    vertexAttributeDescriptionCount;
1740f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkVertexInputAttributeDescription*    pVertexAttributeDescriptions;
17410e0fb5cdf0f53e118ad3a405c3b881ef2ef4147dMark Lobodzinski} VkPipelineVertexInputStateCreateInfo;
174289e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1743d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkPipelineInputAssemblyStateCreateInfo {
17448a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                            sType;
17458a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                                pNext;
17468a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipelineInputAssemblyStateCreateFlags    flags;
17478a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPrimitiveTopology                        topology;
17488a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32                                   primitiveRestartEnable;
1749e307f588ada2a959cab1964216a66934e5f8ab9eTony Barbour} VkPipelineInputAssemblyStateCreateInfo;
175089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1751d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkPipelineTessellationStateCreateInfo {
17528a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                           sType;
17538a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                               pNext;
17548a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipelineTessellationStateCreateFlags    flags;
17558a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                                  patchControlPoints;
1756e307f588ada2a959cab1964216a66934e5f8ab9eTony Barbour} VkPipelineTessellationStateCreateInfo;
175789e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1758d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkViewport {
17598a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float    x;
17608a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float    y;
17618a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float    width;
17628a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float    height;
17638a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float    minDepth;
17648a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float    maxDepth;
176509772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter} VkViewport;
176609772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter
1767d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkOffset2D {
17688a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    int32_t    x;
17698a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    int32_t    y;
177009772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter} VkOffset2D;
177109772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter
1772d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkExtent2D {
17738a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    width;
17748a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    height;
177509772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter} VkExtent2D;
177609772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter
1777d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkRect2D {
17788a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkOffset2D    offset;
17798a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent2D    extent;
178009772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter} VkRect2D;
178109772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter
1782d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkPipelineViewportStateCreateInfo {
17838a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                       sType;
17848a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                           pNext;
17858a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipelineViewportStateCreateFlags    flags;
17868a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                              viewportCount;
17878a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkViewport*                     pViewports;
17888a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                              scissorCount;
17898a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkRect2D*                       pScissors;
1790e307f588ada2a959cab1964216a66934e5f8ab9eTony Barbour} VkPipelineViewportStateCreateInfo;
179189e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1792d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkPipelineRasterizationStateCreateInfo {
17938a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                            sType;
17948a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                                pNext;
17958a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipelineRasterizationStateCreateFlags    flags;
17968a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32                                   depthClampEnable;
17978a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32                                   rasterizerDiscardEnable;
17988a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPolygonMode                              polygonMode;
17998a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkCullModeFlags                            cullMode;
18008a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkFrontFace                                frontFace;
18018a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32                                   depthBiasEnable;
18028a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                                      depthBiasConstantFactor;
18038a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                                      depthBiasClamp;
18048a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                                      depthBiasSlopeFactor;
18058a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                                      lineWidth;
18061f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu} VkPipelineRasterizationStateCreateInfo;
180789e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1808d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkPipelineMultisampleStateCreateInfo {
18098a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                          sType;
18108a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                              pNext;
18118a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipelineMultisampleStateCreateFlags    flags;
18128a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSampleCountFlagBits                    rasterizationSamples;
18138a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32                                 sampleShadingEnable;
18148a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                                    minSampleShading;
18158a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkSampleMask*                      pSampleMask;
18168a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32                                 alphaToCoverageEnable;
18178a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32                                 alphaToOneEnable;
1818e307f588ada2a959cab1964216a66934e5f8ab9eTony Barbour} VkPipelineMultisampleStateCreateInfo;
181989e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1820d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkStencilOpState {
18218a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStencilOp    failOp;
18228a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStencilOp    passOp;
18238a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStencilOp    depthFailOp;
18248a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkCompareOp    compareOp;
18258a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t       compareMask;
18268a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t       writeMask;
18278a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t       reference;
1828fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkStencilOpState;
1829fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
1830d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkPipelineDepthStencilStateCreateInfo {
18318a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                           sType;
18328a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                               pNext;
18338a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipelineDepthStencilStateCreateFlags    flags;
18348a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32                                  depthTestEnable;
18358a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32                                  depthWriteEnable;
18368a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkCompareOp                               depthCompareOp;
18378a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32                                  depthBoundsTestEnable;
18388a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32                                  stencilTestEnable;
18398a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStencilOpState                          front;
18408a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStencilOpState                          back;
18418a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                                     minDepthBounds;
18428a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                                     maxDepthBounds;
1843fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkPipelineDepthStencilStateCreateInfo;
1844fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
1845d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkPipelineColorBlendAttachmentState {
18468a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32                 blendEnable;
18478a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBlendFactor            srcColorBlendFactor;
18488a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBlendFactor            dstColorBlendFactor;
18498a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBlendOp                colorBlendOp;
18508a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBlendFactor            srcAlphaBlendFactor;
18518a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBlendFactor            dstAlphaBlendFactor;
18528a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBlendOp                alphaBlendOp;
18538a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkColorComponentFlags    colorWriteMask;
1854e307f588ada2a959cab1964216a66934e5f8ab9eTony Barbour} VkPipelineColorBlendAttachmentState;
185589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1856d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkPipelineColorBlendStateCreateInfo {
18578a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                               sType;
18588a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                                   pNext;
18598a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipelineColorBlendStateCreateFlags          flags;
18608a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32                                      logicOpEnable;
18618a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkLogicOp                                     logicOp;
18628a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                                      attachmentCount;
18638a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkPipelineColorBlendAttachmentState*    pAttachments;
18648a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                                         blendConstants[4];
1865e307f588ada2a959cab1964216a66934e5f8ab9eTony Barbour} VkPipelineColorBlendStateCreateInfo;
186689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1867d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkPipelineDynamicStateCreateInfo {
18688a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                      sType;
18698a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                          pNext;
18708a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipelineDynamicStateCreateFlags    flags;
18718a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                             dynamicStateCount;
18728a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkDynamicState*                pDynamicStates;
1873e20aaa220a2aa1afc70b99e35b7a44edf3cae96eCourtney Goeltzenleuchter} VkPipelineDynamicStateCreateInfo;
1874e20aaa220a2aa1afc70b99e35b7a44edf3cae96eCourtney Goeltzenleuchter
1875d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkGraphicsPipelineCreateInfo {
18768a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                                  sType;
18778a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                                      pNext;
18788a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipelineCreateFlags                            flags;
18798a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                                         stageCount;
18808a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkPipelineShaderStageCreateInfo*           pStages;
18818a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkPipelineVertexInputStateCreateInfo*      pVertexInputState;
18828a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkPipelineInputAssemblyStateCreateInfo*    pInputAssemblyState;
18838a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkPipelineTessellationStateCreateInfo*     pTessellationState;
18848a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkPipelineViewportStateCreateInfo*         pViewportState;
18858a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkPipelineRasterizationStateCreateInfo*    pRasterizationState;
18868a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkPipelineMultisampleStateCreateInfo*      pMultisampleState;
18878a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkPipelineDepthStencilStateCreateInfo*     pDepthStencilState;
18888a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkPipelineColorBlendStateCreateInfo*       pColorBlendState;
18898a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkPipelineDynamicStateCreateInfo*          pDynamicState;
18908a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipelineLayout                                 layout;
18918a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkRenderPass                                     renderPass;
18928a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                                         subpass;
18938a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipeline                                       basePipelineHandle;
18948a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    int32_t                                          basePipelineIndex;
1895382489d723fd0d3935da0dc7e1021c56c7b721d3Courtney Goeltzenleuchter} VkGraphicsPipelineCreateInfo;
189689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1897d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkComputePipelineCreateInfo {
18988a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                    sType;
18998a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                        pNext;
19008a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipelineCreateFlags              flags;
19018a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipelineShaderStageCreateInfo    stage;
19028a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipelineLayout                   layout;
19038a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipeline                         basePipelineHandle;
19048a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    int32_t                            basePipelineIndex;
1905fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkComputePipelineCreateInfo;
1906fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
1907d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkPushConstantRange {
19088a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkShaderStageFlags    stageFlags;
19098a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              offset;
19108a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              size;
1911fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkPushConstantRange;
1912699e2aa37a92806d0375b4ff3ac1b633fcd3b1c4Courtney Goeltzenleuchter
1913d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkPipelineLayoutCreateInfo {
19148a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                 sType;
19158a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                     pNext;
19168a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipelineLayoutCreateFlags     flags;
19178a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                        setLayoutCount;
19188a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkDescriptorSetLayout*    pSetLayouts;
19198a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                        pushConstantRangeCount;
19208a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkPushConstantRange*      pPushConstantRanges;
1921556f721b927c7f8bf6f37dd502afe8ebf3b76719Mark Lobodzinski} VkPipelineLayoutCreateInfo;
1922556f721b927c7f8bf6f37dd502afe8ebf3b76719Mark Lobodzinski
1923d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkSamplerCreateInfo {
19248a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType         sType;
19258a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*             pNext;
19268a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSamplerCreateFlags    flags;
19278a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkFilter                magFilter;
19288a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkFilter                minFilter;
19298a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSamplerMipmapMode     mipmapMode;
19308a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSamplerAddressMode    addressModeU;
19318a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSamplerAddressMode    addressModeV;
19328a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSamplerAddressMode    addressModeW;
19338a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                   mipLodBias;
19348a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32                anisotropyEnable;
19358a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                   maxAnisotropy;
19368a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32                compareEnable;
19378a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkCompareOp             compareOp;
19388a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                   minLod;
19398a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                   maxLod;
19408a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBorderColor           borderColor;
19418a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32                unnormalizedCoordinates;
1942382489d723fd0d3935da0dc7e1021c56c7b721d3Courtney Goeltzenleuchter} VkSamplerCreateInfo;
194389e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
1944d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkDescriptorSetLayoutBinding {
19458a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              binding;
19468a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDescriptorType      descriptorType;
19478a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              descriptorCount;
19488a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkShaderStageFlags    stageFlags;
19498a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkSampler*      pImmutableSamplers;
1950fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkDescriptorSetLayoutBinding;
1951fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
1952d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkDescriptorSetLayoutCreateInfo {
19538a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                        sType;
19548a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                            pNext;
19558a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDescriptorSetLayoutCreateFlags       flags;
19568a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                               bindingCount;
19578a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkDescriptorSetLayoutBinding*    pBindings;
1958fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkDescriptorSetLayoutCreateInfo;
1959fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
1960d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkDescriptorPoolSize {
19618a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDescriptorType    type;
19628a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t            descriptorCount;
1963c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu} VkDescriptorPoolSize;
1964fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
1965d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkDescriptorPoolCreateInfo {
19668a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                sType;
19678a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                    pNext;
19688a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDescriptorPoolCreateFlags    flags;
19698a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                       maxSets;
19708a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                       poolSizeCount;
19718a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkDescriptorPoolSize*    pPoolSizes;
1972fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkDescriptorPoolCreateInfo;
1973fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
1974d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkDescriptorSetAllocateInfo {
19758a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                 sType;
19768a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                     pNext;
19778a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDescriptorPool                descriptorPool;
19788a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                        descriptorSetCount;
19798a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkDescriptorSetLayout*    pSetLayouts;
19801f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu} VkDescriptorSetAllocateInfo;
1981831c183417705004ea225726d450b7259e7384c7Courtney Goeltzenleuchter
1982d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkDescriptorImageInfo {
19838a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSampler        sampler;
19848a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageView      imageView;
19858a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageLayout    imageLayout;
1986e40997436d904c5cdf437bb59eb95d0a2a3d3b35Courtney Goeltzenleuchter} VkDescriptorImageInfo;
1987e40997436d904c5cdf437bb59eb95d0a2a3d3b35Courtney Goeltzenleuchter
1988d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkDescriptorBufferInfo {
19898a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBuffer        buffer;
19908a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize    offset;
19918a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize    range;
19924244257f1c3f61448bcafcc07238d8a313f11e3dCourtney Goeltzenleuchter} VkDescriptorBufferInfo;
19932a3e3a3f94e21bbb0eb55eae942ed294dde0822eCourtney Goeltzenleuchter
1994d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkWriteDescriptorSet {
19958a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                  sType;
19968a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                      pNext;
19978a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDescriptorSet                  dstSet;
19988a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                         dstBinding;
19998a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                         dstArrayElement;
20008a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                         descriptorCount;
20018a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDescriptorType                 descriptorType;
20028a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkDescriptorImageInfo*     pImageInfo;
20038a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkDescriptorBufferInfo*    pBufferInfo;
20048a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkBufferView*              pTexelBufferView;
2005fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkWriteDescriptorSet;
2006fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
2007d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkCopyDescriptorSet {
20088a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType    sType;
20098a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*        pNext;
20108a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDescriptorSet    srcSet;
20118a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t           srcBinding;
20128a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t           srcArrayElement;
20138a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDescriptorSet    dstSet;
20148a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t           dstBinding;
20158a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t           dstArrayElement;
20168a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t           descriptorCount;
2017fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkCopyDescriptorSet;
2018fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
2019d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkFramebufferCreateInfo {
20208a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType             sType;
20218a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                 pNext;
20228a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkFramebufferCreateFlags    flags;
20238a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkRenderPass                renderPass;
20248a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                    attachmentCount;
20258a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkImageView*          pAttachments;
20268a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                    width;
20278a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                    height;
20288a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                    layers;
2029c278df83ca4958fda8efcf3b52e2f89c8ccd8991Chia-I Wu} VkFramebufferCreateInfo;
2030c278df83ca4958fda8efcf3b52e2f89c8ccd8991Chia-I Wu
2031d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkAttachmentDescription {
20328a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkAttachmentDescriptionFlags    flags;
20338a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkFormat                        format;
20348a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSampleCountFlagBits           samples;
20358a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkAttachmentLoadOp              loadOp;
20368a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkAttachmentStoreOp             storeOp;
20378a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkAttachmentLoadOp              stencilLoadOp;
20388a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkAttachmentStoreOp             stencilStoreOp;
20398a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageLayout                   initialLayout;
20408a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageLayout                   finalLayout;
2041c278df83ca4958fda8efcf3b52e2f89c8ccd8991Chia-I Wu} VkAttachmentDescription;
2042c278df83ca4958fda8efcf3b52e2f89c8ccd8991Chia-I Wu
2043d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkAttachmentReference {
20448a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t         attachment;
20458a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageLayout    layout;
2046c278df83ca4958fda8efcf3b52e2f89c8ccd8991Chia-I Wu} VkAttachmentReference;
2047c278df83ca4958fda8efcf3b52e2f89c8ccd8991Chia-I Wu
2048d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkSubpassDescription {
20498a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSubpassDescriptionFlags       flags;
20508a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipelineBindPoint             pipelineBindPoint;
20518a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                        inputAttachmentCount;
20528a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkAttachmentReference*    pInputAttachments;
20538a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                        colorAttachmentCount;
20548a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkAttachmentReference*    pColorAttachments;
20558a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkAttachmentReference*    pResolveAttachments;
20568a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkAttachmentReference*    pDepthStencilAttachment;
20578a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                        preserveAttachmentCount;
20588a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const uint32_t*                 pPreserveAttachments;
2059c278df83ca4958fda8efcf3b52e2f89c8ccd8991Chia-I Wu} VkSubpassDescription;
2060c278df83ca4958fda8efcf3b52e2f89c8ccd8991Chia-I Wu
2061d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkSubpassDependency {
20628a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                srcSubpass;
20638a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                dstSubpass;
20648a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipelineStageFlags    srcStageMask;
20658a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPipelineStageFlags    dstStageMask;
20668a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkAccessFlags           srcAccessMask;
20678a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkAccessFlags           dstAccessMask;
20688a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDependencyFlags       dependencyFlags;
2069c278df83ca4958fda8efcf3b52e2f89c8ccd8991Chia-I Wu} VkSubpassDependency;
2070c278df83ca4958fda8efcf3b52e2f89c8ccd8991Chia-I Wu
2071d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkRenderPassCreateInfo {
20728a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                   sType;
20738a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                       pNext;
20748a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkRenderPassCreateFlags           flags;
20758a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                          attachmentCount;
20768a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkAttachmentDescription*    pAttachments;
20778a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                          subpassCount;
20788a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkSubpassDescription*       pSubpasses;
20798a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                          dependencyCount;
20808a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkSubpassDependency*        pDependencies;
2081382489d723fd0d3935da0dc7e1021c56c7b721d3Courtney Goeltzenleuchter} VkRenderPassCreateInfo;
208289e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2083d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkCommandPoolCreateInfo {
20848a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType             sType;
20858a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                 pNext;
20868a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkCommandPoolCreateFlags    flags;
20878a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                    queueFamilyIndex;
20881f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu} VkCommandPoolCreateInfo;
208989e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2090d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkCommandBufferAllocateInfo {
20918a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType         sType;
20928a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*             pNext;
20938a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkCommandPool           commandPool;
20948a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkCommandBufferLevel    level;
20958a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                commandBufferCount;
20961f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu} VkCommandBufferAllocateInfo;
209789e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2098a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburntypedef struct VkCommandBufferInheritanceInfo {
20998a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                  sType;
21008a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                      pNext;
21018a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkRenderPass                     renderPass;
21028a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                         subpass;
21038a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkFramebuffer                    framebuffer;
21048a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32                         occlusionQueryEnable;
21058a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkQueryControlFlags              queryFlags;
21068a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkQueryPipelineStatisticFlags    pipelineStatistics;
2107a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn} VkCommandBufferInheritanceInfo;
2108a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn
2109a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburntypedef struct VkCommandBufferBeginInfo {
21108a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                          sType;
21118a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                              pNext;
21128a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkCommandBufferUsageFlags                flags;
21138a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkCommandBufferInheritanceInfo*    pInheritanceInfo;
21141f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu} VkCommandBufferBeginInfo;
211589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2116d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkBufferCopy {
21178a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize    srcOffset;
21188a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize    dstOffset;
21198a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize    size;
2120fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkBufferCopy;
2121fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
2122d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkImageSubresourceLayers {
21238a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageAspectFlags    aspectMask;
21248a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              mipLevel;
21258a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              baseArrayLayer;
21268a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              layerCount;
2127c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu} VkImageSubresourceLayers;
2128bd7f592c081094082ecb22ae30beaef079f437d0Courtney Goeltzenleuchter
2129d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkImageCopy {
21308a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageSubresourceLayers    srcSubresource;
21318a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkOffset3D                  srcOffset;
21328a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageSubresourceLayers    dstSubresource;
21338a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkOffset3D                  dstOffset;
21348a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent3D                  extent;
2135fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkImageCopy;
2136fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
2137d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkImageBlit {
21388a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageSubresourceLayers    srcSubresource;
21398a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkOffset3D                  srcOffsets[2];
21408a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageSubresourceLayers    dstSubresource;
21418a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkOffset3D                  dstOffsets[2];
2142fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkImageBlit;
2143fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
2144d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkBufferImageCopy {
21458a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize                bufferOffset;
21468a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                    bufferRowLength;
21478a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                    bufferImageHeight;
21488a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageSubresourceLayers    imageSubresource;
21498a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkOffset3D                  imageOffset;
21508a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent3D                  imageExtent;
2151fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkBufferImageCopy;
215289e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2153d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef union VkClearColorValue {
21548a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float       float32[4];
21558a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    int32_t     int32[4];
21568a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    uint32[4];
2157fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkClearColorValue;
2158fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
2159d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkClearDepthStencilValue {
21608a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float       depth;
21618a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    stencil;
2162315ad996d8b5c2edc487b85ea34b50eeca03b831Courtney Goeltzenleuchter} VkClearDepthStencilValue;
2163315ad996d8b5c2edc487b85ea34b50eeca03b831Courtney Goeltzenleuchter
2164d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef union VkClearValue {
21658a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkClearColorValue           color;
21668a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkClearDepthStencilValue    depthStencil;
21679feb073965d9c1c1f419045940af5753dd3c41d9Courtney Goeltzenleuchter} VkClearValue;
21689feb073965d9c1c1f419045940af5753dd3c41d9Courtney Goeltzenleuchter
2169d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkClearAttachment {
21708a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageAspectFlags    aspectMask;
21718a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t              colorAttachment;
21728a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkClearValue          clearValue;
21739feb073965d9c1c1f419045940af5753dd3c41d9Courtney Goeltzenleuchter} VkClearAttachment;
21749feb073965d9c1c1f419045940af5753dd3c41d9Courtney Goeltzenleuchter
2175d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkClearRect {
21768a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkRect2D    rect;
21778a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    baseArrayLayer;
21788a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    layerCount;
2179a12e29179a1ca44eb6bbc0c03850b1bf02398081Courtney Goeltzenleuchter} VkClearRect;
2180fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
2181d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkImageResolve {
21828a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageSubresourceLayers    srcSubresource;
21838a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkOffset3D                  srcOffset;
21848a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageSubresourceLayers    dstSubresource;
21858a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkOffset3D                  dstOffset;
21868a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent3D                  extent;
2187fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkImageResolve;
2188fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
2189a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburntypedef struct VkMemoryBarrier {
21908a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType    sType;
21918a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*        pNext;
21928a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkAccessFlags      srcAccessMask;
21938a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkAccessFlags      dstAccessMask;
2194a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn} VkMemoryBarrier;
219589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2196d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkBufferMemoryBarrier {
21978a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType    sType;
21988a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*        pNext;
21998a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkAccessFlags      srcAccessMask;
22008a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkAccessFlags      dstAccessMask;
22018a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t           srcQueueFamilyIndex;
22028a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t           dstQueueFamilyIndex;
22038a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBuffer           buffer;
22048a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize       offset;
22058a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDeviceSize       size;
2206fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter} VkBufferMemoryBarrier;
2207fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
2208a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburntypedef struct VkImageMemoryBarrier {
22098a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType            sType;
22108a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                pNext;
22118a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkAccessFlags              srcAccessMask;
22128a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkAccessFlags              dstAccessMask;
22138a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageLayout              oldLayout;
22148a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageLayout              newLayout;
22158a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                   srcQueueFamilyIndex;
22168a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                   dstQueueFamilyIndex;
22178a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImage                    image;
22188a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageSubresourceRange    subresourceRange;
2219a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn} VkImageMemoryBarrier;
2220a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn
2221a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburntypedef struct VkRenderPassBeginInfo {
22228a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType        sType;
22238a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*            pNext;
22248a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkRenderPass           renderPass;
22258a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkFramebuffer          framebuffer;
22268a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkRect2D               renderArea;
22278a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t               clearValueCount;
22288a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkClearValue*    pClearValues;
2229a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn} VkRenderPassBeginInfo;
2230a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn
2231d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkDispatchIndirectCommand {
22328a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    x;
22338a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    y;
22348a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    z;
2235c04519cd6e39256351df868dc721259d904f4542Chia-I Wu} VkDispatchIndirectCommand;
223689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2237d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkDrawIndexedIndirectCommand {
22388a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    indexCount;
22398a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    instanceCount;
22408a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    firstIndex;
22418a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    int32_t     vertexOffset;
22428a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    firstInstance;
2243c04519cd6e39256351df868dc721259d904f4542Chia-I Wu} VkDrawIndexedIndirectCommand;
224489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2245d1fea53e7b959734b1fe83a95e0f43e111ce013dChia-I Wutypedef struct VkDrawIndirectCommand {
22468a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    vertexCount;
22478a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    instanceCount;
22488a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    firstVertex;
22498a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t    firstInstance;
2250c04519cd6e39256351df868dc721259d904f4542Chia-I Wu} VkDrawIndirectCommand;
2251fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
225289e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2253af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
2254af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
2255af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
2256af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
2257af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
2258af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
2259af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
2260af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
2261af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
2262af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
2263af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
2264af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
2265af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
2266af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2267af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2268af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2269af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2270af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
2271af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
2272af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
2273af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
2274af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
2275af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
2276af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
2277af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
2278af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2279af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2280af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
2281af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2282af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2283af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
2284af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
2285af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
2286af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
2287af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
2288af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
2289af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
2290af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
2291af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
2292af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
2293af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
2294af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
2295af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
2296af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
2297af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
2298af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
2299af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
2300af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
2301af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
2302f25165255ccfd9bce7c80b77942fc4f2132947a2Jon Ashburntypedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
2303af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
2304af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
2305af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
2306af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
2307af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
2308af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
2309af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
2310af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
2311af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
2312af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
2313af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
2314af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
2315af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
2316af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
2317af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
2318af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2319af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2320af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
2321af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
2322af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
2323af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
2324af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
2325af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
2326af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
2327af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
2328af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
2329af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
2330af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
2331af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
2332af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
2333af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
2334af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
2335af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
2336af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
2337af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
2338af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
2339af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
2340af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
2341af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
2342af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
2343af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
2344af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
2345af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
2346af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
2347f25165255ccfd9bce7c80b77942fc4f2132947a2Jon Ashburntypedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
2348f25165255ccfd9bce7c80b77942fc4f2132947a2Jon Ashburntypedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
2349af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
2350af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
2351af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
2352af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
2353af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
2354af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
2355af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
2356af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets);
2357af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
2358f25165255ccfd9bce7c80b77942fc4f2132947a2Jon Ashburntypedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
2359af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
2360af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
2361af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2362af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2363af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z);
2364af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
2365af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
2366af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
2367af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
2368af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
2369af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
23706fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultztypedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
2371af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
2372af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2373af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2374af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
2375af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
2376af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
2377af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
2378a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburntypedef void (VKAPI_PTR *PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
2379a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburntypedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
2380a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburntypedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
2381a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburntypedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
2382f25165255ccfd9bce7c80b77942fc4f2132947a2Jon Ashburntypedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
2383a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburntypedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
2384f25165255ccfd9bce7c80b77942fc4f2132947a2Jon Ashburntypedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
23850ee0ca095d9dfff2b0493047fd74f3bae0160305Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
2386af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
2387af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
2388af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I Wutypedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
2389a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburntypedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
239089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
239189dc27a71a1f8c66dfa118a0e766476d24bc3b5bJon Ashburn#ifndef VK_NO_PROTOTYPES
2392af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
2393f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkInstanceCreateInfo*                 pCreateInfo,
2394c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
2395f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkInstance*                                 pInstance);
239689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2397af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
239869f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu    VkInstance                                  instance,
2399c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
240089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2401af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
2402f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkInstance                                  instance,
240307b309a0cdfca1532ad14038682716ea7f77538dJon Ashburn    uint32_t*                                   pPhysicalDeviceCount,
24048205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour    VkPhysicalDevice*                           pPhysicalDevices);
240589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2406af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
2407d757630a88456aa57e5699f42d96896f17d2f624Chris Forbes    VkPhysicalDevice                            physicalDevice,
2408d757630a88456aa57e5699f42d96896f17d2f624Chris Forbes    VkPhysicalDeviceFeatures*                   pFeatures);
2409d757630a88456aa57e5699f42d96896f17d2f624Chris Forbes
2410af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
2411d757630a88456aa57e5699f42d96896f17d2f624Chris Forbes    VkPhysicalDevice                            physicalDevice,
2412d757630a88456aa57e5699f42d96896f17d2f624Chris Forbes    VkFormat                                    format,
2413fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkFormatProperties*                         pFormatProperties);
2414d757630a88456aa57e5699f42d96896f17d2f624Chris Forbes
2415af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
2416d757630a88456aa57e5699f42d96896f17d2f624Chris Forbes    VkPhysicalDevice                            physicalDevice,
2417fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkFormat                                    format,
2418fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkImageType                                 type,
2419fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkImageTiling                               tiling,
2420fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkImageUsageFlags                           usage,
242183c95f8a24c7785ab644c0dc2b2031d39e5a24d7Courtney Goeltzenleuchter    VkImageCreateFlags                          flags,
2422fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkImageFormatProperties*                    pImageFormatProperties);
242389e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2424af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
2425426b90566abae5716741aade41184dc4dafe4aa4Tony Barbour    VkPhysicalDevice                            physicalDevice,
2426426b90566abae5716741aade41184dc4dafe4aa4Tony Barbour    VkPhysicalDeviceProperties*                 pProperties);
2427426b90566abae5716741aade41184dc4dafe4aa4Tony Barbour
2428af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
2429426b90566abae5716741aade41184dc4dafe4aa4Tony Barbour    VkPhysicalDevice                            physicalDevice,
2430763a749795bb4827efbbf19cbc87b959511496ddChia-I Wu    uint32_t*                                   pQueueFamilyPropertyCount,
2431ef72e2a7cf4fa5708fdbfbc1c972a24ad0dbf809Cody Northrop    VkQueueFamilyProperties*                    pQueueFamilyProperties);
2432426b90566abae5716741aade41184dc4dafe4aa4Tony Barbour
2433af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
2434426b90566abae5716741aade41184dc4dafe4aa4Tony Barbour    VkPhysicalDevice                            physicalDevice,
2435fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkPhysicalDeviceMemoryProperties*           pMemoryProperties);
2436fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
2437af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
2438fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkInstance                                  instance,
2439fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    const char*                                 pName);
2440fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
2441af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
2442fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkDevice                                    device,
2443fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    const char*                                 pName);
2444fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
2445af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
2446fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkPhysicalDevice                            physicalDevice,
2447fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    const VkDeviceCreateInfo*                   pCreateInfo,
2448c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
2449fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkDevice*                                   pDevice);
2450426b90566abae5716741aade41184dc4dafe4aa4Tony Barbour
2451af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
245269f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu    VkDevice                                    device,
2453c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
2454da4a99e924e8152a834a6ee41ed98f60e133438aCourtney Goeltzenleuchter
2455af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
245618061cdee54b19cd628178d2924a7a914c62a10bCourtney Goeltzenleuchter    const char*                                 pLayerName,
2457763a749795bb4827efbbf19cbc87b959511496ddChia-I Wu    uint32_t*                                   pPropertyCount,
2458426b90566abae5716741aade41184dc4dafe4aa4Tony Barbour    VkExtensionProperties*                      pProperties);
245989e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2460af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
2461699e2aa37a92806d0375b4ff3ac1b633fcd3b1c4Courtney Goeltzenleuchter    VkPhysicalDevice                            physicalDevice,
246218061cdee54b19cd628178d2924a7a914c62a10bCourtney Goeltzenleuchter    const char*                                 pLayerName,
2463763a749795bb4827efbbf19cbc87b959511496ddChia-I Wu    uint32_t*                                   pPropertyCount,
2464426b90566abae5716741aade41184dc4dafe4aa4Tony Barbour    VkExtensionProperties*                      pProperties);
246589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2466af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
2467763a749795bb4827efbbf19cbc87b959511496ddChia-I Wu    uint32_t*                                   pPropertyCount,
246818061cdee54b19cd628178d2924a7a914c62a10bCourtney Goeltzenleuchter    VkLayerProperties*                          pProperties);
246918061cdee54b19cd628178d2924a7a914c62a10bCourtney Goeltzenleuchter
2470af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
247118061cdee54b19cd628178d2924a7a914c62a10bCourtney Goeltzenleuchter    VkPhysicalDevice                            physicalDevice,
2472763a749795bb4827efbbf19cbc87b959511496ddChia-I Wu    uint32_t*                                   pPropertyCount,
247318061cdee54b19cd628178d2924a7a914c62a10bCourtney Goeltzenleuchter    VkLayerProperties*                          pProperties);
247418061cdee54b19cd628178d2924a7a914c62a10bCourtney Goeltzenleuchter
2475af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
2476f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDevice                                    device,
2477fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    uint32_t                                    queueFamilyIndex,
247889e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    uint32_t                                    queueIndex,
2479f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkQueue*                                    pQueue);
248089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2481af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
2482f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkQueue                                     queue,
24833ec31629900b5a52fa112d6670ffb6771fe9adcaCourtney Goeltzenleuchter    uint32_t                                    submitCount,
2484483e770c13be093ac073cda18817b03f2f0c05dbChia-I Wu    const VkSubmitInfo*                         pSubmits,
2485f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkFence                                     fence);
248689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2487af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
2488f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkQueue                                     queue);
248989e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2490af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
2491f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDevice                                    device);
249289e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2493af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
2494f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDevice                                    device,
2495c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkMemoryAllocateInfo*                 pAllocateInfo,
2496c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
24971f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkDeviceMemory*                             pMemory);
249889e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2499af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkFreeMemory(
2500230e62505478ab0d9b05003e0e48baa5f090c6a0Mike Stroyan    VkDevice                                    device,
2501c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkDeviceMemory                              memory,
2502c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
250389e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2504af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
2505230e62505478ab0d9b05003e0e48baa5f090c6a0Mike Stroyan    VkDevice                                    device,
2506c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkDeviceMemory                              memory,
25073e3420a0af896b1667d736a8a1ad54fe13580ec3Tony Barbour    VkDeviceSize                                offset,
25083e3420a0af896b1667d736a8a1ad54fe13580ec3Tony Barbour    VkDeviceSize                                size,
25098205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour    VkMemoryMapFlags                            flags,
251089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    void**                                      ppData);
251189e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2512af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
2513230e62505478ab0d9b05003e0e48baa5f090c6a0Mike Stroyan    VkDevice                                    device,
2514c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkDeviceMemory                              memory);
251589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2516af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
2517230e62505478ab0d9b05003e0e48baa5f090c6a0Mike Stroyan    VkDevice                                    device,
25181f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    uint32_t                                    memoryRangeCount,
25191f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    const VkMappedMemoryRange*                  pMemoryRanges);
2520a569a50e85d51b0dff1b16cfd2c64222f921b6daCourtney Goeltzenleuchter
2521af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
2522a569a50e85d51b0dff1b16cfd2c64222f921b6daCourtney Goeltzenleuchter    VkDevice                                    device,
25231f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    uint32_t                                    memoryRangeCount,
25241f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    const VkMappedMemoryRange*                  pMemoryRanges);
2525859ceab076fb0b01ce9428b10986ac5cca995fc4Tony Barbour
2526af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
2527d040c5c25acbea9cacfa90e346fe3a6095a15135Courtney Goeltzenleuchter    VkDevice                                    device,
2528d040c5c25acbea9cacfa90e346fe3a6095a15135Courtney Goeltzenleuchter    VkDeviceMemory                              memory,
2529d040c5c25acbea9cacfa90e346fe3a6095a15135Courtney Goeltzenleuchter    VkDeviceSize*                               pCommittedMemoryInBytes);
2530d040c5c25acbea9cacfa90e346fe3a6095a15135Courtney Goeltzenleuchter
2531af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
2532230e62505478ab0d9b05003e0e48baa5f090c6a0Mike Stroyan    VkDevice                                    device,
2533de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkBuffer                                    buffer,
2534c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkDeviceMemory                              memory,
25351f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkDeviceSize                                memoryOffset);
2536cf26e07b83fc43011e939b75f0d393a48a5628d0Mark Lobodzinski
2537af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
2538fb9f5646a9f331a834d2e318d503a213cba490d7Mark Lobodzinski    VkDevice                                    device,
2539de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkImage                                     image,
2540c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkDeviceMemory                              memory,
25411f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkDeviceSize                                memoryOffset);
254289e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2543af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
2544426b90566abae5716741aade41184dc4dafe4aa4Tony Barbour    VkDevice                                    device,
2545de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkBuffer                                    buffer,
2546de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkMemoryRequirements*                       pMemoryRequirements);
2547de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
2548af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
2549de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkDevice                                    device,
2550de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkImage                                     image,
2551426b90566abae5716741aade41184dc4dafe4aa4Tony Barbour    VkMemoryRequirements*                       pMemoryRequirements);
2552426b90566abae5716741aade41184dc4dafe4aa4Tony Barbour
2553af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
255483d4e6a42c5757e08a950027ebf00edf8d59c67aMark Lobodzinski    VkDevice                                    device,
255583d4e6a42c5757e08a950027ebf00edf8d59c67aMark Lobodzinski    VkImage                                     image,
2556763a749795bb4827efbbf19cbc87b959511496ddChia-I Wu    uint32_t*                                   pSparseMemoryRequirementCount,
255783d4e6a42c5757e08a950027ebf00edf8d59c67aMark Lobodzinski    VkSparseImageMemoryRequirements*            pSparseMemoryRequirements);
255883d4e6a42c5757e08a950027ebf00edf8d59c67aMark Lobodzinski
2559af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
256083d4e6a42c5757e08a950027ebf00edf8d59c67aMark Lobodzinski    VkPhysicalDevice                            physicalDevice,
256183d4e6a42c5757e08a950027ebf00edf8d59c67aMark Lobodzinski    VkFormat                                    format,
256283d4e6a42c5757e08a950027ebf00edf8d59c67aMark Lobodzinski    VkImageType                                 type,
25633138d6a7fafb314644a22a854267258769c6d6a0Chia-I Wu    VkSampleCountFlagBits                       samples,
256483d4e6a42c5757e08a950027ebf00edf8d59c67aMark Lobodzinski    VkImageUsageFlags                           usage,
256583d4e6a42c5757e08a950027ebf00edf8d59c67aMark Lobodzinski    VkImageTiling                               tiling,
2566763a749795bb4827efbbf19cbc87b959511496ddChia-I Wu    uint32_t*                                   pPropertyCount,
256783d4e6a42c5757e08a950027ebf00edf8d59c67aMark Lobodzinski    VkSparseImageFormatProperties*              pProperties);
256883d4e6a42c5757e08a950027ebf00edf8d59c67aMark Lobodzinski
2569af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
2570cf26e07b83fc43011e939b75f0d393a48a5628d0Mark Lobodzinski    VkQueue                                     queue,
2571763a749795bb4827efbbf19cbc87b959511496ddChia-I Wu    uint32_t                                    bindInfoCount,
257206809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu    const VkBindSparseInfo*                     pBindInfo,
257306809d58354b8091be6772da09b8c1b3b93198c1Chia-I Wu    VkFence                                     fence);
257489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2575af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
2576f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDevice                                    device,
2577f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkFenceCreateInfo*                    pCreateInfo,
2578c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
2579f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkFence*                                    pFence);
258089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2581af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkDestroyFence(
2582de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkDevice                                    device,
258369f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu    VkFence                                     fence,
2584c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
2585de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
2586af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
2587f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDevice                                    device,
258889e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    uint32_t                                    fenceCount,
2589f2e33adbc951c6bf0021901623a1534b6f290102Courtney Goeltzenleuchter    const VkFence*                              pFences);
259089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2591af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
2592230e62505478ab0d9b05003e0e48baa5f090c6a0Mike Stroyan    VkDevice                                    device,
2593f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkFence                                     fence);
259489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2595af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
2596f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDevice                                    device,
259789e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    uint32_t                                    fenceCount,
2598f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkFence*                              pFences,
25991f41f54bc20d57faed702aec3074eacdfc34680dCourtney Goeltzenleuchter    VkBool32                                    waitAll,
2600fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    uint64_t                                    timeout);
260189e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2602af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
2603f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDevice                                    device,
2604f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkSemaphoreCreateInfo*                pCreateInfo,
2605c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
2606f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkSemaphore*                                pSemaphore);
260789e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2608af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
2609de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkDevice                                    device,
261069f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu    VkSemaphore                                 semaphore,
2611c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
2612de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
2613af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
2614f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDevice                                    device,
2615f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkEventCreateInfo*                    pCreateInfo,
2616c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
2617f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkEvent*                                    pEvent);
261889e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2619af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
2620de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkDevice                                    device,
262169f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu    VkEvent                                     event,
2622c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
2623de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
2624af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
2625230e62505478ab0d9b05003e0e48baa5f090c6a0Mike Stroyan    VkDevice                                    device,
2626f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkEvent                                     event);
262789e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2628af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
2629230e62505478ab0d9b05003e0e48baa5f090c6a0Mike Stroyan    VkDevice                                    device,
2630f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkEvent                                     event);
263189e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2632af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
2633230e62505478ab0d9b05003e0e48baa5f090c6a0Mike Stroyan    VkDevice                                    device,
2634f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkEvent                                     event);
263589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2636af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
2637f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDevice                                    device,
2638f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkQueryPoolCreateInfo*                pCreateInfo,
2639c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
2640f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkQueryPool*                                pQueryPool);
264189e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2642af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
2643de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkDevice                                    device,
264469f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu    VkQueryPool                                 queryPool,
2645c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
2646de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
2647af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
2648230e62505478ab0d9b05003e0e48baa5f090c6a0Mike Stroyan    VkDevice                                    device,
2649f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkQueryPool                                 queryPool,
2650f25165255ccfd9bce7c80b77942fc4f2132947a2Jon Ashburn    uint32_t                                    firstQuery,
265189e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    uint32_t                                    queryCount,
26521f6942dceacfb1892202a3b2dcb0ed84ec7169d1Chia-I Wu    size_t                                      dataSize,
26538205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour    void*                                       pData,
26541f6942dceacfb1892202a3b2dcb0ed84ec7169d1Chia-I Wu    VkDeviceSize                                stride,
26558205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour    VkQueryResultFlags                          flags);
265689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2657af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
2658f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDevice                                    device,
2659f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkBufferCreateInfo*                   pCreateInfo,
2660c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
2661f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkBuffer*                                   pBuffer);
266289e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2663af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
2664de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkDevice                                    device,
266569f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu    VkBuffer                                    buffer,
2666c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
2667de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
2668af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
2669f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDevice                                    device,
2670f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkBufferViewCreateInfo*               pCreateInfo,
2671c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
2672f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkBufferView*                               pView);
267389e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2674af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
2675de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkDevice                                    device,
267669f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu    VkBufferView                                bufferView,
2677c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
2678de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
2679af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
2680f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDevice                                    device,
2681f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkImageCreateInfo*                    pCreateInfo,
2682c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
2683f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkImage*                                    pImage);
268489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2685af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkDestroyImage(
2686de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkDevice                                    device,
268769f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu    VkImage                                     image,
2688c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
2689de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
2690af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
2691230e62505478ab0d9b05003e0e48baa5f090c6a0Mike Stroyan    VkDevice                                    device,
2692f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkImage                                     image,
2693f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkImageSubresource*                   pSubresource,
2694426b90566abae5716741aade41184dc4dafe4aa4Tony Barbour    VkSubresourceLayout*                        pLayout);
269589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2696af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
2697f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDevice                                    device,
2698f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkImageViewCreateInfo*                pCreateInfo,
2699c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
2700f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkImageView*                                pView);
270189e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2702af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
2703de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkDevice                                    device,
270469f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu    VkImageView                                 imageView,
2705c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
2706de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
2707af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
27081d72310f0b57fc6f541051659376f5744be52687Courtney Goeltzenleuchter    VkDevice                                    device,
27091d72310f0b57fc6f541051659376f5744be52687Courtney Goeltzenleuchter    const VkShaderModuleCreateInfo*             pCreateInfo,
2710c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
27111d72310f0b57fc6f541051659376f5744be52687Courtney Goeltzenleuchter    VkShaderModule*                             pShaderModule);
27121d72310f0b57fc6f541051659376f5744be52687Courtney Goeltzenleuchter
2713af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
2714de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkDevice                                    device,
271569f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu    VkShaderModule                              shaderModule,
2716c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
2717de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
2718af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
2719f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDevice                                    device,
27200d60d274605d3061e5d8ac1cf38e4e9b5ee3ff1aJon Ashburn    const VkPipelineCacheCreateInfo*            pCreateInfo,
2721c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
27220d60d274605d3061e5d8ac1cf38e4e9b5ee3ff1aJon Ashburn    VkPipelineCache*                            pPipelineCache);
272389e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2724af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
2725f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDevice                                    device,
272669f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu    VkPipelineCache                             pipelineCache,
2727c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
272889e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2729af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
2730230e62505478ab0d9b05003e0e48baa5f090c6a0Mike Stroyan    VkDevice                                    device,
27310d60d274605d3061e5d8ac1cf38e4e9b5ee3ff1aJon Ashburn    VkPipelineCache                             pipelineCache,
273228c3c433c6c37266bae77084c145f06f59aaa879Chia-I Wu    size_t*                                     pDataSize,
273389e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    void*                                       pData);
273489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2735af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
2736f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDevice                                    device,
27371f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkPipelineCache                             dstCache,
27380d60d274605d3061e5d8ac1cf38e4e9b5ee3ff1aJon Ashburn    uint32_t                                    srcCacheCount,
27390d60d274605d3061e5d8ac1cf38e4e9b5ee3ff1aJon Ashburn    const VkPipelineCache*                      pSrcCaches);
274089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2741af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
2742f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDevice                                    device,
27430d60d274605d3061e5d8ac1cf38e4e9b5ee3ff1aJon Ashburn    VkPipelineCache                             pipelineCache,
2744763a749795bb4827efbbf19cbc87b959511496ddChia-I Wu    uint32_t                                    createInfoCount,
27450d60d274605d3061e5d8ac1cf38e4e9b5ee3ff1aJon Ashburn    const VkGraphicsPipelineCreateInfo*         pCreateInfos,
2746c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
27470d60d274605d3061e5d8ac1cf38e4e9b5ee3ff1aJon Ashburn    VkPipeline*                                 pPipelines);
27480d60d274605d3061e5d8ac1cf38e4e9b5ee3ff1aJon Ashburn
2749af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
27500d60d274605d3061e5d8ac1cf38e4e9b5ee3ff1aJon Ashburn    VkDevice                                    device,
27510d60d274605d3061e5d8ac1cf38e4e9b5ee3ff1aJon Ashburn    VkPipelineCache                             pipelineCache,
2752763a749795bb4827efbbf19cbc87b959511496ddChia-I Wu    uint32_t                                    createInfoCount,
27530d60d274605d3061e5d8ac1cf38e4e9b5ee3ff1aJon Ashburn    const VkComputePipelineCreateInfo*          pCreateInfos,
2754c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
27550d60d274605d3061e5d8ac1cf38e4e9b5ee3ff1aJon Ashburn    VkPipeline*                                 pPipelines);
275689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2757af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
2758de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkDevice                                    device,
275969f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu    VkPipeline                                  pipeline,
2760c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
2761de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
2762af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
2763556f721b927c7f8bf6f37dd502afe8ebf3b76719Mark Lobodzinski    VkDevice                                    device,
2764556f721b927c7f8bf6f37dd502afe8ebf3b76719Mark Lobodzinski    const VkPipelineLayoutCreateInfo*           pCreateInfo,
2765c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
2766556f721b927c7f8bf6f37dd502afe8ebf3b76719Mark Lobodzinski    VkPipelineLayout*                           pPipelineLayout);
2767556f721b927c7f8bf6f37dd502afe8ebf3b76719Mark Lobodzinski
2768af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
2769de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkDevice                                    device,
277069f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu    VkPipelineLayout                            pipelineLayout,
2771c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
2772de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
2773af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
2774f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDevice                                    device,
2775f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkSamplerCreateInfo*                  pCreateInfo,
2776c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
2777f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkSampler*                                  pSampler);
277889e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2779af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkDestroySampler(
2780de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkDevice                                    device,
278169f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu    VkSampler                                   sampler,
2782c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
2783de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
2784af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
2785382489d723fd0d3935da0dc7e1021c56c7b721d3Courtney Goeltzenleuchter    VkDevice                                    device,
2786f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
2787c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
2788f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDescriptorSetLayout*                      pSetLayout);
278989e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2790af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
2791de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkDevice                                    device,
279269f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu    VkDescriptorSetLayout                       descriptorSetLayout,
2793c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
2794de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
2795af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
2796382489d723fd0d3935da0dc7e1021c56c7b721d3Courtney Goeltzenleuchter    VkDevice                                    device,
2797f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkDescriptorPoolCreateInfo*           pCreateInfo,
2798c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
2799f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDescriptorPool*                           pDescriptorPool);
280089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2801af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
2802de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkDevice                                    device,
280369f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu    VkDescriptorPool                            descriptorPool,
2804c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
2805de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
2806af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
2807230e62505478ab0d9b05003e0e48baa5f090c6a0Mike Stroyan    VkDevice                                    device,
2808831c183417705004ea225726d450b7259e7384c7Courtney Goeltzenleuchter    VkDescriptorPool                            descriptorPool,
2809831c183417705004ea225726d450b7259e7384c7Courtney Goeltzenleuchter    VkDescriptorPoolResetFlags                  flags);
281089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2811af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
2812230e62505478ab0d9b05003e0e48baa5f090c6a0Mike Stroyan    VkDevice                                    device,
2813c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkDescriptorSetAllocateInfo*          pAllocateInfo,
2814c8aa4a5cf5902e22b99d0107164ac43c6c7c4e5dCody Northrop    VkDescriptorSet*                            pDescriptorSets);
281589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2816af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
2817b857d3163df90e77c03df4a8b91968f28d2e4b2eTony Barbour    VkDevice                                    device,
2818b857d3163df90e77c03df4a8b91968f28d2e4b2eTony Barbour    VkDescriptorPool                            descriptorPool,
2819763a749795bb4827efbbf19cbc87b959511496ddChia-I Wu    uint32_t                                    descriptorSetCount,
2820b857d3163df90e77c03df4a8b91968f28d2e4b2eTony Barbour    const VkDescriptorSet*                      pDescriptorSets);
2821b857d3163df90e77c03df4a8b91968f28d2e4b2eTony Barbour
2822af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
2823230e62505478ab0d9b05003e0e48baa5f090c6a0Mike Stroyan    VkDevice                                    device,
2824483e770c13be093ac073cda18817b03f2f0c05dbChia-I Wu    uint32_t                                    descriptorWriteCount,
28258cd8ecde19f154f1779a7bcc93cb1a3519b57dbfChia-I Wu    const VkWriteDescriptorSet*                 pDescriptorWrites,
2826483e770c13be093ac073cda18817b03f2f0c05dbChia-I Wu    uint32_t                                    descriptorCopyCount,
28278cd8ecde19f154f1779a7bcc93cb1a3519b57dbfChia-I Wu    const VkCopyDescriptorSet*                  pDescriptorCopies);
282889e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2829af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
2830fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkDevice                                    device,
2831fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    const VkFramebufferCreateInfo*              pCreateInfo,
2832c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
2833fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkFramebuffer*                              pFramebuffer);
2834fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
2835af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
2836fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkDevice                                    device,
283769f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu    VkFramebuffer                               framebuffer,
2838c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
2839fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
2840af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
2841fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkDevice                                    device,
2842fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    const VkRenderPassCreateInfo*               pCreateInfo,
2843c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
2844fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkRenderPass*                               pRenderPass);
2845fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
2846af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
2847fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkDevice                                    device,
284869f40128cce0970d10aaa30ea8c6b56a7dda3f36Chia-I Wu    VkRenderPass                                renderPass,
2849c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
2850fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter
2851af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
2852fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkDevice                                    device,
2853fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkRenderPass                                renderPass,
2854fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkExtent2D*                                 pGranularity);
285589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2856af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
2857f02f9f8606b4b6b1604f7efd62ec5fc5bd6dfef8Cody Northrop    VkDevice                                    device,
2858c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkCommandPoolCreateInfo*              pCreateInfo,
2859c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator,
2860c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandPool*                              pCommandPool);
2861f02f9f8606b4b6b1604f7efd62ec5fc5bd6dfef8Cody Northrop
2862af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
2863f02f9f8606b4b6b1604f7efd62ec5fc5bd6dfef8Cody Northrop    VkDevice                                    device,
28647c8aef7f90fd3502764c4604883b362cc3b326fdChia-I Wu    VkCommandPool                               commandPool,
2865c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkAllocationCallbacks*                pAllocator);
2866f02f9f8606b4b6b1604f7efd62ec5fc5bd6dfef8Cody Northrop
2867af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
2868f02f9f8606b4b6b1604f7efd62ec5fc5bd6dfef8Cody Northrop    VkDevice                                    device,
28697c8aef7f90fd3502764c4604883b362cc3b326fdChia-I Wu    VkCommandPool                               commandPool,
2870c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandPoolResetFlags                     flags);
2871f02f9f8606b4b6b1604f7efd62ec5fc5bd6dfef8Cody Northrop
2872af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
2873f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkDevice                                    device,
2874c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkCommandBufferAllocateInfo*          pAllocateInfo,
2875c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer*                            pCommandBuffers);
287689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2877af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
2878de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour    VkDevice                                    device,
28797c8aef7f90fd3502764c4604883b362cc3b326fdChia-I Wu    VkCommandPool                               commandPool,
2880763a749795bb4827efbbf19cbc87b959511496ddChia-I Wu    uint32_t                                    commandBufferCount,
2881c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkCommandBuffer*                      pCommandBuffers);
2882de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
2883af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
2884c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
2885c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkCommandBufferBeginInfo*             pBeginInfo);
288689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2887af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
2888c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer);
288989e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2890af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
2891c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
2892c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBufferResetFlags                   flags);
289389e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2894af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
2895c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
2896f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkPipelineBindPoint                         pipelineBindPoint,
2897f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkPipeline                                  pipeline);
289889e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2899af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
2900c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
2901f25165255ccfd9bce7c80b77942fc4f2132947a2Jon Ashburn    uint32_t                                    firstViewport,
2902932cdb54a622f4ca69a25071eecbac235b4dc16fCourtney Goeltzenleuchter    uint32_t                                    viewportCount,
2903932cdb54a622f4ca69a25071eecbac235b4dc16fCourtney Goeltzenleuchter    const VkViewport*                           pViewports);
2904932cdb54a622f4ca69a25071eecbac235b4dc16fCourtney Goeltzenleuchter
2905af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
2906c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
2907f25165255ccfd9bce7c80b77942fc4f2132947a2Jon Ashburn    uint32_t                                    firstScissor,
2908932cdb54a622f4ca69a25071eecbac235b4dc16fCourtney Goeltzenleuchter    uint32_t                                    scissorCount,
290909772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter    const VkRect2D*                             pScissors);
291009772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter
2911af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
2912c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
291309772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter    float                                       lineWidth);
291409772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter
2915af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
2916c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
2917fa950c5a4c7283897b7b86fc8de50c2c9936db79Chia-I Wu    float                                       depthBiasConstantFactor,
291809772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter    float                                       depthBiasClamp,
2919fa950c5a4c7283897b7b86fc8de50c2c9936db79Chia-I Wu    float                                       depthBiasSlopeFactor);
2920de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
2921af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
2922c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
29237e470703805a7c93655ea18f553e225e84356429Chia-I Wu    const float                                 blendConstants[4]);
2924f5bd2253ff4114ac446f8eb820e78d56f711020fCody Northrop
2925af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
2926c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
292709772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter    float                                       minDepthBounds,
292809772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter    float                                       maxDepthBounds);
2929de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
2930af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
2931c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
293209772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter    VkStencilFaceFlags                          faceMask,
2933c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    uint32_t                                    compareMask);
2934de4124da4233d201bf1d7326acf0e8bf53d5bee5Tony Barbour
2935af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
2936c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
293709772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter    VkStencilFaceFlags                          faceMask,
2938c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    uint32_t                                    writeMask);
29392605cb05ec149b2e2668540501dc79c71b6a67e9Cody Northrop
2940af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
2941c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
294209772bb64bc1c6577edef89074cbd9132191f402Courtney Goeltzenleuchter    VkStencilFaceFlags                          faceMask,
2943c51b121913d6f21ccefb3f7595178d3c87e11de4Chia-I Wu    uint32_t                                    reference);
294489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2945af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
2946c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
2947f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkPipelineBindPoint                         pipelineBindPoint,
2948a65c463d9b2f77e47a9e33f76fa211f63b872d5eMark Lobodzinski    VkPipelineLayout                            layout,
29491a01b1dd0734eb91e2a36509dab88f5cdfb7f1e9Cody Northrop    uint32_t                                    firstSet,
2950763a749795bb4827efbbf19cbc87b959511496ddChia-I Wu    uint32_t                                    descriptorSetCount,
2951f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkDescriptorSet*                      pDescriptorSets,
29521a01b1dd0734eb91e2a36509dab88f5cdfb7f1e9Cody Northrop    uint32_t                                    dynamicOffsetCount,
29531a01b1dd0734eb91e2a36509dab88f5cdfb7f1e9Cody Northrop    const uint32_t*                             pDynamicOffsets);
295489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2955af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
2956c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
2957f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkBuffer                                    buffer,
29588205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour    VkDeviceSize                                offset,
2959f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkIndexType                                 indexType);
296089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2961af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
2962c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
2963f25165255ccfd9bce7c80b77942fc4f2132947a2Jon Ashburn    uint32_t                                    firstBinding,
29644696294e24f2473125f417d030d31540ac0a3a73Courtney Goeltzenleuchter    uint32_t                                    bindingCount,
29654696294e24f2473125f417d030d31540ac0a3a73Courtney Goeltzenleuchter    const VkBuffer*                             pBuffers,
29668205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour    const VkDeviceSize*                         pOffsets);
296789e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2968af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdDraw(
2969c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
297089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    uint32_t                                    vertexCount,
29714ff11cc681bf32052b69573eb1418173f6b0262bCourtney Goeltzenleuchter    uint32_t                                    instanceCount,
29724ff11cc681bf32052b69573eb1418173f6b0262bCourtney Goeltzenleuchter    uint32_t                                    firstVertex,
29734ff11cc681bf32052b69573eb1418173f6b0262bCourtney Goeltzenleuchter    uint32_t                                    firstInstance);
297489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2975af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
2976c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
297789e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    uint32_t                                    indexCount,
29784ff11cc681bf32052b69573eb1418173f6b0262bCourtney Goeltzenleuchter    uint32_t                                    instanceCount,
29794ff11cc681bf32052b69573eb1418173f6b0262bCourtney Goeltzenleuchter    uint32_t                                    firstIndex,
298089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    int32_t                                     vertexOffset,
29814ff11cc681bf32052b69573eb1418173f6b0262bCourtney Goeltzenleuchter    uint32_t                                    firstInstance);
298289e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2983af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
2984c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
2985f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkBuffer                                    buffer,
29868205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour    VkDeviceSize                                offset,
2987763a749795bb4827efbbf19cbc87b959511496ddChia-I Wu    uint32_t                                    drawCount,
298889e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    uint32_t                                    stride);
298989e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2990af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
2991c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
2992f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkBuffer                                    buffer,
29938205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour    VkDeviceSize                                offset,
2994763a749795bb4827efbbf19cbc87b959511496ddChia-I Wu    uint32_t                                    drawCount,
299589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    uint32_t                                    stride);
299689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
2997af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
2998c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
299989e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    uint32_t                                    x,
300089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    uint32_t                                    y,
300189e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    uint32_t                                    z);
3002f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter
3003af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
3004c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
3005f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkBuffer                                    buffer,
30068205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour    VkDeviceSize                                offset);
300789e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3008af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
3009c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
3010f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkBuffer                                    srcBuffer,
30111f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkBuffer                                    dstBuffer,
301289e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    uint32_t                                    regionCount,
3013f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkBufferCopy*                         pRegions);
301489e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3015af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
3016c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
3017f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkImage                                     srcImage,
3018f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkImageLayout                               srcImageLayout,
30191f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkImage                                     dstImage,
30201f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkImageLayout                               dstImageLayout,
302189e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    uint32_t                                    regionCount,
3022f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkImageCopy*                          pRegions);
302389e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3024af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
3025c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
3026f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkImage                                     srcImage,
3027f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkImageLayout                               srcImageLayout,
30281f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkImage                                     dstImage,
30291f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkImageLayout                               dstImageLayout,
303089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    uint32_t                                    regionCount,
303120f68594175ea65bde6294bb2c0959024a3df155Mark Lobodzinski    const VkImageBlit*                          pRegions,
30323603b0843e868bd46b11eaf1d64ccdb260599609Chia-I Wu    VkFilter                                    filter);
303389e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3034af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
3035c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
3036f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkBuffer                                    srcBuffer,
30371f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkImage                                     dstImage,
30381f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkImageLayout                               dstImageLayout,
303989e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    uint32_t                                    regionCount,
3040f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkBufferImageCopy*                    pRegions);
304189e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3042af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
3043c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
3044f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkImage                                     srcImage,
3045f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkImageLayout                               srcImageLayout,
30461f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkBuffer                                    dstBuffer,
304789e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    uint32_t                                    regionCount,
3048f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkBufferImageCopy*                    pRegions);
304989e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3050af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
3051c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
30521f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkBuffer                                    dstBuffer,
30531f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkDeviceSize                                dstOffset,
30548205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour    VkDeviceSize                                dataSize,
30556fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz    const void*                                 pData);
305689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3057af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
3058c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
30591f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkBuffer                                    dstBuffer,
30601f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkDeviceSize                                dstOffset,
30617e470703805a7c93655ea18f553e225e84356429Chia-I Wu    VkDeviceSize                                size,
306289e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    uint32_t                                    data);
306389e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3064af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
3065c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
3066f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkImage                                     image,
3067f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkImageLayout                               imageLayout,
3068e3105972bfdc54e2cca65acf44d4ffa8d85881f5Chris Forbes    const VkClearColorValue*                    pColor,
306989e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    uint32_t                                    rangeCount,
3070f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkImageSubresourceRange*              pRanges);
307189e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3072af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
3073c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
3074f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkImage                                     image,
3075f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkImageLayout                               imageLayout,
3076315ad996d8b5c2edc487b85ea34b50eeca03b831Courtney Goeltzenleuchter    const VkClearDepthStencilValue*             pDepthStencil,
307789e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    uint32_t                                    rangeCount,
3078f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    const VkImageSubresourceRange*              pRanges);
307989e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3080af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
3081c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
30829feb073965d9c1c1f419045940af5753dd3c41d9Courtney Goeltzenleuchter    uint32_t                                    attachmentCount,
30839feb073965d9c1c1f419045940af5753dd3c41d9Courtney Goeltzenleuchter    const VkClearAttachment*                    pAttachments,
30842951d7d57326884c44f0ecc3e8b45941f44a00baChris Forbes    uint32_t                                    rectCount,
3085a12e29179a1ca44eb6bbc0c03850b1bf02398081Courtney Goeltzenleuchter    const VkClearRect*                          pRects);
30862951d7d57326884c44f0ecc3e8b45941f44a00baChris Forbes
3087af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
3088c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
3089f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkImage                                     srcImage,
3090f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkImageLayout                               srcImageLayout,
30911f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkImage                                     dstImage,
30921f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkImageLayout                               dstImageLayout,
309311f74376aa025d0b853c5926fc785a4a1701dc02Tony Barbour    uint32_t                                    regionCount,
309411f74376aa025d0b853c5926fc785a4a1701dc02Tony Barbour    const VkImageResolve*                       pRegions);
309589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3096af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
3097c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
3098f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkEvent                                     event,
3099c2e987e09f0a47232d337e79d301ed94abc66cb5Tony Barbour    VkPipelineStageFlags                        stageMask);
310089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3101af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
3102c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
3103f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkEvent                                     event,
3104c2e987e09f0a47232d337e79d301ed94abc66cb5Tony Barbour    VkPipelineStageFlags                        stageMask);
310589e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3106af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
3107c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
31088205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour    uint32_t                                    eventCount,
31098205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour    const VkEvent*                              pEvents,
3110fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkPipelineStageFlags                        srcStageMask,
31111f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkPipelineStageFlags                        dstStageMask,
31121f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    uint32_t                                    memoryBarrierCount,
3113a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    const VkMemoryBarrier*                      pMemoryBarriers,
3114a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    uint32_t                                    bufferMemoryBarrierCount,
3115a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
3116a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    uint32_t                                    imageMemoryBarrierCount,
3117a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    const VkImageMemoryBarrier*                 pImageMemoryBarriers);
311889e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3119af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
3120c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
3121fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkPipelineStageFlags                        srcStageMask,
31221f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkPipelineStageFlags                        dstStageMask,
31233ffcd73338dfeb8c3d9da4f5ba388311aad0d49fChia-I Wu    VkDependencyFlags                           dependencyFlags,
31241f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    uint32_t                                    memoryBarrierCount,
3125a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    const VkMemoryBarrier*                      pMemoryBarriers,
3126a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    uint32_t                                    bufferMemoryBarrierCount,
3127a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    const VkBufferMemoryBarrier*                pBufferMemoryBarriers,
3128a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    uint32_t                                    imageMemoryBarrierCount,
3129a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    const VkImageMemoryBarrier*                 pImageMemoryBarriers);
313089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3131af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
3132c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
3133f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkQueryPool                                 queryPool,
3134a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    uint32_t                                    query,
31358205d901f17b1c76d89c956be235cf4e7a20a546Tony Barbour    VkQueryControlFlags                         flags);
313689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3137af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
3138c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
3139f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkQueryPool                                 queryPool,
3140a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    uint32_t                                    query);
314189e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3142af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
3143c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
3144f4f6959427a23514cc5070800b72f48074751672Courtney Goeltzenleuchter    VkQueryPool                                 queryPool,
3145f25165255ccfd9bce7c80b77942fc4f2132947a2Jon Ashburn    uint32_t                                    firstQuery,
314689e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter    uint32_t                                    queryCount);
314789e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3148af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
3149c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
315059c215d5fe27c1fd8da2a14be6e144d40f2cd6b4Chia-I Wu    VkPipelineStageFlagBits                     pipelineStage,
31518f6fd6e5dc034c65fe97e9fccb2cafcaee1613edChia-I Wu    VkQueryPool                                 queryPool,
3152a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    uint32_t                                    query);
315389e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3154af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
3155c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
315698049069e7c1b3c9a3e377b83c75c445cd60ef7dCourtney Goeltzenleuchter    VkQueryPool                                 queryPool,
3157f25165255ccfd9bce7c80b77942fc4f2132947a2Jon Ashburn    uint32_t                                    firstQuery,
315898049069e7c1b3c9a3e377b83c75c445cd60ef7dCourtney Goeltzenleuchter    uint32_t                                    queryCount,
31591f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkBuffer                                    dstBuffer,
31601f85191a3a8479194ecb7b937aee284cf80cf08fChia-I Wu    VkDeviceSize                                dstOffset,
31611f6942dceacfb1892202a3b2dcb0ed84ec7169d1Chia-I Wu    VkDeviceSize                                stride,
31623e3420a0af896b1667d736a8a1ad54fe13580ec3Tony Barbour    VkQueryResultFlags                          flags);
316398049069e7c1b3c9a3e377b83c75c445cd60ef7dCourtney Goeltzenleuchter
3164af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
3165c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
3166fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkPipelineLayout                            layout,
3167fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter    VkShaderStageFlags                          stageFlags,
3168932f1bd6f761d7d2466c53f50e34609114e56749Chia-I Wu    uint32_t                                    offset,
3169932f1bd6f761d7d2466c53f50e34609114e56749Chia-I Wu    uint32_t                                    size,
31700ee0ca095d9dfff2b0493047fd74f3bae0160305Chia-I Wu    const void*                                 pValues);
317189e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3172af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
3173c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
3174c278df83ca4958fda8efcf3b52e2f89c8ccd8991Chia-I Wu    const VkRenderPassBeginInfo*                pRenderPassBegin,
31754291d8822ec2a685ef89ec2b210ff16857e25310Chia-I Wu    VkSubpassContents                           contents);
3176c278df83ca4958fda8efcf3b52e2f89c8ccd8991Chia-I Wu
3177af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
3178c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
31794291d8822ec2a685ef89ec2b210ff16857e25310Chia-I Wu    VkSubpassContents                           contents);
318089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3181af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
3182c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer);
318388eaa3bf0c7874f8b62cf35e3b649201ecc47c36Chia-I Wu
3184af9e4fd72c31e1080cadc3d6baa16b669af8e913Chia-I WuVKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
3185c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    VkCommandBuffer                             commandBuffer,
3186a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    uint32_t                                    commandBufferCount,
3187c04519cd6e39256351df868dc721259d904f4542Chia-I Wu    const VkCommandBuffer*                      pCommandBuffers);
3188fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter#endif
318989e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
3190677dec87b34f541122412f539422c763cd944b5cIan Elliott#define VK_KHR_surface 1
3191677dec87b34f541122412f539422c763cd944b5cIan ElliottVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
3192677dec87b34f541122412f539422c763cd944b5cIan Elliott
3193bd897d82d89ac576544e8b2aad1136edbee0e6f2Jon Ashburn#define VK_KHR_SURFACE_SPEC_VERSION       25
3194677dec87b34f541122412f539422c763cd944b5cIan Elliott#define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
31954e5f5b82c13db9d04cbd61f17b95702d55bda968Jon Ashburn#define VK_COLORSPACE_SRGB_NONLINEAR_KHR  VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
3196677dec87b34f541122412f539422c763cd944b5cIan Elliott
3197677dec87b34f541122412f539422c763cd944b5cIan Elliott
3198677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef enum VkColorSpaceKHR {
31994e5f5b82c13db9d04cbd61f17b95702d55bda968Jon Ashburn    VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
32004e5f5b82c13db9d04cbd61f17b95702d55bda968Jon Ashburn    VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
32014e5f5b82c13db9d04cbd61f17b95702d55bda968Jon Ashburn    VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
32024e5f5b82c13db9d04cbd61f17b95702d55bda968Jon Ashburn    VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1),
3203c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
3204677dec87b34f541122412f539422c763cd944b5cIan Elliott} VkColorSpaceKHR;
3205677dec87b34f541122412f539422c763cd944b5cIan Elliott
3206677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef enum VkPresentModeKHR {
3207677dec87b34f541122412f539422c763cd944b5cIan Elliott    VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
3208677dec87b34f541122412f539422c763cd944b5cIan Elliott    VK_PRESENT_MODE_MAILBOX_KHR = 1,
3209677dec87b34f541122412f539422c763cd944b5cIan Elliott    VK_PRESENT_MODE_FIFO_KHR = 2,
3210677dec87b34f541122412f539422c763cd944b5cIan Elliott    VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
3211c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR,
3212c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
3213c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
3214c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
3215677dec87b34f541122412f539422c763cd944b5cIan Elliott} VkPresentModeKHR;
3216677dec87b34f541122412f539422c763cd944b5cIan Elliott
3217677dec87b34f541122412f539422c763cd944b5cIan Elliott
3218677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef enum VkSurfaceTransformFlagBitsKHR {
3219bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
3220677dec87b34f541122412f539422c763cd944b5cIan Elliott    VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
3221677dec87b34f541122412f539422c763cd944b5cIan Elliott    VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
3222677dec87b34f541122412f539422c763cd944b5cIan Elliott    VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
3223677dec87b34f541122412f539422c763cd944b5cIan Elliott    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
3224677dec87b34f541122412f539422c763cd944b5cIan Elliott    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
3225677dec87b34f541122412f539422c763cd944b5cIan Elliott    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
3226677dec87b34f541122412f539422c763cd944b5cIan Elliott    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
3227677dec87b34f541122412f539422c763cd944b5cIan Elliott    VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
3228c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
3229677dec87b34f541122412f539422c763cd944b5cIan Elliott} VkSurfaceTransformFlagBitsKHR;
3230677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef VkFlags VkSurfaceTransformFlagsKHR;
3231677dec87b34f541122412f539422c763cd944b5cIan Elliott
3232677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef enum VkCompositeAlphaFlagBitsKHR {
3233677dec87b34f541122412f539422c763cd944b5cIan Elliott    VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3234677dec87b34f541122412f539422c763cd944b5cIan Elliott    VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3235677dec87b34f541122412f539422c763cd944b5cIan Elliott    VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3236677dec87b34f541122412f539422c763cd944b5cIan Elliott    VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
3237c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
3238677dec87b34f541122412f539422c763cd944b5cIan Elliott} VkCompositeAlphaFlagBitsKHR;
3239677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef VkFlags VkCompositeAlphaFlagsKHR;
3240677dec87b34f541122412f539422c763cd944b5cIan Elliott
3241677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef struct VkSurfaceCapabilitiesKHR {
32428a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                         minImageCount;
32438a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                         maxImageCount;
32448a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent2D                       currentExtent;
32458a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent2D                       minImageExtent;
32468a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent2D                       maxImageExtent;
32478a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                         maxImageArrayLayers;
32488a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSurfaceTransformFlagsKHR       supportedTransforms;
32498a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSurfaceTransformFlagBitsKHR    currentTransform;
32508a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkCompositeAlphaFlagsKHR         supportedCompositeAlpha;
32518a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageUsageFlags                supportedUsageFlags;
3252677dec87b34f541122412f539422c763cd944b5cIan Elliott} VkSurfaceCapabilitiesKHR;
3253677dec87b34f541122412f539422c763cd944b5cIan Elliott
3254677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef struct VkSurfaceFormatKHR {
32558a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkFormat           format;
32568a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkColorSpaceKHR    colorSpace;
3257677dec87b34f541122412f539422c763cd944b5cIan Elliott} VkSurfaceFormatKHR;
3258677dec87b34f541122412f539422c763cd944b5cIan Elliott
3259677dec87b34f541122412f539422c763cd944b5cIan Elliott
3260bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
3261677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
3262677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
3263677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
3264677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
3265677dec87b34f541122412f539422c763cd944b5cIan Elliott
326689dc27a71a1f8c66dfa118a0e766476d24bc3b5bJon Ashburn#ifndef VK_NO_PROTOTYPES
3267677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
3268bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VkInstance                                  instance,
3269bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VkSurfaceKHR                                surface,
3270677dec87b34f541122412f539422c763cd944b5cIan Elliott    const VkAllocationCallbacks*                pAllocator);
3271677dec87b34f541122412f539422c763cd944b5cIan Elliott
3272677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
3273677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkPhysicalDevice                            physicalDevice,
3274677dec87b34f541122412f539422c763cd944b5cIan Elliott    uint32_t                                    queueFamilyIndex,
3275677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkSurfaceKHR                                surface,
3276677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkBool32*                                   pSupported);
3277677dec87b34f541122412f539422c763cd944b5cIan Elliott
3278677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
3279677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkPhysicalDevice                            physicalDevice,
3280677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkSurfaceKHR                                surface,
3281677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities);
3282677dec87b34f541122412f539422c763cd944b5cIan Elliott
3283677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
3284677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkPhysicalDevice                            physicalDevice,
3285677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkSurfaceKHR                                surface,
3286677dec87b34f541122412f539422c763cd944b5cIan Elliott    uint32_t*                                   pSurfaceFormatCount,
3287677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkSurfaceFormatKHR*                         pSurfaceFormats);
3288677dec87b34f541122412f539422c763cd944b5cIan Elliott
3289677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
3290677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkPhysicalDevice                            physicalDevice,
3291677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkSurfaceKHR                                surface,
3292677dec87b34f541122412f539422c763cd944b5cIan Elliott    uint32_t*                                   pPresentModeCount,
3293677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkPresentModeKHR*                           pPresentModes);
3294677dec87b34f541122412f539422c763cd944b5cIan Elliott#endif
3295677dec87b34f541122412f539422c763cd944b5cIan Elliott
3296677dec87b34f541122412f539422c763cd944b5cIan Elliott#define VK_KHR_swapchain 1
3297677dec87b34f541122412f539422c763cd944b5cIan ElliottVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
3298677dec87b34f541122412f539422c763cd944b5cIan Elliott
3299bd0c2fea0250850d635e990c6a7c76b768d1a63dJon Ashburn#define VK_KHR_SWAPCHAIN_SPEC_VERSION     68
3300677dec87b34f541122412f539422c763cd944b5cIan Elliott#define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain"
3301677dec87b34f541122412f539422c763cd944b5cIan Elliott
3302677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef VkFlags VkSwapchainCreateFlagsKHR;
3303677dec87b34f541122412f539422c763cd944b5cIan Elliott
3304677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef struct VkSwapchainCreateInfoKHR {
33058a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                  sType;
33068a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                      pNext;
33078a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSwapchainCreateFlagsKHR        flags;
33088a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSurfaceKHR                     surface;
33098a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                         minImageCount;
33108a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkFormat                         imageFormat;
33118a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkColorSpaceKHR                  imageColorSpace;
33128a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent2D                       imageExtent;
33138a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                         imageArrayLayers;
33148a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkImageUsageFlags                imageUsage;
33158a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSharingMode                    imageSharingMode;
33168a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                         queueFamilyIndexCount;
33178a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const uint32_t*                  pQueueFamilyIndices;
33188a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSurfaceTransformFlagBitsKHR    preTransform;
33198a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkCompositeAlphaFlagBitsKHR      compositeAlpha;
33208a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkPresentModeKHR                 presentMode;
33218a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32                         clipped;
33228a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSwapchainKHR                   oldSwapchain;
3323677dec87b34f541122412f539422c763cd944b5cIan Elliott} VkSwapchainCreateInfoKHR;
3324677dec87b34f541122412f539422c763cd944b5cIan Elliott
3325677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef struct VkPresentInfoKHR {
33268a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType          sType;
33278a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*              pNext;
33288a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                 waitSemaphoreCount;
33298a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkSemaphore*       pWaitSemaphores;
33308a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                 swapchainCount;
33318a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const VkSwapchainKHR*    pSwapchains;
33328a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const uint32_t*          pImageIndices;
33338a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkResult*                pResults;
3334677dec87b34f541122412f539422c763cd944b5cIan Elliott} VkPresentInfoKHR;
3335677dec87b34f541122412f539422c763cd944b5cIan Elliott
3336677dec87b34f541122412f539422c763cd944b5cIan Elliott
3337bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
3338bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
3339bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
3340bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
3341bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
3342677dec87b34f541122412f539422c763cd944b5cIan Elliott
334389dc27a71a1f8c66dfa118a0e766476d24bc3b5bJon Ashburn#ifndef VK_NO_PROTOTYPES
3344677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
3345bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VkDevice                                    device,
3346bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    const VkSwapchainCreateInfoKHR*             pCreateInfo,
3347677dec87b34f541122412f539422c763cd944b5cIan Elliott    const VkAllocationCallbacks*                pAllocator,
3348bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VkSwapchainKHR*                             pSwapchain);
3349677dec87b34f541122412f539422c763cd944b5cIan Elliott
3350677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
3351bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VkDevice                                    device,
3352bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VkSwapchainKHR                              swapchain,
3353677dec87b34f541122412f539422c763cd944b5cIan Elliott    const VkAllocationCallbacks*                pAllocator);
3354677dec87b34f541122412f539422c763cd944b5cIan Elliott
3355677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
3356bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VkDevice                                    device,
3357bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VkSwapchainKHR                              swapchain,
3358bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    uint32_t*                                   pSwapchainImageCount,
3359bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VkImage*                                    pSwapchainImages);
3360677dec87b34f541122412f539422c763cd944b5cIan Elliott
3361677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
3362bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VkDevice                                    device,
3363bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VkSwapchainKHR                              swapchain,
3364bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    uint64_t                                    timeout,
3365bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VkSemaphore                                 semaphore,
3366bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VkFence                                     fence,
3367bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    uint32_t*                                   pImageIndex);
3368677dec87b34f541122412f539422c763cd944b5cIan Elliott
3369677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
3370bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    VkQueue                                     queue,
3371bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    const VkPresentInfoKHR*                     pPresentInfo);
3372677dec87b34f541122412f539422c763cd944b5cIan Elliott#endif
3373677dec87b34f541122412f539422c763cd944b5cIan Elliott
3374677dec87b34f541122412f539422c763cd944b5cIan Elliott#define VK_KHR_display 1
3375677dec87b34f541122412f539422c763cd944b5cIan ElliottVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
3376677dec87b34f541122412f539422c763cd944b5cIan ElliottVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
3377677dec87b34f541122412f539422c763cd944b5cIan Elliott
3378bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott#define VK_KHR_DISPLAY_SPEC_VERSION       21
3379677dec87b34f541122412f539422c763cd944b5cIan Elliott#define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
3380677dec87b34f541122412f539422c763cd944b5cIan Elliott
3381677dec87b34f541122412f539422c763cd944b5cIan Elliott
3382677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef enum VkDisplayPlaneAlphaFlagBitsKHR {
3383677dec87b34f541122412f539422c763cd944b5cIan Elliott    VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3384677dec87b34f541122412f539422c763cd944b5cIan Elliott    VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
3385677dec87b34f541122412f539422c763cd944b5cIan Elliott    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
3386677dec87b34f541122412f539422c763cd944b5cIan Elliott    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
3387c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
3388677dec87b34f541122412f539422c763cd944b5cIan Elliott} VkDisplayPlaneAlphaFlagBitsKHR;
3389677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
339089ad8547b998deee053a9f4419c658e01226134fJon Ashburntypedef VkFlags VkDisplayModeCreateFlagsKHR;
3391677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
3392677dec87b34f541122412f539422c763cd944b5cIan Elliott
3393677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef struct VkDisplayPropertiesKHR {
33948a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDisplayKHR                  display;
33958a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const char*                   displayName;
33968a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent2D                    physicalDimensions;
33978a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent2D                    physicalResolution;
33988a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSurfaceTransformFlagsKHR    supportedTransforms;
33998a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32                      planeReorderPossible;
34008a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32                      persistentContent;
3401677dec87b34f541122412f539422c763cd944b5cIan Elliott} VkDisplayPropertiesKHR;
3402677dec87b34f541122412f539422c763cd944b5cIan Elliott
3403677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef struct VkDisplayModeParametersKHR {
34048a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent2D    visibleRegion;
34058a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t      refreshRate;
3406677dec87b34f541122412f539422c763cd944b5cIan Elliott} VkDisplayModeParametersKHR;
3407677dec87b34f541122412f539422c763cd944b5cIan Elliott
3408677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef struct VkDisplayModePropertiesKHR {
34098a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDisplayModeKHR              displayMode;
34108a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDisplayModeParametersKHR    parameters;
3411677dec87b34f541122412f539422c763cd944b5cIan Elliott} VkDisplayModePropertiesKHR;
3412677dec87b34f541122412f539422c763cd944b5cIan Elliott
3413677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef struct VkDisplayModeCreateInfoKHR {
34148a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                sType;
34158a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                    pNext;
34168a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDisplayModeCreateFlagsKHR    flags;
34178a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDisplayModeParametersKHR     parameters;
3418677dec87b34f541122412f539422c763cd944b5cIan Elliott} VkDisplayModeCreateInfoKHR;
3419677dec87b34f541122412f539422c763cd944b5cIan Elliott
3420677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef struct VkDisplayPlaneCapabilitiesKHR {
34218a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDisplayPlaneAlphaFlagsKHR    supportedAlpha;
34228a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkOffset2D                     minSrcPosition;
34238a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkOffset2D                     maxSrcPosition;
34248a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent2D                     minSrcExtent;
34258a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent2D                     maxSrcExtent;
34268a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkOffset2D                     minDstPosition;
34278a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkOffset2D                     maxDstPosition;
34288a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent2D                     minDstExtent;
34298a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent2D                     maxDstExtent;
3430677dec87b34f541122412f539422c763cd944b5cIan Elliott} VkDisplayPlaneCapabilitiesKHR;
3431677dec87b34f541122412f539422c763cd944b5cIan Elliott
3432677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef struct VkDisplayPlanePropertiesKHR {
34338a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDisplayKHR    currentDisplay;
34348a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t        currentStackIndex;
3435677dec87b34f541122412f539422c763cd944b5cIan Elliott} VkDisplayPlanePropertiesKHR;
3436677dec87b34f541122412f539422c763cd944b5cIan Elliott
3437677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef struct VkDisplaySurfaceCreateInfoKHR {
34388a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                   sType;
34398a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                       pNext;
34408a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDisplaySurfaceCreateFlagsKHR    flags;
34418a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDisplayModeKHR                  displayMode;
34428a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                          planeIndex;
34438a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    uint32_t                          planeStackIndex;
34448a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkSurfaceTransformFlagBitsKHR     transform;
34458a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    float                             globalAlpha;
34468a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkDisplayPlaneAlphaFlagBitsKHR    alphaMode;
34478a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkExtent2D                        imageExtent;
3448677dec87b34f541122412f539422c763cd944b5cIan Elliott} VkDisplaySurfaceCreateInfoKHR;
3449677dec87b34f541122412f539422c763cd944b5cIan Elliott
3450677dec87b34f541122412f539422c763cd944b5cIan Elliott
3451677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
3452677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
3453a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburntypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
3454677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
3455bd0c2fea0250850d635e990c6a7c76b768d1a63dJon Ashburntypedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
3456677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
3457677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3458677dec87b34f541122412f539422c763cd944b5cIan Elliott
345989dc27a71a1f8c66dfa118a0e766476d24bc3b5bJon Ashburn#ifndef VK_NO_PROTOTYPES
3460677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
3461677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkPhysicalDevice                            physicalDevice,
3462677dec87b34f541122412f539422c763cd944b5cIan Elliott    uint32_t*                                   pPropertyCount,
3463677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkDisplayPropertiesKHR*                     pProperties);
3464677dec87b34f541122412f539422c763cd944b5cIan Elliott
3465677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
3466677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkPhysicalDevice                            physicalDevice,
3467677dec87b34f541122412f539422c763cd944b5cIan Elliott    uint32_t*                                   pPropertyCount,
3468677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkDisplayPlanePropertiesKHR*                pProperties);
3469677dec87b34f541122412f539422c763cd944b5cIan Elliott
3470677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
3471677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkPhysicalDevice                            physicalDevice,
3472a4ae48bfd6f2e2a80e1f92e054a007cf90a4e218Jon Ashburn    uint32_t                                    planeIndex,
3473677dec87b34f541122412f539422c763cd944b5cIan Elliott    uint32_t*                                   pDisplayCount,
3474677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkDisplayKHR*                               pDisplays);
3475677dec87b34f541122412f539422c763cd944b5cIan Elliott
3476677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
3477677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkPhysicalDevice                            physicalDevice,
3478677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkDisplayKHR                                display,
3479677dec87b34f541122412f539422c763cd944b5cIan Elliott    uint32_t*                                   pPropertyCount,
3480677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkDisplayModePropertiesKHR*                 pProperties);
3481677dec87b34f541122412f539422c763cd944b5cIan Elliott
3482677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
3483677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkPhysicalDevice                            physicalDevice,
3484677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkDisplayKHR                                display,
3485677dec87b34f541122412f539422c763cd944b5cIan Elliott    const VkDisplayModeCreateInfoKHR*           pCreateInfo,
3486677dec87b34f541122412f539422c763cd944b5cIan Elliott    const VkAllocationCallbacks*                pAllocator,
3487677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkDisplayModeKHR*                           pMode);
3488677dec87b34f541122412f539422c763cd944b5cIan Elliott
3489677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
3490677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkPhysicalDevice                            physicalDevice,
3491677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkDisplayModeKHR                            mode,
3492677dec87b34f541122412f539422c763cd944b5cIan Elliott    uint32_t                                    planeIndex,
3493677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkDisplayPlaneCapabilitiesKHR*              pCapabilities);
3494677dec87b34f541122412f539422c763cd944b5cIan Elliott
3495677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
3496677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkInstance                                  instance,
3497677dec87b34f541122412f539422c763cd944b5cIan Elliott    const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo,
3498677dec87b34f541122412f539422c763cd944b5cIan Elliott    const VkAllocationCallbacks*                pAllocator,
3499677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkSurfaceKHR*                               pSurface);
3500677dec87b34f541122412f539422c763cd944b5cIan Elliott#endif
3501677dec87b34f541122412f539422c763cd944b5cIan Elliott
3502677dec87b34f541122412f539422c763cd944b5cIan Elliott#define VK_KHR_display_swapchain 1
3503bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9
3504677dec87b34f541122412f539422c763cd944b5cIan Elliott#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
3505677dec87b34f541122412f539422c763cd944b5cIan Elliott
3506677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef struct VkDisplayPresentInfoKHR {
35078a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType    sType;
35088a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*        pNext;
35098a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkRect2D           srcRect;
35108a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkRect2D           dstRect;
35118a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkBool32           persistent;
3512677dec87b34f541122412f539422c763cd944b5cIan Elliott} VkDisplayPresentInfoKHR;
3513677dec87b34f541122412f539422c763cd944b5cIan Elliott
3514677dec87b34f541122412f539422c763cd944b5cIan Elliott
3515677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
3516677dec87b34f541122412f539422c763cd944b5cIan Elliott
351789dc27a71a1f8c66dfa118a0e766476d24bc3b5bJon Ashburn#ifndef VK_NO_PROTOTYPES
3518677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
3519677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkDevice                                    device,
3520677dec87b34f541122412f539422c763cd944b5cIan Elliott    uint32_t                                    swapchainCount,
3521677dec87b34f541122412f539422c763cd944b5cIan Elliott    const VkSwapchainCreateInfoKHR*             pCreateInfos,
3522677dec87b34f541122412f539422c763cd944b5cIan Elliott    const VkAllocationCallbacks*                pAllocator,
3523677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkSwapchainKHR*                             pSwapchains);
3524677dec87b34f541122412f539422c763cd944b5cIan Elliott#endif
3525677dec87b34f541122412f539422c763cd944b5cIan Elliott
3526677dec87b34f541122412f539422c763cd944b5cIan Elliott#ifdef VK_USE_PLATFORM_XLIB_KHR
3527677dec87b34f541122412f539422c763cd944b5cIan Elliott#define VK_KHR_xlib_surface 1
3528677dec87b34f541122412f539422c763cd944b5cIan Elliott#include <X11/Xlib.h>
3529677dec87b34f541122412f539422c763cd944b5cIan Elliott
3530bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott#define VK_KHR_XLIB_SURFACE_SPEC_VERSION  6
3531677dec87b34f541122412f539422c763cd944b5cIan Elliott#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface"
3532677dec87b34f541122412f539422c763cd944b5cIan Elliott
3533bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef VkFlags VkXlibSurfaceCreateFlagsKHR;
3534bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott
3535bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef struct VkXlibSurfaceCreateInfoKHR {
35368a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                sType;
35378a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                    pNext;
35388a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkXlibSurfaceCreateFlagsKHR    flags;
35398a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    Display*                       dpy;
35408a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    Window                         window;
3541bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott} VkXlibSurfaceCreateInfoKHR;
3542bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott
3543bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott
3544bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3545677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID);
3546677dec87b34f541122412f539422c763cd944b5cIan Elliott
354789dc27a71a1f8c66dfa118a0e766476d24bc3b5bJon Ashburn#ifndef VK_NO_PROTOTYPES
3548677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR(
3549677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkInstance                                  instance,
3550bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    const VkXlibSurfaceCreateInfoKHR*           pCreateInfo,
3551677dec87b34f541122412f539422c763cd944b5cIan Elliott    const VkAllocationCallbacks*                pAllocator,
3552677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkSurfaceKHR*                               pSurface);
3553677dec87b34f541122412f539422c763cd944b5cIan Elliott
3554677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXlibPresentationSupportKHR(
3555677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkPhysicalDevice                            physicalDevice,
3556677dec87b34f541122412f539422c763cd944b5cIan Elliott    uint32_t                                    queueFamilyIndex,
3557677dec87b34f541122412f539422c763cd944b5cIan Elliott    Display*                                    dpy,
3558677dec87b34f541122412f539422c763cd944b5cIan Elliott    VisualID                                    visualID);
3559677dec87b34f541122412f539422c763cd944b5cIan Elliott#endif
3560677dec87b34f541122412f539422c763cd944b5cIan Elliott#endif /* VK_USE_PLATFORM_XLIB_KHR */
3561677dec87b34f541122412f539422c763cd944b5cIan Elliott
3562677dec87b34f541122412f539422c763cd944b5cIan Elliott#ifdef VK_USE_PLATFORM_XCB_KHR
3563677dec87b34f541122412f539422c763cd944b5cIan Elliott#define VK_KHR_xcb_surface 1
3564677dec87b34f541122412f539422c763cd944b5cIan Elliott#include <xcb/xcb.h>
3565677dec87b34f541122412f539422c763cd944b5cIan Elliott
3566bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott#define VK_KHR_XCB_SURFACE_SPEC_VERSION   6
3567677dec87b34f541122412f539422c763cd944b5cIan Elliott#define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface"
3568677dec87b34f541122412f539422c763cd944b5cIan Elliott
3569bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef VkFlags VkXcbSurfaceCreateFlagsKHR;
3570bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott
3571bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef struct VkXcbSurfaceCreateInfoKHR {
35728a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType               sType;
35738a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                   pNext;
35748a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkXcbSurfaceCreateFlagsKHR    flags;
35758a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    xcb_connection_t*             connection;
35768a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    xcb_window_t                  window;
3577bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott} VkXcbSurfaceCreateInfoKHR;
3578bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott
3579bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott
3580bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3581677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id);
3582677dec87b34f541122412f539422c763cd944b5cIan Elliott
358389dc27a71a1f8c66dfa118a0e766476d24bc3b5bJon Ashburn#ifndef VK_NO_PROTOTYPES
3584677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkCreateXcbSurfaceKHR(
3585677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkInstance                                  instance,
3586bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    const VkXcbSurfaceCreateInfoKHR*            pCreateInfo,
3587677dec87b34f541122412f539422c763cd944b5cIan Elliott    const VkAllocationCallbacks*                pAllocator,
3588677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkSurfaceKHR*                               pSurface);
3589677dec87b34f541122412f539422c763cd944b5cIan Elliott
3590677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXcbPresentationSupportKHR(
3591677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkPhysicalDevice                            physicalDevice,
3592677dec87b34f541122412f539422c763cd944b5cIan Elliott    uint32_t                                    queueFamilyIndex,
3593677dec87b34f541122412f539422c763cd944b5cIan Elliott    xcb_connection_t*                           connection,
3594677dec87b34f541122412f539422c763cd944b5cIan Elliott    xcb_visualid_t                              visual_id);
3595677dec87b34f541122412f539422c763cd944b5cIan Elliott#endif
3596677dec87b34f541122412f539422c763cd944b5cIan Elliott#endif /* VK_USE_PLATFORM_XCB_KHR */
3597677dec87b34f541122412f539422c763cd944b5cIan Elliott
3598677dec87b34f541122412f539422c763cd944b5cIan Elliott#ifdef VK_USE_PLATFORM_WAYLAND_KHR
3599677dec87b34f541122412f539422c763cd944b5cIan Elliott#define VK_KHR_wayland_surface 1
3600677dec87b34f541122412f539422c763cd944b5cIan Elliott#include <wayland-client.h>
3601677dec87b34f541122412f539422c763cd944b5cIan Elliott
3602bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott#define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 5
3603677dec87b34f541122412f539422c763cd944b5cIan Elliott#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface"
3604677dec87b34f541122412f539422c763cd944b5cIan Elliott
3605bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef VkFlags VkWaylandSurfaceCreateFlagsKHR;
3606bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott
3607bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef struct VkWaylandSurfaceCreateInfoKHR {
36088a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                   sType;
36098a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                       pNext;
36108a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkWaylandSurfaceCreateFlagsKHR    flags;
36118a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    struct wl_display*                display;
36128a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    struct wl_surface*                surface;
3613bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott} VkWaylandSurfaceCreateInfoKHR;
3614bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott
3615bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott
3616bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3617677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display);
3618677dec87b34f541122412f539422c763cd944b5cIan Elliott
361989dc27a71a1f8c66dfa118a0e766476d24bc3b5bJon Ashburn#ifndef VK_NO_PROTOTYPES
3620677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR(
3621677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkInstance                                  instance,
3622bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    const VkWaylandSurfaceCreateInfoKHR*        pCreateInfo,
3623677dec87b34f541122412f539422c763cd944b5cIan Elliott    const VkAllocationCallbacks*                pAllocator,
3624677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkSurfaceKHR*                               pSurface);
3625677dec87b34f541122412f539422c763cd944b5cIan Elliott
3626677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR(
3627677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkPhysicalDevice                            physicalDevice,
3628677dec87b34f541122412f539422c763cd944b5cIan Elliott    uint32_t                                    queueFamilyIndex,
3629677dec87b34f541122412f539422c763cd944b5cIan Elliott    struct wl_display*                          display);
3630677dec87b34f541122412f539422c763cd944b5cIan Elliott#endif
3631677dec87b34f541122412f539422c763cd944b5cIan Elliott#endif /* VK_USE_PLATFORM_WAYLAND_KHR */
3632677dec87b34f541122412f539422c763cd944b5cIan Elliott
3633677dec87b34f541122412f539422c763cd944b5cIan Elliott#ifdef VK_USE_PLATFORM_MIR_KHR
3634677dec87b34f541122412f539422c763cd944b5cIan Elliott#define VK_KHR_mir_surface 1
3635677dec87b34f541122412f539422c763cd944b5cIan Elliott#include <mir_toolkit/client_types.h>
3636677dec87b34f541122412f539422c763cd944b5cIan Elliott
3637bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott#define VK_KHR_MIR_SURFACE_SPEC_VERSION   4
3638677dec87b34f541122412f539422c763cd944b5cIan Elliott#define VK_KHR_MIR_SURFACE_EXTENSION_NAME "VK_KHR_mir_surface"
3639677dec87b34f541122412f539422c763cd944b5cIan Elliott
3640bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef VkFlags VkMirSurfaceCreateFlagsKHR;
3641bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott
3642bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef struct VkMirSurfaceCreateInfoKHR {
36438a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType               sType;
36448a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                   pNext;
36458a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkMirSurfaceCreateFlagsKHR    flags;
36468a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    MirConnection*                connection;
36478a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    MirSurface*                   mirSurface;
3648bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott} VkMirSurfaceCreateInfoKHR;
3649bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott
3650bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott
3651bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef VkResult (VKAPI_PTR *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3652677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection);
3653677dec87b34f541122412f539422c763cd944b5cIan Elliott
365489dc27a71a1f8c66dfa118a0e766476d24bc3b5bJon Ashburn#ifndef VK_NO_PROTOTYPES
3655677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkCreateMirSurfaceKHR(
3656677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkInstance                                  instance,
3657bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    const VkMirSurfaceCreateInfoKHR*            pCreateInfo,
3658677dec87b34f541122412f539422c763cd944b5cIan Elliott    const VkAllocationCallbacks*                pAllocator,
3659677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkSurfaceKHR*                               pSurface);
3660677dec87b34f541122412f539422c763cd944b5cIan Elliott
3661677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceMirPresentationSupportKHR(
3662677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkPhysicalDevice                            physicalDevice,
3663677dec87b34f541122412f539422c763cd944b5cIan Elliott    uint32_t                                    queueFamilyIndex,
3664677dec87b34f541122412f539422c763cd944b5cIan Elliott    MirConnection*                              connection);
3665677dec87b34f541122412f539422c763cd944b5cIan Elliott#endif
3666677dec87b34f541122412f539422c763cd944b5cIan Elliott#endif /* VK_USE_PLATFORM_MIR_KHR */
3667677dec87b34f541122412f539422c763cd944b5cIan Elliott
3668677dec87b34f541122412f539422c763cd944b5cIan Elliott#ifdef VK_USE_PLATFORM_ANDROID_KHR
3669677dec87b34f541122412f539422c763cd944b5cIan Elliott#define VK_KHR_android_surface 1
3670677dec87b34f541122412f539422c763cd944b5cIan Elliott#include <android/native_window.h>
3671677dec87b34f541122412f539422c763cd944b5cIan Elliott
3672bd897d82d89ac576544e8b2aad1136edbee0e6f2Jon Ashburn#define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
3673677dec87b34f541122412f539422c763cd944b5cIan Elliott#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
3674677dec87b34f541122412f539422c763cd944b5cIan Elliott
3675bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef VkFlags VkAndroidSurfaceCreateFlagsKHR;
3676bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott
3677bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef struct VkAndroidSurfaceCreateInfoKHR {
36788a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                   sType;
36798a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                       pNext;
36808a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkAndroidSurfaceCreateFlagsKHR    flags;
36818a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    ANativeWindow*                    window;
3682bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott} VkAndroidSurfaceCreateInfoKHR;
3683bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott
3684bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott
3685bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3686677dec87b34f541122412f539422c763cd944b5cIan Elliott
368789dc27a71a1f8c66dfa118a0e766476d24bc3b5bJon Ashburn#ifndef VK_NO_PROTOTYPES
3688677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR(
3689677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkInstance                                  instance,
3690bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    const VkAndroidSurfaceCreateInfoKHR*        pCreateInfo,
3691677dec87b34f541122412f539422c763cd944b5cIan Elliott    const VkAllocationCallbacks*                pAllocator,
3692677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkSurfaceKHR*                               pSurface);
3693677dec87b34f541122412f539422c763cd944b5cIan Elliott#endif
3694677dec87b34f541122412f539422c763cd944b5cIan Elliott#endif /* VK_USE_PLATFORM_ANDROID_KHR */
3695677dec87b34f541122412f539422c763cd944b5cIan Elliott
3696677dec87b34f541122412f539422c763cd944b5cIan Elliott#ifdef VK_USE_PLATFORM_WIN32_KHR
3697677dec87b34f541122412f539422c763cd944b5cIan Elliott#define VK_KHR_win32_surface 1
3698677dec87b34f541122412f539422c763cd944b5cIan Elliott#include <windows.h>
3699677dec87b34f541122412f539422c763cd944b5cIan Elliott
3700bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 5
3701677dec87b34f541122412f539422c763cd944b5cIan Elliott#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
3702677dec87b34f541122412f539422c763cd944b5cIan Elliott
3703bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef VkFlags VkWin32SurfaceCreateFlagsKHR;
3704bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott
3705bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef struct VkWin32SurfaceCreateInfoKHR {
37068a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkStructureType                 sType;
37078a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    const void*                     pNext;
37088a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    VkWin32SurfaceCreateFlagsKHR    flags;
37098a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    HINSTANCE                       hinstance;
37108a2ede699f5231691d55853016734826e3a2fe48Jon Ashburn    HWND                            hwnd;
3711bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott} VkWin32SurfaceCreateInfoKHR;
3712bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott
3713bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott
3714bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliotttypedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
3715677dec87b34f541122412f539422c763cd944b5cIan Elliotttypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
3716677dec87b34f541122412f539422c763cd944b5cIan Elliott
371789dc27a71a1f8c66dfa118a0e766476d24bc3b5bJon Ashburn#ifndef VK_NO_PROTOTYPES
3718677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR(
3719677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkInstance                                  instance,
3720bb5abba9d52a63a06dc7cf6e53a25125791d6426Ian Elliott    const VkWin32SurfaceCreateInfoKHR*          pCreateInfo,
3721677dec87b34f541122412f539422c763cd944b5cIan Elliott    const VkAllocationCallbacks*                pAllocator,
3722677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkSurfaceKHR*                               pSurface);
3723677dec87b34f541122412f539422c763cd944b5cIan Elliott
3724677dec87b34f541122412f539422c763cd944b5cIan ElliottVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(
3725677dec87b34f541122412f539422c763cd944b5cIan Elliott    VkPhysicalDevice                            physicalDevice,
3726677dec87b34f541122412f539422c763cd944b5cIan Elliott    uint32_t                                    queueFamilyIndex);
3727677dec87b34f541122412f539422c763cd944b5cIan Elliott#endif
3728677dec87b34f541122412f539422c763cd944b5cIan Elliott#endif /* VK_USE_PLATFORM_WIN32_KHR */
3729677dec87b34f541122412f539422c763cd944b5cIan Elliott
373089ad8547b998deee053a9f4419c658e01226134fJon Ashburn#define VK_KHR_sampler_mirror_clamp_to_edge 1
373189ad8547b998deee053a9f4419c658e01226134fJon Ashburn#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1
373289ad8547b998deee053a9f4419c658e01226134fJon Ashburn#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
373389ad8547b998deee053a9f4419c658e01226134fJon Ashburn
373489ad8547b998deee053a9f4419c658e01226134fJon Ashburn
37355c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski#define VK_EXT_debug_report 1
37365c13d4d87fd0356003a3441e887a172b991e880fMark LobodzinskiVK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
37375c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski
37384351990ac56c5052266d6119cb2709449e01de86Mark Lobodzinski#define VK_EXT_DEBUG_REPORT_SPEC_VERSION  3
37395c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
374089ad8547b998deee053a9f4419c658e01226134fJon Ashburn#define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
37415c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski
37425c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski
37435c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinskitypedef enum VkDebugReportObjectTypeEXT {
37445c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
37455c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
37465c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
37475c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
37485c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
37495c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
37505c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
37515c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
37525c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
37535c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
37545c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
37555c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
37565c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
37575c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
37585c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
37595c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
37605c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
37615c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
37625c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
37635c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
37645c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
37655c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
37665c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
37675c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
37685c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
37695c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
37705c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
37715c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
37725c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28,
3773c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
3774c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT,
3775c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
3776c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
37775c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski} VkDebugReportObjectTypeEXT;
37785c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski
37795c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinskitypedef enum VkDebugReportErrorEXT {
37805c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_ERROR_NONE_EXT = 0,
37815c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT = 1,
3782c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_DEBUG_REPORT_ERROR_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_ERROR_NONE_EXT,
3783c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_DEBUG_REPORT_ERROR_END_RANGE_EXT = VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT,
3784c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_DEBUG_REPORT_ERROR_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT - VK_DEBUG_REPORT_ERROR_NONE_EXT + 1),
3785c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_DEBUG_REPORT_ERROR_MAX_ENUM_EXT = 0x7FFFFFFF
37865c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski} VkDebugReportErrorEXT;
37875c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski
37885c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski
37895c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinskitypedef enum VkDebugReportFlagBitsEXT {
37905c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
37915c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
37925c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
37935c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
37945c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
3795c6bae12160ab9ef7be4c4c749794d2abb7eedf31Jon Ashburn    VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
37965c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski} VkDebugReportFlagBitsEXT;
37975c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinskitypedef VkFlags VkDebugReportFlagsEXT;
37985c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski
37995c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinskitypedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
38005c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VkDebugReportFlagsEXT                       flags,
38015c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VkDebugReportObjectTypeEXT                  objectType,
38025c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    uint64_t                                    object,
38035c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    size_t                                      location,
38045c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    int32_t                                     messageCode,
38055c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    const char*                                 pLayerPrefix,
38065c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    const char*                                 pMessage,
38075c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    void*                                       pUserData);
38085c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski
38096821ce2ab713fe2a270ef867efa9d9f122db17a7Mark Lobodzinski
38105c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinskitypedef struct VkDebugReportCallbackCreateInfoEXT {
38115c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VkStructureType                 sType;
38125c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    const void*                     pNext;
38135c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VkDebugReportFlagsEXT           flags;
38145c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    PFN_vkDebugReportCallbackEXT    pfnCallback;
38155c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    void*                           pUserData;
38165c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski} VkDebugReportCallbackCreateInfoEXT;
38175c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski
38185c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski
38195c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinskitypedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
38205c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinskitypedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
38215c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinskitypedef void (VKAPI_PTR *PFN_vkDebugReportMessageEXT)(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage);
38225c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski
38235c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski#ifndef VK_NO_PROTOTYPES
38245c13d4d87fd0356003a3441e887a172b991e880fMark LobodzinskiVKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
38255c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VkInstance                                  instance,
38265c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
38275c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    const VkAllocationCallbacks*                pAllocator,
38285c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VkDebugReportCallbackEXT*                   pCallback);
38295c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski
38305c13d4d87fd0356003a3441e887a172b991e880fMark LobodzinskiVKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
38315c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VkInstance                                  instance,
38325c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VkDebugReportCallbackEXT                    callback,
38335c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    const VkAllocationCallbacks*                pAllocator);
38345c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski
38355c13d4d87fd0356003a3441e887a172b991e880fMark LobodzinskiVKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
38365c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VkInstance                                  instance,
38375c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VkDebugReportFlagsEXT                       flags,
38385c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    VkDebugReportObjectTypeEXT                  objectType,
38395c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    uint64_t                                    object,
38405c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    size_t                                      location,
38415c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    int32_t                                     messageCode,
38425c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    const char*                                 pLayerPrefix,
38435c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski    const char*                                 pMessage);
38445c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski#endif
38455c13d4d87fd0356003a3441e887a172b991e880fMark Lobodzinski
3846b68d473ca3f2534caea1ab72de87837a34920a42Jon Ashburn#define VK_NV_glsl_shader 1
3847b68d473ca3f2534caea1ab72de87837a34920a42Jon Ashburn#define VK_NV_GLSL_SHADER_SPEC_VERSION    1
3848b68d473ca3f2534caea1ab72de87837a34920a42Jon Ashburn#define VK_NV_GLSL_SHADER_EXTENSION_NAME  "VK_NV_glsl_shader"
3849b68d473ca3f2534caea1ab72de87837a34920a42Jon Ashburn
3850b68d473ca3f2534caea1ab72de87837a34920a42Jon Ashburn
3851f1ea418f193d10a8455cdf47e0eeeeb1f4d8b5bfJon Ashburn#define VK_IMG_filter_cubic 1
3852f1ea418f193d10a8455cdf47e0eeeeb1f4d8b5bfJon Ashburn#define VK_IMG_FILTER_CUBIC_SPEC_VERSION  1
3853f1ea418f193d10a8455cdf47e0eeeeb1f4d8b5bfJon Ashburn#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
3854f1ea418f193d10a8455cdf47e0eeeeb1f4d8b5bfJon Ashburn
3855f1ea418f193d10a8455cdf47e0eeeeb1f4d8b5bfJon Ashburn
3856a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn#define VK_AMD_rasterization_order 1
3857a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
3858a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
3859a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn
3860a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn
3861a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburntypedef enum VkRasterizationOrderAMD {
3862a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn    VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
3863a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn    VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
3864a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn    VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD,
3865a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn    VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD,
3866a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn    VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1),
3867a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn    VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
3868a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn} VkRasterizationOrderAMD;
3869a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn
3870a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburntypedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
3871a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn    VkStructureType            sType;
3872a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn    const void*                pNext;
3873a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn    VkRasterizationOrderAMD    rasterizationOrder;
3874a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn} VkPipelineRasterizationStateRasterizationOrderAMD;
3875a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn
3876a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn
3877a09dea7f268e5f694551e030f3b930eadc4847bcJon Ashburn
387891b2b025ecb0e5ec75e1dd7b39747580b9a7981dJon Ashburn#define VK_AMD_shader_trinary_minmax 1
387991b2b025ecb0e5ec75e1dd7b39747580b9a7981dJon Ashburn#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
388091b2b025ecb0e5ec75e1dd7b39747580b9a7981dJon Ashburn#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
388191b2b025ecb0e5ec75e1dd7b39747580b9a7981dJon Ashburn
388291b2b025ecb0e5ec75e1dd7b39747580b9a7981dJon Ashburn
388391b2b025ecb0e5ec75e1dd7b39747580b9a7981dJon Ashburn#define VK_AMD_shader_explicit_vertex_parameter 1
388491b2b025ecb0e5ec75e1dd7b39747580b9a7981dJon Ashburn#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
388591b2b025ecb0e5ec75e1dd7b39747580b9a7981dJon Ashburn#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
388691b2b025ecb0e5ec75e1dd7b39747580b9a7981dJon Ashburn
388791b2b025ecb0e5ec75e1dd7b39747580b9a7981dJon Ashburn
388875917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn#define VK_EXT_debug_marker 1
388975917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn#define VK_EXT_DEBUG_MARKER_SPEC_VERSION  3
389075917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
389175917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn
389275917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburntypedef struct VkDebugMarkerObjectNameInfoEXT {
389375917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    VkStructureType               sType;
389475917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    const void*                   pNext;
389575917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    VkDebugReportObjectTypeEXT    objectType;
389675917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    uint64_t                      object;
389775917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    const char*                   pObjectName;
389875917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn} VkDebugMarkerObjectNameInfoEXT;
389975917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn
390075917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburntypedef struct VkDebugMarkerObjectTagInfoEXT {
390175917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    VkStructureType               sType;
390275917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    const void*                   pNext;
390375917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    VkDebugReportObjectTypeEXT    objectType;
390475917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    uint64_t                      object;
390575917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    uint64_t                      tagName;
390675917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    size_t                        tagSize;
390775917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    const void*                   pTag;
390875917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn} VkDebugMarkerObjectTagInfoEXT;
390975917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn
391075917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburntypedef struct VkDebugMarkerMarkerInfoEXT {
391175917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    VkStructureType    sType;
391275917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    const void*        pNext;
391375917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    const char*        pMarkerName;
391475917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    float              color[4];
391575917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn} VkDebugMarkerMarkerInfoEXT;
391675917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn
391775917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn
391875917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburntypedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo);
391975917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburntypedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, VkDebugMarkerObjectNameInfoEXT* pNameInfo);
392075917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburntypedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
392175917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburntypedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
392275917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburntypedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
392375917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn
392475917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn#ifndef VK_NO_PROTOTYPES
392575917460c2800f7be9160816f80f0b8ebe67a55eJon AshburnVKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
392675917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    VkDevice                                    device,
392775917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    VkDebugMarkerObjectTagInfoEXT*              pTagInfo);
392875917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn
392975917460c2800f7be9160816f80f0b8ebe67a55eJon AshburnVKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
393075917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    VkDevice                                    device,
393175917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    VkDebugMarkerObjectNameInfoEXT*             pNameInfo);
393275917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn
393375917460c2800f7be9160816f80f0b8ebe67a55eJon AshburnVKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
393475917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    VkCommandBuffer                             commandBuffer,
393575917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    VkDebugMarkerMarkerInfoEXT*                 pMarkerInfo);
393675917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn
393775917460c2800f7be9160816f80f0b8ebe67a55eJon AshburnVKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
393875917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    VkCommandBuffer                             commandBuffer);
393975917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn
394075917460c2800f7be9160816f80f0b8ebe67a55eJon AshburnVKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
394175917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    VkCommandBuffer                             commandBuffer,
394275917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn    VkDebugMarkerMarkerInfoEXT*                 pMarkerInfo);
394375917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn#endif
394475917460c2800f7be9160816f80f0b8ebe67a55eJon Ashburn
394591b2b025ecb0e5ec75e1dd7b39747580b9a7981dJon Ashburn#define VK_AMD_gcn_shader 1
394691b2b025ecb0e5ec75e1dd7b39747580b9a7981dJon Ashburn#define VK_AMD_GCN_SHADER_SPEC_VERSION    1
394791b2b025ecb0e5ec75e1dd7b39747580b9a7981dJon Ashburn#define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader"
394891b2b025ecb0e5ec75e1dd7b39747580b9a7981dJon Ashburn
394991b2b025ecb0e5ec75e1dd7b39747580b9a7981dJon Ashburn
39506fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz#define VK_NV_dedicated_allocation 1
39516fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
39526fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
39536fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz
39546fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultztypedef struct VkDedicatedAllocationImageCreateInfoNV {
39556fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz    VkStructureType    sType;
39566fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz    const void*        pNext;
39576fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz    VkBool32           dedicatedAllocation;
39586fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz} VkDedicatedAllocationImageCreateInfoNV;
39596fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz
39606fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultztypedef struct VkDedicatedAllocationBufferCreateInfoNV {
39616fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz    VkStructureType    sType;
39626fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz    const void*        pNext;
39636fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz    VkBool32           dedicatedAllocation;
39646fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz} VkDedicatedAllocationBufferCreateInfoNV;
39656fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz
39666fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultztypedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
39676fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz    VkStructureType    sType;
39686fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz    const void*        pNext;
39696fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz    VkImage            image;
39706fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz    VkBuffer           buffer;
39716fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz} VkDedicatedAllocationMemoryAllocateInfoNV;
39726fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz
39736fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz
39746fab3cddff1a279fcc1dc74e5b1ff28a3fb0a9b7Karl Schultz
3975c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#define VK_AMD_draw_indirect_count 1
397683b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
397783b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
3978c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
3979c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinskitypedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
3980c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinskitypedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
3981c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
3982c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#ifndef VK_NO_PROTOTYPES
3983c8101833b194fbd59a7a6a9308e263c135696e3dMark LobodzinskiVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
3984c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkCommandBuffer                             commandBuffer,
3985c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkBuffer                                    buffer,
3986c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkDeviceSize                                offset,
3987c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkBuffer                                    countBuffer,
3988c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkDeviceSize                                countBufferOffset,
3989c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    uint32_t                                    maxDrawCount,
3990c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    uint32_t                                    stride);
3991c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
3992c8101833b194fbd59a7a6a9308e263c135696e3dMark LobodzinskiVKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
3993c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkCommandBuffer                             commandBuffer,
3994c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkBuffer                                    buffer,
3995c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkDeviceSize                                offset,
3996c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkBuffer                                    countBuffer,
3997c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkDeviceSize                                countBufferOffset,
3998c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    uint32_t                                    maxDrawCount,
3999c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    uint32_t                                    stride);
4000c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#endif
4001c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
400283b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski#define VK_AMD_negative_viewport_height 1
4003e5925f81cc7bccfda086e19433186ce602bab48fMark Lobodzinski#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 0
4004e5925f81cc7bccfda086e19433186ce602bab48fMark Lobodzinski#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
400583b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski
400683b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski
400783b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski#define VK_AMD_gpu_shader_half_float 1
400883b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1
400983b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
401083b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski
401183b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski
401283b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski#define VK_AMD_shader_ballot 1
4013e5925f81cc7bccfda086e19433186ce602bab48fMark Lobodzinski#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 0
4014e5925f81cc7bccfda086e19433186ce602bab48fMark Lobodzinski#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
401583b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski
401683b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski
401722dfb18d96da38b30c22f776ffe780e111463050Mark Lobodzinski#define VK_IMG_format_pvrtc 1
401822dfb18d96da38b30c22f776ffe780e111463050Mark Lobodzinski#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1
401922dfb18d96da38b30c22f776ffe780e111463050Mark Lobodzinski#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
402022dfb18d96da38b30c22f776ffe780e111463050Mark Lobodzinski
402122dfb18d96da38b30c22f776ffe780e111463050Mark Lobodzinski
4022c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#define VK_NV_external_memory_capabilities 1
4023c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
4024c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
4025c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4026c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4027c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinskitypedef enum VkExternalMemoryHandleTypeFlagBitsNV {
4028c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
4029c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
4030c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
4031c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
4032c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
4033c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski} VkExternalMemoryHandleTypeFlagBitsNV;
40346821ce2ab713fe2a270ef867efa9d9f122db17a7Mark Lobodzinskitypedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
4035c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4036c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinskitypedef enum VkExternalMemoryFeatureFlagBitsNV {
4037c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
4038c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
4039c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
4040c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
4041c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski} VkExternalMemoryFeatureFlagBitsNV;
4042c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinskitypedef VkFlags VkExternalMemoryFeatureFlagsNV;
4043c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4044c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinskitypedef struct VkExternalImageFormatPropertiesNV {
4045c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkImageFormatProperties              imageFormatProperties;
4046c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkExternalMemoryFeatureFlagsNV       externalMemoryFeatures;
4047c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkExternalMemoryHandleTypeFlagsNV    exportFromImportedHandleTypes;
4048c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkExternalMemoryHandleTypeFlagsNV    compatibleHandleTypes;
4049c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski} VkExternalImageFormatPropertiesNV;
4050c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4051c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4052c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinskitypedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
4053c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4054c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#ifndef VK_NO_PROTOTYPES
4055c8101833b194fbd59a7a6a9308e263c135696e3dMark LobodzinskiVKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
4056c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkPhysicalDevice                            physicalDevice,
4057c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkFormat                                    format,
4058c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkImageType                                 type,
4059c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkImageTiling                               tiling,
4060c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkImageUsageFlags                           usage,
4061c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkImageCreateFlags                          flags,
4062c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkExternalMemoryHandleTypeFlagsNV           externalHandleType,
4063c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties);
4064c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#endif
4065c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4066c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#define VK_NV_external_memory 1
4067c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
4068c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
4069c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4070c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinskitypedef struct VkExternalMemoryImageCreateInfoNV {
4071c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkStructureType                      sType;
4072c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    const void*                          pNext;
4073c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkExternalMemoryHandleTypeFlagsNV    handleTypes;
4074c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski} VkExternalMemoryImageCreateInfoNV;
4075c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4076c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinskitypedef struct VkExportMemoryAllocateInfoNV {
4077c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkStructureType                      sType;
4078c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    const void*                          pNext;
4079c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkExternalMemoryHandleTypeFlagsNV    handleTypes;
4080c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski} VkExportMemoryAllocateInfoNV;
4081c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4082c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4083c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4084c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#ifdef VK_USE_PLATFORM_WIN32_KHR
4085c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#define VK_NV_external_memory_win32 1
4086c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
4087c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
4088c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4089c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinskitypedef struct VkImportMemoryWin32HandleInfoNV {
4090c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkStructureType                      sType;
4091c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    const void*                          pNext;
4092c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkExternalMemoryHandleTypeFlagsNV    handleType;
4093c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    HANDLE                               handle;
4094c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski} VkImportMemoryWin32HandleInfoNV;
4095c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4096c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinskitypedef struct VkExportMemoryWin32HandleInfoNV {
4097c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkStructureType               sType;
4098c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    const void*                   pNext;
4099c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    const SECURITY_ATTRIBUTES*    pAttributes;
4100c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    DWORD                         dwAccess;
4101c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski} VkExportMemoryWin32HandleInfoNV;
4102c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4103c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4104c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinskitypedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle);
4105c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4106c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#ifndef VK_NO_PROTOTYPES
4107c8101833b194fbd59a7a6a9308e263c135696e3dMark LobodzinskiVKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV(
4108c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkDevice                                    device,
4109c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkDeviceMemory                              memory,
4110c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkExternalMemoryHandleTypeFlagsNV           handleType,
4111c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    HANDLE*                                     pHandle);
4112c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#endif
4113c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#endif /* VK_USE_PLATFORM_WIN32_KHR */
4114c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4115c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#ifdef VK_USE_PLATFORM_WIN32_KHR
4116c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#define VK_NV_win32_keyed_mutex 1
4117c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1
4118c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
4119c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4120c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinskitypedef struct VkWin32KeyedMutexAcquireReleaseInfoNV {
4121c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    VkStructureType          sType;
4122c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    const void*              pNext;
4123c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    uint32_t                 acquireCount;
4124c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    const VkDeviceMemory*    pAcquireSyncs;
4125c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    const uint64_t*          pAcquireKeys;
4126c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    const uint32_t*          pAcquireTimeoutMilliseconds;
4127c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    uint32_t                 releaseCount;
4128c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    const VkDeviceMemory*    pReleaseSyncs;
4129c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski    const uint64_t*          pReleaseKeys;
4130c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski} VkWin32KeyedMutexAcquireReleaseInfoNV;
4131c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4132c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
4133c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski#endif /* VK_USE_PLATFORM_WIN32_KHR */
4134c8101833b194fbd59a7a6a9308e263c135696e3dMark Lobodzinski
413583b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski#define VK_EXT_validation_flags 1
413683b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1
413783b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
413883b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski
413983b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski
414083b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinskitypedef enum VkValidationCheckEXT {
414183b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski    VK_VALIDATION_CHECK_ALL_EXT = 0,
414283b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski    VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
414383b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski    VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
414483b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski    VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_ALL_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1),
414583b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski    VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
414683b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski} VkValidationCheckEXT;
414783b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski
414883b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinskitypedef struct VkValidationFlagsEXT {
414983b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski    VkStructureType          sType;
415083b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski    const void*              pNext;
415183b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski    uint32_t                 disabledValidationCheckCount;
415283b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski    VkValidationCheckEXT*    pDisabledValidationChecks;
415383b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski} VkValidationFlagsEXT;
415483b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski
415583b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski
415683b80d9b34a28db5a55685a64ebac0e21f312a4cMark Lobodzinski
415789e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter#ifdef __cplusplus
4158fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter}
4159fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter#endif
416089e99e6dd74c1f407c2f2cb1aac2ad4ca3d45ff2Courtney Goeltzenleuchter
4161fbb55ae7162a619d63aa809457e50b1882cc24bdCourtney Goeltzenleuchter#endif
4162