blob: 03fcb6f22829ac156e9df61f7e847690c414cccf [file] [log] [blame]
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001#ifndef __vulkan_h_
2#define __vulkan_h_ 1
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06008/*
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06009** Copyright (c) 2015 The Khronos Group Inc.
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -060010**
11** Permission is hereby granted, free of charge, to any person obtaining a
12** copy of this software and/or associated documentation files (the
13** "Materials"), to deal in the Materials without restriction, including
14** without limitation the rights to use, copy, modify, merge, publish,
15** distribute, sublicense, and/or sell copies of the Materials, and to
16** permit persons to whom the Materials are furnished to do so, subject to
17** the following conditions:
18**
19** The above copyright notice and this permission notice shall be included
20** in all copies or substantial portions of the Materials.
21**
22** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
25** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
26** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
27** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
28** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
29*/
30
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -060031/*
32** This header is generated from the Khronos Vulkan XML API Registry.
33**
34*/
35
36
37#define VK_VERSION_1_0 1
38#include "vk_platform.h"
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -060039
40#define VK_MAKE_VERSION(major, minor, patch) \
41 ((major << 22) | (minor << 12) | patch)
42
Courtney Goeltzenleuchterf53c3cb2015-04-14 14:55:44 -060043// Vulkan API version supported by this file
Chia-I Wuf90d8a42015-10-26 16:48:28 +080044#define VK_API_VERSION VK_MAKE_VERSION(0, 197, 0)
Cody Northrop44967fd2015-08-11 15:25:08 -060045
46
Chia-I Wue2fc5522015-10-26 20:04:44 +080047#define VK_NULL_HANDLE 0
48
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -060049
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -060050
Chia-I Wubb7fad92015-10-27 17:53:18 +080051#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -060052
Mike Stroyanb050c682015-04-17 12:36:38 -060053
Chia-I Wue2fc5522015-10-26 20:04:44 +080054#if defined(__LP64__) || defined(_WIN64) || defined(__x86_64__) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
Chia-I Wubb7fad92015-10-27 17:53:18 +080055 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
Mike Stroyanb050c682015-04-17 12:36:38 -060056#else
Chia-I Wubb7fad92015-10-27 17:53:18 +080057 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
Mike Stroyanb050c682015-04-17 12:36:38 -060058#endif
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -060059
60
61
Cody Northrop22b7fae2015-08-11 11:21:48 -060062typedef uint32_t VkFlags;
Chia-I Wu439c0772015-10-26 17:00:46 +080063typedef uint32_t VkBool32;
Cody Northrop22b7fae2015-08-11 11:21:48 -060064typedef uint64_t VkDeviceSize;
65typedef uint32_t VkSampleMask;
Mike Stroyanb050c682015-04-17 12:36:38 -060066
Tony Barbour1d2cd3f2015-07-03 10:33:54 -060067VK_DEFINE_HANDLE(VkInstance)
68VK_DEFINE_HANDLE(VkPhysicalDevice)
69VK_DEFINE_HANDLE(VkDevice)
70VK_DEFINE_HANDLE(VkQueue)
Chia-I Wu3432a0c2015-10-27 18:04:07 +080071VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
72VK_DEFINE_HANDLE(VkCommandBuffer)
73VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
74VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
75VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
76VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
77VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
78VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
79VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
80VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
81VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
82VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShader)
83VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
84VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
85VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
86VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
87VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
88VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
89VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
90VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
91VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
92VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -060093
Cody Northrop22b7fae2015-08-11 11:21:48 -060094#define VK_LOD_CLAMP_NONE 1000.0f
Courtney Goeltzenleuchter13dbde02015-08-28 16:47:15 -060095#define VK_REMAINING_MIP_LEVELS (~0U)
Courtney Goeltzenleuchter4a261892015-09-10 16:38:41 -060096#define VK_REMAINING_ARRAY_LAYERS (~0U)
Cody Northrop22b7fae2015-08-11 11:21:48 -060097#define VK_WHOLE_SIZE (~0ULL)
98#define VK_ATTACHMENT_UNUSED (~0U)
99#define VK_TRUE 1
100#define VK_FALSE 0
Cody Northrop22b7fae2015-08-11 11:21:48 -0600101#define VK_QUEUE_FAMILY_IGNORED (~0U)
Courtney Goeltzenleuchter304e6562015-09-16 16:38:23 -0600102#define VK_SUBPASS_EXTERNAL (~0U)
Cody Northrop22b7fae2015-08-11 11:21:48 -0600103#define VK_MAX_PHYSICAL_DEVICE_NAME 256
104#define VK_UUID_LENGTH 16
105#define VK_MAX_MEMORY_TYPES 32
106#define VK_MAX_MEMORY_HEAPS 16
107#define VK_MAX_EXTENSION_NAME 256
108#define VK_MAX_DESCRIPTION 256
109
Courtney Goeltzenleuchter62b2d432015-06-04 11:35:43 -0600110
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600111typedef enum {
112 VK_SUCCESS = 0,
Courtney Goeltzenleuchter1d2f0dd2015-10-22 11:03:31 -0600113 VK_NOT_READY = 1,
114 VK_TIMEOUT = 2,
115 VK_EVENT_SET = 3,
116 VK_EVENT_RESET = 4,
117 VK_INCOMPLETE = 5,
Courtney Goeltzenleuchter55659b72015-09-14 18:01:17 -0600118 VK_ERROR_OUT_OF_HOST_MEMORY = -1,
119 VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
120 VK_ERROR_INITIALIZATION_FAILED = -3,
121 VK_ERROR_DEVICE_LOST = -4,
122 VK_ERROR_MEMORY_MAP_FAILED = -5,
123 VK_ERROR_LAYER_NOT_PRESENT = -6,
124 VK_ERROR_EXTENSION_NOT_PRESENT = -7,
Courtney Goeltzenleuchterfdfade72015-10-19 16:50:21 -0600125 VK_ERROR_FEATURE_NOT_PRESENT = -8,
126 VK_ERROR_INCOMPATIBLE_DRIVER = -9,
Courtney Goeltzenleuchter55659b72015-09-14 18:01:17 -0600127 VK_RESULT_BEGIN_RANGE = VK_ERROR_INCOMPATIBLE_DRIVER,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600128 VK_RESULT_END_RANGE = VK_INCOMPLETE,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800129 VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_INCOMPATIBLE_DRIVER + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600130 VK_RESULT_MAX_ENUM = 0x7FFFFFFF
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -0600131} VkResult;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -0600132
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600133typedef enum {
134 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
Chia-I Wu1efb7e52015-10-26 17:32:47 +0800135 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
136 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
137 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
138 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
139 VK_STRUCTURE_TYPE_MEMORY_ALLOC_INFO = 5,
140 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
141 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
142 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
143 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
Courtney Goeltzenleuchter49c73082015-09-17 15:06:17 -0600144 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
Chia-I Wu1efb7e52015-10-26 17:32:47 +0800145 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
146 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
147 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
148 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
149 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
150 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
151 VK_STRUCTURE_TYPE_SHADER_CREATE_INFO = 17,
152 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 18,
153 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 19,
154 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 20,
155 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 21,
156 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 22,
157 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 23,
158 VK_STRUCTURE_TYPE_PIPELINE_RASTER_STATE_CREATE_INFO = 24,
159 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 25,
160 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 26,
161 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 27,
162 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 28,
163 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 29,
164 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 30,
165 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 31,
166 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 32,
167 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 33,
168 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 34,
169 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO = 35,
170 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 36,
171 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 37,
172 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 38,
173 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 39,
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800174 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 40,
175 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOC_INFO = 41,
176 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
Courtney Goeltzenleuchter49c73082015-09-17 15:06:17 -0600177 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
Chia-I Wu1efb7e52015-10-26 17:32:47 +0800178 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
179 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
180 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
181 VK_STRUCTURE_TYPE_LAYER_INSTANCE_CREATE_INFO = 47,
182 VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO = 48,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600183 VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
Chia-I Wu1efb7e52015-10-26 17:32:47 +0800184 VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800185 VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600186 VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
187} VkStructureType;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -0600188
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600189typedef enum {
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800190 VK_SYSTEM_ALLOCATION_SCOPE_FUNCTION = 0,
191 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
192 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
193 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
194 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
195 VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_FUNCTION,
196 VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800197 VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_FUNCTION + 1),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800198 VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
199} VkSystemAllocationScope;
Chia-I Wuf7458c52015-10-26 21:10:41 +0800200
201typedef enum {
Chia-I Wubb7fad92015-10-27 17:53:18 +0800202 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
203 VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
204 VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
205 VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1),
206 VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
207} VkInternalAllocationType;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -0600208
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600209typedef enum {
210 VK_FORMAT_UNDEFINED = 0,
211 VK_FORMAT_R4G4_UNORM = 1,
212 VK_FORMAT_R4G4_USCALED = 2,
213 VK_FORMAT_R4G4B4A4_UNORM = 3,
214 VK_FORMAT_R4G4B4A4_USCALED = 4,
215 VK_FORMAT_R5G6B5_UNORM = 5,
216 VK_FORMAT_R5G6B5_USCALED = 6,
217 VK_FORMAT_R5G5B5A1_UNORM = 7,
218 VK_FORMAT_R5G5B5A1_USCALED = 8,
219 VK_FORMAT_R8_UNORM = 9,
220 VK_FORMAT_R8_SNORM = 10,
221 VK_FORMAT_R8_USCALED = 11,
222 VK_FORMAT_R8_SSCALED = 12,
223 VK_FORMAT_R8_UINT = 13,
224 VK_FORMAT_R8_SINT = 14,
225 VK_FORMAT_R8_SRGB = 15,
226 VK_FORMAT_R8G8_UNORM = 16,
227 VK_FORMAT_R8G8_SNORM = 17,
228 VK_FORMAT_R8G8_USCALED = 18,
229 VK_FORMAT_R8G8_SSCALED = 19,
230 VK_FORMAT_R8G8_UINT = 20,
231 VK_FORMAT_R8G8_SINT = 21,
232 VK_FORMAT_R8G8_SRGB = 22,
233 VK_FORMAT_R8G8B8_UNORM = 23,
234 VK_FORMAT_R8G8B8_SNORM = 24,
235 VK_FORMAT_R8G8B8_USCALED = 25,
236 VK_FORMAT_R8G8B8_SSCALED = 26,
237 VK_FORMAT_R8G8B8_UINT = 27,
238 VK_FORMAT_R8G8B8_SINT = 28,
239 VK_FORMAT_R8G8B8_SRGB = 29,
240 VK_FORMAT_R8G8B8A8_UNORM = 30,
241 VK_FORMAT_R8G8B8A8_SNORM = 31,
242 VK_FORMAT_R8G8B8A8_USCALED = 32,
243 VK_FORMAT_R8G8B8A8_SSCALED = 33,
244 VK_FORMAT_R8G8B8A8_UINT = 34,
245 VK_FORMAT_R8G8B8A8_SINT = 35,
246 VK_FORMAT_R8G8B8A8_SRGB = 36,
247 VK_FORMAT_R10G10B10A2_UNORM = 37,
248 VK_FORMAT_R10G10B10A2_SNORM = 38,
249 VK_FORMAT_R10G10B10A2_USCALED = 39,
250 VK_FORMAT_R10G10B10A2_SSCALED = 40,
251 VK_FORMAT_R10G10B10A2_UINT = 41,
252 VK_FORMAT_R10G10B10A2_SINT = 42,
253 VK_FORMAT_R16_UNORM = 43,
254 VK_FORMAT_R16_SNORM = 44,
255 VK_FORMAT_R16_USCALED = 45,
256 VK_FORMAT_R16_SSCALED = 46,
257 VK_FORMAT_R16_UINT = 47,
258 VK_FORMAT_R16_SINT = 48,
259 VK_FORMAT_R16_SFLOAT = 49,
260 VK_FORMAT_R16G16_UNORM = 50,
261 VK_FORMAT_R16G16_SNORM = 51,
262 VK_FORMAT_R16G16_USCALED = 52,
263 VK_FORMAT_R16G16_SSCALED = 53,
264 VK_FORMAT_R16G16_UINT = 54,
265 VK_FORMAT_R16G16_SINT = 55,
266 VK_FORMAT_R16G16_SFLOAT = 56,
267 VK_FORMAT_R16G16B16_UNORM = 57,
268 VK_FORMAT_R16G16B16_SNORM = 58,
269 VK_FORMAT_R16G16B16_USCALED = 59,
270 VK_FORMAT_R16G16B16_SSCALED = 60,
271 VK_FORMAT_R16G16B16_UINT = 61,
272 VK_FORMAT_R16G16B16_SINT = 62,
273 VK_FORMAT_R16G16B16_SFLOAT = 63,
274 VK_FORMAT_R16G16B16A16_UNORM = 64,
275 VK_FORMAT_R16G16B16A16_SNORM = 65,
276 VK_FORMAT_R16G16B16A16_USCALED = 66,
277 VK_FORMAT_R16G16B16A16_SSCALED = 67,
278 VK_FORMAT_R16G16B16A16_UINT = 68,
279 VK_FORMAT_R16G16B16A16_SINT = 69,
280 VK_FORMAT_R16G16B16A16_SFLOAT = 70,
281 VK_FORMAT_R32_UINT = 71,
282 VK_FORMAT_R32_SINT = 72,
283 VK_FORMAT_R32_SFLOAT = 73,
284 VK_FORMAT_R32G32_UINT = 74,
285 VK_FORMAT_R32G32_SINT = 75,
286 VK_FORMAT_R32G32_SFLOAT = 76,
287 VK_FORMAT_R32G32B32_UINT = 77,
288 VK_FORMAT_R32G32B32_SINT = 78,
289 VK_FORMAT_R32G32B32_SFLOAT = 79,
290 VK_FORMAT_R32G32B32A32_UINT = 80,
291 VK_FORMAT_R32G32B32A32_SINT = 81,
292 VK_FORMAT_R32G32B32A32_SFLOAT = 82,
293 VK_FORMAT_R64_SFLOAT = 83,
294 VK_FORMAT_R64G64_SFLOAT = 84,
295 VK_FORMAT_R64G64B64_SFLOAT = 85,
296 VK_FORMAT_R64G64B64A64_SFLOAT = 86,
297 VK_FORMAT_R11G11B10_UFLOAT = 87,
298 VK_FORMAT_R9G9B9E5_UFLOAT = 88,
299 VK_FORMAT_D16_UNORM = 89,
Courtney Goeltzenleuchter286fb5f2015-09-10 17:17:43 -0600300 VK_FORMAT_D24_UNORM_X8 = 90,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600301 VK_FORMAT_D32_SFLOAT = 91,
302 VK_FORMAT_S8_UINT = 92,
303 VK_FORMAT_D16_UNORM_S8_UINT = 93,
304 VK_FORMAT_D24_UNORM_S8_UINT = 94,
305 VK_FORMAT_D32_SFLOAT_S8_UINT = 95,
306 VK_FORMAT_BC1_RGB_UNORM = 96,
307 VK_FORMAT_BC1_RGB_SRGB = 97,
308 VK_FORMAT_BC1_RGBA_UNORM = 98,
309 VK_FORMAT_BC1_RGBA_SRGB = 99,
310 VK_FORMAT_BC2_UNORM = 100,
311 VK_FORMAT_BC2_SRGB = 101,
312 VK_FORMAT_BC3_UNORM = 102,
313 VK_FORMAT_BC3_SRGB = 103,
314 VK_FORMAT_BC4_UNORM = 104,
315 VK_FORMAT_BC4_SNORM = 105,
316 VK_FORMAT_BC5_UNORM = 106,
317 VK_FORMAT_BC5_SNORM = 107,
318 VK_FORMAT_BC6H_UFLOAT = 108,
319 VK_FORMAT_BC6H_SFLOAT = 109,
320 VK_FORMAT_BC7_UNORM = 110,
321 VK_FORMAT_BC7_SRGB = 111,
322 VK_FORMAT_ETC2_R8G8B8_UNORM = 112,
323 VK_FORMAT_ETC2_R8G8B8_SRGB = 113,
324 VK_FORMAT_ETC2_R8G8B8A1_UNORM = 114,
325 VK_FORMAT_ETC2_R8G8B8A1_SRGB = 115,
326 VK_FORMAT_ETC2_R8G8B8A8_UNORM = 116,
327 VK_FORMAT_ETC2_R8G8B8A8_SRGB = 117,
328 VK_FORMAT_EAC_R11_UNORM = 118,
329 VK_FORMAT_EAC_R11_SNORM = 119,
330 VK_FORMAT_EAC_R11G11_UNORM = 120,
331 VK_FORMAT_EAC_R11G11_SNORM = 121,
332 VK_FORMAT_ASTC_4x4_UNORM = 122,
333 VK_FORMAT_ASTC_4x4_SRGB = 123,
334 VK_FORMAT_ASTC_5x4_UNORM = 124,
335 VK_FORMAT_ASTC_5x4_SRGB = 125,
336 VK_FORMAT_ASTC_5x5_UNORM = 126,
337 VK_FORMAT_ASTC_5x5_SRGB = 127,
338 VK_FORMAT_ASTC_6x5_UNORM = 128,
339 VK_FORMAT_ASTC_6x5_SRGB = 129,
340 VK_FORMAT_ASTC_6x6_UNORM = 130,
341 VK_FORMAT_ASTC_6x6_SRGB = 131,
342 VK_FORMAT_ASTC_8x5_UNORM = 132,
343 VK_FORMAT_ASTC_8x5_SRGB = 133,
344 VK_FORMAT_ASTC_8x6_UNORM = 134,
345 VK_FORMAT_ASTC_8x6_SRGB = 135,
346 VK_FORMAT_ASTC_8x8_UNORM = 136,
347 VK_FORMAT_ASTC_8x8_SRGB = 137,
348 VK_FORMAT_ASTC_10x5_UNORM = 138,
349 VK_FORMAT_ASTC_10x5_SRGB = 139,
350 VK_FORMAT_ASTC_10x6_UNORM = 140,
351 VK_FORMAT_ASTC_10x6_SRGB = 141,
352 VK_FORMAT_ASTC_10x8_UNORM = 142,
353 VK_FORMAT_ASTC_10x8_SRGB = 143,
354 VK_FORMAT_ASTC_10x10_UNORM = 144,
355 VK_FORMAT_ASTC_10x10_SRGB = 145,
356 VK_FORMAT_ASTC_12x10_UNORM = 146,
357 VK_FORMAT_ASTC_12x10_SRGB = 147,
358 VK_FORMAT_ASTC_12x12_UNORM = 148,
359 VK_FORMAT_ASTC_12x12_SRGB = 149,
360 VK_FORMAT_B4G4R4A4_UNORM = 150,
361 VK_FORMAT_B5G5R5A1_UNORM = 151,
362 VK_FORMAT_B5G6R5_UNORM = 152,
363 VK_FORMAT_B5G6R5_USCALED = 153,
364 VK_FORMAT_B8G8R8_UNORM = 154,
365 VK_FORMAT_B8G8R8_SNORM = 155,
366 VK_FORMAT_B8G8R8_USCALED = 156,
367 VK_FORMAT_B8G8R8_SSCALED = 157,
368 VK_FORMAT_B8G8R8_UINT = 158,
369 VK_FORMAT_B8G8R8_SINT = 159,
370 VK_FORMAT_B8G8R8_SRGB = 160,
371 VK_FORMAT_B8G8R8A8_UNORM = 161,
372 VK_FORMAT_B8G8R8A8_SNORM = 162,
373 VK_FORMAT_B8G8R8A8_USCALED = 163,
374 VK_FORMAT_B8G8R8A8_SSCALED = 164,
375 VK_FORMAT_B8G8R8A8_UINT = 165,
376 VK_FORMAT_B8G8R8A8_SINT = 166,
377 VK_FORMAT_B8G8R8A8_SRGB = 167,
378 VK_FORMAT_B10G10R10A2_UNORM = 168,
379 VK_FORMAT_B10G10R10A2_SNORM = 169,
380 VK_FORMAT_B10G10R10A2_USCALED = 170,
381 VK_FORMAT_B10G10R10A2_SSCALED = 171,
382 VK_FORMAT_B10G10R10A2_UINT = 172,
383 VK_FORMAT_B10G10R10A2_SINT = 173,
384 VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
385 VK_FORMAT_END_RANGE = VK_FORMAT_B10G10R10A2_SINT,
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800386 VK_FORMAT_RANGE_SIZE = (VK_FORMAT_B10G10R10A2_SINT - VK_FORMAT_UNDEFINED + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600387 VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
388} VkFormat;
389
390typedef enum {
391 VK_IMAGE_TYPE_1D = 0,
392 VK_IMAGE_TYPE_2D = 1,
393 VK_IMAGE_TYPE_3D = 2,
394 VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
395 VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800396 VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600397 VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
398} VkImageType;
399
400typedef enum {
Chia-I Wu1efb7e52015-10-26 17:32:47 +0800401 VK_IMAGE_TILING_OPTIMAL = 0,
402 VK_IMAGE_TILING_LINEAR = 1,
403 VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
404 VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800405 VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600406 VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
407} VkImageTiling;
408
409typedef enum {
410 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
411 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
412 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
413 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
414 VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
415 VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
416 VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800417 VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600418 VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
419} VkPhysicalDeviceType;
420
421typedef enum {
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600422 VK_QUERY_TYPE_OCCLUSION = 0,
423 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
Chia-I Wucbe3c9f2015-10-26 20:14:54 +0800424 VK_QUERY_TYPE_TIMESTAMP = 2,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600425 VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
Chia-I Wucbe3c9f2015-10-26 20:14:54 +0800426 VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800427 VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600428 VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
429} VkQueryType;
430
431typedef enum {
432 VK_SHARING_MODE_EXCLUSIVE = 0,
433 VK_SHARING_MODE_CONCURRENT = 1,
434 VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
435 VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800436 VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600437 VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
438} VkSharingMode;
439
440typedef enum {
Courtney Goeltzenleuchterb1fe3f82015-09-16 11:51:46 -0600441 VK_IMAGE_LAYOUT_UNDEFINED = 0,
442 VK_IMAGE_LAYOUT_GENERAL = 1,
443 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
444 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
445 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
446 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800447 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
448 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
Courtney Goeltzenleuchterb1fe3f82015-09-16 11:51:46 -0600449 VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
450 VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
451 VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800452 VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
Courtney Goeltzenleuchterb1fe3f82015-09-16 11:51:46 -0600453 VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
454} VkImageLayout;
455
456typedef enum {
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600457 VK_IMAGE_VIEW_TYPE_1D = 0,
458 VK_IMAGE_VIEW_TYPE_2D = 1,
459 VK_IMAGE_VIEW_TYPE_3D = 2,
460 VK_IMAGE_VIEW_TYPE_CUBE = 3,
461 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
462 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
463 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
464 VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
465 VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800466 VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600467 VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
468} VkImageViewType;
469
470typedef enum {
Chia-I Wu1efb7e52015-10-26 17:32:47 +0800471 VK_CHANNEL_SWIZZLE_IDENTITY = 0,
472 VK_CHANNEL_SWIZZLE_ZERO = 1,
473 VK_CHANNEL_SWIZZLE_ONE = 2,
474 VK_CHANNEL_SWIZZLE_R = 3,
475 VK_CHANNEL_SWIZZLE_G = 4,
476 VK_CHANNEL_SWIZZLE_B = 5,
477 VK_CHANNEL_SWIZZLE_A = 6,
478 VK_CHANNEL_SWIZZLE_BEGIN_RANGE = VK_CHANNEL_SWIZZLE_IDENTITY,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600479 VK_CHANNEL_SWIZZLE_END_RANGE = VK_CHANNEL_SWIZZLE_A,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800480 VK_CHANNEL_SWIZZLE_RANGE_SIZE = (VK_CHANNEL_SWIZZLE_A - VK_CHANNEL_SWIZZLE_IDENTITY + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600481 VK_CHANNEL_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
482} VkChannelSwizzle;
483
484typedef enum {
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600485 VK_VERTEX_INPUT_STEP_RATE_VERTEX = 0,
486 VK_VERTEX_INPUT_STEP_RATE_INSTANCE = 1,
487 VK_VERTEX_INPUT_STEP_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_STEP_RATE_VERTEX,
488 VK_VERTEX_INPUT_STEP_RATE_END_RANGE = VK_VERTEX_INPUT_STEP_RATE_INSTANCE,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800489 VK_VERTEX_INPUT_STEP_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_STEP_RATE_INSTANCE - VK_VERTEX_INPUT_STEP_RATE_VERTEX + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600490 VK_VERTEX_INPUT_STEP_RATE_MAX_ENUM = 0x7FFFFFFF
491} VkVertexInputStepRate;
492
493typedef enum {
494 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
495 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
496 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
497 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
498 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
499 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800500 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
501 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
502 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
503 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600504 VK_PRIMITIVE_TOPOLOGY_PATCH = 10,
505 VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
506 VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800507 VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600508 VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
509} VkPrimitiveTopology;
510
511typedef enum {
Chia-I Wu1efb7e52015-10-26 17:32:47 +0800512 VK_FILL_MODE_SOLID = 0,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600513 VK_FILL_MODE_WIREFRAME = 1,
Chia-I Wu1efb7e52015-10-26 17:32:47 +0800514 VK_FILL_MODE_POINTS = 2,
515 VK_FILL_MODE_BEGIN_RANGE = VK_FILL_MODE_SOLID,
516 VK_FILL_MODE_END_RANGE = VK_FILL_MODE_POINTS,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800517 VK_FILL_MODE_RANGE_SIZE = (VK_FILL_MODE_POINTS - VK_FILL_MODE_SOLID + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600518 VK_FILL_MODE_MAX_ENUM = 0x7FFFFFFF
519} VkFillMode;
520
521typedef enum {
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800522 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
523 VK_FRONT_FACE_CLOCKWISE = 1,
524 VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
525 VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800526 VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600527 VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
528} VkFrontFace;
529
530typedef enum {
531 VK_COMPARE_OP_NEVER = 0,
532 VK_COMPARE_OP_LESS = 1,
533 VK_COMPARE_OP_EQUAL = 2,
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800534 VK_COMPARE_OP_LESS_OR_EQUAL = 3,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600535 VK_COMPARE_OP_GREATER = 4,
536 VK_COMPARE_OP_NOT_EQUAL = 5,
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800537 VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600538 VK_COMPARE_OP_ALWAYS = 7,
539 VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
540 VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800541 VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600542 VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
543} VkCompareOp;
544
545typedef enum {
546 VK_STENCIL_OP_KEEP = 0,
547 VK_STENCIL_OP_ZERO = 1,
548 VK_STENCIL_OP_REPLACE = 2,
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800549 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
550 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600551 VK_STENCIL_OP_INVERT = 5,
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800552 VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
553 VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600554 VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800555 VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800556 VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600557 VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
558} VkStencilOp;
559
560typedef enum {
561 VK_LOGIC_OP_CLEAR = 0,
562 VK_LOGIC_OP_AND = 1,
563 VK_LOGIC_OP_AND_REVERSE = 2,
564 VK_LOGIC_OP_COPY = 3,
565 VK_LOGIC_OP_AND_INVERTED = 4,
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800566 VK_LOGIC_OP_NO_OP = 5,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600567 VK_LOGIC_OP_XOR = 6,
568 VK_LOGIC_OP_OR = 7,
569 VK_LOGIC_OP_NOR = 8,
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800570 VK_LOGIC_OP_EQUIVALENT = 9,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600571 VK_LOGIC_OP_INVERT = 10,
572 VK_LOGIC_OP_OR_REVERSE = 11,
573 VK_LOGIC_OP_COPY_INVERTED = 12,
574 VK_LOGIC_OP_OR_INVERTED = 13,
575 VK_LOGIC_OP_NAND = 14,
576 VK_LOGIC_OP_SET = 15,
577 VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
578 VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800579 VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600580 VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
581} VkLogicOp;
582
583typedef enum {
584 VK_BLEND_ZERO = 0,
585 VK_BLEND_ONE = 1,
586 VK_BLEND_SRC_COLOR = 2,
587 VK_BLEND_ONE_MINUS_SRC_COLOR = 3,
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800588 VK_BLEND_DST_COLOR = 4,
589 VK_BLEND_ONE_MINUS_DST_COLOR = 5,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600590 VK_BLEND_SRC_ALPHA = 6,
591 VK_BLEND_ONE_MINUS_SRC_ALPHA = 7,
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800592 VK_BLEND_DST_ALPHA = 8,
593 VK_BLEND_ONE_MINUS_DST_ALPHA = 9,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600594 VK_BLEND_CONSTANT_COLOR = 10,
595 VK_BLEND_ONE_MINUS_CONSTANT_COLOR = 11,
596 VK_BLEND_CONSTANT_ALPHA = 12,
597 VK_BLEND_ONE_MINUS_CONSTANT_ALPHA = 13,
598 VK_BLEND_SRC_ALPHA_SATURATE = 14,
599 VK_BLEND_SRC1_COLOR = 15,
600 VK_BLEND_ONE_MINUS_SRC1_COLOR = 16,
601 VK_BLEND_SRC1_ALPHA = 17,
602 VK_BLEND_ONE_MINUS_SRC1_ALPHA = 18,
603 VK_BLEND_BEGIN_RANGE = VK_BLEND_ZERO,
604 VK_BLEND_END_RANGE = VK_BLEND_ONE_MINUS_SRC1_ALPHA,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800605 VK_BLEND_RANGE_SIZE = (VK_BLEND_ONE_MINUS_SRC1_ALPHA - VK_BLEND_ZERO + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600606 VK_BLEND_MAX_ENUM = 0x7FFFFFFF
607} VkBlend;
608
609typedef enum {
610 VK_BLEND_OP_ADD = 0,
611 VK_BLEND_OP_SUBTRACT = 1,
612 VK_BLEND_OP_REVERSE_SUBTRACT = 2,
613 VK_BLEND_OP_MIN = 3,
614 VK_BLEND_OP_MAX = 4,
615 VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
616 VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800617 VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600618 VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
619} VkBlendOp;
620
621typedef enum {
Courtney Goeltzenleuchter95edc602015-09-21 17:19:25 -0600622 VK_DYNAMIC_STATE_VIEWPORT = 0,
623 VK_DYNAMIC_STATE_SCISSOR = 1,
624 VK_DYNAMIC_STATE_LINE_WIDTH = 2,
625 VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
626 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
627 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
628 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
629 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
630 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
631 VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
632 VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800633 VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
Courtney Goeltzenleuchter95edc602015-09-21 17:19:25 -0600634 VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
635} VkDynamicState;
636
637typedef enum {
Chia-I Wub99df442015-10-26 16:49:32 +0800638 VK_FILTER_NEAREST = 0,
639 VK_FILTER_LINEAR = 1,
640 VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
641 VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800642 VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
Chia-I Wub99df442015-10-26 16:49:32 +0800643 VK_FILTER_MAX_ENUM = 0x7FFFFFFF
644} VkFilter;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600645
646typedef enum {
Chia-I Wub99df442015-10-26 16:49:32 +0800647 VK_SAMPLER_MIPMAP_MODE_BASE = 0,
648 VK_SAMPLER_MIPMAP_MODE_NEAREST = 1,
649 VK_SAMPLER_MIPMAP_MODE_LINEAR = 2,
650 VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_BASE,
651 VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800652 VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_BASE + 1),
Chia-I Wub99df442015-10-26 16:49:32 +0800653 VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
654} VkSamplerMipmapMode;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600655
656typedef enum {
Chia-I Wu1efb7e52015-10-26 17:32:47 +0800657 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
658 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
659 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
660 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
661 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
662 VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
663 VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800664 VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
Chia-I Wub99df442015-10-26 16:49:32 +0800665 VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
666} VkSamplerAddressMode;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600667
668typedef enum {
669 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
670 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
671 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
672 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
673 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
674 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
675 VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
676 VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800677 VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600678 VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
679} VkBorderColor;
680
681typedef enum {
682 VK_DESCRIPTOR_TYPE_SAMPLER = 0,
683 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
684 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
685 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
686 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
687 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
688 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
689 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
690 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
691 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
692 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
693 VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
694 VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800695 VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600696 VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
697} VkDescriptorType;
698
699typedef enum {
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600700 VK_ATTACHMENT_LOAD_OP_LOAD = 0,
701 VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
702 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
703 VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
704 VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800705 VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600706 VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
707} VkAttachmentLoadOp;
708
709typedef enum {
710 VK_ATTACHMENT_STORE_OP_STORE = 0,
711 VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
712 VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
713 VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800714 VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600715 VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
716} VkAttachmentStoreOp;
717
718typedef enum {
Chia-I Wu1efb7e52015-10-26 17:32:47 +0800719 VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
720 VK_PIPELINE_BIND_POINT_COMPUTE = 1,
721 VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
722 VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800723 VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600724 VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
725} VkPipelineBindPoint;
726
727typedef enum {
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800728 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
729 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
730 VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
731 VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800732 VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1),
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800733 VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
734} VkCommandBufferLevel;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600735
736typedef enum {
737 VK_INDEX_TYPE_UINT16 = 0,
738 VK_INDEX_TYPE_UINT32 = 1,
739 VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
740 VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800741 VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600742 VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
743} VkIndexType;
744
745typedef enum {
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600746 VK_RENDER_PASS_CONTENTS_INLINE = 0,
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800747 VK_RENDER_PASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600748 VK_RENDER_PASS_CONTENTS_BEGIN_RANGE = VK_RENDER_PASS_CONTENTS_INLINE,
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800749 VK_RENDER_PASS_CONTENTS_END_RANGE = VK_RENDER_PASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
Chia-I Wubb7fad92015-10-27 17:53:18 +0800750 VK_RENDER_PASS_CONTENTS_RANGE_SIZE = (VK_RENDER_PASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_RENDER_PASS_CONTENTS_INLINE + 1),
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600751 VK_RENDER_PASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
752} VkRenderPassContents;
753
Chia-I Wu439c0772015-10-26 17:00:46 +0800754typedef VkFlags VkInstanceCreateFlags;
Cody Northrop22b7fae2015-08-11 11:21:48 -0600755
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600756typedef enum {
757 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
758 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
759 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
760 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
761 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
762 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
763 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
764 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
765 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
766 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800767 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
768 VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600769} VkFormatFeatureFlagBits;
770typedef VkFlags VkFormatFeatureFlags;
771
772typedef enum {
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800773 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
774 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600775 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
776 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
777 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
Courtney Goeltzenleuchter660f0ca2015-09-10 14:14:11 -0600778 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600779 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
780 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
781} VkImageUsageFlagBits;
782typedef VkFlags VkImageUsageFlags;
783
784typedef enum {
Courtney Goeltzenleuchter8134da02015-09-10 17:00:22 -0600785 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
Courtney Goeltzenleuchter4da28862015-09-10 13:28:52 -0600786 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
787 VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
Courtney Goeltzenleuchter1459c752015-09-10 17:06:03 -0600788 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
789 VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
Courtney Goeltzenleuchter4da28862015-09-10 13:28:52 -0600790} VkImageCreateFlagBits;
791typedef VkFlags VkImageCreateFlags;
792
793typedef enum {
Courtney Goeltzenleuchter7b0d95d2015-09-11 11:40:48 -0600794 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
795 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
796 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
797 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
798 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
799 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
800 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
Courtney Goeltzenleuchterf131d732015-09-02 11:04:44 -0600801} VkSampleCountFlagBits;
802typedef VkFlags VkSampleCountFlags;
803
804typedef enum {
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600805 VK_QUEUE_GRAPHICS_BIT = 0x00000001,
806 VK_QUEUE_COMPUTE_BIT = 0x00000002,
807 VK_QUEUE_DMA_BIT = 0x00000004,
Chia-I Wu2bfb33c2015-10-26 17:24:52 +0800808 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
Tony Barbourd1c35722015-04-16 15:59:00 -0600809} VkQueueFlagBits;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600810typedef VkFlags VkQueueFlags;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -0600811
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600812typedef enum {
Chia-I Wuc8ea02f2015-10-27 18:53:22 +0800813 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
814 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
815 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
816 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
817 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
Tony Barbourd1c35722015-04-16 15:59:00 -0600818} VkMemoryPropertyFlagBits;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600819typedef VkFlags VkMemoryPropertyFlags;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -0600820
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600821typedef enum {
Chia-I Wuc8ea02f2015-10-27 18:53:22 +0800822 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600823} VkMemoryHeapFlagBits;
824typedef VkFlags VkMemoryHeapFlags;
Chia-I Wu439c0772015-10-26 17:00:46 +0800825typedef VkFlags VkDeviceCreateFlags;
826typedef VkFlags VkDeviceQueueCreateFlags;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600827typedef VkFlags VkMemoryMapFlags;
828
829typedef enum {
Courtney Goeltzenleuchter908e7672015-10-21 17:00:51 -0600830 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
831 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
832 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
833 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
834} VkImageAspectFlagBits;
835
836typedef enum {
Chia-I Wu2bfb33c2015-10-26 17:24:52 +0800837 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
838 VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
839 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600840} VkSparseImageFormatFlagBits;
841typedef VkFlags VkSparseImageFormatFlags;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600842typedef VkFlags VkSparseMemoryBindFlags;
843
844typedef enum {
845 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
846} VkFenceCreateFlagBits;
847typedef VkFlags VkFenceCreateFlags;
848typedef VkFlags VkSemaphoreCreateFlags;
849typedef VkFlags VkEventCreateFlags;
Chia-I Wu439c0772015-10-26 17:00:46 +0800850typedef VkFlags VkQueryPoolCreateFlags;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600851
852typedef enum {
Courtney Goeltzenleuchterfe1b36e2015-10-15 16:57:32 -0600853 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
854 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
855 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
856 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
857 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
858 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
859 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
860 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
861 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
862 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
863 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600864} VkQueryPipelineStatisticFlagBits;
865typedef VkFlags VkQueryPipelineStatisticFlags;
866
867typedef enum {
868 VK_QUERY_RESULT_DEFAULT = 0,
869 VK_QUERY_RESULT_64_BIT = 0x00000001,
870 VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
871 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
872 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
873} VkQueryResultFlagBits;
874typedef VkFlags VkQueryResultFlags;
875
876typedef enum {
Chia-I Wu439c0772015-10-26 17:00:46 +0800877 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
878 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
879 VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
880} VkBufferCreateFlagBits;
881typedef VkFlags VkBufferCreateFlags;
882
883typedef enum {
Chia-I Wu3432a0c2015-10-27 18:04:07 +0800884 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
885 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600886 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
887 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
888 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
889 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
890 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
891 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
892 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
893} VkBufferUsageFlagBits;
894typedef VkFlags VkBufferUsageFlags;
Chia-I Wu439c0772015-10-26 17:00:46 +0800895typedef VkFlags VkBufferViewCreateFlags;
Courtney Goeltzenleuchter5861a1b2015-09-01 17:30:39 -0600896typedef VkFlags VkImageViewCreateFlags;
Chia-I Wu439c0772015-10-26 17:00:46 +0800897typedef VkFlags VkImageAspectFlags;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600898typedef VkFlags VkShaderModuleCreateFlags;
899typedef VkFlags VkShaderCreateFlags;
900
901typedef enum {
Courtney Goeltzenleuchterd2635502015-10-21 17:08:06 -0600902 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
903 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
904 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
905 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
906 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
907 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
Chia-I Wu1efb7e52015-10-26 17:32:47 +0800908 VK_SHADER_STAGE_ALL_GRAPHICS = 0x1F,
Courtney Goeltzenleuchterd2635502015-10-21 17:08:06 -0600909 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
910} VkShaderStageFlagBits;
Chia-I Wu439c0772015-10-26 17:00:46 +0800911typedef VkFlags VkPipelineCacheCreateFlags;
912
913typedef enum {
914 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
915 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
916 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
917} VkPipelineCreateFlagBits;
918typedef VkFlags VkPipelineCreateFlags;
919typedef VkFlags VkPipelineShaderStageCreateFlags;
920typedef VkFlags VkPipelineVertexInputStateCreateFlags;
921typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
922typedef VkFlags VkPipelineTesselationStateCreateFlags;
923typedef VkFlags VkPipelineViewportStateCreateFlags;
Chia-I Wubb7fad92015-10-27 17:53:18 +0800924typedef VkFlags VkPipelineRasterizationStateCreateFlags;
Chia-I Wu1efb7e52015-10-26 17:32:47 +0800925
926typedef enum {
927 VK_CULL_MODE_NONE = 0,
928 VK_CULL_MODE_FRONT_BIT = 0x00000001,
929 VK_CULL_MODE_BACK_BIT = 0x00000002,
930 VK_CULL_MODE_FRONT_AND_BACK = 0x3,
931} VkCullModeFlagBits;
932typedef VkFlags VkCullModeFlags;
Chia-I Wu439c0772015-10-26 17:00:46 +0800933typedef VkFlags VkPipelineMultisampleStateCreateFlags;
934typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
935typedef VkFlags VkPipelineColorBlendStateCreateFlags;
Courtney Goeltzenleuchterd2635502015-10-21 17:08:06 -0600936
937typedef enum {
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600938 VK_CHANNEL_R_BIT = 0x00000001,
939 VK_CHANNEL_G_BIT = 0x00000002,
940 VK_CHANNEL_B_BIT = 0x00000004,
941 VK_CHANNEL_A_BIT = 0x00000008,
942} VkChannelFlagBits;
943typedef VkFlags VkChannelFlags;
Chia-I Wu439c0772015-10-26 17:00:46 +0800944typedef VkFlags VkPipelineDynamicStateCreateFlags;
945typedef VkFlags VkPipelineLayoutCreateFlags;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600946typedef VkFlags VkShaderStageFlags;
Chia-I Wu439c0772015-10-26 17:00:46 +0800947typedef VkFlags VkSamplerCreateFlags;
948typedef VkFlags VkDescriptorSetLayoutCreateFlags;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600949
950typedef enum {
Courtney Goeltzenleuchterbee18a92015-10-23 14:21:05 -0600951 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
952} VkDescriptorPoolCreateFlagBits;
953typedef VkFlags VkDescriptorPoolCreateFlags;
954typedef VkFlags VkDescriptorPoolResetFlags;
Chia-I Wu439c0772015-10-26 17:00:46 +0800955typedef VkFlags VkFramebufferCreateFlags;
956typedef VkFlags VkRenderPassCreateFlags;
Courtney Goeltzenleuchterbee18a92015-10-23 14:21:05 -0600957
958typedef enum {
Courtney Goeltzenleuchter304e6562015-09-16 16:38:23 -0600959 VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
960} VkAttachmentDescriptionFlagBits;
961typedef VkFlags VkAttachmentDescriptionFlags;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600962typedef VkFlags VkSubpassDescriptionFlags;
963
964typedef enum {
965 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
966 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
967 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
968 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
Courtney Goeltzenleuchter96835892015-10-15 17:35:38 -0600969 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
970 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600971 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
972 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
973 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
974 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
975 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
976 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
977 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
Courtney Goeltzenleuchter5db62b52015-09-16 15:47:14 -0600978 VK_PIPELINE_STAGE_HOST_BIT = 0x00002000,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600979 VK_PIPELINE_STAGE_ALL_GRAPHICS = 0x000007FF,
Courtney Goeltzenleuchter5db62b52015-09-16 15:47:14 -0600980 VK_PIPELINE_STAGE_ALL_GPU_COMMANDS = 0x00001FFF,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600981} VkPipelineStageFlagBits;
982typedef VkFlags VkPipelineStageFlags;
983
984typedef enum {
985 VK_MEMORY_OUTPUT_HOST_WRITE_BIT = 0x00000001,
986 VK_MEMORY_OUTPUT_SHADER_WRITE_BIT = 0x00000002,
987 VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT = 0x00000004,
988 VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000008,
989 VK_MEMORY_OUTPUT_TRANSFER_BIT = 0x00000010,
Tony Barbourd1c35722015-04-16 15:59:00 -0600990} VkMemoryOutputFlagBits;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600991typedef VkFlags VkMemoryOutputFlags;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -0600992
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -0600993typedef enum {
994 VK_MEMORY_INPUT_HOST_READ_BIT = 0x00000001,
995 VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT = 0x00000002,
996 VK_MEMORY_INPUT_INDEX_FETCH_BIT = 0x00000004,
997 VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT = 0x00000008,
998 VK_MEMORY_INPUT_UNIFORM_READ_BIT = 0x00000010,
999 VK_MEMORY_INPUT_SHADER_READ_BIT = 0x00000020,
1000 VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT = 0x00000040,
1001 VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000080,
1002 VK_MEMORY_INPUT_INPUT_ATTACHMENT_BIT = 0x00000100,
1003 VK_MEMORY_INPUT_TRANSFER_BIT = 0x00000200,
Tony Barbourd1c35722015-04-16 15:59:00 -06001004} VkMemoryInputFlagBits;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001005typedef VkFlags VkMemoryInputFlags;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001006
Cody Northrope62183e2015-07-09 18:08:05 -06001007typedef enum {
Chia-I Wu53534662015-10-26 17:08:33 +08001008 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
1009} VkDependencyFlagBits;
1010typedef VkFlags VkDependencyFlags;
1011
1012typedef enum {
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001013 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
1014 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
1015} VkCommandPoolCreateFlagBits;
1016typedef VkFlags VkCommandPoolCreateFlags;
Cody Northrope62183e2015-07-09 18:08:05 -06001017
1018typedef enum {
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001019 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
1020} VkCommandPoolResetFlagBits;
1021typedef VkFlags VkCommandPoolResetFlags;
Tony Barbourd1c35722015-04-16 15:59:00 -06001022
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001023typedef enum {
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001024 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
1025 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
1026 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
1027} VkCommandBufferUsageFlagBits;
1028typedef VkFlags VkCommandBufferUsageFlags;
Tony Barbourd1c35722015-04-16 15:59:00 -06001029
Cody Northrope62183e2015-07-09 18:08:05 -06001030typedef enum {
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001031 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
1032} VkCommandBufferResetFlagBits;
1033typedef VkFlags VkCommandBufferResetFlags;
Cody Northrope62183e2015-07-09 18:08:05 -06001034
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001035typedef enum {
Courtney Goeltzenleuchter49c73082015-09-17 15:06:17 -06001036 VK_STENCIL_FACE_NONE = 0,
1037 VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
1038 VK_STENCIL_FACE_BACK_BIT = 0x00000002,
Chia-I Wu1efb7e52015-10-26 17:32:47 +08001039 VK_STENCIL_FRONT_AND_BACK = 0x3,
Courtney Goeltzenleuchter49c73082015-09-17 15:06:17 -06001040} VkStencilFaceFlagBits;
1041typedef VkFlags VkStencilFaceFlags;
1042
1043typedef enum {
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001044 VK_QUERY_CONTROL_CONSERVATIVE_BIT = 0x00000001,
1045} VkQueryControlFlagBits;
1046typedef VkFlags VkQueryControlFlags;
Courtney Goeltzenleuchterf6d8f7b2015-04-16 09:13:59 -06001047
Chia-I Wubb7fad92015-10-27 17:53:18 +08001048typedef void* (VKAPI *PFN_vkAllocationFunction)(
Chia-I Wuf7458c52015-10-26 21:10:41 +08001049 void* pUserData,
1050 size_t size,
1051 size_t alignment,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001052 VkSystemAllocationScope allocationScope);
Chia-I Wuf7458c52015-10-26 21:10:41 +08001053
Chia-I Wubb7fad92015-10-27 17:53:18 +08001054typedef void* (VKAPI *PFN_vkReallocationFunction)(
Chia-I Wuf7458c52015-10-26 21:10:41 +08001055 void* pUserData,
1056 void* pOriginal,
1057 size_t size,
1058 size_t alignment,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001059 VkSystemAllocationScope allocationScope);
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001060
1061typedef void (VKAPI *PFN_vkFreeFunction)(
1062 void* pUserData,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001063 void* pMemory);
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001064
Chia-I Wubb7fad92015-10-27 17:53:18 +08001065typedef void (VKAPI *PFN_vkInternalAllocationNotification)(
Chia-I Wuf7458c52015-10-26 21:10:41 +08001066 void* pUserData,
1067 size_t size,
Chia-I Wubb7fad92015-10-27 17:53:18 +08001068 VkInternalAllocationType allocationType,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001069 VkSystemAllocationScope allocationScope);
Chia-I Wuf7458c52015-10-26 21:10:41 +08001070
1071typedef void (VKAPI *PFN_vkInternalFreeNotification)(
1072 void* pUserData,
1073 size_t size,
Chia-I Wubb7fad92015-10-27 17:53:18 +08001074 VkInternalAllocationType allocationType,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001075 VkSystemAllocationScope allocationScope);
Chia-I Wuf7458c52015-10-26 21:10:41 +08001076
Cody Northrop22b7fae2015-08-11 11:21:48 -06001077typedef void (VKAPI *PFN_vkVoidFunction)(void);
1078
1079typedef struct {
1080 VkStructureType sType;
1081 const void* pNext;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001082 const char* pApplicationName;
1083 uint32_t applicationVersion;
Cody Northrop22b7fae2015-08-11 11:21:48 -06001084 const char* pEngineName;
1085 uint32_t engineVersion;
1086 uint32_t apiVersion;
1087} VkApplicationInfo;
1088
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001089typedef struct {
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001090 VkStructureType sType;
1091 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001092 VkInstanceCreateFlags flags;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001093 const VkApplicationInfo* pApplicationInfo;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001094 uint32_t enabledLayerNameCount;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001095 const char*const* ppEnabledLayerNames;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001096 uint32_t enabledExtensionNameCount;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001097 const char*const* ppEnabledExtensionNames;
1098} VkInstanceCreateInfo;
1099
1100typedef struct {
Chia-I Wuf7458c52015-10-26 21:10:41 +08001101 void* pUserData;
Chia-I Wubb7fad92015-10-27 17:53:18 +08001102 PFN_vkAllocationFunction pfnAllocation;
1103 PFN_vkReallocationFunction pfnReallocation;
Chia-I Wuf7458c52015-10-26 21:10:41 +08001104 PFN_vkFreeFunction pfnFree;
Chia-I Wubb7fad92015-10-27 17:53:18 +08001105 PFN_vkInternalAllocationNotification pfnInternalAllocation;
Chia-I Wuf7458c52015-10-26 21:10:41 +08001106 PFN_vkInternalFreeNotification pfnInternalFree;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001107} VkAllocationCallbacks;
Chia-I Wuf7458c52015-10-26 21:10:41 +08001108
1109typedef struct {
Courtney Goeltzenleuchtercd2a0992015-07-09 11:44:38 -06001110 VkBool32 robustBufferAccess;
1111 VkBool32 fullDrawIndexUint32;
1112 VkBool32 imageCubeArray;
1113 VkBool32 independentBlend;
1114 VkBool32 geometryShader;
1115 VkBool32 tessellationShader;
1116 VkBool32 sampleRateShading;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001117 VkBool32 dualSrcBlend;
Courtney Goeltzenleuchtercd2a0992015-07-09 11:44:38 -06001118 VkBool32 logicOp;
Cody Northrop00d01f32015-08-04 14:49:43 -06001119 VkBool32 multiDrawIndirect;
Courtney Goeltzenleuchtera4c4ae02015-10-15 12:57:38 -06001120 VkBool32 depthClamp;
Courtney Goeltzenleuchtercd2a0992015-07-09 11:44:38 -06001121 VkBool32 depthBiasClamp;
1122 VkBool32 fillModeNonSolid;
1123 VkBool32 depthBounds;
1124 VkBool32 wideLines;
1125 VkBool32 largePoints;
Courtney Goeltzenleuchterfb7fd092015-10-22 15:47:21 -06001126 VkBool32 alphaToOne;
1127 VkBool32 multiViewport;
1128 VkBool32 samplerAnisotropy;
Courtney Goeltzenleuchtercd2a0992015-07-09 11:44:38 -06001129 VkBool32 textureCompressionETC2;
1130 VkBool32 textureCompressionASTC_LDR;
1131 VkBool32 textureCompressionBC;
Courtney Goeltzenleuchter0ebea1d2015-09-02 10:41:55 -06001132 VkBool32 occlusionQueryNonConservative;
Courtney Goeltzenleuchtercd2a0992015-07-09 11:44:38 -06001133 VkBool32 pipelineStatisticsQuery;
Chia-I Wud10572e2015-10-26 17:04:32 +08001134 VkBool32 vertexPipelineStoresAndAtomics;
1135 VkBool32 fragmentStoresAndAtomics;
1136 VkBool32 shaderTessellationAndGeometryPointSize;
Cody Northrop00d01f32015-08-04 14:49:43 -06001137 VkBool32 shaderImageGatherExtended;
Courtney Goeltzenleuchtercd2a0992015-07-09 11:44:38 -06001138 VkBool32 shaderStorageImageExtendedFormats;
1139 VkBool32 shaderStorageImageMultisample;
Chia-I Wud44b3c82015-10-27 18:52:05 +08001140 VkBool32 shaderStorageImageReadWithoutFormat;
1141 VkBool32 shaderStorageImageWriteWithoutFormat;
Courtney Goeltzenleuchtercd2a0992015-07-09 11:44:38 -06001142 VkBool32 shaderUniformBufferArrayDynamicIndexing;
1143 VkBool32 shaderSampledImageArrayDynamicIndexing;
1144 VkBool32 shaderStorageBufferArrayDynamicIndexing;
1145 VkBool32 shaderStorageImageArrayDynamicIndexing;
1146 VkBool32 shaderClipDistance;
1147 VkBool32 shaderCullDistance;
1148 VkBool32 shaderFloat64;
1149 VkBool32 shaderInt64;
Courtney Goeltzenleuchtercd2a0992015-07-09 11:44:38 -06001150 VkBool32 shaderInt16;
1151 VkBool32 shaderResourceResidency;
Chia-I Wu02bf2a82015-10-27 18:58:00 +08001152 VkBool32 shaderResourceMinLod;
Mark Lobodzinskida72a0d2015-09-07 12:56:17 -06001153 VkBool32 sparseBinding;
Courtney Goeltzenleuchtercd2a0992015-07-09 11:44:38 -06001154 VkBool32 sparseResidencyBuffer;
1155 VkBool32 sparseResidencyImage2D;
1156 VkBool32 sparseResidencyImage3D;
1157 VkBool32 sparseResidency2Samples;
1158 VkBool32 sparseResidency4Samples;
1159 VkBool32 sparseResidency8Samples;
1160 VkBool32 sparseResidency16Samples;
Courtney Goeltzenleuchtercd2a0992015-07-09 11:44:38 -06001161 VkBool32 sparseResidencyAliased;
Chia-I Wucdfa6fe2015-10-27 18:52:46 +08001162 VkBool32 variableMultisampleRate;
Chris Forbesbc0bb772015-06-21 22:55:02 +12001163} VkPhysicalDeviceFeatures;
1164
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001165typedef struct {
1166 VkFormatFeatureFlags linearTilingFeatures;
1167 VkFormatFeatureFlags optimalTilingFeatures;
Mark Lobodzinski7d4ac512015-09-03 15:21:52 -06001168 VkFormatFeatureFlags bufferFeatures;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001169} VkFormatProperties;
1170
1171typedef struct {
Courtney Goeltzenleuchter4da28862015-09-10 13:28:52 -06001172 int32_t width;
1173 int32_t height;
1174 int32_t depth;
1175} VkExtent3D;
1176
1177typedef struct {
1178 VkExtent3D maxExtent;
1179 uint32_t maxMipLevels;
Courtney Goeltzenleuchter8367ce02015-10-16 09:46:00 -06001180 uint32_t maxArrayLayers;
Courtney Goeltzenleuchterf131d732015-09-02 11:04:44 -06001181 VkSampleCountFlags sampleCounts;
Courtney Goeltzenleuchter4da28862015-09-10 13:28:52 -06001182 VkDeviceSize maxResourceSize;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001183} VkImageFormatProperties;
1184
1185typedef struct {
Chris Forbes658ec0d2015-06-21 20:09:12 +12001186 uint32_t maxImageDimension1D;
1187 uint32_t maxImageDimension2D;
1188 uint32_t maxImageDimension3D;
1189 uint32_t maxImageDimensionCube;
1190 uint32_t maxImageArrayLayers;
Courtney Goeltzenleuchterf131d732015-09-02 11:04:44 -06001191 VkSampleCountFlags sampleCounts;
Chia-I Wu2bfb33c2015-10-26 17:24:52 +08001192 uint32_t maxTexelBufferElements;
Courtney Goeltzenleuchterfb7fd092015-10-22 15:47:21 -06001193 uint32_t maxUniformBufferRange;
1194 uint32_t maxStorageBufferRange;
Chris Forbes658ec0d2015-06-21 20:09:12 +12001195 uint32_t maxPushConstantsSize;
1196 uint32_t maxMemoryAllocationCount;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001197 VkDeviceSize bufferImageGranularity;
Courtney Goeltzenleuchterdff70222015-08-28 16:27:33 -06001198 VkDeviceSize sparseAddressSpaceSize;
Chris Forbes658ec0d2015-06-21 20:09:12 +12001199 uint32_t maxBoundDescriptorSets;
Chris Forbes658ec0d2015-06-21 20:09:12 +12001200 uint32_t maxPerStageDescriptorSamplers;
1201 uint32_t maxPerStageDescriptorUniformBuffers;
1202 uint32_t maxPerStageDescriptorStorageBuffers;
1203 uint32_t maxPerStageDescriptorSampledImages;
1204 uint32_t maxPerStageDescriptorStorageImages;
1205 uint32_t maxDescriptorSetSamplers;
1206 uint32_t maxDescriptorSetUniformBuffers;
Courtney Goeltzenleuchter8dcde7e2015-09-11 11:47:05 -06001207 uint32_t maxDescriptorSetUniformBuffersDynamic;
Chris Forbes658ec0d2015-06-21 20:09:12 +12001208 uint32_t maxDescriptorSetStorageBuffers;
Courtney Goeltzenleuchter8dcde7e2015-09-11 11:47:05 -06001209 uint32_t maxDescriptorSetStorageBuffersDynamic;
Chris Forbes658ec0d2015-06-21 20:09:12 +12001210 uint32_t maxDescriptorSetSampledImages;
1211 uint32_t maxDescriptorSetStorageImages;
1212 uint32_t maxVertexInputAttributes;
Courtney Goeltzenleuchterf69841d2015-09-16 12:00:18 -06001213 uint32_t maxVertexInputBindings;
Chris Forbes658ec0d2015-06-21 20:09:12 +12001214 uint32_t maxVertexInputAttributeOffset;
1215 uint32_t maxVertexInputBindingStride;
1216 uint32_t maxVertexOutputComponents;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001217 uint32_t maxTessellationGenerationLevel;
Courtney Goeltzenleuchter96835892015-10-15 17:35:38 -06001218 uint32_t maxTessellationPatchSize;
1219 uint32_t maxTessellationControlPerVertexInputComponents;
1220 uint32_t maxTessellationControlPerVertexOutputComponents;
1221 uint32_t maxTessellationControlPerPatchOutputComponents;
1222 uint32_t maxTessellationControlTotalOutputComponents;
1223 uint32_t maxTessellationEvaluationInputComponents;
1224 uint32_t maxTessellationEvaluationOutputComponents;
Chris Forbes658ec0d2015-06-21 20:09:12 +12001225 uint32_t maxGeometryShaderInvocations;
1226 uint32_t maxGeometryInputComponents;
1227 uint32_t maxGeometryOutputComponents;
1228 uint32_t maxGeometryOutputVertices;
1229 uint32_t maxGeometryTotalOutputComponents;
1230 uint32_t maxFragmentInputComponents;
Courtney Goeltzenleuchterfb7fd092015-10-22 15:47:21 -06001231 uint32_t maxFragmentOutputAttachments;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001232 uint32_t maxFragmentDualSrcAttachments;
Chris Forbes658ec0d2015-06-21 20:09:12 +12001233 uint32_t maxFragmentCombinedOutputResources;
1234 uint32_t maxComputeSharedMemorySize;
1235 uint32_t maxComputeWorkGroupCount[3];
1236 uint32_t maxComputeWorkGroupInvocations;
1237 uint32_t maxComputeWorkGroupSize[3];
1238 uint32_t subPixelPrecisionBits;
1239 uint32_t subTexelPrecisionBits;
1240 uint32_t mipmapPrecisionBits;
1241 uint32_t maxDrawIndexedIndexValue;
1242 uint32_t maxDrawIndirectInstanceCount;
Chris Forbes658ec0d2015-06-21 20:09:12 +12001243 float maxSamplerLodBias;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001244 float maxSamplerAnisotropy;
Chris Forbes658ec0d2015-06-21 20:09:12 +12001245 uint32_t maxViewports;
Chris Forbes658ec0d2015-06-21 20:09:12 +12001246 uint32_t maxViewportDimensions[2];
1247 float viewportBoundsRange[2];
1248 uint32_t viewportSubPixelBits;
Chia-I Wu53534662015-10-26 17:08:33 +08001249 size_t minMemoryMapAlignment;
1250 VkDeviceSize minTexelBufferOffsetAlignment;
1251 VkDeviceSize minUniformBufferOffsetAlignment;
1252 VkDeviceSize minStorageBufferOffsetAlignment;
Courtney Goeltzenleuchterfb7fd092015-10-22 15:47:21 -06001253 int32_t minTexelOffset;
Chris Forbes658ec0d2015-06-21 20:09:12 +12001254 uint32_t maxTexelOffset;
Courtney Goeltzenleuchterfb7fd092015-10-22 15:47:21 -06001255 int32_t minTexelGatherOffset;
Chris Forbes658ec0d2015-06-21 20:09:12 +12001256 uint32_t maxTexelGatherOffset;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001257 float minInterpolationOffset;
1258 float maxInterpolationOffset;
Chris Forbes658ec0d2015-06-21 20:09:12 +12001259 uint32_t subPixelInterpolationOffsetBits;
1260 uint32_t maxFramebufferWidth;
1261 uint32_t maxFramebufferHeight;
1262 uint32_t maxFramebufferLayers;
1263 uint32_t maxFramebufferColorSamples;
1264 uint32_t maxFramebufferDepthSamples;
1265 uint32_t maxFramebufferStencilSamples;
1266 uint32_t maxColorAttachments;
1267 uint32_t maxSampledImageColorSamples;
1268 uint32_t maxSampledImageDepthSamples;
Chia-I Wu1efb7e52015-10-26 17:32:47 +08001269 uint32_t maxSampledImageStencilSamples;
Chris Forbes658ec0d2015-06-21 20:09:12 +12001270 uint32_t maxSampledImageIntegerSamples;
1271 uint32_t maxStorageImageSamples;
1272 uint32_t maxSampleMaskWords;
Chia-I Wuc74c31c2015-10-26 19:27:21 +08001273 float timestampPeriod;
Chris Forbes658ec0d2015-06-21 20:09:12 +12001274 uint32_t maxClipDistances;
1275 uint32_t maxCullDistances;
1276 uint32_t maxCombinedClipAndCullDistances;
Courtney Goeltzenleuchter1a606eb2015-10-23 10:37:02 -06001277 uint32_t discreteQueuePriorities;
Chris Forbes658ec0d2015-06-21 20:09:12 +12001278 float pointSizeRange[2];
1279 float lineWidthRange[2];
1280 float pointSizeGranularity;
1281 float lineWidthGranularity;
Chia-I Wuc67d8a42015-10-26 16:47:26 +08001282 VkBool32 strictLines;
Chia-I Wu53534662015-10-26 17:08:33 +08001283 VkDeviceSize recommendedBufferCopyOffsetAlignment;
1284 VkDeviceSize recommendedBufferCopyRowPitchAlignment;
Chris Forbesbc0bb772015-06-21 22:55:02 +12001285} VkPhysicalDeviceLimits;
1286
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001287typedef struct {
Courtney Goeltzenleuchter40f8d802015-09-10 12:54:32 -06001288 VkBool32 residencyStandard2DBlockShape;
Chia-I Wu2bfb33c2015-10-26 17:24:52 +08001289 VkBool32 residencyStandard2DMultisampleBlockShape;
Courtney Goeltzenleuchter40f8d802015-09-10 12:54:32 -06001290 VkBool32 residencyStandard3DBlockShape;
1291 VkBool32 residencyAlignedMipSize;
Courtney Goeltzenleuchter40f8d802015-09-10 12:54:32 -06001292 VkBool32 residencyNonResidentStrict;
Mark Lobodzinskida72a0d2015-09-07 12:56:17 -06001293} VkPhysicalDeviceSparseProperties;
1294
1295typedef struct {
Courtney Goeltzenleuchterf53c3cb2015-04-14 14:55:44 -06001296 uint32_t apiVersion;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001297 uint32_t driverVersion;
Chia-I Wu02bf2a82015-10-27 18:58:00 +08001298 uint32_t vendorID;
1299 uint32_t deviceID;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001300 VkPhysicalDeviceType deviceType;
1301 char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME];
1302 uint8_t pipelineCacheUUID[VK_UUID_LENGTH];
Mark Lobodzinskida72a0d2015-09-07 12:56:17 -06001303 VkPhysicalDeviceLimits limits;
1304 VkPhysicalDeviceSparseProperties sparseProperties;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001305} VkPhysicalDeviceProperties;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001306
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001307typedef struct {
1308 VkQueueFlags queueFlags;
Courtney Goeltzenleuchterf53c3cb2015-04-14 14:55:44 -06001309 uint32_t queueCount;
Courtney Goeltzenleuchter188cd2d2015-10-19 16:03:32 -06001310 uint32_t timestampValidBits;
Chia-I Wu1c5add52015-10-27 18:58:24 +08001311 VkExtent3D minImageTransferGranularity;
Cody Northropd0802882015-08-03 17:04:53 -06001312} VkQueueFamilyProperties;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001313
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001314typedef struct {
1315 VkMemoryPropertyFlags propertyFlags;
1316 uint32_t heapIndex;
Mark Lobodzinskib3fbcd92015-07-02 16:49:40 -06001317} VkMemoryType;
1318
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001319typedef struct {
1320 VkDeviceSize size;
1321 VkMemoryHeapFlags flags;
Mark Lobodzinskib3fbcd92015-07-02 16:49:40 -06001322} VkMemoryHeap;
1323
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001324typedef struct {
Mark Lobodzinskib3fbcd92015-07-02 16:49:40 -06001325 uint32_t memoryTypeCount;
1326 VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES];
1327 uint32_t memoryHeapCount;
1328 VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS];
Tony Barbourd1c35722015-04-16 15:59:00 -06001329} VkPhysicalDeviceMemoryProperties;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001330
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001331typedef struct {
Courtney Goeltzenleuchter73db5bf2015-09-16 16:23:55 -06001332 VkStructureType sType;
1333 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001334 VkDeviceQueueCreateFlags flags;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001335 uint32_t queueFamilyIndex;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001336 uint32_t queuePriorityCount;
Courtney Goeltzenleuchter1a606eb2015-10-23 10:37:02 -06001337 const float* pQueuePriorities;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001338} VkDeviceQueueCreateInfo;
1339
1340typedef struct {
1341 VkStructureType sType;
1342 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001343 VkDeviceCreateFlags flags;
Courtney Goeltzenleuchter7831e962015-10-15 16:58:44 -06001344 uint32_t requestedQueueCount;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001345 const VkDeviceQueueCreateInfo* pRequestedQueues;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001346 uint32_t enabledLayerNameCount;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001347 const char*const* ppEnabledLayerNames;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001348 uint32_t enabledExtensionNameCount;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001349 const char*const* ppEnabledExtensionNames;
1350 const VkPhysicalDeviceFeatures* pEnabledFeatures;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001351} VkDeviceCreateInfo;
1352
1353typedef struct {
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001354 char extensionName[VK_MAX_EXTENSION_NAME];
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001355 uint32_t specVersion;
1356} VkExtensionProperties;
1357
1358typedef struct {
1359 char layerName[VK_MAX_EXTENSION_NAME];
1360 uint32_t specVersion;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001361 uint32_t implementationVersion;
Courtney Goeltzenleuchter9fdf4332015-07-13 14:01:15 -06001362 char description[VK_MAX_DESCRIPTION];
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001363} VkLayerProperties;
1364
1365typedef struct {
Chia-I Wuf9be13c2015-10-26 20:37:06 +08001366 VkStructureType sType;
1367 const void* pNext;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001368 uint32_t waitSemaphoreCount;
Courtney Goeltzenleuchter646b9072015-10-20 18:04:07 -06001369 const VkSemaphore* pWaitSemaphores;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001370 uint32_t commandBufferCount;
Chia-I Wubb7fad92015-10-27 17:53:18 +08001371 const VkCommandBuffer* pCommandBuffers;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001372 uint32_t signalSemaphoreCount;
Courtney Goeltzenleuchter646b9072015-10-20 18:04:07 -06001373 const VkSemaphore* pSignalSemaphores;
1374} VkSubmitInfo;
1375
1376typedef struct {
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001377 VkStructureType sType;
1378 const void* pNext;
1379 VkDeviceSize allocationSize;
1380 uint32_t memoryTypeIndex;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001381} VkMemoryAllocateInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001382
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001383typedef struct {
1384 VkStructureType sType;
1385 const void* pNext;
Chia-I Wubb7fad92015-10-27 17:53:18 +08001386 VkDeviceMemory memory;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001387 VkDeviceSize offset;
1388 VkDeviceSize size;
Courtney Goeltzenleuchterf69f8a22015-04-29 17:16:21 -06001389} VkMappedMemoryRange;
1390
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001391typedef struct {
1392 VkDeviceSize size;
1393 VkDeviceSize alignment;
1394 uint32_t memoryTypeBits;
Mark Lobodzinskib3fbcd92015-07-02 16:49:40 -06001395} VkMemoryRequirements;
1396
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001397typedef struct {
Courtney Goeltzenleuchter908e7672015-10-21 17:00:51 -06001398 VkImageAspectFlagBits aspect;
Mark Lobodzinski16e8bef2015-07-03 15:58:09 -06001399 VkExtent3D imageGranularity;
1400 VkSparseImageFormatFlags flags;
1401} VkSparseImageFormatProperties;
1402
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001403typedef struct {
Chia-I Wu2bfb33c2015-10-26 17:24:52 +08001404 VkSparseImageFormatProperties formatProperties;
Chia-I Wu02bf2a82015-10-27 18:58:00 +08001405 uint32_t imageMipTailStartLod;
Mark Lobodzinski16e8bef2015-07-03 15:58:09 -06001406 VkDeviceSize imageMipTailSize;
1407 VkDeviceSize imageMipTailOffset;
1408 VkDeviceSize imageMipTailStride;
1409} VkSparseImageMemoryRequirements;
1410
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001411typedef struct {
Chia-I Wu2bfb33c2015-10-26 17:24:52 +08001412 VkDeviceSize resourceOffset;
1413 VkDeviceSize size;
Chia-I Wubb7fad92015-10-27 17:53:18 +08001414 VkDeviceMemory memory;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001415 VkDeviceSize memoryOffset;
Mark Lobodzinski16e8bef2015-07-03 15:58:09 -06001416 VkSparseMemoryBindFlags flags;
Chia-I Wu1ff4c3d2015-10-26 16:55:27 +08001417} VkSparseMemoryBind;
1418
1419typedef struct {
1420 VkBuffer buffer;
1421 uint32_t bindCount;
1422 const VkSparseMemoryBind* pBinds;
1423} VkSparseBufferMemoryBindInfo;
1424
1425typedef struct {
1426 VkImage image;
1427 uint32_t bindCount;
1428 const VkSparseMemoryBind* pBinds;
1429} VkSparseImageOpaqueMemoryBindInfo;
Mark Lobodzinski16e8bef2015-07-03 15:58:09 -06001430
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001431typedef struct {
Courtney Goeltzenleuchter908e7672015-10-21 17:00:51 -06001432 VkImageAspectFlagBits aspect;
Courtney Goeltzenleuchterf53c3cb2015-04-14 14:55:44 -06001433 uint32_t mipLevel;
Courtney Goeltzenleuchter4a261892015-09-10 16:38:41 -06001434 uint32_t arrayLayer;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001435} VkImageSubresource;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001436
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001437typedef struct {
1438 int32_t x;
1439 int32_t y;
1440 int32_t z;
1441} VkOffset3D;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001442
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001443typedef struct {
Courtney Goeltzenleuchter548c4bc2015-04-10 16:34:21 -06001444 VkImageSubresource subresource;
1445 VkOffset3D offset;
1446 VkExtent3D extent;
Chia-I Wubb7fad92015-10-27 17:53:18 +08001447 VkDeviceMemory memory;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001448 VkDeviceSize memoryOffset;
Mark Lobodzinski16e8bef2015-07-03 15:58:09 -06001449 VkSparseMemoryBindFlags flags;
Chia-I Wu1ff4c3d2015-10-26 16:55:27 +08001450} VkSparseImageMemoryBind;
1451
1452typedef struct {
1453 VkImage image;
1454 uint32_t bindCount;
1455 const VkSparseImageMemoryBind* pBinds;
Mark Lobodzinski16e8bef2015-07-03 15:58:09 -06001456} VkSparseImageMemoryBindInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001457
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001458typedef struct {
1459 VkStructureType sType;
1460 const void* pNext;
Chia-I Wu1ff4c3d2015-10-26 16:55:27 +08001461 uint32_t waitSemaphoreCount;
1462 const VkSemaphore* pWaitSemaphores;
1463 uint32_t bufferBindCount;
1464 const VkSparseBufferMemoryBindInfo* pBufferBinds;
1465 uint32_t imageOpaqueBindCount;
1466 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
1467 uint32_t imageBindCount;
1468 const VkSparseImageMemoryBindInfo* pImageBinds;
1469 uint32_t signalSemaphoreCount;
1470 const VkSemaphore* pSignalSemaphores;
1471} VkBindSparseInfo;
1472
1473typedef struct {
1474 VkStructureType sType;
1475 const void* pNext;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001476 VkFenceCreateFlags flags;
1477} VkFenceCreateInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001478
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001479typedef struct {
1480 VkStructureType sType;
1481 const void* pNext;
1482 VkSemaphoreCreateFlags flags;
1483} VkSemaphoreCreateInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001484
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001485typedef struct {
1486 VkStructureType sType;
1487 const void* pNext;
1488 VkEventCreateFlags flags;
1489} VkEventCreateInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001490
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001491typedef struct {
1492 VkStructureType sType;
1493 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001494 VkQueryPoolCreateFlags flags;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001495 VkQueryType queryType;
1496 uint32_t slots;
1497 VkQueryPipelineStatisticFlags pipelineStatistics;
1498} VkQueryPoolCreateInfo;
1499
1500typedef struct {
1501 VkStructureType sType;
1502 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001503 VkBufferCreateFlags flags;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001504 VkDeviceSize size;
1505 VkBufferUsageFlags usage;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001506 VkSharingMode sharingMode;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001507 uint32_t queueFamilyIndexCount;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001508 const uint32_t* pQueueFamilyIndices;
1509} VkBufferCreateInfo;
1510
1511typedef struct {
1512 VkStructureType sType;
1513 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001514 VkBufferViewCreateFlags flags;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001515 VkBuffer buffer;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001516 VkFormat format;
1517 VkDeviceSize offset;
1518 VkDeviceSize range;
1519} VkBufferViewCreateInfo;
1520
1521typedef struct {
1522 VkStructureType sType;
1523 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001524 VkImageCreateFlags flags;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001525 VkImageType imageType;
1526 VkFormat format;
Tony Barbour2e64be82015-04-13 13:11:12 -06001527 VkExtent3D extent;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001528 uint32_t mipLevels;
Courtney Goeltzenleuchter5d2aed42015-10-21 17:57:31 -06001529 uint32_t arrayLayers;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001530 uint32_t samples;
1531 VkImageTiling tiling;
1532 VkImageUsageFlags usage;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001533 VkSharingMode sharingMode;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001534 uint32_t queueFamilyIndexCount;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001535 const uint32_t* pQueueFamilyIndices;
Courtney Goeltzenleuchtere3efa502015-09-16 12:02:52 -06001536 VkImageLayout initialLayout;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001537} VkImageCreateInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001538
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001539typedef struct {
1540 VkDeviceSize offset;
1541 VkDeviceSize size;
1542 VkDeviceSize rowPitch;
1543 VkDeviceSize depthPitch;
1544} VkSubresourceLayout;
1545
1546typedef struct {
1547 VkChannelSwizzle r;
1548 VkChannelSwizzle g;
1549 VkChannelSwizzle b;
1550 VkChannelSwizzle a;
1551} VkChannelMapping;
1552
1553typedef struct {
Courtney Goeltzenleuchterba724512015-09-10 17:58:54 -06001554 VkImageAspectFlags aspectMask;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001555 uint32_t baseMipLevel;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001556 uint32_t levelCount;
Courtney Goeltzenleuchter4a261892015-09-10 16:38:41 -06001557 uint32_t baseArrayLayer;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001558 uint32_t layerCount;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001559} VkImageSubresourceRange;
1560
1561typedef struct {
1562 VkStructureType sType;
1563 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001564 VkImageViewCreateFlags flags;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001565 VkImage image;
1566 VkImageViewType viewType;
1567 VkFormat format;
1568 VkChannelMapping channels;
1569 VkImageSubresourceRange subresourceRange;
1570} VkImageViewCreateInfo;
1571
1572typedef struct {
1573 VkStructureType sType;
1574 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001575 VkShaderModuleCreateFlags flags;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001576 size_t codeSize;
Chia-I Wu8094f192015-10-26 19:22:06 +08001577 const uint32_t* pCode;
Courtney Goeltzenleuchtera607df12015-06-18 21:49:59 -06001578} VkShaderModuleCreateInfo;
1579
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001580typedef struct {
1581 VkStructureType sType;
1582 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001583 VkShaderCreateFlags flags;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001584 VkShaderModule module;
1585 const char* pName;
Courtney Goeltzenleuchterd2635502015-10-21 17:08:06 -06001586 VkShaderStageFlagBits stage;
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06001587} VkShaderCreateInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001588
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001589typedef struct {
Jon Ashburnc669cc62015-07-09 15:02:25 -06001590 VkStructureType sType;
1591 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001592 VkPipelineCacheCreateFlags flags;
Chia-I Wu2bfb33c2015-10-26 17:24:52 +08001593 size_t initialDataSize;
1594 const void* pInitialData;
Jon Ashburnc669cc62015-07-09 15:02:25 -06001595} VkPipelineCacheCreateInfo;
1596
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001597typedef struct {
Chia-I Wu02bf2a82015-10-27 18:58:00 +08001598 uint32_t constantID;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001599 uint32_t offset;
Chia-I Wu2bfb33c2015-10-26 17:24:52 +08001600 size_t size;
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06001601} VkSpecializationMapEntry;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001602
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001603typedef struct {
Courtney Goeltzenleuchterf53c3cb2015-04-14 14:55:44 -06001604 uint32_t mapEntryCount;
Chia-I Wu40cf0ae2015-10-26 17:20:32 +08001605 const VkSpecializationMapEntry* pMapEntries;
Courtney Goeltzenleuchtera22ab872015-07-14 11:56:44 -06001606 size_t dataSize;
Courtney Goeltzenleuchterf53c3cb2015-04-14 14:55:44 -06001607 const void* pData;
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06001608} VkSpecializationInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001609
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001610typedef struct {
1611 VkStructureType sType;
1612 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001613 VkPipelineShaderStageCreateFlags flags;
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06001614 VkShader shader;
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06001615 const VkSpecializationInfo* pSpecializationInfo;
Mark Lobodzinskid5732f32015-06-23 15:11:57 -06001616} VkPipelineShaderStageCreateInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001617
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001618typedef struct {
1619 uint32_t binding;
Chia-I Wu2bfb33c2015-10-26 17:24:52 +08001620 uint32_t stride;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001621 VkVertexInputStepRate stepRate;
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06001622} VkVertexInputBindingDescription;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001623
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001624typedef struct {
1625 uint32_t location;
1626 uint32_t binding;
1627 VkFormat format;
Chia-I Wu2bfb33c2015-10-26 17:24:52 +08001628 uint32_t offset;
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06001629} VkVertexInputAttributeDescription;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001630
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001631typedef struct {
1632 VkStructureType sType;
1633 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001634 VkPipelineVertexInputStateCreateFlags flags;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001635 uint32_t vertexBindingDescriptionCount;
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06001636 const VkVertexInputBindingDescription* pVertexBindingDescriptions;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001637 uint32_t vertexAttributeDescriptionCount;
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06001638 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
Mark Lobodzinskid5732f32015-06-23 15:11:57 -06001639} VkPipelineVertexInputStateCreateInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001640
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001641typedef struct {
1642 VkStructureType sType;
1643 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001644 VkPipelineInputAssemblyStateCreateFlags flags;
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06001645 VkPrimitiveTopology topology;
Courtney Goeltzenleuchtercd2a0992015-07-09 11:44:38 -06001646 VkBool32 primitiveRestartEnable;
Tony Barbourdd6e32e2015-07-10 15:29:03 -06001647} VkPipelineInputAssemblyStateCreateInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001648
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001649typedef struct {
1650 VkStructureType sType;
1651 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001652 VkPipelineTesselationStateCreateFlags flags;
Courtney Goeltzenleuchterf53c3cb2015-04-14 14:55:44 -06001653 uint32_t patchControlPoints;
Tony Barbourdd6e32e2015-07-10 15:29:03 -06001654} VkPipelineTessellationStateCreateInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001655
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001656typedef struct {
Courtney Goeltzenleuchter49c73082015-09-17 15:06:17 -06001657 float originX;
1658 float originY;
1659 float width;
1660 float height;
1661 float minDepth;
1662 float maxDepth;
1663} VkViewport;
1664
1665typedef struct {
1666 int32_t x;
1667 int32_t y;
1668} VkOffset2D;
1669
1670typedef struct {
1671 int32_t width;
1672 int32_t height;
1673} VkExtent2D;
1674
1675typedef struct {
1676 VkOffset2D offset;
1677 VkExtent2D extent;
1678} VkRect2D;
1679
1680typedef struct {
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001681 VkStructureType sType;
1682 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001683 VkPipelineViewportStateCreateFlags flags;
Tony Barbourd1c35722015-04-16 15:59:00 -06001684 uint32_t viewportCount;
Courtney Goeltzenleuchter95edc602015-09-21 17:19:25 -06001685 const VkViewport* pViewports;
1686 uint32_t scissorCount;
1687 const VkRect2D* pScissors;
Tony Barbourdd6e32e2015-07-10 15:29:03 -06001688} VkPipelineViewportStateCreateInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001689
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001690typedef struct {
1691 VkStructureType sType;
1692 const void* pNext;
Chia-I Wubb7fad92015-10-27 17:53:18 +08001693 VkPipelineRasterizationStateCreateFlags flags;
Courtney Goeltzenleuchtera4c4ae02015-10-15 12:57:38 -06001694 VkBool32 depthClampEnable;
Courtney Goeltzenleuchtercd2a0992015-07-09 11:44:38 -06001695 VkBool32 rasterizerDiscardEnable;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001696 VkFillMode fillMode;
Chia-I Wu1efb7e52015-10-26 17:32:47 +08001697 VkCullModeFlags cullMode;
Tony Barbourd1c35722015-04-16 15:59:00 -06001698 VkFrontFace frontFace;
Cody Northrop12365112015-08-17 11:10:49 -06001699 VkBool32 depthBiasEnable;
Chia-I Wud8c946a2015-10-26 19:08:09 +08001700 float depthBiasConstantFactor;
Courtney Goeltzenleuchter95edc602015-09-21 17:19:25 -06001701 float depthBiasClamp;
Chia-I Wud8c946a2015-10-26 19:08:09 +08001702 float depthBiasSlopeFactor;
Courtney Goeltzenleuchter95edc602015-09-21 17:19:25 -06001703 float lineWidth;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001704} VkPipelineRasterizationStateCreateInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001705
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001706typedef struct {
1707 VkStructureType sType;
1708 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001709 VkPipelineMultisampleStateCreateFlags flags;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001710 uint32_t rasterizationSamples;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001711 VkBool32 sampleShadingEnable;
1712 float minSampleShading;
Cody Northrop02e61ed2015-08-04 14:34:54 -06001713 const VkSampleMask* pSampleMask;
Courtney Goeltzenleuchter6fabf912015-10-15 17:59:39 -06001714 VkBool32 alphaToCoverageEnable;
1715 VkBool32 alphaToOneEnable;
Tony Barbourdd6e32e2015-07-10 15:29:03 -06001716} VkPipelineMultisampleStateCreateInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001717
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001718typedef struct {
1719 VkStencilOp stencilFailOp;
1720 VkStencilOp stencilPassOp;
1721 VkStencilOp stencilDepthFailOp;
1722 VkCompareOp stencilCompareOp;
Courtney Goeltzenleuchter95edc602015-09-21 17:19:25 -06001723 uint32_t stencilCompareMask;
1724 uint32_t stencilWriteMask;
1725 uint32_t stencilReference;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001726} VkStencilOpState;
1727
1728typedef struct {
1729 VkStructureType sType;
1730 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001731 VkPipelineDepthStencilStateCreateFlags flags;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001732 VkBool32 depthTestEnable;
1733 VkBool32 depthWriteEnable;
1734 VkCompareOp depthCompareOp;
Cody Northrop271ba752015-08-26 10:01:32 -06001735 VkBool32 depthBoundsTestEnable;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001736 VkBool32 stencilTestEnable;
1737 VkStencilOpState front;
1738 VkStencilOpState back;
Courtney Goeltzenleuchter95edc602015-09-21 17:19:25 -06001739 float minDepthBounds;
1740 float maxDepthBounds;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001741} VkPipelineDepthStencilStateCreateInfo;
1742
1743typedef struct {
Courtney Goeltzenleuchtercd2a0992015-07-09 11:44:38 -06001744 VkBool32 blendEnable;
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06001745 VkBlend srcBlendColor;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001746 VkBlend dstBlendColor;
Tony Barbourd1c35722015-04-16 15:59:00 -06001747 VkBlendOp blendOpColor;
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06001748 VkBlend srcBlendAlpha;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001749 VkBlend dstBlendAlpha;
Tony Barbourd1c35722015-04-16 15:59:00 -06001750 VkBlendOp blendOpAlpha;
1751 VkChannelFlags channelWriteMask;
Tony Barbourdd6e32e2015-07-10 15:29:03 -06001752} VkPipelineColorBlendAttachmentState;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001753
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001754typedef struct {
1755 VkStructureType sType;
1756 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001757 VkPipelineColorBlendStateCreateFlags flags;
Courtney Goeltzenleuchtercd2a0992015-07-09 11:44:38 -06001758 VkBool32 logicOpEnable;
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06001759 VkLogicOp logicOp;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001760 uint32_t attachmentCount;
1761 const VkPipelineColorBlendAttachmentState* pAttachments;
Chia-I Wu2bfb33c2015-10-26 17:24:52 +08001762 float blendConstants[4];
Tony Barbourdd6e32e2015-07-10 15:29:03 -06001763} VkPipelineColorBlendStateCreateInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001764
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001765typedef struct {
1766 VkStructureType sType;
1767 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001768 VkPipelineDynamicStateCreateFlags flags;
Courtney Goeltzenleuchter95edc602015-09-21 17:19:25 -06001769 uint32_t dynamicStateCount;
1770 const VkDynamicState* pDynamicStates;
1771} VkPipelineDynamicStateCreateInfo;
1772
1773typedef struct {
1774 VkStructureType sType;
1775 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001776 VkPipelineCreateFlags flags;
Mark Lobodzinskid5732f32015-06-23 15:11:57 -06001777 uint32_t stageCount;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001778 const VkPipelineShaderStageCreateInfo* pStages;
Mark Lobodzinskid5732f32015-06-23 15:11:57 -06001779 const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001780 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
1781 const VkPipelineTessellationStateCreateInfo* pTessellationState;
1782 const VkPipelineViewportStateCreateInfo* pViewportState;
Chia-I Wubb7fad92015-10-27 17:53:18 +08001783 const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001784 const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
1785 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
1786 const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
Courtney Goeltzenleuchter95edc602015-09-21 17:19:25 -06001787 const VkPipelineDynamicStateCreateInfo* pDynamicState;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001788 VkPipelineLayout layout;
Chia-I Wu08accc62015-07-07 11:50:03 +08001789 VkRenderPass renderPass;
1790 uint32_t subpass;
Jon Ashburnc669cc62015-07-09 15:02:25 -06001791 VkPipeline basePipelineHandle;
1792 int32_t basePipelineIndex;
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06001793} VkGraphicsPipelineCreateInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001794
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001795typedef struct {
1796 VkStructureType sType;
1797 const void* pNext;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001798 VkPipelineCreateFlags flags;
Chia-I Wu439c0772015-10-26 17:00:46 +08001799 VkPipelineShaderStageCreateInfo stage;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001800 VkPipelineLayout layout;
1801 VkPipeline basePipelineHandle;
1802 int32_t basePipelineIndex;
1803} VkComputePipelineCreateInfo;
Courtney Goeltzenleuchter07fd6b62015-04-17 20:48:17 -06001804
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001805typedef struct {
1806 VkShaderStageFlags stageFlags;
Chia-I Wud50677e2015-10-26 20:46:14 +08001807 uint32_t offset;
1808 uint32_t size;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001809} VkPushConstantRange;
1810
1811typedef struct {
1812 VkStructureType sType;
1813 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001814 VkPipelineLayoutCreateFlags flags;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001815 uint32_t setLayoutCount;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001816 const VkDescriptorSetLayout* pSetLayouts;
1817 uint32_t pushConstantRangeCount;
1818 const VkPushConstantRange* pPushConstantRanges;
Mark Lobodzinski0fadf5f2015-04-17 14:11:39 -05001819} VkPipelineLayoutCreateInfo;
1820
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001821typedef struct {
1822 VkStructureType sType;
1823 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001824 VkSamplerCreateFlags flags;
Chia-I Wub99df442015-10-26 16:49:32 +08001825 VkFilter magFilter;
1826 VkFilter minFilter;
1827 VkSamplerMipmapMode mipmapMode;
1828 VkSamplerAddressMode addressModeU;
1829 VkSamplerAddressMode addressModeV;
1830 VkSamplerAddressMode addressModeW;
Courtney Goeltzenleuchterf53c3cb2015-04-14 14:55:44 -06001831 float mipLodBias;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001832 float maxAnisotropy;
1833 VkBool32 compareEnable;
Tony Barbourd1c35722015-04-16 15:59:00 -06001834 VkCompareOp compareOp;
Courtney Goeltzenleuchterf53c3cb2015-04-14 14:55:44 -06001835 float minLod;
1836 float maxLod;
Tony Barbourd1c35722015-04-16 15:59:00 -06001837 VkBorderColor borderColor;
Mark Lobodzinski52ac6582015-09-01 15:42:56 -06001838 VkBool32 unnormalizedCoordinates;
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06001839} VkSamplerCreateInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001840
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001841typedef struct {
1842 VkDescriptorType descriptorType;
1843 uint32_t arraySize;
1844 VkShaderStageFlags stageFlags;
1845 const VkSampler* pImmutableSamplers;
1846} VkDescriptorSetLayoutBinding;
1847
1848typedef struct {
1849 VkStructureType sType;
1850 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001851 VkDescriptorSetLayoutCreateFlags flags;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001852 uint32_t bindingCount;
1853 const VkDescriptorSetLayoutBinding* pBindings;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001854} VkDescriptorSetLayoutCreateInfo;
1855
1856typedef struct {
1857 VkDescriptorType type;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001858 uint32_t descriptorCount;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001859} VkDescriptorTypeCount;
1860
1861typedef struct {
1862 VkStructureType sType;
1863 const void* pNext;
Courtney Goeltzenleuchterbee18a92015-10-23 14:21:05 -06001864 VkDescriptorPoolCreateFlags flags;
Courtney Goeltzenleuchterfe908d32015-09-16 16:12:45 -06001865 uint32_t maxSets;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001866 uint32_t typeCount;
1867 const VkDescriptorTypeCount* pTypeCounts;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001868} VkDescriptorPoolCreateInfo;
1869
1870typedef struct {
Courtney Goeltzenleuchterbee18a92015-10-23 14:21:05 -06001871 VkStructureType sType;
1872 const void* pNext;
1873 VkDescriptorPool descriptorPool;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001874 uint32_t setLayoutCount;
Courtney Goeltzenleuchterbee18a92015-10-23 14:21:05 -06001875 const VkDescriptorSetLayout* pSetLayouts;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001876} VkDescriptorSetAllocateInfo;
Courtney Goeltzenleuchterbee18a92015-10-23 14:21:05 -06001877
1878typedef struct {
Courtney Goeltzenleuchteraa132e72015-10-22 15:31:56 -06001879 VkSampler sampler;
1880 VkImageView imageView;
1881 VkImageLayout imageLayout;
1882} VkDescriptorImageInfo;
1883
1884typedef struct {
Courtney Goeltzenleuchter6eb1aeb2015-09-11 15:29:21 -06001885 VkBuffer buffer;
1886 VkDeviceSize offset;
1887 VkDeviceSize range;
Courtney Goeltzenleuchterb46f2272015-09-14 14:14:21 -06001888} VkDescriptorBufferInfo;
Courtney Goeltzenleuchter6eb1aeb2015-09-11 15:29:21 -06001889
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001890typedef struct {
1891 VkStructureType sType;
1892 const void* pNext;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001893 VkDescriptorSet dstSet;
1894 uint32_t dstBinding;
1895 uint32_t dstArrayElement;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001896 uint32_t descriptorCount;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001897 VkDescriptorType descriptorType;
Courtney Goeltzenleuchter4cb6d922015-10-23 13:38:14 -06001898 const VkDescriptorImageInfo* pImageInfo;
1899 const VkDescriptorBufferInfo* pBufferInfo;
1900 const VkBufferView* pTexelBufferView;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001901} VkWriteDescriptorSet;
1902
1903typedef struct {
1904 VkStructureType sType;
1905 const void* pNext;
1906 VkDescriptorSet srcSet;
1907 uint32_t srcBinding;
1908 uint32_t srcArrayElement;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001909 VkDescriptorSet dstSet;
1910 uint32_t dstBinding;
1911 uint32_t dstArrayElement;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001912 uint32_t descriptorCount;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001913} VkCopyDescriptorSet;
1914
1915typedef struct {
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001916 VkStructureType sType;
1917 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001918 VkFramebufferCreateFlags flags;
Chia-I Wu08accc62015-07-07 11:50:03 +08001919 VkRenderPass renderPass;
1920 uint32_t attachmentCount;
Courtney Goeltzenleuchter5861a1b2015-09-01 17:30:39 -06001921 const VkImageView* pAttachments;
Chia-I Wu08accc62015-07-07 11:50:03 +08001922 uint32_t width;
1923 uint32_t height;
1924 uint32_t layers;
1925} VkFramebufferCreateInfo;
1926
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001927typedef struct {
Chia-I Wu439c0772015-10-26 17:00:46 +08001928 VkAttachmentDescriptionFlags flags;
Chia-I Wu08accc62015-07-07 11:50:03 +08001929 VkFormat format;
1930 uint32_t samples;
1931 VkAttachmentLoadOp loadOp;
1932 VkAttachmentStoreOp storeOp;
1933 VkAttachmentLoadOp stencilLoadOp;
1934 VkAttachmentStoreOp stencilStoreOp;
1935 VkImageLayout initialLayout;
1936 VkImageLayout finalLayout;
1937} VkAttachmentDescription;
1938
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001939typedef struct {
Chia-I Wu08accc62015-07-07 11:50:03 +08001940 uint32_t attachment;
1941 VkImageLayout layout;
1942} VkAttachmentReference;
1943
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001944typedef struct {
Chia-I Wu08accc62015-07-07 11:50:03 +08001945 VkSubpassDescriptionFlags flags;
Chia-I Wu439c0772015-10-26 17:00:46 +08001946 VkPipelineBindPoint pipelineBindPoint;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001947 uint32_t inputAttachmentCount;
Cody Northropa505dda2015-08-04 11:16:41 -06001948 const VkAttachmentReference* pInputAttachments;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001949 uint32_t colorAttachmentCount;
Cody Northropa505dda2015-08-04 11:16:41 -06001950 const VkAttachmentReference* pColorAttachments;
1951 const VkAttachmentReference* pResolveAttachments;
Chia-I Wu1efb7e52015-10-26 17:32:47 +08001952 const VkAttachmentReference* pDepthStencilAttachment;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001953 uint32_t preserveAttachmentCount;
Cody Northropa505dda2015-08-04 11:16:41 -06001954 const VkAttachmentReference* pPreserveAttachments;
Chia-I Wu08accc62015-07-07 11:50:03 +08001955} VkSubpassDescription;
1956
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001957typedef struct {
Chia-I Wu08accc62015-07-07 11:50:03 +08001958 uint32_t srcSubpass;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001959 uint32_t dstSubpass;
Chia-I Wu08accc62015-07-07 11:50:03 +08001960 VkPipelineStageFlags srcStageMask;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001961 VkPipelineStageFlags dstStageMask;
Chia-I Wu08accc62015-07-07 11:50:03 +08001962 VkMemoryOutputFlags outputMask;
1963 VkMemoryInputFlags inputMask;
Chia-I Wu53534662015-10-26 17:08:33 +08001964 VkDependencyFlags dependencyFlags;
Chia-I Wu08accc62015-07-07 11:50:03 +08001965} VkSubpassDependency;
1966
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001967typedef struct {
1968 VkStructureType sType;
1969 const void* pNext;
Chia-I Wu439c0772015-10-26 17:00:46 +08001970 VkRenderPassCreateFlags flags;
Chia-I Wu08accc62015-07-07 11:50:03 +08001971 uint32_t attachmentCount;
1972 const VkAttachmentDescription* pAttachments;
1973 uint32_t subpassCount;
1974 const VkSubpassDescription* pSubpasses;
1975 uint32_t dependencyCount;
1976 const VkSubpassDependency* pDependencies;
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06001977} VkRenderPassCreateInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001978
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001979typedef struct {
1980 VkStructureType sType;
1981 const void* pNext;
Chia-I Wubb7fad92015-10-27 17:53:18 +08001982 VkCommandPoolCreateFlags flags;
Chia-I Wu439c0772015-10-26 17:00:46 +08001983 uint32_t queueFamilyIndex;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001984} VkCommandPoolCreateInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001985
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001986typedef struct {
1987 VkStructureType sType;
1988 const void* pNext;
Chia-I Wubb7fad92015-10-27 17:53:18 +08001989 VkCommandPool commandPool;
1990 VkCommandBufferLevel level;
Chia-I Wud50a7d72015-10-26 20:48:51 +08001991 uint32_t bufferCount;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08001992} VkCommandBufferAllocateInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06001993
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001994typedef struct {
1995 VkStructureType sType;
1996 const void* pNext;
Chia-I Wubb7fad92015-10-27 17:53:18 +08001997 VkCommandBufferUsageFlags flags;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06001998 VkRenderPass renderPass;
Cody Northropcc09b9e2015-08-11 11:35:58 -06001999 uint32_t subpass;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002000 VkFramebuffer framebuffer;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002001} VkCommandBufferBeginInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002002
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002003typedef struct {
2004 VkDeviceSize srcOffset;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002005 VkDeviceSize dstOffset;
Chia-I Wu2bfb33c2015-10-26 17:24:52 +08002006 VkDeviceSize size;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002007} VkBufferCopy;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002008
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002009typedef struct {
Courtney Goeltzenleuchter908e7672015-10-21 17:00:51 -06002010 VkImageAspectFlags aspect;
Courtney Goeltzenleuchter01ee1ca2015-09-10 16:41:13 -06002011 uint32_t mipLevel;
Courtney Goeltzenleuchter8367ce02015-10-16 09:46:00 -06002012 uint32_t baseArrayLayer;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002013 uint32_t layerCount;
Courtney Goeltzenleuchter01ee1ca2015-09-10 16:41:13 -06002014} VkImageSubresourceCopy;
2015
2016typedef struct {
2017 VkImageSubresourceCopy srcSubresource;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002018 VkOffset3D srcOffset;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002019 VkImageSubresourceCopy dstSubresource;
2020 VkOffset3D dstOffset;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002021 VkExtent3D extent;
2022} VkImageCopy;
2023
2024typedef struct {
Courtney Goeltzenleuchter01ee1ca2015-09-10 16:41:13 -06002025 VkImageSubresourceCopy srcSubresource;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002026 VkOffset3D srcOffset;
2027 VkExtent3D srcExtent;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002028 VkImageSubresourceCopy dstSubresource;
2029 VkOffset3D dstOffset;
Chia-I Wubb7fad92015-10-27 17:53:18 +08002030 VkExtent3D dstExtent;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002031} VkImageBlit;
2032
2033typedef struct {
2034 VkDeviceSize bufferOffset;
2035 uint32_t bufferRowLength;
2036 uint32_t bufferImageHeight;
Courtney Goeltzenleuchter01ee1ca2015-09-10 16:41:13 -06002037 VkImageSubresourceCopy imageSubresource;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002038 VkOffset3D imageOffset;
2039 VkExtent3D imageExtent;
2040} VkBufferImageCopy;
2041
2042typedef union {
Cody Northrop85789d52015-08-25 15:26:38 -06002043 float float32[4];
2044 int32_t int32[4];
2045 uint32_t uint32[4];
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002046} VkClearColorValue;
2047
2048typedef struct {
Courtney Goeltzenleuchter45df9e12015-09-15 18:03:22 -06002049 float depth;
2050 uint32_t stencil;
2051} VkClearDepthStencilValue;
2052
Courtney Goeltzenleuchterc9323e02015-10-15 16:51:05 -06002053typedef union {
2054 VkClearColorValue color;
2055 VkClearDepthStencilValue depthStencil;
2056} VkClearValue;
2057
2058typedef struct {
2059 VkImageAspectFlags aspectMask;
2060 uint32_t colorAttachment;
2061 VkClearValue clearValue;
2062} VkClearAttachment;
2063
Courtney Goeltzenleuchter45df9e12015-09-15 18:03:22 -06002064typedef struct {
Courtney Goeltzenleuchter5d2aed42015-10-21 17:57:31 -06002065 VkRect2D rect;
Courtney Goeltzenleuchter4ca43f62015-10-15 18:22:08 -06002066 uint32_t baseArrayLayer;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002067 uint32_t layerCount;
Courtney Goeltzenleuchter4ca43f62015-10-15 18:22:08 -06002068} VkClearRect;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002069
2070typedef struct {
Courtney Goeltzenleuchter01ee1ca2015-09-10 16:41:13 -06002071 VkImageSubresourceCopy srcSubresource;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002072 VkOffset3D srcOffset;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002073 VkImageSubresourceCopy dstSubresource;
2074 VkOffset3D dstOffset;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002075 VkExtent3D extent;
2076} VkImageResolve;
2077
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002078typedef struct {
2079 VkStructureType sType;
2080 const void* pNext;
Chia-I Wu08accc62015-07-07 11:50:03 +08002081 VkRenderPass renderPass;
2082 VkFramebuffer framebuffer;
2083 VkRect2D renderArea;
Cody Northrop23dd89d2015-08-04 11:51:03 -06002084 uint32_t clearValueCount;
2085 const VkClearValue* pClearValues;
Chia-I Wu08accc62015-07-07 11:50:03 +08002086} VkRenderPassBeginInfo;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002087
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002088typedef struct {
2089 VkStructureType sType;
2090 const void* pNext;
2091 VkMemoryOutputFlags outputMask;
2092 VkMemoryInputFlags inputMask;
2093 uint32_t srcQueueFamilyIndex;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002094 uint32_t dstQueueFamilyIndex;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002095 VkBuffer buffer;
2096 VkDeviceSize offset;
2097 VkDeviceSize size;
2098} VkBufferMemoryBarrier;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002099
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002100typedef struct {
2101 uint32_t x;
2102 uint32_t y;
2103 uint32_t z;
Chia-I Wubb7fad92015-10-27 17:53:18 +08002104} VkDispatchIndirectCommand;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002105
2106typedef struct {
Courtney Goeltzenleuchter36fd8662015-08-28 16:36:35 -06002107 uint32_t indexCount;
Courtney Goeltzenleuchter08c26372015-09-23 12:31:50 -06002108 uint32_t instanceCount;
2109 uint32_t firstIndex;
Courtney Goeltzenleuchterf53c3cb2015-04-14 14:55:44 -06002110 int32_t vertexOffset;
2111 uint32_t firstInstance;
Chia-I Wubb7fad92015-10-27 17:53:18 +08002112} VkDrawIndexedIndirectCommand;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002113
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002114typedef struct {
Courtney Goeltzenleuchter36fd8662015-08-28 16:36:35 -06002115 uint32_t vertexCount;
Courtney Goeltzenleuchter36fd8662015-08-28 16:36:35 -06002116 uint32_t instanceCount;
Courtney Goeltzenleuchter08c26372015-09-23 12:31:50 -06002117 uint32_t firstVertex;
2118 uint32_t firstInstance;
Chia-I Wubb7fad92015-10-27 17:53:18 +08002119} VkDrawIndirectCommand;
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002120
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002121typedef struct {
2122 VkStructureType sType;
2123 const void* pNext;
2124 VkMemoryOutputFlags outputMask;
2125 VkMemoryInputFlags inputMask;
2126 VkImageLayout oldLayout;
2127 VkImageLayout newLayout;
2128 uint32_t srcQueueFamilyIndex;
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002129 uint32_t dstQueueFamilyIndex;
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002130 VkImage image;
2131 VkImageSubresourceRange subresourceRange;
2132} VkImageMemoryBarrier;
2133
2134typedef struct {
2135 VkStructureType sType;
2136 const void* pNext;
2137 VkMemoryOutputFlags outputMask;
2138 VkMemoryInputFlags inputMask;
2139} VkMemoryBarrier;
2140
2141
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002142typedef VkResult (VKAPI *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
2143typedef void (VKAPI *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
Tony Barbourd1c35722015-04-16 15:59:00 -06002144typedef VkResult (VKAPI *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002145typedef void (VKAPI *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
2146typedef void (VKAPI *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
2147typedef void (VKAPI *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
2148typedef void (VKAPI *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
Chia-I Wud50a7d72015-10-26 20:48:51 +08002149typedef void (VKAPI *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002150typedef void (VKAPI *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002151typedef PFN_vkVoidFunction (VKAPI *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
2152typedef PFN_vkVoidFunction (VKAPI *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002153typedef VkResult (VKAPI *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
2154typedef void (VKAPI *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
Chia-I Wud50a7d72015-10-26 20:48:51 +08002155typedef VkResult (VKAPI *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2156typedef VkResult (VKAPI *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2157typedef VkResult (VKAPI *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2158typedef VkResult (VKAPI *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002159typedef void (VKAPI *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
Chia-I Wu40cf0ae2015-10-26 17:20:32 +08002160typedef VkResult (VKAPI *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002161typedef VkResult (VKAPI *PFN_vkQueueWaitIdle)(VkQueue queue);
2162typedef VkResult (VKAPI *PFN_vkDeviceWaitIdle)(VkDevice device);
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002163typedef VkResult (VKAPI *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
Chia-I Wubb7fad92015-10-27 17:53:18 +08002164typedef void (VKAPI *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
2165typedef VkResult (VKAPI *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
2166typedef void (VKAPI *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002167typedef VkResult (VKAPI *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2168typedef VkResult (VKAPI *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002169typedef void (VKAPI *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
Chia-I Wubb7fad92015-10-27 17:53:18 +08002170typedef VkResult (VKAPI *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2171typedef VkResult (VKAPI *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002172typedef void (VKAPI *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
2173typedef void (VKAPI *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
Chia-I Wud50a7d72015-10-26 20:48:51 +08002174typedef void (VKAPI *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
2175typedef void (VKAPI *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, uint32_t samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
Chia-I Wu1ff4c3d2015-10-26 16:55:27 +08002176typedef VkResult (VKAPI *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002177typedef VkResult (VKAPI *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
2178typedef void (VKAPI *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
Courtney Goeltzenleuchter2bf8f902015-06-18 17:28:20 -06002179typedef VkResult (VKAPI *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
Mike Stroyanb050c682015-04-17 12:36:38 -06002180typedef VkResult (VKAPI *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
Courtney Goeltzenleuchtercd2a0992015-07-09 11:44:38 -06002181typedef VkResult (VKAPI *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002182typedef VkResult (VKAPI *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
2183typedef void (VKAPI *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
2184typedef VkResult (VKAPI *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
2185typedef void (VKAPI *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
Mike Stroyanb050c682015-04-17 12:36:38 -06002186typedef VkResult (VKAPI *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
2187typedef VkResult (VKAPI *PFN_vkSetEvent)(VkDevice device, VkEvent event);
2188typedef VkResult (VKAPI *PFN_vkResetEvent)(VkDevice device, VkEvent event);
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002189typedef VkResult (VKAPI *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
2190typedef void (VKAPI *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
Chia-I Wuccc93a72015-10-26 18:36:20 +08002191typedef VkResult (VKAPI *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002192typedef VkResult (VKAPI *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
2193typedef void (VKAPI *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
2194typedef VkResult (VKAPI *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
2195typedef void (VKAPI *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
2196typedef VkResult (VKAPI *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
2197typedef void (VKAPI *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002198typedef void (VKAPI *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002199typedef VkResult (VKAPI *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
2200typedef void (VKAPI *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
2201typedef VkResult (VKAPI *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
2202typedef void (VKAPI *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
2203typedef VkResult (VKAPI *PFN_vkCreateShader)(VkDevice device, const VkShaderCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShader* pShader);
2204typedef void (VKAPI *PFN_vkDestroyShader)(VkDevice device, VkShader shader, const VkAllocationCallbacks* pAllocator);
2205typedef VkResult (VKAPI *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
2206typedef void (VKAPI *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
Chia-I Wub16facd2015-10-26 19:17:06 +08002207typedef VkResult (VKAPI *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002208typedef VkResult (VKAPI *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
2209typedef VkResult (VKAPI *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2210typedef VkResult (VKAPI *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2211typedef void (VKAPI *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
2212typedef VkResult (VKAPI *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
2213typedef void (VKAPI *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
2214typedef VkResult (VKAPI *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
2215typedef void (VKAPI *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
2216typedef VkResult (VKAPI *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
2217typedef void (VKAPI *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
2218typedef VkResult (VKAPI *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
2219typedef void (VKAPI *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
Courtney Goeltzenleuchterbee18a92015-10-23 14:21:05 -06002220typedef VkResult (VKAPI *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002221typedef VkResult (VKAPI *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
Chia-I Wud50a7d72015-10-26 20:48:51 +08002222typedef VkResult (VKAPI *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
Chia-I Wu40cf0ae2015-10-26 17:20:32 +08002223typedef void (VKAPI *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002224typedef VkResult (VKAPI *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
2225typedef void (VKAPI *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
2226typedef VkResult (VKAPI *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
2227typedef void (VKAPI *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002228typedef void (VKAPI *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002229typedef VkResult (VKAPI *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
Chia-I Wuaed8ca92015-10-27 18:59:16 +08002230typedef void (VKAPI *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
2231typedef VkResult (VKAPI *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002232typedef VkResult (VKAPI *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
Chia-I Wuaed8ca92015-10-27 18:59:16 +08002233typedef void (VKAPI *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002234typedef VkResult (VKAPI *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
2235typedef VkResult (VKAPI *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
2236typedef VkResult (VKAPI *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
2237typedef void (VKAPI *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
2238typedef void (VKAPI *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
2239typedef void (VKAPI *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
2240typedef void (VKAPI *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
2241typedef void (VKAPI *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
2242typedef void (VKAPI *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
2243typedef void (VKAPI *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
2244typedef void (VKAPI *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t stencilCompareMask);
2245typedef void (VKAPI *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t stencilWriteMask);
2246typedef void (VKAPI *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t stencilReference);
2247typedef void (VKAPI *PFN_vkCmdBindDescriptorSets)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets);
2248typedef void (VKAPI *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
2249typedef void (VKAPI *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t startBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
2250typedef void (VKAPI *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
2251typedef void (VKAPI *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
2252typedef void (VKAPI *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2253typedef void (VKAPI *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2254typedef void (VKAPI *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z);
2255typedef void (VKAPI *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
2256typedef void (VKAPI *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
2257typedef void (VKAPI *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
2258typedef void (VKAPI *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
2259typedef void (VKAPI *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
2260typedef void (VKAPI *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
2261typedef void (VKAPI *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const uint32_t* pData);
2262typedef void (VKAPI *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
2263typedef void (VKAPI *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2264typedef void (VKAPI *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2265typedef void (VKAPI *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
2266typedef void (VKAPI *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
2267typedef void (VKAPI *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
2268typedef void (VKAPI *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
2269typedef void (VKAPI *PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const void* const* ppMemoryBarriers);
2270typedef void (VKAPI *PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const void* const* ppMemoryBarriers);
2271typedef void (VKAPI *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t slot, VkQueryControlFlags flags);
2272typedef void (VKAPI *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t slot);
2273typedef void (VKAPI *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount);
2274typedef void (VKAPI *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t slot);
2275typedef void (VKAPI *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
2276typedef void (VKAPI *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* values);
2277typedef void (VKAPI *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkRenderPassContents contents);
2278typedef void (VKAPI *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkRenderPassContents contents);
2279typedef void (VKAPI *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
2280typedef void (VKAPI *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBuffersCount, const VkCommandBuffer* pCommandBuffers);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002281
2282#ifdef VK_PROTOTYPES
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002283VkResult VKAPI vkCreateInstance(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002284 const VkInstanceCreateInfo* pCreateInfo,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002285 const VkAllocationCallbacks* pAllocator,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002286 VkInstance* pInstance);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002287
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002288void VKAPI vkDestroyInstance(
Chia-I Wuf7458c52015-10-26 21:10:41 +08002289 VkInstance instance,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002290 const VkAllocationCallbacks* pAllocator);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002291
Jon Ashburn83a64252015-04-15 11:31:12 -06002292VkResult VKAPI vkEnumeratePhysicalDevices(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002293 VkInstance instance,
Jon Ashburn83a64252015-04-15 11:31:12 -06002294 uint32_t* pPhysicalDeviceCount,
Tony Barbourd1c35722015-04-16 15:59:00 -06002295 VkPhysicalDevice* pPhysicalDevices);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002296
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002297void VKAPI vkGetPhysicalDeviceFeatures(
Chris Forbesbc0bb772015-06-21 22:55:02 +12002298 VkPhysicalDevice physicalDevice,
2299 VkPhysicalDeviceFeatures* pFeatures);
2300
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002301void VKAPI vkGetPhysicalDeviceFormatProperties(
Chris Forbesbc0bb772015-06-21 22:55:02 +12002302 VkPhysicalDevice physicalDevice,
2303 VkFormat format,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002304 VkFormatProperties* pFormatProperties);
2305
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002306void VKAPI vkGetPhysicalDeviceImageFormatProperties(
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002307 VkPhysicalDevice physicalDevice,
2308 VkFormat format,
2309 VkImageType type,
2310 VkImageTiling tiling,
2311 VkImageUsageFlags usage,
Courtney Goeltzenleuchtera22097a2015-09-10 13:44:12 -06002312 VkImageCreateFlags flags,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002313 VkImageFormatProperties* pImageFormatProperties);
Chris Forbesbc0bb772015-06-21 22:55:02 +12002314
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002315void VKAPI vkGetPhysicalDeviceProperties(
Tony Barbour59a47322015-06-24 16:06:58 -06002316 VkPhysicalDevice physicalDevice,
2317 VkPhysicalDeviceProperties* pProperties);
2318
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002319void VKAPI vkGetPhysicalDeviceQueueFamilyProperties(
Tony Barbour59a47322015-06-24 16:06:58 -06002320 VkPhysicalDevice physicalDevice,
Chia-I Wud50a7d72015-10-26 20:48:51 +08002321 uint32_t* pQueueFamilyPropertyCount,
Cody Northropd0802882015-08-03 17:04:53 -06002322 VkQueueFamilyProperties* pQueueFamilyProperties);
Tony Barbour59a47322015-06-24 16:06:58 -06002323
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002324void VKAPI vkGetPhysicalDeviceMemoryProperties(
Tony Barbour59a47322015-06-24 16:06:58 -06002325 VkPhysicalDevice physicalDevice,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002326 VkPhysicalDeviceMemoryProperties* pMemoryProperties);
Tony Barbour59a47322015-06-24 16:06:58 -06002327
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002328PFN_vkVoidFunction VKAPI vkGetInstanceProcAddr(
2329 VkInstance instance,
2330 const char* pName);
2331
2332PFN_vkVoidFunction VKAPI vkGetDeviceProcAddr(
2333 VkDevice device,
2334 const char* pName);
2335
2336VkResult VKAPI vkCreateDevice(
2337 VkPhysicalDevice physicalDevice,
2338 const VkDeviceCreateInfo* pCreateInfo,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002339 const VkAllocationCallbacks* pAllocator,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002340 VkDevice* pDevice);
2341
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002342void VKAPI vkDestroyDevice(
Chia-I Wuf7458c52015-10-26 21:10:41 +08002343 VkDevice device,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002344 const VkAllocationCallbacks* pAllocator);
Courtney Goeltzenleuchterd7a5cff2015-04-23 17:49:22 -06002345
Courtney Goeltzenleuchter35985f62015-09-14 17:22:16 -06002346VkResult VKAPI vkEnumerateInstanceExtensionProperties(
Courtney Goeltzenleuchter110fdf92015-06-29 15:39:26 -06002347 const char* pLayerName,
Chia-I Wud50a7d72015-10-26 20:48:51 +08002348 uint32_t* pPropertyCount,
Tony Barbour59a47322015-06-24 16:06:58 -06002349 VkExtensionProperties* pProperties);
2350
Courtney Goeltzenleuchter35985f62015-09-14 17:22:16 -06002351VkResult VKAPI vkEnumerateDeviceExtensionProperties(
Tony Barbour59a47322015-06-24 16:06:58 -06002352 VkPhysicalDevice physicalDevice,
Courtney Goeltzenleuchter110fdf92015-06-29 15:39:26 -06002353 const char* pLayerName,
Chia-I Wud50a7d72015-10-26 20:48:51 +08002354 uint32_t* pPropertyCount,
Tony Barbour59a47322015-06-24 16:06:58 -06002355 VkExtensionProperties* pProperties);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002356
Courtney Goeltzenleuchter35985f62015-09-14 17:22:16 -06002357VkResult VKAPI vkEnumerateInstanceLayerProperties(
Chia-I Wud50a7d72015-10-26 20:48:51 +08002358 uint32_t* pPropertyCount,
Courtney Goeltzenleuchter110fdf92015-06-29 15:39:26 -06002359 VkLayerProperties* pProperties);
2360
Courtney Goeltzenleuchter35985f62015-09-14 17:22:16 -06002361VkResult VKAPI vkEnumerateDeviceLayerProperties(
Courtney Goeltzenleuchter110fdf92015-06-29 15:39:26 -06002362 VkPhysicalDevice physicalDevice,
Chia-I Wud50a7d72015-10-26 20:48:51 +08002363 uint32_t* pPropertyCount,
Courtney Goeltzenleuchter110fdf92015-06-29 15:39:26 -06002364 VkLayerProperties* pProperties);
2365
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002366void VKAPI vkGetDeviceQueue(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002367 VkDevice device,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002368 uint32_t queueFamilyIndex,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002369 uint32_t queueIndex,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002370 VkQueue* pQueue);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002371
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002372VkResult VKAPI vkQueueSubmit(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002373 VkQueue queue,
Courtney Goeltzenleuchter646b9072015-10-20 18:04:07 -06002374 uint32_t submitCount,
Chia-I Wu40cf0ae2015-10-26 17:20:32 +08002375 const VkSubmitInfo* pSubmits,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002376 VkFence fence);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002377
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002378VkResult VKAPI vkQueueWaitIdle(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002379 VkQueue queue);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002380
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002381VkResult VKAPI vkDeviceWaitIdle(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002382 VkDevice device);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002383
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002384VkResult VKAPI vkAllocateMemory(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002385 VkDevice device,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002386 const VkMemoryAllocateInfo* pAllocateInfo,
2387 const VkAllocationCallbacks* pAllocator,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002388 VkDeviceMemory* pMemory);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002389
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002390void VKAPI vkFreeMemory(
Mike Stroyanb050c682015-04-17 12:36:38 -06002391 VkDevice device,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002392 VkDeviceMemory memory,
2393 const VkAllocationCallbacks* pAllocator);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002394
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002395VkResult VKAPI vkMapMemory(
Mike Stroyanb050c682015-04-17 12:36:38 -06002396 VkDevice device,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002397 VkDeviceMemory memory,
Tony Barbour71a85122015-04-16 19:09:28 -06002398 VkDeviceSize offset,
2399 VkDeviceSize size,
Tony Barbourd1c35722015-04-16 15:59:00 -06002400 VkMemoryMapFlags flags,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002401 void** ppData);
2402
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002403void VKAPI vkUnmapMemory(
Mike Stroyanb050c682015-04-17 12:36:38 -06002404 VkDevice device,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002405 VkDeviceMemory memory);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002406
Courtney Goeltzenleuchterf69f8a22015-04-29 17:16:21 -06002407VkResult VKAPI vkFlushMappedMemoryRanges(
Mike Stroyanb050c682015-04-17 12:36:38 -06002408 VkDevice device,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002409 uint32_t memoryRangeCount,
2410 const VkMappedMemoryRange* pMemoryRanges);
Courtney Goeltzenleuchterf69f8a22015-04-29 17:16:21 -06002411
2412VkResult VKAPI vkInvalidateMappedMemoryRanges(
2413 VkDevice device,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002414 uint32_t memoryRangeCount,
2415 const VkMappedMemoryRange* pMemoryRanges);
Tony Barbourb1250542015-04-16 19:23:13 -06002416
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002417void VKAPI vkGetDeviceMemoryCommitment(
Courtney Goeltzenleuchterfb71f222015-07-09 21:57:28 -06002418 VkDevice device,
2419 VkDeviceMemory memory,
2420 VkDeviceSize* pCommittedMemoryInBytes);
2421
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002422VkResult VKAPI vkBindBufferMemory(
Mark Lobodzinski942b1722015-05-11 17:21:15 -05002423 VkDevice device,
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002424 VkBuffer buffer,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002425 VkDeviceMemory memory,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002426 VkDeviceSize memoryOffset);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002427
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002428VkResult VKAPI vkBindImageMemory(
Tony Barbour59a47322015-06-24 16:06:58 -06002429 VkDevice device,
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002430 VkImage image,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002431 VkDeviceMemory memory,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002432 VkDeviceSize memoryOffset);
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002433
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002434void VKAPI vkGetBufferMemoryRequirements(
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002435 VkDevice device,
2436 VkBuffer buffer,
2437 VkMemoryRequirements* pMemoryRequirements);
2438
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002439void VKAPI vkGetImageMemoryRequirements(
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002440 VkDevice device,
2441 VkImage image,
Tony Barbour59a47322015-06-24 16:06:58 -06002442 VkMemoryRequirements* pMemoryRequirements);
2443
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002444void VKAPI vkGetImageSparseMemoryRequirements(
Mark Lobodzinski16e8bef2015-07-03 15:58:09 -06002445 VkDevice device,
2446 VkImage image,
Chia-I Wud50a7d72015-10-26 20:48:51 +08002447 uint32_t* pSparseMemoryRequirementCount,
Mark Lobodzinski16e8bef2015-07-03 15:58:09 -06002448 VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
2449
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002450void VKAPI vkGetPhysicalDeviceSparseImageFormatProperties(
Mark Lobodzinski16e8bef2015-07-03 15:58:09 -06002451 VkPhysicalDevice physicalDevice,
2452 VkFormat format,
2453 VkImageType type,
2454 uint32_t samples,
2455 VkImageUsageFlags usage,
2456 VkImageTiling tiling,
Chia-I Wud50a7d72015-10-26 20:48:51 +08002457 uint32_t* pPropertyCount,
Mark Lobodzinski16e8bef2015-07-03 15:58:09 -06002458 VkSparseImageFormatProperties* pProperties);
2459
Chia-I Wu1ff4c3d2015-10-26 16:55:27 +08002460VkResult VKAPI vkQueueBindSparse(
Mark Lobodzinski40f7f402015-04-16 11:44:05 -05002461 VkQueue queue,
Chia-I Wud50a7d72015-10-26 20:48:51 +08002462 uint32_t bindInfoCount,
Chia-I Wu1ff4c3d2015-10-26 16:55:27 +08002463 const VkBindSparseInfo* pBindInfo,
2464 VkFence fence);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002465
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002466VkResult VKAPI vkCreateFence(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002467 VkDevice device,
2468 const VkFenceCreateInfo* pCreateInfo,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002469 const VkAllocationCallbacks* pAllocator,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002470 VkFence* pFence);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002471
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002472void VKAPI vkDestroyFence(
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002473 VkDevice device,
Chia-I Wuf7458c52015-10-26 21:10:41 +08002474 VkFence fence,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002475 const VkAllocationCallbacks* pAllocator);
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002476
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002477VkResult VKAPI vkResetFences(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002478 VkDevice device,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002479 uint32_t fenceCount,
Courtney Goeltzenleuchter2bf8f902015-06-18 17:28:20 -06002480 const VkFence* pFences);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002481
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002482VkResult VKAPI vkGetFenceStatus(
Mike Stroyanb050c682015-04-17 12:36:38 -06002483 VkDevice device,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002484 VkFence fence);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002485
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002486VkResult VKAPI vkWaitForFences(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002487 VkDevice device,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002488 uint32_t fenceCount,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002489 const VkFence* pFences,
Courtney Goeltzenleuchtercd2a0992015-07-09 11:44:38 -06002490 VkBool32 waitAll,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002491 uint64_t timeout);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002492
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002493VkResult VKAPI vkCreateSemaphore(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002494 VkDevice device,
2495 const VkSemaphoreCreateInfo* pCreateInfo,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002496 const VkAllocationCallbacks* pAllocator,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002497 VkSemaphore* pSemaphore);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002498
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002499void VKAPI vkDestroySemaphore(
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002500 VkDevice device,
Chia-I Wuf7458c52015-10-26 21:10:41 +08002501 VkSemaphore semaphore,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002502 const VkAllocationCallbacks* pAllocator);
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002503
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002504VkResult VKAPI vkCreateEvent(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002505 VkDevice device,
2506 const VkEventCreateInfo* pCreateInfo,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002507 const VkAllocationCallbacks* pAllocator,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002508 VkEvent* pEvent);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002509
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002510void VKAPI vkDestroyEvent(
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002511 VkDevice device,
Chia-I Wuf7458c52015-10-26 21:10:41 +08002512 VkEvent event,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002513 const VkAllocationCallbacks* pAllocator);
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002514
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002515VkResult VKAPI vkGetEventStatus(
Mike Stroyanb050c682015-04-17 12:36:38 -06002516 VkDevice device,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002517 VkEvent event);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002518
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002519VkResult VKAPI vkSetEvent(
Mike Stroyanb050c682015-04-17 12:36:38 -06002520 VkDevice device,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002521 VkEvent event);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002522
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002523VkResult VKAPI vkResetEvent(
Mike Stroyanb050c682015-04-17 12:36:38 -06002524 VkDevice device,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002525 VkEvent event);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002526
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002527VkResult VKAPI vkCreateQueryPool(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002528 VkDevice device,
2529 const VkQueryPoolCreateInfo* pCreateInfo,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002530 const VkAllocationCallbacks* pAllocator,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002531 VkQueryPool* pQueryPool);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002532
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002533void VKAPI vkDestroyQueryPool(
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002534 VkDevice device,
Chia-I Wuf7458c52015-10-26 21:10:41 +08002535 VkQueryPool queryPool,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002536 const VkAllocationCallbacks* pAllocator);
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002537
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002538VkResult VKAPI vkGetQueryPoolResults(
Mike Stroyanb050c682015-04-17 12:36:38 -06002539 VkDevice device,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002540 VkQueryPool queryPool,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002541 uint32_t startQuery,
2542 uint32_t queryCount,
Chia-I Wuccc93a72015-10-26 18:36:20 +08002543 size_t dataSize,
Tony Barbourd1c35722015-04-16 15:59:00 -06002544 void* pData,
Chia-I Wuccc93a72015-10-26 18:36:20 +08002545 VkDeviceSize stride,
Tony Barbourd1c35722015-04-16 15:59:00 -06002546 VkQueryResultFlags flags);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002547
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002548VkResult VKAPI vkCreateBuffer(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002549 VkDevice device,
2550 const VkBufferCreateInfo* pCreateInfo,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002551 const VkAllocationCallbacks* pAllocator,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002552 VkBuffer* pBuffer);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002553
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002554void VKAPI vkDestroyBuffer(
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002555 VkDevice device,
Chia-I Wuf7458c52015-10-26 21:10:41 +08002556 VkBuffer buffer,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002557 const VkAllocationCallbacks* pAllocator);
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002558
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002559VkResult VKAPI vkCreateBufferView(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002560 VkDevice device,
2561 const VkBufferViewCreateInfo* pCreateInfo,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002562 const VkAllocationCallbacks* pAllocator,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002563 VkBufferView* pView);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002564
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002565void VKAPI vkDestroyBufferView(
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002566 VkDevice device,
Chia-I Wuf7458c52015-10-26 21:10:41 +08002567 VkBufferView bufferView,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002568 const VkAllocationCallbacks* pAllocator);
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002569
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002570VkResult VKAPI vkCreateImage(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002571 VkDevice device,
2572 const VkImageCreateInfo* pCreateInfo,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002573 const VkAllocationCallbacks* pAllocator,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002574 VkImage* pImage);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002575
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002576void VKAPI vkDestroyImage(
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002577 VkDevice device,
Chia-I Wuf7458c52015-10-26 21:10:41 +08002578 VkImage image,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002579 const VkAllocationCallbacks* pAllocator);
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002580
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002581void VKAPI vkGetImageSubresourceLayout(
Mike Stroyanb050c682015-04-17 12:36:38 -06002582 VkDevice device,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002583 VkImage image,
2584 const VkImageSubresource* pSubresource,
Tony Barbour59a47322015-06-24 16:06:58 -06002585 VkSubresourceLayout* pLayout);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002586
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002587VkResult VKAPI vkCreateImageView(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002588 VkDevice device,
2589 const VkImageViewCreateInfo* pCreateInfo,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002590 const VkAllocationCallbacks* pAllocator,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002591 VkImageView* pView);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002592
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002593void VKAPI vkDestroyImageView(
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002594 VkDevice device,
Chia-I Wuf7458c52015-10-26 21:10:41 +08002595 VkImageView imageView,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002596 const VkAllocationCallbacks* pAllocator);
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002597
Courtney Goeltzenleuchtera607df12015-06-18 21:49:59 -06002598VkResult VKAPI vkCreateShaderModule(
2599 VkDevice device,
2600 const VkShaderModuleCreateInfo* pCreateInfo,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002601 const VkAllocationCallbacks* pAllocator,
Courtney Goeltzenleuchtera607df12015-06-18 21:49:59 -06002602 VkShaderModule* pShaderModule);
2603
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002604void VKAPI vkDestroyShaderModule(
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002605 VkDevice device,
Chia-I Wuf7458c52015-10-26 21:10:41 +08002606 VkShaderModule shaderModule,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002607 const VkAllocationCallbacks* pAllocator);
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002608
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002609VkResult VKAPI vkCreateShader(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002610 VkDevice device,
2611 const VkShaderCreateInfo* pCreateInfo,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002612 const VkAllocationCallbacks* pAllocator,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002613 VkShader* pShader);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002614
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002615void VKAPI vkDestroyShader(
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002616 VkDevice device,
Chia-I Wuf7458c52015-10-26 21:10:41 +08002617 VkShader shader,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002618 const VkAllocationCallbacks* pAllocator);
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002619
Jon Ashburnc669cc62015-07-09 15:02:25 -06002620VkResult VKAPI vkCreatePipelineCache(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002621 VkDevice device,
Jon Ashburnc669cc62015-07-09 15:02:25 -06002622 const VkPipelineCacheCreateInfo* pCreateInfo,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002623 const VkAllocationCallbacks* pAllocator,
Jon Ashburnc669cc62015-07-09 15:02:25 -06002624 VkPipelineCache* pPipelineCache);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002625
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002626void VKAPI vkDestroyPipelineCache(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002627 VkDevice device,
Chia-I Wuf7458c52015-10-26 21:10:41 +08002628 VkPipelineCache pipelineCache,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002629 const VkAllocationCallbacks* pAllocator);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002630
Jon Ashburnc669cc62015-07-09 15:02:25 -06002631VkResult VKAPI vkGetPipelineCacheData(
Mike Stroyanb050c682015-04-17 12:36:38 -06002632 VkDevice device,
Jon Ashburnc669cc62015-07-09 15:02:25 -06002633 VkPipelineCache pipelineCache,
Chia-I Wub16facd2015-10-26 19:17:06 +08002634 size_t* pDataSize,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002635 void* pData);
2636
Jon Ashburnc669cc62015-07-09 15:02:25 -06002637VkResult VKAPI vkMergePipelineCaches(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002638 VkDevice device,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002639 VkPipelineCache dstCache,
Jon Ashburnc669cc62015-07-09 15:02:25 -06002640 uint32_t srcCacheCount,
2641 const VkPipelineCache* pSrcCaches);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002642
Jon Ashburnc669cc62015-07-09 15:02:25 -06002643VkResult VKAPI vkCreateGraphicsPipelines(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002644 VkDevice device,
Jon Ashburnc669cc62015-07-09 15:02:25 -06002645 VkPipelineCache pipelineCache,
Chia-I Wud50a7d72015-10-26 20:48:51 +08002646 uint32_t createInfoCount,
Jon Ashburnc669cc62015-07-09 15:02:25 -06002647 const VkGraphicsPipelineCreateInfo* pCreateInfos,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002648 const VkAllocationCallbacks* pAllocator,
Jon Ashburnc669cc62015-07-09 15:02:25 -06002649 VkPipeline* pPipelines);
2650
2651VkResult VKAPI vkCreateComputePipelines(
2652 VkDevice device,
2653 VkPipelineCache pipelineCache,
Chia-I Wud50a7d72015-10-26 20:48:51 +08002654 uint32_t createInfoCount,
Jon Ashburnc669cc62015-07-09 15:02:25 -06002655 const VkComputePipelineCreateInfo* pCreateInfos,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002656 const VkAllocationCallbacks* pAllocator,
Jon Ashburnc669cc62015-07-09 15:02:25 -06002657 VkPipeline* pPipelines);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002658
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002659void VKAPI vkDestroyPipeline(
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002660 VkDevice device,
Chia-I Wuf7458c52015-10-26 21:10:41 +08002661 VkPipeline pipeline,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002662 const VkAllocationCallbacks* pAllocator);
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002663
Mark Lobodzinski0fadf5f2015-04-17 14:11:39 -05002664VkResult VKAPI vkCreatePipelineLayout(
2665 VkDevice device,
2666 const VkPipelineLayoutCreateInfo* pCreateInfo,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002667 const VkAllocationCallbacks* pAllocator,
Mark Lobodzinski0fadf5f2015-04-17 14:11:39 -05002668 VkPipelineLayout* pPipelineLayout);
2669
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002670void VKAPI vkDestroyPipelineLayout(
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002671 VkDevice device,
Chia-I Wuf7458c52015-10-26 21:10:41 +08002672 VkPipelineLayout pipelineLayout,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002673 const VkAllocationCallbacks* pAllocator);
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002674
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002675VkResult VKAPI vkCreateSampler(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002676 VkDevice device,
2677 const VkSamplerCreateInfo* pCreateInfo,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002678 const VkAllocationCallbacks* pAllocator,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002679 VkSampler* pSampler);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002680
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002681void VKAPI vkDestroySampler(
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002682 VkDevice device,
Chia-I Wuf7458c52015-10-26 21:10:41 +08002683 VkSampler sampler,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002684 const VkAllocationCallbacks* pAllocator);
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002685
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002686VkResult VKAPI vkCreateDescriptorSetLayout(
2687 VkDevice device,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002688 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002689 const VkAllocationCallbacks* pAllocator,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002690 VkDescriptorSetLayout* pSetLayout);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002691
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002692void VKAPI vkDestroyDescriptorSetLayout(
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002693 VkDevice device,
Chia-I Wuf7458c52015-10-26 21:10:41 +08002694 VkDescriptorSetLayout descriptorSetLayout,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002695 const VkAllocationCallbacks* pAllocator);
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002696
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002697VkResult VKAPI vkCreateDescriptorPool(
2698 VkDevice device,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002699 const VkDescriptorPoolCreateInfo* pCreateInfo,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002700 const VkAllocationCallbacks* pAllocator,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002701 VkDescriptorPool* pDescriptorPool);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002702
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002703void VKAPI vkDestroyDescriptorPool(
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002704 VkDevice device,
Chia-I Wuf7458c52015-10-26 21:10:41 +08002705 VkDescriptorPool descriptorPool,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002706 const VkAllocationCallbacks* pAllocator);
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002707
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002708VkResult VKAPI vkResetDescriptorPool(
Mike Stroyanb050c682015-04-17 12:36:38 -06002709 VkDevice device,
Courtney Goeltzenleuchterbee18a92015-10-23 14:21:05 -06002710 VkDescriptorPool descriptorPool,
2711 VkDescriptorPoolResetFlags flags);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002712
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002713VkResult VKAPI vkAllocateDescriptorSets(
Mike Stroyanb050c682015-04-17 12:36:38 -06002714 VkDevice device,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002715 const VkDescriptorSetAllocateInfo* pAllocateInfo,
Cody Northrop1e4f8022015-08-03 12:47:29 -06002716 VkDescriptorSet* pDescriptorSets);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002717
Tony Barbour34ec6922015-07-10 10:50:45 -06002718VkResult VKAPI vkFreeDescriptorSets(
2719 VkDevice device,
2720 VkDescriptorPool descriptorPool,
Chia-I Wud50a7d72015-10-26 20:48:51 +08002721 uint32_t descriptorSetCount,
Tony Barbour34ec6922015-07-10 10:50:45 -06002722 const VkDescriptorSet* pDescriptorSets);
2723
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002724void VKAPI vkUpdateDescriptorSets(
Mike Stroyanb050c682015-04-17 12:36:38 -06002725 VkDevice device,
Chia-I Wu40cf0ae2015-10-26 17:20:32 +08002726 uint32_t descriptorWriteCount,
Chia-I Wu9d00ed72015-05-25 16:27:55 +08002727 const VkWriteDescriptorSet* pDescriptorWrites,
Chia-I Wu40cf0ae2015-10-26 17:20:32 +08002728 uint32_t descriptorCopyCount,
Chia-I Wu9d00ed72015-05-25 16:27:55 +08002729 const VkCopyDescriptorSet* pDescriptorCopies);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002730
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002731VkResult VKAPI vkCreateFramebuffer(
2732 VkDevice device,
2733 const VkFramebufferCreateInfo* pCreateInfo,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002734 const VkAllocationCallbacks* pAllocator,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002735 VkFramebuffer* pFramebuffer);
2736
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002737void VKAPI vkDestroyFramebuffer(
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002738 VkDevice device,
Chia-I Wuf7458c52015-10-26 21:10:41 +08002739 VkFramebuffer framebuffer,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002740 const VkAllocationCallbacks* pAllocator);
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002741
2742VkResult VKAPI vkCreateRenderPass(
2743 VkDevice device,
2744 const VkRenderPassCreateInfo* pCreateInfo,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002745 const VkAllocationCallbacks* pAllocator,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002746 VkRenderPass* pRenderPass);
2747
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002748void VKAPI vkDestroyRenderPass(
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002749 VkDevice device,
Chia-I Wuf7458c52015-10-26 21:10:41 +08002750 VkRenderPass renderPass,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002751 const VkAllocationCallbacks* pAllocator);
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002752
Courtney Goeltzenleuchter06d89472015-10-20 16:40:38 -06002753void VKAPI vkGetRenderAreaGranularity(
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06002754 VkDevice device,
2755 VkRenderPass renderPass,
2756 VkExtent2D* pGranularity);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002757
Cody Northrope62183e2015-07-09 18:08:05 -06002758VkResult VKAPI vkCreateCommandPool(
2759 VkDevice device,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002760 const VkCommandPoolCreateInfo* pCreateInfo,
2761 const VkAllocationCallbacks* pAllocator,
2762 VkCommandPool* pCommandPool);
Cody Northrope62183e2015-07-09 18:08:05 -06002763
Mark Lobodzinski2141f652015-09-07 13:59:43 -06002764void VKAPI vkDestroyCommandPool(
Cody Northrope62183e2015-07-09 18:08:05 -06002765 VkDevice device,
Chia-I Wuaed8ca92015-10-27 18:59:16 +08002766 VkCommandPool commandPool,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002767 const VkAllocationCallbacks* pAllocator);
Cody Northrope62183e2015-07-09 18:08:05 -06002768
2769VkResult VKAPI vkResetCommandPool(
2770 VkDevice device,
Chia-I Wuaed8ca92015-10-27 18:59:16 +08002771 VkCommandPool commandPool,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002772 VkCommandPoolResetFlags flags);
Cody Northrope62183e2015-07-09 18:08:05 -06002773
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002774VkResult VKAPI vkAllocateCommandBuffers(
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002775 VkDevice device,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002776 const VkCommandBufferAllocateInfo* pAllocateInfo,
2777 VkCommandBuffer* pCommandBuffers);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002778
Courtney Goeltzenleuchterbee18a92015-10-23 14:21:05 -06002779void VKAPI vkFreeCommandBuffers(
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002780 VkDevice device,
Chia-I Wuaed8ca92015-10-27 18:59:16 +08002781 VkCommandPool commandPool,
Chia-I Wud50a7d72015-10-26 20:48:51 +08002782 uint32_t commandBufferCount,
Chia-I Wubb7fad92015-10-27 17:53:18 +08002783 const VkCommandBuffer* pCommandBuffers);
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002784
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002785VkResult VKAPI vkBeginCommandBuffer(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002786 VkCommandBuffer commandBuffer,
2787 const VkCommandBufferBeginInfo* pBeginInfo);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002788
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002789VkResult VKAPI vkEndCommandBuffer(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002790 VkCommandBuffer commandBuffer);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002791
Courtney Goeltzenleuchterfb4efc62015-04-10 08:34:15 -06002792VkResult VKAPI vkResetCommandBuffer(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002793 VkCommandBuffer commandBuffer,
2794 VkCommandBufferResetFlags flags);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002795
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002796void VKAPI vkCmdBindPipeline(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002797 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002798 VkPipelineBindPoint pipelineBindPoint,
2799 VkPipeline pipeline);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002800
Courtney Goeltzenleuchter49c73082015-09-17 15:06:17 -06002801void VKAPI vkCmdSetViewport(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002802 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchter078f8172015-09-21 11:44:06 -06002803 uint32_t viewportCount,
2804 const VkViewport* pViewports);
2805
2806void VKAPI vkCmdSetScissor(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002807 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchter078f8172015-09-21 11:44:06 -06002808 uint32_t scissorCount,
Courtney Goeltzenleuchter49c73082015-09-17 15:06:17 -06002809 const VkRect2D* pScissors);
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002810
Courtney Goeltzenleuchter49c73082015-09-17 15:06:17 -06002811void VKAPI vkCmdSetLineWidth(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002812 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchter49c73082015-09-17 15:06:17 -06002813 float lineWidth);
Cody Northrop12365112015-08-17 11:10:49 -06002814
Courtney Goeltzenleuchter49c73082015-09-17 15:06:17 -06002815void VKAPI vkCmdSetDepthBias(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002816 VkCommandBuffer commandBuffer,
Chia-I Wud8c946a2015-10-26 19:08:09 +08002817 float depthBiasConstantFactor,
Courtney Goeltzenleuchter49c73082015-09-17 15:06:17 -06002818 float depthBiasClamp,
Chia-I Wud8c946a2015-10-26 19:08:09 +08002819 float depthBiasSlopeFactor);
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002820
Courtney Goeltzenleuchter49c73082015-09-17 15:06:17 -06002821void VKAPI vkCmdSetBlendConstants(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002822 VkCommandBuffer commandBuffer,
Chia-I Wu2bfb33c2015-10-26 17:24:52 +08002823 const float blendConstants[4]);
Tony Barbour1d2cd3f2015-07-03 10:33:54 -06002824
Courtney Goeltzenleuchter49c73082015-09-17 15:06:17 -06002825void VKAPI vkCmdSetDepthBounds(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002826 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchter49c73082015-09-17 15:06:17 -06002827 float minDepthBounds,
2828 float maxDepthBounds);
Cody Northrop82485a82015-08-18 15:21:16 -06002829
Courtney Goeltzenleuchter49c73082015-09-17 15:06:17 -06002830void VKAPI vkCmdSetStencilCompareMask(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002831 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchter49c73082015-09-17 15:06:17 -06002832 VkStencilFaceFlags faceMask,
2833 uint32_t stencilCompareMask);
2834
2835void VKAPI vkCmdSetStencilWriteMask(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002836 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchter49c73082015-09-17 15:06:17 -06002837 VkStencilFaceFlags faceMask,
2838 uint32_t stencilWriteMask);
2839
2840void VKAPI vkCmdSetStencilReference(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002841 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchter49c73082015-09-17 15:06:17 -06002842 VkStencilFaceFlags faceMask,
2843 uint32_t stencilReference);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002844
2845void VKAPI vkCmdBindDescriptorSets(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002846 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002847 VkPipelineBindPoint pipelineBindPoint,
Mark Lobodzinskif2093b62015-06-15 13:21:21 -06002848 VkPipelineLayout layout,
Cody Northropd4c1a502015-04-16 13:41:56 -06002849 uint32_t firstSet,
Chia-I Wud50a7d72015-10-26 20:48:51 +08002850 uint32_t descriptorSetCount,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002851 const VkDescriptorSet* pDescriptorSets,
Cody Northropd4c1a502015-04-16 13:41:56 -06002852 uint32_t dynamicOffsetCount,
2853 const uint32_t* pDynamicOffsets);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002854
2855void VKAPI vkCmdBindIndexBuffer(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002856 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002857 VkBuffer buffer,
Tony Barbourd1c35722015-04-16 15:59:00 -06002858 VkDeviceSize offset,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002859 VkIndexType indexType);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002860
Courtney Goeltzenleuchterf68ad722015-04-16 13:38:46 -06002861void VKAPI vkCmdBindVertexBuffers(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002862 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchterf68ad722015-04-16 13:38:46 -06002863 uint32_t startBinding,
2864 uint32_t bindingCount,
2865 const VkBuffer* pBuffers,
Tony Barbourd1c35722015-04-16 15:59:00 -06002866 const VkDeviceSize* pOffsets);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002867
2868void VKAPI vkCmdDraw(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002869 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002870 uint32_t vertexCount,
Courtney Goeltzenleuchter08c26372015-09-23 12:31:50 -06002871 uint32_t instanceCount,
2872 uint32_t firstVertex,
2873 uint32_t firstInstance);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002874
2875void VKAPI vkCmdDrawIndexed(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002876 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002877 uint32_t indexCount,
Courtney Goeltzenleuchter08c26372015-09-23 12:31:50 -06002878 uint32_t instanceCount,
2879 uint32_t firstIndex,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002880 int32_t vertexOffset,
Courtney Goeltzenleuchter08c26372015-09-23 12:31:50 -06002881 uint32_t firstInstance);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002882
2883void VKAPI vkCmdDrawIndirect(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002884 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002885 VkBuffer buffer,
Tony Barbourd1c35722015-04-16 15:59:00 -06002886 VkDeviceSize offset,
Chia-I Wud50a7d72015-10-26 20:48:51 +08002887 uint32_t drawCount,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002888 uint32_t stride);
2889
2890void VKAPI vkCmdDrawIndexedIndirect(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002891 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002892 VkBuffer buffer,
Tony Barbourd1c35722015-04-16 15:59:00 -06002893 VkDeviceSize offset,
Chia-I Wud50a7d72015-10-26 20:48:51 +08002894 uint32_t drawCount,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002895 uint32_t stride);
2896
2897void VKAPI vkCmdDispatch(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002898 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002899 uint32_t x,
2900 uint32_t y,
2901 uint32_t z);
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002902
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002903void VKAPI vkCmdDispatchIndirect(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002904 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002905 VkBuffer buffer,
Tony Barbourd1c35722015-04-16 15:59:00 -06002906 VkDeviceSize offset);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002907
2908void VKAPI vkCmdCopyBuffer(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002909 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002910 VkBuffer srcBuffer,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002911 VkBuffer dstBuffer,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002912 uint32_t regionCount,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002913 const VkBufferCopy* pRegions);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002914
2915void VKAPI vkCmdCopyImage(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002916 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002917 VkImage srcImage,
2918 VkImageLayout srcImageLayout,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002919 VkImage dstImage,
2920 VkImageLayout dstImageLayout,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002921 uint32_t regionCount,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002922 const VkImageCopy* pRegions);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002923
2924void VKAPI vkCmdBlitImage(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002925 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002926 VkImage srcImage,
2927 VkImageLayout srcImageLayout,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002928 VkImage dstImage,
2929 VkImageLayout dstImageLayout,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002930 uint32_t regionCount,
Mark Lobodzinskiee5eef12015-05-22 14:43:25 -05002931 const VkImageBlit* pRegions,
Chia-I Wub99df442015-10-26 16:49:32 +08002932 VkFilter filter);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002933
2934void VKAPI vkCmdCopyBufferToImage(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002935 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002936 VkBuffer srcBuffer,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002937 VkImage dstImage,
2938 VkImageLayout dstImageLayout,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002939 uint32_t regionCount,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002940 const VkBufferImageCopy* pRegions);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002941
2942void VKAPI vkCmdCopyImageToBuffer(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002943 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002944 VkImage srcImage,
2945 VkImageLayout srcImageLayout,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002946 VkBuffer dstBuffer,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002947 uint32_t regionCount,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002948 const VkBufferImageCopy* pRegions);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002949
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002950void VKAPI vkCmdUpdateBuffer(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002951 VkCommandBuffer commandBuffer,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002952 VkBuffer dstBuffer,
2953 VkDeviceSize dstOffset,
Tony Barbourd1c35722015-04-16 15:59:00 -06002954 VkDeviceSize dataSize,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002955 const uint32_t* pData);
2956
2957void VKAPI vkCmdFillBuffer(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002958 VkCommandBuffer commandBuffer,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002959 VkBuffer dstBuffer,
2960 VkDeviceSize dstOffset,
Chia-I Wu2bfb33c2015-10-26 17:24:52 +08002961 VkDeviceSize size,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002962 uint32_t data);
2963
2964void VKAPI vkCmdClearColorImage(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002965 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002966 VkImage image,
2967 VkImageLayout imageLayout,
Chris Forbesf0796e12015-06-24 14:34:53 +12002968 const VkClearColorValue* pColor,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002969 uint32_t rangeCount,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002970 const VkImageSubresourceRange* pRanges);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002971
Chris Forbesd9be82b2015-06-22 17:21:59 +12002972void VKAPI vkCmdClearDepthStencilImage(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002973 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002974 VkImage image,
2975 VkImageLayout imageLayout,
Courtney Goeltzenleuchter45df9e12015-09-15 18:03:22 -06002976 const VkClearDepthStencilValue* pDepthStencil,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002977 uint32_t rangeCount,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002978 const VkImageSubresourceRange* pRanges);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002979
Courtney Goeltzenleuchterc9323e02015-10-15 16:51:05 -06002980void VKAPI vkCmdClearAttachments(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002981 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchterc9323e02015-10-15 16:51:05 -06002982 uint32_t attachmentCount,
2983 const VkClearAttachment* pAttachments,
Chris Forbesd9be82b2015-06-22 17:21:59 +12002984 uint32_t rectCount,
Courtney Goeltzenleuchter4ca43f62015-10-15 18:22:08 -06002985 const VkClearRect* pRects);
Chris Forbesd9be82b2015-06-22 17:21:59 +12002986
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002987void VKAPI vkCmdResolveImage(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002988 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002989 VkImage srcImage,
2990 VkImageLayout srcImageLayout,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08002991 VkImage dstImage,
2992 VkImageLayout dstImageLayout,
Tony Barbour6865d4a2015-04-13 15:02:52 -06002993 uint32_t regionCount,
2994 const VkImageResolve* pRegions);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06002995
2996void VKAPI vkCmdSetEvent(
Chia-I Wubb7fad92015-10-27 17:53:18 +08002997 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06002998 VkEvent event,
Tony Barbour0b2cfb22015-06-29 16:20:35 -06002999 VkPipelineStageFlags stageMask);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06003000
3001void VKAPI vkCmdResetEvent(
Chia-I Wubb7fad92015-10-27 17:53:18 +08003002 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06003003 VkEvent event,
Tony Barbour0b2cfb22015-06-29 16:20:35 -06003004 VkPipelineStageFlags stageMask);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06003005
3006void VKAPI vkCmdWaitEvents(
Chia-I Wubb7fad92015-10-27 17:53:18 +08003007 VkCommandBuffer commandBuffer,
Tony Barbourd1c35722015-04-16 15:59:00 -06003008 uint32_t eventCount,
3009 const VkEvent* pEvents,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06003010 VkPipelineStageFlags srcStageMask,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08003011 VkPipelineStageFlags dstStageMask,
3012 uint32_t memoryBarrierCount,
3013 const void* const* ppMemoryBarriers);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06003014
3015void VKAPI vkCmdPipelineBarrier(
Chia-I Wubb7fad92015-10-27 17:53:18 +08003016 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06003017 VkPipelineStageFlags srcStageMask,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08003018 VkPipelineStageFlags dstStageMask,
Chia-I Wu53534662015-10-26 17:08:33 +08003019 VkDependencyFlags dependencyFlags,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08003020 uint32_t memoryBarrierCount,
3021 const void* const* ppMemoryBarriers);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06003022
3023void VKAPI vkCmdBeginQuery(
Chia-I Wubb7fad92015-10-27 17:53:18 +08003024 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06003025 VkQueryPool queryPool,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06003026 uint32_t slot,
Tony Barbourd1c35722015-04-16 15:59:00 -06003027 VkQueryControlFlags flags);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06003028
3029void VKAPI vkCmdEndQuery(
Chia-I Wubb7fad92015-10-27 17:53:18 +08003030 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06003031 VkQueryPool queryPool,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06003032 uint32_t slot);
3033
3034void VKAPI vkCmdResetQueryPool(
Chia-I Wubb7fad92015-10-27 17:53:18 +08003035 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchteraa58f672015-04-10 18:00:50 -06003036 VkQueryPool queryPool,
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06003037 uint32_t startQuery,
3038 uint32_t queryCount);
3039
3040void VKAPI vkCmdWriteTimestamp(
Chia-I Wubb7fad92015-10-27 17:53:18 +08003041 VkCommandBuffer commandBuffer,
Chia-I Wu51ce5ea2015-10-26 19:40:27 +08003042 VkPipelineStageFlagBits pipelineStage,
Chia-I Wucbe3c9f2015-10-26 20:14:54 +08003043 VkQueryPool queryPool,
3044 uint32_t slot);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06003045
Courtney Goeltzenleuchter1dbc8e22015-04-15 18:21:13 -06003046void VKAPI vkCmdCopyQueryPoolResults(
Chia-I Wubb7fad92015-10-27 17:53:18 +08003047 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchter1dbc8e22015-04-15 18:21:13 -06003048 VkQueryPool queryPool,
3049 uint32_t startQuery,
3050 uint32_t queryCount,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08003051 VkBuffer dstBuffer,
3052 VkDeviceSize dstOffset,
Chia-I Wuccc93a72015-10-26 18:36:20 +08003053 VkDeviceSize stride,
Tony Barbour71a85122015-04-16 19:09:28 -06003054 VkQueryResultFlags flags);
Courtney Goeltzenleuchter1dbc8e22015-04-15 18:21:13 -06003055
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06003056void VKAPI vkCmdPushConstants(
Chia-I Wubb7fad92015-10-27 17:53:18 +08003057 VkCommandBuffer commandBuffer,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06003058 VkPipelineLayout layout,
3059 VkShaderStageFlags stageFlags,
Chia-I Wud50677e2015-10-26 20:46:14 +08003060 uint32_t offset,
3061 uint32_t size,
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06003062 const void* values);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06003063
3064void VKAPI vkCmdBeginRenderPass(
Chia-I Wubb7fad92015-10-27 17:53:18 +08003065 VkCommandBuffer commandBuffer,
Chia-I Wu08accc62015-07-07 11:50:03 +08003066 const VkRenderPassBeginInfo* pRenderPassBegin,
3067 VkRenderPassContents contents);
3068
3069void VKAPI vkCmdNextSubpass(
Chia-I Wubb7fad92015-10-27 17:53:18 +08003070 VkCommandBuffer commandBuffer,
Chia-I Wu08accc62015-07-07 11:50:03 +08003071 VkRenderPassContents contents);
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06003072
3073void VKAPI vkCmdEndRenderPass(
Chia-I Wubb7fad92015-10-27 17:53:18 +08003074 VkCommandBuffer commandBuffer);
Chia-I Wu0b50a1c2015-06-26 15:34:39 +08003075
3076void VKAPI vkCmdExecuteCommands(
Chia-I Wubb7fad92015-10-27 17:53:18 +08003077 VkCommandBuffer commandBuffer,
Chia-I Wu3432a0c2015-10-27 18:04:07 +08003078 uint32_t commandBuffersCount,
Chia-I Wubb7fad92015-10-27 17:53:18 +08003079 const VkCommandBuffer* pCommandBuffers);
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06003080#endif
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06003081
3082#ifdef __cplusplus
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06003083}
3084#endif
Courtney Goeltzenleuchter64d1a712015-04-08 18:04:29 -06003085
Courtney Goeltzenleuchterac191122015-07-12 12:21:19 -06003086#endif