blob: fa58c593fb63d41cf4e0e4ece83d8ac72fedc1f8 [file] [log] [blame]
Jesse Halldc6d36c2015-11-29 19:12:15 -08001#ifndef __vulkan_h_
2#define __vulkan_h_ 1
Jesse Hall04f4f472015-08-16 19:51:04 -07003
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8/*
9** Copyright (c) 2015 The Khronos Group Inc.
10**
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
31/*
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"
39
40#define VK_MAKE_VERSION(major, minor, patch) \
41 ((major << 22) | (minor << 12) | patch)
42
43// Vulkan API version supported by this file
Jesse Hallbd888842015-11-30 21:44:14 -080044#define VK_API_VERSION VK_MAKE_VERSION(0, 210, 1)
Jesse Hall5ae3abb2015-10-08 14:00:22 -070045
46
Jesse Halla3a7a1d2015-11-24 11:37:23 -080047#define VK_NULL_HANDLE 0
Jesse Hallf4ab2b12015-11-30 16:04:55 -080048
Jesse Hall04f4f472015-08-16 19:51:04 -070049
50
Jesse Hall3fbc8562015-11-29 22:10:52 -080051#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
Jesse Hall04f4f472015-08-16 19:51:04 -070052
53
Jesse Halla3a7a1d2015-11-24 11:37:23 -080054#if defined(__LP64__) || defined(_WIN64) || defined(__x86_64__) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
Jesse Hall3fbc8562015-11-29 22:10:52 -080055 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
Jesse Hall04f4f472015-08-16 19:51:04 -070056#else
Jesse Hall3fbc8562015-11-29 22:10:52 -080057 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
Jesse Hall04f4f472015-08-16 19:51:04 -070058#endif
Jesse Hallf4ab2b12015-11-30 16:04:55 -080059
Jesse Hall04f4f472015-08-16 19:51:04 -070060
61
Jesse Hall5ae3abb2015-10-08 14:00:22 -070062typedef uint32_t VkFlags;
Jesse Halla6429252015-11-29 18:59:42 -080063typedef uint32_t VkBool32;
Jesse Hall5ae3abb2015-10-08 14:00:22 -070064typedef uint64_t VkDeviceSize;
65typedef uint32_t VkSampleMask;
Jesse Hall04f4f472015-08-16 19:51:04 -070066
67VK_DEFINE_HANDLE(VkInstance)
68VK_DEFINE_HANDLE(VkPhysicalDevice)
69VK_DEFINE_HANDLE(VkDevice)
70VK_DEFINE_HANDLE(VkQueue)
Jesse Hall3fbc8562015-11-29 22:10:52 -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)
Jesse Hall3fbc8562015-11-29 22:10:52 -080082VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
83VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
84VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
85VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
86VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
87VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
88VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
89VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
90VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
91VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
Jesse Hall04f4f472015-08-16 19:51:04 -070092
Jesse Hall5ae3abb2015-10-08 14:00:22 -070093#define VK_LOD_CLAMP_NONE 1000.0f
94#define VK_REMAINING_MIP_LEVELS (~0U)
95#define VK_REMAINING_ARRAY_LAYERS (~0U)
96#define VK_WHOLE_SIZE (~0ULL)
97#define VK_ATTACHMENT_UNUSED (~0U)
98#define VK_TRUE 1
99#define VK_FALSE 0
100#define VK_QUEUE_FAMILY_IGNORED (~0U)
101#define VK_SUBPASS_EXTERNAL (~0U)
Jesse Hall65ab5522015-11-30 00:07:16 -0800102#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256
103#define VK_UUID_SIZE 16
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700104#define VK_MAX_MEMORY_TYPES 32
105#define VK_MAX_MEMORY_HEAPS 16
Jesse Hall65ab5522015-11-30 00:07:16 -0800106#define VK_MAX_EXTENSION_NAME_SIZE 256
107#define VK_MAX_DESCRIPTION_SIZE 256
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700108
Jesse Hall04f4f472015-08-16 19:51:04 -0700109
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800110typedef enum VkResult {
Jesse Hall04f4f472015-08-16 19:51:04 -0700111 VK_SUCCESS = 0,
Jesse Halla15a4bf2015-11-19 22:48:02 -0800112 VK_NOT_READY = 1,
113 VK_TIMEOUT = 2,
114 VK_EVENT_SET = 3,
115 VK_EVENT_RESET = 4,
116 VK_INCOMPLETE = 5,
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700117 VK_ERROR_OUT_OF_HOST_MEMORY = -1,
118 VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
Jesse Hall04f4f472015-08-16 19:51:04 -0700119 VK_ERROR_INITIALIZATION_FAILED = -3,
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700120 VK_ERROR_DEVICE_LOST = -4,
121 VK_ERROR_MEMORY_MAP_FAILED = -5,
122 VK_ERROR_LAYER_NOT_PRESENT = -6,
123 VK_ERROR_EXTENSION_NOT_PRESENT = -7,
Jesse Hall606a54e2015-11-19 22:17:28 -0800124 VK_ERROR_FEATURE_NOT_PRESENT = -8,
125 VK_ERROR_INCOMPATIBLE_DRIVER = -9,
Jesse Hall091ed9e2015-11-30 00:55:29 -0800126 VK_ERROR_TOO_MANY_OBJECTS = -10,
Jesse Halla9e57032015-11-30 01:03:10 -0800127 VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
Jesse Hallbd888842015-11-30 21:44:14 -0800128 VK_ERROR_SURFACE_LOST_KHR = -1000000000,
129 VK_SUBOPTIMAL_KHR = 1000001003,
130 VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
131 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
132 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000008000,
Jesse Halla9e57032015-11-30 01:03:10 -0800133 VK_RESULT_BEGIN_RANGE = VK_ERROR_FORMAT_NOT_SUPPORTED,
Jesse Hall04f4f472015-08-16 19:51:04 -0700134 VK_RESULT_END_RANGE = VK_INCOMPLETE,
Jesse Halla9e57032015-11-30 01:03:10 -0800135 VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FORMAT_NOT_SUPPORTED + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700136 VK_RESULT_MAX_ENUM = 0x7FFFFFFF
137} VkResult;
138
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800139typedef enum VkStructureType {
Jesse Hall04f4f472015-08-16 19:51:04 -0700140 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
Jesse Hallc7467b72015-11-29 21:05:26 -0800141 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
142 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
143 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
144 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
Jesse Hallf4ab2b12015-11-30 16:04:55 -0800145 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
Jesse Hallc7467b72015-11-29 21:05:26 -0800146 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
147 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
148 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
149 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700150 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
Jesse Hallc7467b72015-11-29 21:05:26 -0800151 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
152 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
153 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
154 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
155 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
156 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800157 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
158 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
159 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
160 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
161 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
162 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
163 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
164 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
165 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
166 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
167 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
168 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
169 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
170 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
171 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
172 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
173 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
Jesse Hallf4ab2b12015-11-30 16:04:55 -0800174 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800175 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
176 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
177 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
178 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
179 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
Jesse Hallf4ab2b12015-11-30 16:04:55 -0800180 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800181 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 41,
182 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 42,
183 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 43,
184 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 44,
185 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 45,
Jesse Hallf4ab2b12015-11-30 16:04:55 -0800186 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 46,
187 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 47,
Jesse Hallbd888842015-11-30 21:44:14 -0800188 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
189 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
190 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
191 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
192 VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
Jesse Hall04f4f472015-08-16 19:51:04 -0700193 VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
Jesse Hallf4ab2b12015-11-30 16:04:55 -0800194 VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
195 VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700196 VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
197} VkStructureType;
198
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800199typedef enum VkSystemAllocationScope {
200 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800201 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
202 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
203 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
204 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800205 VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800206 VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800207 VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1),
Jesse Hall3fbc8562015-11-29 22:10:52 -0800208 VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
209} VkSystemAllocationScope;
Jesse Hall03b6fe12015-11-24 12:44:21 -0800210
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800211typedef enum VkInternalAllocationType {
Jesse Hall3fbc8562015-11-29 22:10:52 -0800212 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
213 VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
214 VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
215 VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1),
216 VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
217} VkInternalAllocationType;
Jesse Hall04f4f472015-08-16 19:51:04 -0700218
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800219typedef enum VkFormat {
Jesse Hall04f4f472015-08-16 19:51:04 -0700220 VK_FORMAT_UNDEFINED = 0,
Jesse Hallf4ab2b12015-11-30 16:04:55 -0800221 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
222 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
223 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
224 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
225 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
226 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
227 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
228 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
Jesse Hall04f4f472015-08-16 19:51:04 -0700229 VK_FORMAT_R8_UNORM = 9,
230 VK_FORMAT_R8_SNORM = 10,
231 VK_FORMAT_R8_USCALED = 11,
232 VK_FORMAT_R8_SSCALED = 12,
233 VK_FORMAT_R8_UINT = 13,
234 VK_FORMAT_R8_SINT = 14,
235 VK_FORMAT_R8_SRGB = 15,
236 VK_FORMAT_R8G8_UNORM = 16,
237 VK_FORMAT_R8G8_SNORM = 17,
238 VK_FORMAT_R8G8_USCALED = 18,
239 VK_FORMAT_R8G8_SSCALED = 19,
240 VK_FORMAT_R8G8_UINT = 20,
241 VK_FORMAT_R8G8_SINT = 21,
242 VK_FORMAT_R8G8_SRGB = 22,
243 VK_FORMAT_R8G8B8_UNORM = 23,
244 VK_FORMAT_R8G8B8_SNORM = 24,
245 VK_FORMAT_R8G8B8_USCALED = 25,
246 VK_FORMAT_R8G8B8_SSCALED = 26,
247 VK_FORMAT_R8G8B8_UINT = 27,
248 VK_FORMAT_R8G8B8_SINT = 28,
249 VK_FORMAT_R8G8B8_SRGB = 29,
Jesse Hallf4ab2b12015-11-30 16:04:55 -0800250 VK_FORMAT_B8G8R8_UNORM = 30,
251 VK_FORMAT_B8G8R8_SNORM = 31,
252 VK_FORMAT_B8G8R8_USCALED = 32,
253 VK_FORMAT_B8G8R8_SSCALED = 33,
254 VK_FORMAT_B8G8R8_UINT = 34,
255 VK_FORMAT_B8G8R8_SINT = 35,
256 VK_FORMAT_B8G8R8_SRGB = 36,
257 VK_FORMAT_R8G8B8A8_UNORM = 37,
258 VK_FORMAT_R8G8B8A8_SNORM = 38,
259 VK_FORMAT_R8G8B8A8_USCALED = 39,
260 VK_FORMAT_R8G8B8A8_SSCALED = 40,
261 VK_FORMAT_R8G8B8A8_UINT = 41,
262 VK_FORMAT_R8G8B8A8_SINT = 42,
263 VK_FORMAT_R8G8B8A8_SRGB = 43,
264 VK_FORMAT_B8G8R8A8_UNORM = 44,
265 VK_FORMAT_B8G8R8A8_SNORM = 45,
266 VK_FORMAT_B8G8R8A8_USCALED = 46,
267 VK_FORMAT_B8G8R8A8_SSCALED = 47,
268 VK_FORMAT_B8G8R8A8_UINT = 48,
269 VK_FORMAT_B8G8R8A8_SINT = 49,
270 VK_FORMAT_B8G8R8A8_SRGB = 50,
271 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
272 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
273 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
274 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
275 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
276 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
277 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
278 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
279 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
280 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
281 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
282 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
283 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
284 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
285 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
286 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
287 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
288 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
289 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
290 VK_FORMAT_R16_UNORM = 70,
291 VK_FORMAT_R16_SNORM = 71,
292 VK_FORMAT_R16_USCALED = 72,
293 VK_FORMAT_R16_SSCALED = 73,
294 VK_FORMAT_R16_UINT = 74,
295 VK_FORMAT_R16_SINT = 75,
296 VK_FORMAT_R16_SFLOAT = 76,
297 VK_FORMAT_R16G16_UNORM = 77,
298 VK_FORMAT_R16G16_SNORM = 78,
299 VK_FORMAT_R16G16_USCALED = 79,
300 VK_FORMAT_R16G16_SSCALED = 80,
301 VK_FORMAT_R16G16_UINT = 81,
302 VK_FORMAT_R16G16_SINT = 82,
303 VK_FORMAT_R16G16_SFLOAT = 83,
304 VK_FORMAT_R16G16B16_UNORM = 84,
305 VK_FORMAT_R16G16B16_SNORM = 85,
306 VK_FORMAT_R16G16B16_USCALED = 86,
307 VK_FORMAT_R16G16B16_SSCALED = 87,
308 VK_FORMAT_R16G16B16_UINT = 88,
309 VK_FORMAT_R16G16B16_SINT = 89,
310 VK_FORMAT_R16G16B16_SFLOAT = 90,
311 VK_FORMAT_R16G16B16A16_UNORM = 91,
312 VK_FORMAT_R16G16B16A16_SNORM = 92,
313 VK_FORMAT_R16G16B16A16_USCALED = 93,
314 VK_FORMAT_R16G16B16A16_SSCALED = 94,
315 VK_FORMAT_R16G16B16A16_UINT = 95,
316 VK_FORMAT_R16G16B16A16_SINT = 96,
317 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
318 VK_FORMAT_R32_UINT = 98,
319 VK_FORMAT_R32_SINT = 99,
320 VK_FORMAT_R32_SFLOAT = 100,
321 VK_FORMAT_R32G32_UINT = 101,
322 VK_FORMAT_R32G32_SINT = 102,
323 VK_FORMAT_R32G32_SFLOAT = 103,
324 VK_FORMAT_R32G32B32_UINT = 104,
325 VK_FORMAT_R32G32B32_SINT = 105,
326 VK_FORMAT_R32G32B32_SFLOAT = 106,
327 VK_FORMAT_R32G32B32A32_UINT = 107,
328 VK_FORMAT_R32G32B32A32_SINT = 108,
329 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
330 VK_FORMAT_R64_UINT = 110,
331 VK_FORMAT_R64_SINT = 111,
332 VK_FORMAT_R64_SFLOAT = 112,
333 VK_FORMAT_R64G64_UINT = 113,
334 VK_FORMAT_R64G64_SINT = 114,
335 VK_FORMAT_R64G64_SFLOAT = 115,
336 VK_FORMAT_R64G64B64_UINT = 116,
337 VK_FORMAT_R64G64B64_SINT = 117,
338 VK_FORMAT_R64G64B64_SFLOAT = 118,
339 VK_FORMAT_R64G64B64A64_UINT = 119,
340 VK_FORMAT_R64G64B64A64_SINT = 120,
341 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
342 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
343 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
344 VK_FORMAT_D16_UNORM = 124,
345 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
346 VK_FORMAT_D32_SFLOAT = 126,
347 VK_FORMAT_S8_UINT = 127,
348 VK_FORMAT_D16_UNORM_S8_UINT = 128,
349 VK_FORMAT_D24_UNORM_S8_UINT = 129,
350 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
351 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
352 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
353 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
354 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
355 VK_FORMAT_BC2_UNORM_BLOCK = 135,
356 VK_FORMAT_BC2_SRGB_BLOCK = 136,
357 VK_FORMAT_BC3_UNORM_BLOCK = 137,
358 VK_FORMAT_BC3_SRGB_BLOCK = 138,
359 VK_FORMAT_BC4_UNORM_BLOCK = 139,
360 VK_FORMAT_BC4_SNORM_BLOCK = 140,
361 VK_FORMAT_BC5_UNORM_BLOCK = 141,
362 VK_FORMAT_BC5_SNORM_BLOCK = 142,
363 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
364 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
365 VK_FORMAT_BC7_UNORM_BLOCK = 145,
366 VK_FORMAT_BC7_SRGB_BLOCK = 146,
367 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
368 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
369 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
370 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
371 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
372 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
373 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
374 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
375 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
376 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
377 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
378 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
379 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
380 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
381 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
382 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
383 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
384 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
385 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
386 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
387 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
388 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
389 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
390 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
391 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
392 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
393 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
394 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
395 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
396 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
397 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
398 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
399 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
400 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
401 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
402 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
403 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
404 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
Jesse Hall04f4f472015-08-16 19:51:04 -0700405 VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
Jesse Hallf4ab2b12015-11-30 16:04:55 -0800406 VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
407 VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700408 VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
409} VkFormat;
410
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800411typedef enum VkImageType {
Jesse Hall04f4f472015-08-16 19:51:04 -0700412 VK_IMAGE_TYPE_1D = 0,
413 VK_IMAGE_TYPE_2D = 1,
414 VK_IMAGE_TYPE_3D = 2,
415 VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
416 VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800417 VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700418 VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
419} VkImageType;
420
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800421typedef enum VkImageTiling {
Jesse Hallc7467b72015-11-29 21:05:26 -0800422 VK_IMAGE_TILING_OPTIMAL = 0,
423 VK_IMAGE_TILING_LINEAR = 1,
424 VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
425 VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800426 VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700427 VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
428} VkImageTiling;
429
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800430typedef enum VkPhysicalDeviceType {
Jesse Hall04f4f472015-08-16 19:51:04 -0700431 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
432 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
433 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
434 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
435 VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
436 VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
437 VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800438 VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700439 VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
440} VkPhysicalDeviceType;
441
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800442typedef enum VkQueryType {
Jesse Hall04f4f472015-08-16 19:51:04 -0700443 VK_QUERY_TYPE_OCCLUSION = 0,
444 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
Jesse Halla3a7a1d2015-11-24 11:37:23 -0800445 VK_QUERY_TYPE_TIMESTAMP = 2,
Jesse Hall04f4f472015-08-16 19:51:04 -0700446 VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
Jesse Halla3a7a1d2015-11-24 11:37:23 -0800447 VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800448 VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700449 VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
450} VkQueryType;
451
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800452typedef enum VkSharingMode {
Jesse Hall04f4f472015-08-16 19:51:04 -0700453 VK_SHARING_MODE_EXCLUSIVE = 0,
454 VK_SHARING_MODE_CONCURRENT = 1,
455 VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
456 VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800457 VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700458 VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
459} VkSharingMode;
460
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800461typedef enum VkImageLayout {
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700462 VK_IMAGE_LAYOUT_UNDEFINED = 0,
463 VK_IMAGE_LAYOUT_GENERAL = 1,
464 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
465 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
466 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
467 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800468 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
469 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700470 VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
Jesse Hallbd888842015-11-30 21:44:14 -0800471 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700472 VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
473 VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800474 VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700475 VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
476} VkImageLayout;
Jesse Hall04f4f472015-08-16 19:51:04 -0700477
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800478typedef enum VkImageViewType {
Jesse Hall04f4f472015-08-16 19:51:04 -0700479 VK_IMAGE_VIEW_TYPE_1D = 0,
480 VK_IMAGE_VIEW_TYPE_2D = 1,
481 VK_IMAGE_VIEW_TYPE_3D = 2,
482 VK_IMAGE_VIEW_TYPE_CUBE = 3,
483 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
484 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
485 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
486 VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
487 VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800488 VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700489 VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
490} VkImageViewType;
491
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800492typedef enum VkComponentSwizzle {
Jesse Hall65ab5522015-11-30 00:07:16 -0800493 VK_COMPONENT_SWIZZLE_IDENTITY = 0,
494 VK_COMPONENT_SWIZZLE_ZERO = 1,
495 VK_COMPONENT_SWIZZLE_ONE = 2,
496 VK_COMPONENT_SWIZZLE_R = 3,
497 VK_COMPONENT_SWIZZLE_G = 4,
498 VK_COMPONENT_SWIZZLE_B = 5,
499 VK_COMPONENT_SWIZZLE_A = 6,
500 VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY,
501 VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A,
502 VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1),
503 VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
504} VkComponentSwizzle;
Jesse Hall04f4f472015-08-16 19:51:04 -0700505
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800506typedef enum VkVertexInputRate {
Jesse Hall65ab5522015-11-30 00:07:16 -0800507 VK_VERTEX_INPUT_RATE_VERTEX = 0,
508 VK_VERTEX_INPUT_RATE_INSTANCE = 1,
509 VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX,
510 VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE,
511 VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1),
512 VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
513} VkVertexInputRate;
Jesse Hall04f4f472015-08-16 19:51:04 -0700514
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800515typedef enum VkPrimitiveTopology {
Jesse Hall04f4f472015-08-16 19:51:04 -0700516 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
517 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
518 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
519 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
520 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
521 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800522 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
523 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
524 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
525 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
Jesse Hall091ed9e2015-11-30 00:55:29 -0800526 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
Jesse Hall04f4f472015-08-16 19:51:04 -0700527 VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
Jesse Hall091ed9e2015-11-30 00:55:29 -0800528 VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
529 VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700530 VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
531} VkPrimitiveTopology;
532
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800533typedef enum VkPolygonMode {
Jesse Hall65ab5522015-11-30 00:07:16 -0800534 VK_POLYGON_MODE_FILL = 0,
535 VK_POLYGON_MODE_LINE = 1,
536 VK_POLYGON_MODE_POINT = 2,
537 VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL,
538 VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT,
539 VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1),
540 VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
541} VkPolygonMode;
Jesse Hall04f4f472015-08-16 19:51:04 -0700542
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800543typedef enum VkFrontFace {
Jesse Hall3fbc8562015-11-29 22:10:52 -0800544 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
545 VK_FRONT_FACE_CLOCKWISE = 1,
546 VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
547 VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE,
548 VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700549 VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
550} VkFrontFace;
551
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800552typedef enum VkCompareOp {
Jesse Hall04f4f472015-08-16 19:51:04 -0700553 VK_COMPARE_OP_NEVER = 0,
554 VK_COMPARE_OP_LESS = 1,
555 VK_COMPARE_OP_EQUAL = 2,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800556 VK_COMPARE_OP_LESS_OR_EQUAL = 3,
Jesse Hall04f4f472015-08-16 19:51:04 -0700557 VK_COMPARE_OP_GREATER = 4,
558 VK_COMPARE_OP_NOT_EQUAL = 5,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800559 VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
Jesse Hall04f4f472015-08-16 19:51:04 -0700560 VK_COMPARE_OP_ALWAYS = 7,
561 VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
562 VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800563 VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700564 VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
565} VkCompareOp;
566
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800567typedef enum VkStencilOp {
Jesse Hall04f4f472015-08-16 19:51:04 -0700568 VK_STENCIL_OP_KEEP = 0,
569 VK_STENCIL_OP_ZERO = 1,
570 VK_STENCIL_OP_REPLACE = 2,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800571 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
572 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
Jesse Hall04f4f472015-08-16 19:51:04 -0700573 VK_STENCIL_OP_INVERT = 5,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800574 VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
575 VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
Jesse Hall04f4f472015-08-16 19:51:04 -0700576 VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800577 VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP,
578 VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700579 VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
580} VkStencilOp;
581
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800582typedef enum VkLogicOp {
Jesse Hall04f4f472015-08-16 19:51:04 -0700583 VK_LOGIC_OP_CLEAR = 0,
584 VK_LOGIC_OP_AND = 1,
585 VK_LOGIC_OP_AND_REVERSE = 2,
586 VK_LOGIC_OP_COPY = 3,
587 VK_LOGIC_OP_AND_INVERTED = 4,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800588 VK_LOGIC_OP_NO_OP = 5,
Jesse Hall04f4f472015-08-16 19:51:04 -0700589 VK_LOGIC_OP_XOR = 6,
590 VK_LOGIC_OP_OR = 7,
591 VK_LOGIC_OP_NOR = 8,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800592 VK_LOGIC_OP_EQUIVALENT = 9,
Jesse Hall04f4f472015-08-16 19:51:04 -0700593 VK_LOGIC_OP_INVERT = 10,
594 VK_LOGIC_OP_OR_REVERSE = 11,
595 VK_LOGIC_OP_COPY_INVERTED = 12,
596 VK_LOGIC_OP_OR_INVERTED = 13,
597 VK_LOGIC_OP_NAND = 14,
598 VK_LOGIC_OP_SET = 15,
599 VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
600 VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800601 VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700602 VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
603} VkLogicOp;
604
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800605typedef enum VkBlendFactor {
Jesse Hall65ab5522015-11-30 00:07:16 -0800606 VK_BLEND_FACTOR_ZERO = 0,
607 VK_BLEND_FACTOR_ONE = 1,
608 VK_BLEND_FACTOR_SRC_COLOR = 2,
609 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
610 VK_BLEND_FACTOR_DST_COLOR = 4,
611 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
612 VK_BLEND_FACTOR_SRC_ALPHA = 6,
613 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
614 VK_BLEND_FACTOR_DST_ALPHA = 8,
615 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
616 VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
617 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
618 VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
619 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
620 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
621 VK_BLEND_FACTOR_SRC1_COLOR = 15,
622 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
623 VK_BLEND_FACTOR_SRC1_ALPHA = 17,
624 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
625 VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO,
626 VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
627 VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1),
628 VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
629} VkBlendFactor;
Jesse Hall04f4f472015-08-16 19:51:04 -0700630
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800631typedef enum VkBlendOp {
Jesse Hall04f4f472015-08-16 19:51:04 -0700632 VK_BLEND_OP_ADD = 0,
633 VK_BLEND_OP_SUBTRACT = 1,
634 VK_BLEND_OP_REVERSE_SUBTRACT = 2,
635 VK_BLEND_OP_MIN = 3,
636 VK_BLEND_OP_MAX = 4,
637 VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
638 VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800639 VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700640 VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
641} VkBlendOp;
642
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800643typedef enum VkDynamicState {
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700644 VK_DYNAMIC_STATE_VIEWPORT = 0,
645 VK_DYNAMIC_STATE_SCISSOR = 1,
646 VK_DYNAMIC_STATE_LINE_WIDTH = 2,
647 VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
648 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
649 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
650 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
651 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
652 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
653 VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
654 VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800655 VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700656 VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
657} VkDynamicState;
658
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800659typedef enum VkFilter {
Jesse Hall23ff73f2015-11-29 14:36:39 -0800660 VK_FILTER_NEAREST = 0,
661 VK_FILTER_LINEAR = 1,
662 VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
663 VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800664 VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
Jesse Hall23ff73f2015-11-29 14:36:39 -0800665 VK_FILTER_MAX_ENUM = 0x7FFFFFFF
666} VkFilter;
Jesse Hall04f4f472015-08-16 19:51:04 -0700667
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800668typedef enum VkSamplerMipmapMode {
Jesse Hall23ff73f2015-11-29 14:36:39 -0800669 VK_SAMPLER_MIPMAP_MODE_BASE = 0,
670 VK_SAMPLER_MIPMAP_MODE_NEAREST = 1,
671 VK_SAMPLER_MIPMAP_MODE_LINEAR = 2,
672 VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_BASE,
673 VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800674 VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_BASE + 1),
Jesse Hall23ff73f2015-11-29 14:36:39 -0800675 VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
676} VkSamplerMipmapMode;
Jesse Hall04f4f472015-08-16 19:51:04 -0700677
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800678typedef enum VkSamplerAddressMode {
Jesse Hallc7467b72015-11-29 21:05:26 -0800679 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
680 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
681 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
682 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
683 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
684 VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
685 VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800686 VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
Jesse Hall23ff73f2015-11-29 14:36:39 -0800687 VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
688} VkSamplerAddressMode;
Jesse Hall04f4f472015-08-16 19:51:04 -0700689
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800690typedef enum VkBorderColor {
Jesse Hall04f4f472015-08-16 19:51:04 -0700691 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
692 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
693 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
694 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
695 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
696 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
697 VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
698 VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800699 VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700700 VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
701} VkBorderColor;
702
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800703typedef enum VkDescriptorType {
Jesse Hall04f4f472015-08-16 19:51:04 -0700704 VK_DESCRIPTOR_TYPE_SAMPLER = 0,
705 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
706 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
707 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
708 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
709 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
710 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
711 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
712 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
713 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
714 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
715 VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
716 VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800717 VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700718 VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
719} VkDescriptorType;
720
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800721typedef enum VkAttachmentLoadOp {
Jesse Hall04f4f472015-08-16 19:51:04 -0700722 VK_ATTACHMENT_LOAD_OP_LOAD = 0,
723 VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
724 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
725 VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
726 VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800727 VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700728 VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
729} VkAttachmentLoadOp;
730
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800731typedef enum VkAttachmentStoreOp {
Jesse Hall04f4f472015-08-16 19:51:04 -0700732 VK_ATTACHMENT_STORE_OP_STORE = 0,
733 VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
734 VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
735 VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800736 VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700737 VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
738} VkAttachmentStoreOp;
739
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800740typedef enum VkPipelineBindPoint {
Jesse Hallc7467b72015-11-29 21:05:26 -0800741 VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
742 VK_PIPELINE_BIND_POINT_COMPUTE = 1,
743 VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
744 VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800745 VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700746 VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
747} VkPipelineBindPoint;
748
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800749typedef enum VkCommandBufferLevel {
Jesse Hall3fbc8562015-11-29 22:10:52 -0800750 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
751 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
752 VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
753 VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
754 VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1),
755 VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
756} VkCommandBufferLevel;
Jesse Hall04f4f472015-08-16 19:51:04 -0700757
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800758typedef enum VkIndexType {
Jesse Hall04f4f472015-08-16 19:51:04 -0700759 VK_INDEX_TYPE_UINT16 = 0,
760 VK_INDEX_TYPE_UINT32 = 1,
761 VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
762 VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800763 VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
Jesse Hall04f4f472015-08-16 19:51:04 -0700764 VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
765} VkIndexType;
766
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800767typedef enum VkSubpassContents {
Jesse Hall65ab5522015-11-30 00:07:16 -0800768 VK_SUBPASS_CONTENTS_INLINE = 0,
769 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
770 VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE,
771 VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
772 VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1),
773 VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
774} VkSubpassContents;
Jesse Hall04f4f472015-08-16 19:51:04 -0700775
Jesse Halla6429252015-11-29 18:59:42 -0800776typedef VkFlags VkInstanceCreateFlags;
Jesse Hall04f4f472015-08-16 19:51:04 -0700777
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800778typedef enum VkFormatFeatureFlagBits {
Jesse Hall04f4f472015-08-16 19:51:04 -0700779 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
780 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
781 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
782 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
783 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
784 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
785 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
786 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
787 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
788 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800789 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
790 VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
Jesse Hall04f4f472015-08-16 19:51:04 -0700791} VkFormatFeatureFlagBits;
792typedef VkFlags VkFormatFeatureFlags;
793
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800794typedef enum VkImageUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -0800795 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
796 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
Jesse Hall04f4f472015-08-16 19:51:04 -0700797 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
798 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
799 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700800 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
Jesse Hall04f4f472015-08-16 19:51:04 -0700801 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
802 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
803} VkImageUsageFlagBits;
804typedef VkFlags VkImageUsageFlags;
805
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800806typedef enum VkImageCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700807 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
808 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
809 VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
810 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
811 VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
812} VkImageCreateFlagBits;
813typedef VkFlags VkImageCreateFlags;
814
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800815typedef enum VkSampleCountFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700816 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
817 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
818 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
819 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
820 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
821 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
822 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
823} VkSampleCountFlagBits;
824typedef VkFlags VkSampleCountFlags;
825
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800826typedef enum VkQueueFlagBits {
Jesse Hall04f4f472015-08-16 19:51:04 -0700827 VK_QUEUE_GRAPHICS_BIT = 0x00000001,
828 VK_QUEUE_COMPUTE_BIT = 0x00000002,
Jesse Hall65ab5522015-11-30 00:07:16 -0800829 VK_QUEUE_TRANSFER_BIT = 0x00000004,
Jesse Hallb00daad2015-11-29 19:46:20 -0800830 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
Jesse Hall04f4f472015-08-16 19:51:04 -0700831} VkQueueFlagBits;
832typedef VkFlags VkQueueFlags;
833
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800834typedef enum VkMemoryPropertyFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -0800835 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
836 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
837 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
838 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
839 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
Jesse Hall04f4f472015-08-16 19:51:04 -0700840} VkMemoryPropertyFlagBits;
841typedef VkFlags VkMemoryPropertyFlags;
842
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800843typedef enum VkMemoryHeapFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -0800844 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
Jesse Hall04f4f472015-08-16 19:51:04 -0700845} VkMemoryHeapFlagBits;
846typedef VkFlags VkMemoryHeapFlags;
Jesse Halla6429252015-11-29 18:59:42 -0800847typedef VkFlags VkDeviceCreateFlags;
848typedef VkFlags VkDeviceQueueCreateFlags;
Jesse Hall04f4f472015-08-16 19:51:04 -0700849typedef VkFlags VkMemoryMapFlags;
850
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800851typedef enum VkImageAspectFlagBits {
Jesse Halla15a4bf2015-11-19 22:48:02 -0800852 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
853 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
854 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
855 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
856} VkImageAspectFlagBits;
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800857typedef VkFlags VkImageAspectFlags;
Jesse Halla15a4bf2015-11-19 22:48:02 -0800858
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800859typedef enum VkSparseImageFormatFlagBits {
Jesse Hallb00daad2015-11-29 19:46:20 -0800860 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
861 VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
862 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
Jesse Hall04f4f472015-08-16 19:51:04 -0700863} VkSparseImageFormatFlagBits;
864typedef VkFlags VkSparseImageFormatFlags;
Jesse Hall091ed9e2015-11-30 00:55:29 -0800865
866typedef enum VkSparseMemoryBindFlagBits {
867 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
868} VkSparseMemoryBindFlagBits;
Jesse Hall04f4f472015-08-16 19:51:04 -0700869typedef VkFlags VkSparseMemoryBindFlags;
870
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800871typedef enum VkFenceCreateFlagBits {
Jesse Hall04f4f472015-08-16 19:51:04 -0700872 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
873} VkFenceCreateFlagBits;
874typedef VkFlags VkFenceCreateFlags;
875typedef VkFlags VkSemaphoreCreateFlags;
876typedef VkFlags VkEventCreateFlags;
Jesse Halla6429252015-11-29 18:59:42 -0800877typedef VkFlags VkQueryPoolCreateFlags;
Jesse Hall04f4f472015-08-16 19:51:04 -0700878
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800879typedef enum VkQueryPipelineStatisticFlagBits {
Jesse Hallae38f732015-11-19 21:32:50 -0800880 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
881 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
882 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
883 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
884 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
885 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
886 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
887 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
888 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
889 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
890 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
Jesse Hall04f4f472015-08-16 19:51:04 -0700891} VkQueryPipelineStatisticFlagBits;
892typedef VkFlags VkQueryPipelineStatisticFlags;
893
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800894typedef enum VkQueryResultFlagBits {
Jesse Hall04f4f472015-08-16 19:51:04 -0700895 VK_QUERY_RESULT_DEFAULT = 0,
896 VK_QUERY_RESULT_64_BIT = 0x00000001,
897 VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
898 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
899 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
900} VkQueryResultFlagBits;
901typedef VkFlags VkQueryResultFlags;
902
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800903typedef enum VkBufferCreateFlagBits {
Jesse Halla6429252015-11-29 18:59:42 -0800904 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
905 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
906 VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
907} VkBufferCreateFlagBits;
908typedef VkFlags VkBufferCreateFlags;
909
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800910typedef enum VkBufferUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -0800911 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
912 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
Jesse Hall04f4f472015-08-16 19:51:04 -0700913 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
914 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
915 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
916 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
917 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
918 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
919 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
920} VkBufferUsageFlagBits;
921typedef VkFlags VkBufferUsageFlags;
Jesse Halla6429252015-11-29 18:59:42 -0800922typedef VkFlags VkBufferViewCreateFlags;
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700923typedef VkFlags VkImageViewCreateFlags;
Jesse Hall04f4f472015-08-16 19:51:04 -0700924typedef VkFlags VkShaderModuleCreateFlags;
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800925typedef VkFlags VkPipelineCacheCreateFlags;
Jesse Hall04f4f472015-08-16 19:51:04 -0700926
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800927typedef enum VkPipelineCreateFlagBits {
928 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
929 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
930 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
931} VkPipelineCreateFlagBits;
932typedef VkFlags VkPipelineCreateFlags;
933typedef VkFlags VkPipelineShaderStageCreateFlags;
934
935typedef enum VkShaderStageFlagBits {
Jesse Halla15a4bf2015-11-19 22:48:02 -0800936 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
937 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
938 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
939 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
940 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
941 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
Jesse Hallc7467b72015-11-29 21:05:26 -0800942 VK_SHADER_STAGE_ALL_GRAPHICS = 0x1F,
Jesse Halla15a4bf2015-11-19 22:48:02 -0800943 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
944} VkShaderStageFlagBits;
Jesse Halla6429252015-11-29 18:59:42 -0800945typedef VkFlags VkPipelineVertexInputStateCreateFlags;
946typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
947typedef VkFlags VkPipelineTesselationStateCreateFlags;
948typedef VkFlags VkPipelineViewportStateCreateFlags;
Jesse Hall3fbc8562015-11-29 22:10:52 -0800949typedef VkFlags VkPipelineRasterizationStateCreateFlags;
Jesse Hallc7467b72015-11-29 21:05:26 -0800950
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800951typedef enum VkCullModeFlagBits {
Jesse Hallc7467b72015-11-29 21:05:26 -0800952 VK_CULL_MODE_NONE = 0,
953 VK_CULL_MODE_FRONT_BIT = 0x00000001,
954 VK_CULL_MODE_BACK_BIT = 0x00000002,
955 VK_CULL_MODE_FRONT_AND_BACK = 0x3,
956} VkCullModeFlagBits;
957typedef VkFlags VkCullModeFlags;
Jesse Halla6429252015-11-29 18:59:42 -0800958typedef VkFlags VkPipelineMultisampleStateCreateFlags;
959typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
960typedef VkFlags VkPipelineColorBlendStateCreateFlags;
Jesse Halla15a4bf2015-11-19 22:48:02 -0800961
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800962typedef enum VkColorComponentFlagBits {
Jesse Hall65ab5522015-11-30 00:07:16 -0800963 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
964 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
965 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
966 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
967} VkColorComponentFlagBits;
968typedef VkFlags VkColorComponentFlags;
Jesse Halla6429252015-11-29 18:59:42 -0800969typedef VkFlags VkPipelineDynamicStateCreateFlags;
970typedef VkFlags VkPipelineLayoutCreateFlags;
Jesse Hall04f4f472015-08-16 19:51:04 -0700971typedef VkFlags VkShaderStageFlags;
Jesse Halla6429252015-11-29 18:59:42 -0800972typedef VkFlags VkSamplerCreateFlags;
973typedef VkFlags VkDescriptorSetLayoutCreateFlags;
Jesse Hall04f4f472015-08-16 19:51:04 -0700974
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800975typedef enum VkDescriptorPoolCreateFlagBits {
Jesse Hallfbf97b02015-11-20 14:17:03 -0800976 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
977} VkDescriptorPoolCreateFlagBits;
978typedef VkFlags VkDescriptorPoolCreateFlags;
979typedef VkFlags VkDescriptorPoolResetFlags;
Jesse Halla6429252015-11-29 18:59:42 -0800980typedef VkFlags VkFramebufferCreateFlags;
981typedef VkFlags VkRenderPassCreateFlags;
Jesse Hallfbf97b02015-11-20 14:17:03 -0800982
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800983typedef enum VkAttachmentDescriptionFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700984 VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
985} VkAttachmentDescriptionFlagBits;
986typedef VkFlags VkAttachmentDescriptionFlags;
Jesse Hall04f4f472015-08-16 19:51:04 -0700987typedef VkFlags VkSubpassDescriptionFlags;
988
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800989typedef enum VkPipelineStageFlagBits {
Jesse Hall04f4f472015-08-16 19:51:04 -0700990 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
991 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
992 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
993 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
Jesse Hallae38f732015-11-19 21:32:50 -0800994 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
995 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
Jesse Hall04f4f472015-08-16 19:51:04 -0700996 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
997 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
998 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
999 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
1000 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
1001 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
1002 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001003 VK_PIPELINE_STAGE_HOST_BIT = 0x00002000,
Jesse Hall091ed9e2015-11-30 00:55:29 -08001004 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00004000,
1005 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00008000,
Jesse Hall04f4f472015-08-16 19:51:04 -07001006} VkPipelineStageFlagBits;
1007typedef VkFlags VkPipelineStageFlags;
1008
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001009typedef enum VkAccessFlagBits {
1010 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
1011 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
1012 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
1013 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
1014 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
1015 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
1016 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
1017 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
1018 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
1019 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
1020 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
1021 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
1022 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
1023 VK_ACCESS_HOST_READ_BIT = 0x00002000,
1024 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
1025 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
1026 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
1027} VkAccessFlagBits;
1028typedef VkFlags VkAccessFlags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001029
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001030typedef enum VkDependencyFlagBits {
Jesse Halldc6d36c2015-11-29 19:12:15 -08001031 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
1032} VkDependencyFlagBits;
1033typedef VkFlags VkDependencyFlags;
1034
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001035typedef enum VkCommandPoolCreateFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08001036 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
1037 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
1038} VkCommandPoolCreateFlagBits;
1039typedef VkFlags VkCommandPoolCreateFlags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001040
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001041typedef enum VkCommandPoolResetFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08001042 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
1043} VkCommandPoolResetFlagBits;
1044typedef VkFlags VkCommandPoolResetFlags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001045
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001046typedef enum VkCommandBufferUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08001047 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
1048 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
1049 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
1050} VkCommandBufferUsageFlagBits;
1051typedef VkFlags VkCommandBufferUsageFlags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001052
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001053typedef enum VkQueryControlFlagBits {
1054 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
1055} VkQueryControlFlagBits;
1056typedef VkFlags VkQueryControlFlags;
1057
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001058typedef enum VkCommandBufferResetFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08001059 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
1060} VkCommandBufferResetFlagBits;
1061typedef VkFlags VkCommandBufferResetFlags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001062
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001063typedef enum VkStencilFaceFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001064 VK_STENCIL_FACE_NONE = 0,
1065 VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
1066 VK_STENCIL_FACE_BACK_BIT = 0x00000002,
Jesse Hallc7467b72015-11-29 21:05:26 -08001067 VK_STENCIL_FRONT_AND_BACK = 0x3,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001068} VkStencilFaceFlagBits;
1069typedef VkFlags VkStencilFaceFlags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001070
Jesse Halle1b12782015-11-30 11:27:32 -08001071typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001072 void* pUserData,
1073 size_t size,
1074 size_t alignment,
1075 VkSystemAllocationScope allocationScope);
Jesse Hall03b6fe12015-11-24 12:44:21 -08001076
Jesse Halle1b12782015-11-30 11:27:32 -08001077typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001078 void* pUserData,
1079 void* pOriginal,
1080 size_t size,
1081 size_t alignment,
1082 VkSystemAllocationScope allocationScope);
Jesse Hall04f4f472015-08-16 19:51:04 -07001083
Jesse Halle1b12782015-11-30 11:27:32 -08001084typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001085 void* pUserData,
1086 void* pMemory);
Jesse Hall04f4f472015-08-16 19:51:04 -07001087
Jesse Halle1b12782015-11-30 11:27:32 -08001088typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001089 void* pUserData,
1090 size_t size,
1091 VkInternalAllocationType allocationType,
1092 VkSystemAllocationScope allocationScope);
Jesse Hall03b6fe12015-11-24 12:44:21 -08001093
Jesse Halle1b12782015-11-30 11:27:32 -08001094typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001095 void* pUserData,
1096 size_t size,
1097 VkInternalAllocationType allocationType,
1098 VkSystemAllocationScope allocationScope);
Jesse Hall03b6fe12015-11-24 12:44:21 -08001099
Jesse Halle1b12782015-11-30 11:27:32 -08001100typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001101
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001102typedef struct VkApplicationInfo {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001103 VkStructureType sType;
1104 const void* pNext;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001105 const char* pApplicationName;
1106 uint32_t applicationVersion;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001107 const char* pEngineName;
1108 uint32_t engineVersion;
1109 uint32_t apiVersion;
1110} VkApplicationInfo;
1111
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001112typedef struct VkInstanceCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001113 VkStructureType sType;
1114 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001115 VkInstanceCreateFlags flags;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001116 const VkApplicationInfo* pApplicationInfo;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001117 uint32_t enabledLayerNameCount;
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001118 const char* const* ppEnabledLayerNames;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001119 uint32_t enabledExtensionNameCount;
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001120 const char* const* ppEnabledExtensionNames;
Jesse Hall04f4f472015-08-16 19:51:04 -07001121} VkInstanceCreateInfo;
1122
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001123typedef struct VkAllocationCallbacks {
Jesse Hall03b6fe12015-11-24 12:44:21 -08001124 void* pUserData;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001125 PFN_vkAllocationFunction pfnAllocation;
1126 PFN_vkReallocationFunction pfnReallocation;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001127 PFN_vkFreeFunction pfnFree;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001128 PFN_vkInternalAllocationNotification pfnInternalAllocation;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001129 PFN_vkInternalFreeNotification pfnInternalFree;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001130} VkAllocationCallbacks;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001131
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001132typedef struct VkPhysicalDeviceFeatures {
Jesse Hall04f4f472015-08-16 19:51:04 -07001133 VkBool32 robustBufferAccess;
1134 VkBool32 fullDrawIndexUint32;
1135 VkBool32 imageCubeArray;
1136 VkBool32 independentBlend;
1137 VkBool32 geometryShader;
1138 VkBool32 tessellationShader;
1139 VkBool32 sampleRateShading;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001140 VkBool32 dualSrcBlend;
Jesse Hall04f4f472015-08-16 19:51:04 -07001141 VkBool32 logicOp;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001142 VkBool32 multiDrawIndirect;
Jesse Hallae38f732015-11-19 21:32:50 -08001143 VkBool32 depthClamp;
Jesse Hall04f4f472015-08-16 19:51:04 -07001144 VkBool32 depthBiasClamp;
1145 VkBool32 fillModeNonSolid;
1146 VkBool32 depthBounds;
1147 VkBool32 wideLines;
1148 VkBool32 largePoints;
Jesse Hallfbf97b02015-11-20 14:17:03 -08001149 VkBool32 alphaToOne;
1150 VkBool32 multiViewport;
1151 VkBool32 samplerAnisotropy;
Jesse Hall04f4f472015-08-16 19:51:04 -07001152 VkBool32 textureCompressionETC2;
1153 VkBool32 textureCompressionASTC_LDR;
1154 VkBool32 textureCompressionBC;
Jesse Hall65ab5522015-11-30 00:07:16 -08001155 VkBool32 occlusionQueryPrecise;
Jesse Hall04f4f472015-08-16 19:51:04 -07001156 VkBool32 pipelineStatisticsQuery;
Jesse Halldc6d36c2015-11-29 19:12:15 -08001157 VkBool32 vertexPipelineStoresAndAtomics;
1158 VkBool32 fragmentStoresAndAtomics;
1159 VkBool32 shaderTessellationAndGeometryPointSize;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001160 VkBool32 shaderImageGatherExtended;
Jesse Hall04f4f472015-08-16 19:51:04 -07001161 VkBool32 shaderStorageImageExtendedFormats;
1162 VkBool32 shaderStorageImageMultisample;
Jesse Halld1af8122015-11-29 23:50:38 -08001163 VkBool32 shaderStorageImageReadWithoutFormat;
1164 VkBool32 shaderStorageImageWriteWithoutFormat;
Jesse Hall04f4f472015-08-16 19:51:04 -07001165 VkBool32 shaderUniformBufferArrayDynamicIndexing;
1166 VkBool32 shaderSampledImageArrayDynamicIndexing;
1167 VkBool32 shaderStorageBufferArrayDynamicIndexing;
1168 VkBool32 shaderStorageImageArrayDynamicIndexing;
1169 VkBool32 shaderClipDistance;
1170 VkBool32 shaderCullDistance;
1171 VkBool32 shaderFloat64;
1172 VkBool32 shaderInt64;
Jesse Hall04f4f472015-08-16 19:51:04 -07001173 VkBool32 shaderInt16;
1174 VkBool32 shaderResourceResidency;
Jesse Hall65ab5522015-11-30 00:07:16 -08001175 VkBool32 shaderResourceMinLod;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001176 VkBool32 sparseBinding;
Jesse Hall04f4f472015-08-16 19:51:04 -07001177 VkBool32 sparseResidencyBuffer;
1178 VkBool32 sparseResidencyImage2D;
1179 VkBool32 sparseResidencyImage3D;
1180 VkBool32 sparseResidency2Samples;
1181 VkBool32 sparseResidency4Samples;
1182 VkBool32 sparseResidency8Samples;
1183 VkBool32 sparseResidency16Samples;
Jesse Hall04f4f472015-08-16 19:51:04 -07001184 VkBool32 sparseResidencyAliased;
Jesse Halld1af8122015-11-29 23:50:38 -08001185 VkBool32 variableMultisampleRate;
Jesse Hall04f4f472015-08-16 19:51:04 -07001186} VkPhysicalDeviceFeatures;
1187
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001188typedef struct VkFormatProperties {
Jesse Hall04f4f472015-08-16 19:51:04 -07001189 VkFormatFeatureFlags linearTilingFeatures;
1190 VkFormatFeatureFlags optimalTilingFeatures;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001191 VkFormatFeatureFlags bufferFeatures;
Jesse Hall04f4f472015-08-16 19:51:04 -07001192} VkFormatProperties;
1193
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001194typedef struct VkExtent3D {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001195 int32_t width;
1196 int32_t height;
1197 int32_t depth;
1198} VkExtent3D;
1199
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001200typedef struct VkImageFormatProperties {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001201 VkExtent3D maxExtent;
1202 uint32_t maxMipLevels;
Jesse Halla15a4bf2015-11-19 22:48:02 -08001203 uint32_t maxArrayLayers;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001204 VkSampleCountFlags sampleCounts;
1205 VkDeviceSize maxResourceSize;
Jesse Hall04f4f472015-08-16 19:51:04 -07001206} VkImageFormatProperties;
1207
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001208typedef struct VkPhysicalDeviceLimits {
Jesse Hall04f4f472015-08-16 19:51:04 -07001209 uint32_t maxImageDimension1D;
1210 uint32_t maxImageDimension2D;
1211 uint32_t maxImageDimension3D;
1212 uint32_t maxImageDimensionCube;
1213 uint32_t maxImageArrayLayers;
Jesse Hallb00daad2015-11-29 19:46:20 -08001214 uint32_t maxTexelBufferElements;
Jesse Hallfbf97b02015-11-20 14:17:03 -08001215 uint32_t maxUniformBufferRange;
1216 uint32_t maxStorageBufferRange;
Jesse Hall04f4f472015-08-16 19:51:04 -07001217 uint32_t maxPushConstantsSize;
1218 uint32_t maxMemoryAllocationCount;
Jesse Hall091ed9e2015-11-30 00:55:29 -08001219 uint32_t maxSamplerAllocationCount;
Jesse Hall04f4f472015-08-16 19:51:04 -07001220 VkDeviceSize bufferImageGranularity;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001221 VkDeviceSize sparseAddressSpaceSize;
Jesse Hall04f4f472015-08-16 19:51:04 -07001222 uint32_t maxBoundDescriptorSets;
Jesse Hall04f4f472015-08-16 19:51:04 -07001223 uint32_t maxPerStageDescriptorSamplers;
1224 uint32_t maxPerStageDescriptorUniformBuffers;
1225 uint32_t maxPerStageDescriptorStorageBuffers;
1226 uint32_t maxPerStageDescriptorSampledImages;
1227 uint32_t maxPerStageDescriptorStorageImages;
Jesse Halle1b12782015-11-30 11:27:32 -08001228 uint32_t maxPerStageDescriptorInputAttachments;
Jesse Halldba27f72015-11-30 14:25:46 -08001229 uint32_t maxPerStageResources;
Jesse Hall04f4f472015-08-16 19:51:04 -07001230 uint32_t maxDescriptorSetSamplers;
1231 uint32_t maxDescriptorSetUniformBuffers;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001232 uint32_t maxDescriptorSetUniformBuffersDynamic;
Jesse Hall04f4f472015-08-16 19:51:04 -07001233 uint32_t maxDescriptorSetStorageBuffers;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001234 uint32_t maxDescriptorSetStorageBuffersDynamic;
Jesse Hall04f4f472015-08-16 19:51:04 -07001235 uint32_t maxDescriptorSetSampledImages;
1236 uint32_t maxDescriptorSetStorageImages;
Jesse Halle1b12782015-11-30 11:27:32 -08001237 uint32_t maxDescriptorSetInputAttachments;
Jesse Hall04f4f472015-08-16 19:51:04 -07001238 uint32_t maxVertexInputAttributes;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001239 uint32_t maxVertexInputBindings;
Jesse Hall04f4f472015-08-16 19:51:04 -07001240 uint32_t maxVertexInputAttributeOffset;
1241 uint32_t maxVertexInputBindingStride;
1242 uint32_t maxVertexOutputComponents;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001243 uint32_t maxTessellationGenerationLevel;
Jesse Hallae38f732015-11-19 21:32:50 -08001244 uint32_t maxTessellationPatchSize;
1245 uint32_t maxTessellationControlPerVertexInputComponents;
1246 uint32_t maxTessellationControlPerVertexOutputComponents;
1247 uint32_t maxTessellationControlPerPatchOutputComponents;
1248 uint32_t maxTessellationControlTotalOutputComponents;
1249 uint32_t maxTessellationEvaluationInputComponents;
1250 uint32_t maxTessellationEvaluationOutputComponents;
Jesse Hall04f4f472015-08-16 19:51:04 -07001251 uint32_t maxGeometryShaderInvocations;
1252 uint32_t maxGeometryInputComponents;
1253 uint32_t maxGeometryOutputComponents;
1254 uint32_t maxGeometryOutputVertices;
1255 uint32_t maxGeometryTotalOutputComponents;
1256 uint32_t maxFragmentInputComponents;
Jesse Hallfbf97b02015-11-20 14:17:03 -08001257 uint32_t maxFragmentOutputAttachments;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001258 uint32_t maxFragmentDualSrcAttachments;
Jesse Hall04f4f472015-08-16 19:51:04 -07001259 uint32_t maxFragmentCombinedOutputResources;
1260 uint32_t maxComputeSharedMemorySize;
1261 uint32_t maxComputeWorkGroupCount[3];
1262 uint32_t maxComputeWorkGroupInvocations;
1263 uint32_t maxComputeWorkGroupSize[3];
1264 uint32_t subPixelPrecisionBits;
1265 uint32_t subTexelPrecisionBits;
1266 uint32_t mipmapPrecisionBits;
1267 uint32_t maxDrawIndexedIndexValue;
Jesse Halldba27f72015-11-30 14:25:46 -08001268 uint32_t maxDrawIndirectCount;
Jesse Hall04f4f472015-08-16 19:51:04 -07001269 float maxSamplerLodBias;
1270 float maxSamplerAnisotropy;
1271 uint32_t maxViewports;
Jesse Hall04f4f472015-08-16 19:51:04 -07001272 uint32_t maxViewportDimensions[2];
1273 float viewportBoundsRange[2];
1274 uint32_t viewportSubPixelBits;
Jesse Halldc6d36c2015-11-29 19:12:15 -08001275 size_t minMemoryMapAlignment;
1276 VkDeviceSize minTexelBufferOffsetAlignment;
1277 VkDeviceSize minUniformBufferOffsetAlignment;
1278 VkDeviceSize minStorageBufferOffsetAlignment;
Jesse Hallfbf97b02015-11-20 14:17:03 -08001279 int32_t minTexelOffset;
Jesse Hall04f4f472015-08-16 19:51:04 -07001280 uint32_t maxTexelOffset;
Jesse Hallfbf97b02015-11-20 14:17:03 -08001281 int32_t minTexelGatherOffset;
Jesse Hall04f4f472015-08-16 19:51:04 -07001282 uint32_t maxTexelGatherOffset;
1283 float minInterpolationOffset;
1284 float maxInterpolationOffset;
1285 uint32_t subPixelInterpolationOffsetBits;
1286 uint32_t maxFramebufferWidth;
1287 uint32_t maxFramebufferHeight;
1288 uint32_t maxFramebufferLayers;
Jesse Hall091ed9e2015-11-30 00:55:29 -08001289 VkSampleCountFlags framebufferColorSampleCounts;
1290 VkSampleCountFlags framebufferDepthSampleCounts;
1291 VkSampleCountFlags framebufferStencilSampleCounts;
1292 VkSampleCountFlags framebufferNoAttachmentsSampleCounts;
Jesse Hall04f4f472015-08-16 19:51:04 -07001293 uint32_t maxColorAttachments;
Jesse Hall091ed9e2015-11-30 00:55:29 -08001294 VkSampleCountFlags sampledImageColorSampleCounts;
1295 VkSampleCountFlags sampledImageIntegerSampleCounts;
1296 VkSampleCountFlags sampledImageDepthSampleCounts;
1297 VkSampleCountFlags sampledImageStencilSampleCounts;
1298 VkSampleCountFlags storageImageSampleCounts;
Jesse Hall04f4f472015-08-16 19:51:04 -07001299 uint32_t maxSampleMaskWords;
Jesse Halla9bb62b2015-11-21 19:31:56 -08001300 float timestampPeriod;
Jesse Hall04f4f472015-08-16 19:51:04 -07001301 uint32_t maxClipDistances;
1302 uint32_t maxCullDistances;
1303 uint32_t maxCombinedClipAndCullDistances;
Jesse Hallfbf97b02015-11-20 14:17:03 -08001304 uint32_t discreteQueuePriorities;
Jesse Hall04f4f472015-08-16 19:51:04 -07001305 float pointSizeRange[2];
1306 float lineWidthRange[2];
1307 float pointSizeGranularity;
1308 float lineWidthGranularity;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001309 VkBool32 strictLines;
Jesse Hall091ed9e2015-11-30 00:55:29 -08001310 VkBool32 standardSampleLocations;
Jesse Hall65ab5522015-11-30 00:07:16 -08001311 VkDeviceSize optimalBufferCopyOffsetAlignment;
1312 VkDeviceSize optimalBufferCopyRowPitchAlignment;
Jesse Halldba27f72015-11-30 14:25:46 -08001313 VkDeviceSize nonCoherentAtomSize;
Jesse Hall04f4f472015-08-16 19:51:04 -07001314} VkPhysicalDeviceLimits;
1315
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001316typedef struct VkPhysicalDeviceSparseProperties {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001317 VkBool32 residencyStandard2DBlockShape;
Jesse Hallb00daad2015-11-29 19:46:20 -08001318 VkBool32 residencyStandard2DMultisampleBlockShape;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001319 VkBool32 residencyStandard3DBlockShape;
1320 VkBool32 residencyAlignedMipSize;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001321 VkBool32 residencyNonResidentStrict;
1322} VkPhysicalDeviceSparseProperties;
1323
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001324typedef struct VkPhysicalDeviceProperties {
Jesse Hall04f4f472015-08-16 19:51:04 -07001325 uint32_t apiVersion;
1326 uint32_t driverVersion;
Jesse Hall65ab5522015-11-30 00:07:16 -08001327 uint32_t vendorID;
1328 uint32_t deviceID;
Jesse Hall04f4f472015-08-16 19:51:04 -07001329 VkPhysicalDeviceType deviceType;
Jesse Hall65ab5522015-11-30 00:07:16 -08001330 char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
1331 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001332 VkPhysicalDeviceLimits limits;
1333 VkPhysicalDeviceSparseProperties sparseProperties;
Jesse Hall04f4f472015-08-16 19:51:04 -07001334} VkPhysicalDeviceProperties;
1335
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001336typedef struct VkQueueFamilyProperties {
Jesse Hall04f4f472015-08-16 19:51:04 -07001337 VkQueueFlags queueFlags;
1338 uint32_t queueCount;
Jesse Hallacfa5342015-11-19 21:51:33 -08001339 uint32_t timestampValidBits;
Jesse Hall65ab5522015-11-30 00:07:16 -08001340 VkExtent3D minImageTransferGranularity;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001341} VkQueueFamilyProperties;
Jesse Hall04f4f472015-08-16 19:51:04 -07001342
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001343typedef struct VkMemoryType {
Jesse Hall04f4f472015-08-16 19:51:04 -07001344 VkMemoryPropertyFlags propertyFlags;
1345 uint32_t heapIndex;
1346} VkMemoryType;
1347
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001348typedef struct VkMemoryHeap {
Jesse Hall04f4f472015-08-16 19:51:04 -07001349 VkDeviceSize size;
1350 VkMemoryHeapFlags flags;
1351} VkMemoryHeap;
1352
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001353typedef struct VkPhysicalDeviceMemoryProperties {
Jesse Hall04f4f472015-08-16 19:51:04 -07001354 uint32_t memoryTypeCount;
1355 VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES];
1356 uint32_t memoryHeapCount;
1357 VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS];
1358} VkPhysicalDeviceMemoryProperties;
1359
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001360typedef struct VkDeviceQueueCreateInfo {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001361 VkStructureType sType;
1362 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001363 VkDeviceQueueCreateFlags flags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001364 uint32_t queueFamilyIndex;
Jesse Halldba27f72015-11-30 14:25:46 -08001365 uint32_t queueCount;
Jesse Hallfbf97b02015-11-20 14:17:03 -08001366 const float* pQueuePriorities;
Jesse Hall04f4f472015-08-16 19:51:04 -07001367} VkDeviceQueueCreateInfo;
1368
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001369typedef struct VkDeviceCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001370 VkStructureType sType;
1371 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001372 VkDeviceCreateFlags flags;
Jesse Halldba27f72015-11-30 14:25:46 -08001373 uint32_t queueCreateInfoCount;
1374 const VkDeviceQueueCreateInfo* pQueueCreateInfos;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001375 uint32_t enabledLayerNameCount;
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001376 const char* const* ppEnabledLayerNames;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001377 uint32_t enabledExtensionNameCount;
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001378 const char* const* ppEnabledExtensionNames;
Jesse Hall04f4f472015-08-16 19:51:04 -07001379 const VkPhysicalDeviceFeatures* pEnabledFeatures;
Jesse Hall04f4f472015-08-16 19:51:04 -07001380} VkDeviceCreateInfo;
1381
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001382typedef struct VkExtensionProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08001383 char extensionName[VK_MAX_EXTENSION_NAME_SIZE];
Jesse Hall04f4f472015-08-16 19:51:04 -07001384 uint32_t specVersion;
1385} VkExtensionProperties;
1386
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001387typedef struct VkLayerProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08001388 char layerName[VK_MAX_EXTENSION_NAME_SIZE];
Jesse Hall04f4f472015-08-16 19:51:04 -07001389 uint32_t specVersion;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001390 uint32_t implementationVersion;
Jesse Hall65ab5522015-11-30 00:07:16 -08001391 char description[VK_MAX_DESCRIPTION_SIZE];
Jesse Hall04f4f472015-08-16 19:51:04 -07001392} VkLayerProperties;
1393
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001394typedef struct VkSubmitInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08001395 VkStructureType sType;
1396 const void* pNext;
1397 uint32_t waitSemaphoreCount;
Jesse Halla366a512015-11-19 22:30:07 -08001398 const VkSemaphore* pWaitSemaphores;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001399 uint32_t commandBufferCount;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001400 const VkCommandBuffer* pCommandBuffers;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001401 uint32_t signalSemaphoreCount;
Jesse Halla366a512015-11-19 22:30:07 -08001402 const VkSemaphore* pSignalSemaphores;
1403} VkSubmitInfo;
1404
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001405typedef struct VkMemoryAllocateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001406 VkStructureType sType;
1407 const void* pNext;
1408 VkDeviceSize allocationSize;
1409 uint32_t memoryTypeIndex;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001410} VkMemoryAllocateInfo;
Jesse Hall04f4f472015-08-16 19:51:04 -07001411
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001412typedef struct VkMappedMemoryRange {
Jesse Hall04f4f472015-08-16 19:51:04 -07001413 VkStructureType sType;
1414 const void* pNext;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001415 VkDeviceMemory memory;
Jesse Hall04f4f472015-08-16 19:51:04 -07001416 VkDeviceSize offset;
1417 VkDeviceSize size;
1418} VkMappedMemoryRange;
1419
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001420typedef struct VkMemoryRequirements {
Jesse Hall04f4f472015-08-16 19:51:04 -07001421 VkDeviceSize size;
1422 VkDeviceSize alignment;
1423 uint32_t memoryTypeBits;
1424} VkMemoryRequirements;
1425
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001426typedef struct VkSparseImageFormatProperties {
1427 VkImageAspectFlags aspectMask;
Jesse Hall04f4f472015-08-16 19:51:04 -07001428 VkExtent3D imageGranularity;
1429 VkSparseImageFormatFlags flags;
1430} VkSparseImageFormatProperties;
1431
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001432typedef struct VkSparseImageMemoryRequirements {
Jesse Hallb00daad2015-11-29 19:46:20 -08001433 VkSparseImageFormatProperties formatProperties;
Jesse Hall65ab5522015-11-30 00:07:16 -08001434 uint32_t imageMipTailStartLod;
Jesse Hall04f4f472015-08-16 19:51:04 -07001435 VkDeviceSize imageMipTailSize;
1436 VkDeviceSize imageMipTailOffset;
1437 VkDeviceSize imageMipTailStride;
1438} VkSparseImageMemoryRequirements;
1439
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001440typedef struct VkSparseMemoryBind {
Jesse Hallb00daad2015-11-29 19:46:20 -08001441 VkDeviceSize resourceOffset;
1442 VkDeviceSize size;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001443 VkDeviceMemory memory;
1444 VkDeviceSize memoryOffset;
Jesse Hall04f4f472015-08-16 19:51:04 -07001445 VkSparseMemoryBindFlags flags;
Jesse Halla6429252015-11-29 18:59:42 -08001446} VkSparseMemoryBind;
1447
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001448typedef struct VkSparseBufferMemoryBindInfo {
Jesse Halla6429252015-11-29 18:59:42 -08001449 VkBuffer buffer;
1450 uint32_t bindCount;
1451 const VkSparseMemoryBind* pBinds;
1452} VkSparseBufferMemoryBindInfo;
1453
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001454typedef struct VkSparseImageOpaqueMemoryBindInfo {
Jesse Halla6429252015-11-29 18:59:42 -08001455 VkImage image;
1456 uint32_t bindCount;
1457 const VkSparseMemoryBind* pBinds;
1458} VkSparseImageOpaqueMemoryBindInfo;
Jesse Hall04f4f472015-08-16 19:51:04 -07001459
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001460typedef struct VkImageSubresource {
1461 VkImageAspectFlags aspectMask;
Jesse Hall04f4f472015-08-16 19:51:04 -07001462 uint32_t mipLevel;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001463 uint32_t arrayLayer;
Jesse Hall04f4f472015-08-16 19:51:04 -07001464} VkImageSubresource;
1465
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001466typedef struct VkOffset3D {
Jesse Hall04f4f472015-08-16 19:51:04 -07001467 int32_t x;
1468 int32_t y;
1469 int32_t z;
1470} VkOffset3D;
1471
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001472typedef struct VkSparseImageMemoryBind {
Jesse Hall04f4f472015-08-16 19:51:04 -07001473 VkImageSubresource subresource;
1474 VkOffset3D offset;
1475 VkExtent3D extent;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001476 VkDeviceMemory memory;
1477 VkDeviceSize memoryOffset;
Jesse Hall04f4f472015-08-16 19:51:04 -07001478 VkSparseMemoryBindFlags flags;
Jesse Halla6429252015-11-29 18:59:42 -08001479} VkSparseImageMemoryBind;
1480
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001481typedef struct VkSparseImageMemoryBindInfo {
Jesse Halla6429252015-11-29 18:59:42 -08001482 VkImage image;
1483 uint32_t bindCount;
1484 const VkSparseImageMemoryBind* pBinds;
Jesse Hall04f4f472015-08-16 19:51:04 -07001485} VkSparseImageMemoryBindInfo;
1486
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001487typedef struct VkBindSparseInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001488 VkStructureType sType;
1489 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001490 uint32_t waitSemaphoreCount;
1491 const VkSemaphore* pWaitSemaphores;
1492 uint32_t bufferBindCount;
1493 const VkSparseBufferMemoryBindInfo* pBufferBinds;
1494 uint32_t imageOpaqueBindCount;
1495 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
1496 uint32_t imageBindCount;
1497 const VkSparseImageMemoryBindInfo* pImageBinds;
1498 uint32_t signalSemaphoreCount;
1499 const VkSemaphore* pSignalSemaphores;
1500} VkBindSparseInfo;
1501
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001502typedef struct VkFenceCreateInfo {
Jesse Halla6429252015-11-29 18:59:42 -08001503 VkStructureType sType;
1504 const void* pNext;
Jesse Hall04f4f472015-08-16 19:51:04 -07001505 VkFenceCreateFlags flags;
1506} VkFenceCreateInfo;
1507
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001508typedef struct VkSemaphoreCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001509 VkStructureType sType;
1510 const void* pNext;
1511 VkSemaphoreCreateFlags flags;
1512} VkSemaphoreCreateInfo;
1513
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001514typedef struct VkEventCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001515 VkStructureType sType;
1516 const void* pNext;
1517 VkEventCreateFlags flags;
1518} VkEventCreateInfo;
1519
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001520typedef struct VkQueryPoolCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001521 VkStructureType sType;
1522 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001523 VkQueryPoolCreateFlags flags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001524 VkQueryType queryType;
Jesse Hall65ab5522015-11-30 00:07:16 -08001525 uint32_t entryCount;
Jesse Hall04f4f472015-08-16 19:51:04 -07001526 VkQueryPipelineStatisticFlags pipelineStatistics;
1527} VkQueryPoolCreateInfo;
1528
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001529typedef struct VkBufferCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001530 VkStructureType sType;
1531 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001532 VkBufferCreateFlags flags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001533 VkDeviceSize size;
1534 VkBufferUsageFlags usage;
Jesse Hall04f4f472015-08-16 19:51:04 -07001535 VkSharingMode sharingMode;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001536 uint32_t queueFamilyIndexCount;
Jesse Hall04f4f472015-08-16 19:51:04 -07001537 const uint32_t* pQueueFamilyIndices;
1538} VkBufferCreateInfo;
1539
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001540typedef struct VkBufferViewCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001541 VkStructureType sType;
1542 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001543 VkBufferViewCreateFlags flags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001544 VkBuffer buffer;
Jesse Hall04f4f472015-08-16 19:51:04 -07001545 VkFormat format;
1546 VkDeviceSize offset;
1547 VkDeviceSize range;
1548} VkBufferViewCreateInfo;
1549
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001550typedef struct VkImageCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001551 VkStructureType sType;
1552 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001553 VkImageCreateFlags flags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001554 VkImageType imageType;
1555 VkFormat format;
1556 VkExtent3D extent;
1557 uint32_t mipLevels;
Jesse Halla15a4bf2015-11-19 22:48:02 -08001558 uint32_t arrayLayers;
Jesse Hall091ed9e2015-11-30 00:55:29 -08001559 VkSampleCountFlagBits samples;
Jesse Hall04f4f472015-08-16 19:51:04 -07001560 VkImageTiling tiling;
1561 VkImageUsageFlags usage;
Jesse Hall04f4f472015-08-16 19:51:04 -07001562 VkSharingMode sharingMode;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001563 uint32_t queueFamilyIndexCount;
Jesse Hall04f4f472015-08-16 19:51:04 -07001564 const uint32_t* pQueueFamilyIndices;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001565 VkImageLayout initialLayout;
Jesse Hall04f4f472015-08-16 19:51:04 -07001566} VkImageCreateInfo;
1567
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001568typedef struct VkSubresourceLayout {
Jesse Hall04f4f472015-08-16 19:51:04 -07001569 VkDeviceSize offset;
1570 VkDeviceSize size;
1571 VkDeviceSize rowPitch;
1572 VkDeviceSize depthPitch;
1573} VkSubresourceLayout;
1574
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001575typedef struct VkComponentMapping {
Jesse Hall65ab5522015-11-30 00:07:16 -08001576 VkComponentSwizzle r;
1577 VkComponentSwizzle g;
1578 VkComponentSwizzle b;
1579 VkComponentSwizzle a;
1580} VkComponentMapping;
Jesse Hall04f4f472015-08-16 19:51:04 -07001581
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001582typedef struct VkImageSubresourceRange {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001583 VkImageAspectFlags aspectMask;
Jesse Hall04f4f472015-08-16 19:51:04 -07001584 uint32_t baseMipLevel;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001585 uint32_t levelCount;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001586 uint32_t baseArrayLayer;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001587 uint32_t layerCount;
Jesse Hall04f4f472015-08-16 19:51:04 -07001588} VkImageSubresourceRange;
1589
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001590typedef struct VkImageViewCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001591 VkStructureType sType;
1592 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001593 VkImageViewCreateFlags flags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001594 VkImage image;
1595 VkImageViewType viewType;
1596 VkFormat format;
Jesse Hall65ab5522015-11-30 00:07:16 -08001597 VkComponentMapping components;
Jesse Hall04f4f472015-08-16 19:51:04 -07001598 VkImageSubresourceRange subresourceRange;
1599} VkImageViewCreateInfo;
1600
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001601typedef struct VkShaderModuleCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001602 VkStructureType sType;
1603 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001604 VkShaderModuleCreateFlags flags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001605 size_t codeSize;
Jesse Halla9bb62b2015-11-21 19:31:56 -08001606 const uint32_t* pCode;
Jesse Hall04f4f472015-08-16 19:51:04 -07001607} VkShaderModuleCreateInfo;
1608
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001609typedef struct VkPipelineCacheCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001610 VkStructureType sType;
1611 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001612 VkPipelineCacheCreateFlags flags;
Jesse Hallb00daad2015-11-29 19:46:20 -08001613 size_t initialDataSize;
1614 const void* pInitialData;
Jesse Hall04f4f472015-08-16 19:51:04 -07001615} VkPipelineCacheCreateInfo;
1616
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001617typedef struct VkSpecializationMapEntry {
Jesse Hall65ab5522015-11-30 00:07:16 -08001618 uint32_t constantID;
Jesse Hall04f4f472015-08-16 19:51:04 -07001619 uint32_t offset;
Jesse Hallb00daad2015-11-29 19:46:20 -08001620 size_t size;
Jesse Hall04f4f472015-08-16 19:51:04 -07001621} VkSpecializationMapEntry;
1622
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001623typedef struct VkSpecializationInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001624 uint32_t mapEntryCount;
Jesse Hallb00daad2015-11-29 19:46:20 -08001625 const VkSpecializationMapEntry* pMapEntries;
Jesse Hall04f4f472015-08-16 19:51:04 -07001626 size_t dataSize;
1627 const void* pData;
1628} VkSpecializationInfo;
1629
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001630typedef struct VkPipelineShaderStageCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001631 VkStructureType sType;
1632 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001633 VkPipelineShaderStageCreateFlags flags;
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001634 VkShaderStageFlagBits stage;
1635 VkShaderModule module;
1636 const char* pName;
Jesse Hall04f4f472015-08-16 19:51:04 -07001637 const VkSpecializationInfo* pSpecializationInfo;
1638} VkPipelineShaderStageCreateInfo;
1639
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001640typedef struct VkVertexInputBindingDescription {
Jesse Hall04f4f472015-08-16 19:51:04 -07001641 uint32_t binding;
Jesse Hallb00daad2015-11-29 19:46:20 -08001642 uint32_t stride;
Jesse Hall65ab5522015-11-30 00:07:16 -08001643 VkVertexInputRate inputRate;
Jesse Hall04f4f472015-08-16 19:51:04 -07001644} VkVertexInputBindingDescription;
1645
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001646typedef struct VkVertexInputAttributeDescription {
Jesse Hall04f4f472015-08-16 19:51:04 -07001647 uint32_t location;
1648 uint32_t binding;
1649 VkFormat format;
Jesse Hallb00daad2015-11-29 19:46:20 -08001650 uint32_t offset;
Jesse Hall04f4f472015-08-16 19:51:04 -07001651} VkVertexInputAttributeDescription;
1652
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001653typedef struct VkPipelineVertexInputStateCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001654 VkStructureType sType;
1655 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001656 VkPipelineVertexInputStateCreateFlags flags;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001657 uint32_t vertexBindingDescriptionCount;
Jesse Hall04f4f472015-08-16 19:51:04 -07001658 const VkVertexInputBindingDescription* pVertexBindingDescriptions;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001659 uint32_t vertexAttributeDescriptionCount;
Jesse Hall04f4f472015-08-16 19:51:04 -07001660 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
1661} VkPipelineVertexInputStateCreateInfo;
1662
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001663typedef struct VkPipelineInputAssemblyStateCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001664 VkStructureType sType;
1665 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001666 VkPipelineInputAssemblyStateCreateFlags flags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001667 VkPrimitiveTopology topology;
1668 VkBool32 primitiveRestartEnable;
1669} VkPipelineInputAssemblyStateCreateInfo;
1670
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001671typedef struct VkPipelineTessellationStateCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001672 VkStructureType sType;
1673 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001674 VkPipelineTesselationStateCreateFlags flags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001675 uint32_t patchControlPoints;
1676} VkPipelineTessellationStateCreateInfo;
1677
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001678typedef struct VkViewport {
Jesse Hall65ab5522015-11-30 00:07:16 -08001679 float x;
1680 float y;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001681 float width;
1682 float height;
1683 float minDepth;
1684 float maxDepth;
1685} VkViewport;
1686
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001687typedef struct VkOffset2D {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001688 int32_t x;
1689 int32_t y;
1690} VkOffset2D;
1691
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001692typedef struct VkExtent2D {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001693 int32_t width;
1694 int32_t height;
1695} VkExtent2D;
1696
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001697typedef struct VkRect2D {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001698 VkOffset2D offset;
1699 VkExtent2D extent;
1700} VkRect2D;
1701
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001702typedef struct VkPipelineViewportStateCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001703 VkStructureType sType;
1704 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001705 VkPipelineViewportStateCreateFlags flags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001706 uint32_t viewportCount;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001707 const VkViewport* pViewports;
1708 uint32_t scissorCount;
1709 const VkRect2D* pScissors;
Jesse Hall04f4f472015-08-16 19:51:04 -07001710} VkPipelineViewportStateCreateInfo;
1711
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001712typedef struct VkPipelineRasterizationStateCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001713 VkStructureType sType;
1714 const void* pNext;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001715 VkPipelineRasterizationStateCreateFlags flags;
Jesse Hallae38f732015-11-19 21:32:50 -08001716 VkBool32 depthClampEnable;
Jesse Hall04f4f472015-08-16 19:51:04 -07001717 VkBool32 rasterizerDiscardEnable;
Jesse Hall65ab5522015-11-30 00:07:16 -08001718 VkPolygonMode polygonMode;
Jesse Hallc7467b72015-11-29 21:05:26 -08001719 VkCullModeFlags cullMode;
Jesse Hall04f4f472015-08-16 19:51:04 -07001720 VkFrontFace frontFace;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001721 VkBool32 depthBiasEnable;
Jesse Halla9bb62b2015-11-21 19:31:56 -08001722 float depthBiasConstantFactor;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001723 float depthBiasClamp;
Jesse Halla9bb62b2015-11-21 19:31:56 -08001724 float depthBiasSlopeFactor;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001725 float lineWidth;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001726} VkPipelineRasterizationStateCreateInfo;
Jesse Hall04f4f472015-08-16 19:51:04 -07001727
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001728typedef struct VkPipelineMultisampleStateCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001729 VkStructureType sType;
1730 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001731 VkPipelineMultisampleStateCreateFlags flags;
Jesse Hall091ed9e2015-11-30 00:55:29 -08001732 VkSampleCountFlagBits rasterizationSamples;
Jesse Hall04f4f472015-08-16 19:51:04 -07001733 VkBool32 sampleShadingEnable;
1734 float minSampleShading;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001735 const VkSampleMask* pSampleMask;
Jesse Hallacfa5342015-11-19 21:51:33 -08001736 VkBool32 alphaToCoverageEnable;
1737 VkBool32 alphaToOneEnable;
Jesse Hall04f4f472015-08-16 19:51:04 -07001738} VkPipelineMultisampleStateCreateInfo;
1739
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001740typedef struct VkStencilOpState {
Jesse Hall65ab5522015-11-30 00:07:16 -08001741 VkStencilOp failOp;
1742 VkStencilOp passOp;
1743 VkStencilOp depthFailOp;
1744 VkCompareOp compareOp;
1745 uint32_t compareMask;
1746 uint32_t writeMask;
1747 uint32_t reference;
Jesse Hall04f4f472015-08-16 19:51:04 -07001748} VkStencilOpState;
1749
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001750typedef struct VkPipelineDepthStencilStateCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001751 VkStructureType sType;
1752 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001753 VkPipelineDepthStencilStateCreateFlags flags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001754 VkBool32 depthTestEnable;
1755 VkBool32 depthWriteEnable;
1756 VkCompareOp depthCompareOp;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001757 VkBool32 depthBoundsTestEnable;
Jesse Hall04f4f472015-08-16 19:51:04 -07001758 VkBool32 stencilTestEnable;
1759 VkStencilOpState front;
1760 VkStencilOpState back;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001761 float minDepthBounds;
1762 float maxDepthBounds;
Jesse Hall04f4f472015-08-16 19:51:04 -07001763} VkPipelineDepthStencilStateCreateInfo;
1764
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001765typedef struct VkPipelineColorBlendAttachmentState {
Jesse Hall04f4f472015-08-16 19:51:04 -07001766 VkBool32 blendEnable;
Jesse Hall65ab5522015-11-30 00:07:16 -08001767 VkBlendFactor srcColorBlendFactor;
1768 VkBlendFactor dstColorBlendFactor;
1769 VkBlendOp colorBlendOp;
1770 VkBlendFactor srcAlphaBlendFactor;
1771 VkBlendFactor dstAlphaBlendFactor;
1772 VkBlendOp alphaBlendOp;
1773 VkColorComponentFlags colorWriteMask;
Jesse Hall04f4f472015-08-16 19:51:04 -07001774} VkPipelineColorBlendAttachmentState;
1775
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001776typedef struct VkPipelineColorBlendStateCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001777 VkStructureType sType;
1778 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001779 VkPipelineColorBlendStateCreateFlags flags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001780 VkBool32 logicOpEnable;
1781 VkLogicOp logicOp;
1782 uint32_t attachmentCount;
1783 const VkPipelineColorBlendAttachmentState* pAttachments;
Jesse Hallb00daad2015-11-29 19:46:20 -08001784 float blendConstants[4];
Jesse Hall04f4f472015-08-16 19:51:04 -07001785} VkPipelineColorBlendStateCreateInfo;
1786
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001787typedef struct VkPipelineDynamicStateCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001788 VkStructureType sType;
1789 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001790 VkPipelineDynamicStateCreateFlags flags;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001791 uint32_t dynamicStateCount;
1792 const VkDynamicState* pDynamicStates;
1793} VkPipelineDynamicStateCreateInfo;
1794
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001795typedef struct VkGraphicsPipelineCreateInfo {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001796 VkStructureType sType;
1797 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001798 VkPipelineCreateFlags flags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001799 uint32_t stageCount;
1800 const VkPipelineShaderStageCreateInfo* pStages;
1801 const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
1802 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
1803 const VkPipelineTessellationStateCreateInfo* pTessellationState;
1804 const VkPipelineViewportStateCreateInfo* pViewportState;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001805 const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
Jesse Hall04f4f472015-08-16 19:51:04 -07001806 const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
1807 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
1808 const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001809 const VkPipelineDynamicStateCreateInfo* pDynamicState;
Jesse Hall04f4f472015-08-16 19:51:04 -07001810 VkPipelineLayout layout;
1811 VkRenderPass renderPass;
1812 uint32_t subpass;
1813 VkPipeline basePipelineHandle;
1814 int32_t basePipelineIndex;
1815} VkGraphicsPipelineCreateInfo;
1816
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001817typedef struct VkComputePipelineCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001818 VkStructureType sType;
1819 const void* pNext;
Jesse Hall04f4f472015-08-16 19:51:04 -07001820 VkPipelineCreateFlags flags;
Jesse Halla6429252015-11-29 18:59:42 -08001821 VkPipelineShaderStageCreateInfo stage;
Jesse Hall04f4f472015-08-16 19:51:04 -07001822 VkPipelineLayout layout;
1823 VkPipeline basePipelineHandle;
1824 int32_t basePipelineIndex;
1825} VkComputePipelineCreateInfo;
1826
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001827typedef struct VkPushConstantRange {
Jesse Hall04f4f472015-08-16 19:51:04 -07001828 VkShaderStageFlags stageFlags;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001829 uint32_t offset;
1830 uint32_t size;
Jesse Hall04f4f472015-08-16 19:51:04 -07001831} VkPushConstantRange;
1832
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001833typedef struct VkPipelineLayoutCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001834 VkStructureType sType;
1835 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001836 VkPipelineLayoutCreateFlags flags;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001837 uint32_t setLayoutCount;
Jesse Hall04f4f472015-08-16 19:51:04 -07001838 const VkDescriptorSetLayout* pSetLayouts;
1839 uint32_t pushConstantRangeCount;
1840 const VkPushConstantRange* pPushConstantRanges;
1841} VkPipelineLayoutCreateInfo;
1842
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001843typedef struct VkSamplerCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001844 VkStructureType sType;
1845 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001846 VkSamplerCreateFlags flags;
Jesse Hall23ff73f2015-11-29 14:36:39 -08001847 VkFilter magFilter;
1848 VkFilter minFilter;
1849 VkSamplerMipmapMode mipmapMode;
1850 VkSamplerAddressMode addressModeU;
1851 VkSamplerAddressMode addressModeV;
1852 VkSamplerAddressMode addressModeW;
Jesse Hall04f4f472015-08-16 19:51:04 -07001853 float mipLodBias;
1854 float maxAnisotropy;
1855 VkBool32 compareEnable;
1856 VkCompareOp compareOp;
1857 float minLod;
1858 float maxLod;
1859 VkBorderColor borderColor;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001860 VkBool32 unnormalizedCoordinates;
Jesse Hall04f4f472015-08-16 19:51:04 -07001861} VkSamplerCreateInfo;
1862
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001863typedef struct VkDescriptorSetLayoutBinding {
Jesse Hall091ed9e2015-11-30 00:55:29 -08001864 uint32_t binding;
Jesse Hall04f4f472015-08-16 19:51:04 -07001865 VkDescriptorType descriptorType;
Jesse Halldba27f72015-11-30 14:25:46 -08001866 uint32_t descriptorCount;
Jesse Hall04f4f472015-08-16 19:51:04 -07001867 VkShaderStageFlags stageFlags;
1868 const VkSampler* pImmutableSamplers;
1869} VkDescriptorSetLayoutBinding;
1870
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001871typedef struct VkDescriptorSetLayoutCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001872 VkStructureType sType;
1873 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001874 VkDescriptorSetLayoutCreateFlags flags;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001875 uint32_t bindingCount;
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001876 const VkDescriptorSetLayoutBinding* pBinding;
Jesse Hall04f4f472015-08-16 19:51:04 -07001877} VkDescriptorSetLayoutCreateInfo;
1878
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001879typedef struct VkDescriptorPoolSize {
Jesse Hall04f4f472015-08-16 19:51:04 -07001880 VkDescriptorType type;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001881 uint32_t descriptorCount;
Jesse Hall65ab5522015-11-30 00:07:16 -08001882} VkDescriptorPoolSize;
Jesse Hall04f4f472015-08-16 19:51:04 -07001883
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001884typedef struct VkDescriptorPoolCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001885 VkStructureType sType;
1886 const void* pNext;
Jesse Hallfbf97b02015-11-20 14:17:03 -08001887 VkDescriptorPoolCreateFlags flags;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001888 uint32_t maxSets;
Jesse Hall65ab5522015-11-30 00:07:16 -08001889 uint32_t poolSizeCount;
1890 const VkDescriptorPoolSize* pPoolSizes;
Jesse Hall04f4f472015-08-16 19:51:04 -07001891} VkDescriptorPoolCreateInfo;
1892
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001893typedef struct VkDescriptorSetAllocateInfo {
Jesse Hallfbf97b02015-11-20 14:17:03 -08001894 VkStructureType sType;
1895 const void* pNext;
1896 VkDescriptorPool descriptorPool;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001897 uint32_t setLayoutCount;
Jesse Hallfbf97b02015-11-20 14:17:03 -08001898 const VkDescriptorSetLayout* pSetLayouts;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001899} VkDescriptorSetAllocateInfo;
Jesse Hallfbf97b02015-11-20 14:17:03 -08001900
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001901typedef struct VkDescriptorImageInfo {
Jesse Halla15a4bf2015-11-19 22:48:02 -08001902 VkSampler sampler;
1903 VkImageView imageView;
1904 VkImageLayout imageLayout;
1905} VkDescriptorImageInfo;
1906
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001907typedef struct VkDescriptorBufferInfo {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001908 VkBuffer buffer;
1909 VkDeviceSize offset;
1910 VkDeviceSize range;
1911} VkDescriptorBufferInfo;
1912
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001913typedef struct VkWriteDescriptorSet {
Jesse Hall04f4f472015-08-16 19:51:04 -07001914 VkStructureType sType;
1915 const void* pNext;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001916 VkDescriptorSet dstSet;
1917 uint32_t dstBinding;
1918 uint32_t dstArrayElement;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001919 uint32_t descriptorCount;
Jesse Hall04f4f472015-08-16 19:51:04 -07001920 VkDescriptorType descriptorType;
Jesse Hallfbf97b02015-11-20 14:17:03 -08001921 const VkDescriptorImageInfo* pImageInfo;
1922 const VkDescriptorBufferInfo* pBufferInfo;
1923 const VkBufferView* pTexelBufferView;
Jesse Hall04f4f472015-08-16 19:51:04 -07001924} VkWriteDescriptorSet;
1925
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001926typedef struct VkCopyDescriptorSet {
Jesse Hall04f4f472015-08-16 19:51:04 -07001927 VkStructureType sType;
1928 const void* pNext;
1929 VkDescriptorSet srcSet;
1930 uint32_t srcBinding;
1931 uint32_t srcArrayElement;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001932 VkDescriptorSet dstSet;
1933 uint32_t dstBinding;
1934 uint32_t dstArrayElement;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001935 uint32_t descriptorCount;
Jesse Hall04f4f472015-08-16 19:51:04 -07001936} VkCopyDescriptorSet;
1937
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001938typedef struct VkFramebufferCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001939 VkStructureType sType;
1940 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001941 VkFramebufferCreateFlags flags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001942 VkRenderPass renderPass;
1943 uint32_t attachmentCount;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001944 const VkImageView* pAttachments;
Jesse Hall04f4f472015-08-16 19:51:04 -07001945 uint32_t width;
1946 uint32_t height;
1947 uint32_t layers;
1948} VkFramebufferCreateInfo;
1949
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001950typedef struct VkAttachmentDescription {
Jesse Halla6429252015-11-29 18:59:42 -08001951 VkAttachmentDescriptionFlags flags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001952 VkFormat format;
Jesse Hall091ed9e2015-11-30 00:55:29 -08001953 VkSampleCountFlagBits samples;
Jesse Hall04f4f472015-08-16 19:51:04 -07001954 VkAttachmentLoadOp loadOp;
1955 VkAttachmentStoreOp storeOp;
1956 VkAttachmentLoadOp stencilLoadOp;
1957 VkAttachmentStoreOp stencilStoreOp;
1958 VkImageLayout initialLayout;
1959 VkImageLayout finalLayout;
1960} VkAttachmentDescription;
1961
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001962typedef struct VkAttachmentReference {
Jesse Hall04f4f472015-08-16 19:51:04 -07001963 uint32_t attachment;
1964 VkImageLayout layout;
1965} VkAttachmentReference;
1966
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001967typedef struct VkSubpassDescription {
Jesse Hall04f4f472015-08-16 19:51:04 -07001968 VkSubpassDescriptionFlags flags;
Jesse Halla6429252015-11-29 18:59:42 -08001969 VkPipelineBindPoint pipelineBindPoint;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001970 uint32_t inputAttachmentCount;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001971 const VkAttachmentReference* pInputAttachments;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001972 uint32_t colorAttachmentCount;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001973 const VkAttachmentReference* pColorAttachments;
1974 const VkAttachmentReference* pResolveAttachments;
Jesse Hallc7467b72015-11-29 21:05:26 -08001975 const VkAttachmentReference* pDepthStencilAttachment;
Jesse Hall03b6fe12015-11-24 12:44:21 -08001976 uint32_t preserveAttachmentCount;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001977 const VkAttachmentReference* pPreserveAttachments;
Jesse Hall04f4f472015-08-16 19:51:04 -07001978} VkSubpassDescription;
1979
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001980typedef struct VkSubpassDependency {
Jesse Hall04f4f472015-08-16 19:51:04 -07001981 uint32_t srcSubpass;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001982 uint32_t dstSubpass;
Jesse Hall04f4f472015-08-16 19:51:04 -07001983 VkPipelineStageFlags srcStageMask;
Jesse Hall3fbc8562015-11-29 22:10:52 -08001984 VkPipelineStageFlags dstStageMask;
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001985 VkAccessFlags srcAccessMask;
1986 VkAccessFlags dstAccessMask;
Jesse Halldc6d36c2015-11-29 19:12:15 -08001987 VkDependencyFlags dependencyFlags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001988} VkSubpassDependency;
1989
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001990typedef struct VkRenderPassCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07001991 VkStructureType sType;
1992 const void* pNext;
Jesse Halla6429252015-11-29 18:59:42 -08001993 VkRenderPassCreateFlags flags;
Jesse Hall04f4f472015-08-16 19:51:04 -07001994 uint32_t attachmentCount;
1995 const VkAttachmentDescription* pAttachments;
1996 uint32_t subpassCount;
1997 const VkSubpassDescription* pSubpasses;
1998 uint32_t dependencyCount;
1999 const VkSubpassDependency* pDependencies;
2000} VkRenderPassCreateInfo;
2001
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002002typedef struct VkCommandPoolCreateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07002003 VkStructureType sType;
2004 const void* pNext;
Jesse Hall3fbc8562015-11-29 22:10:52 -08002005 VkCommandPoolCreateFlags flags;
Jesse Halla6429252015-11-29 18:59:42 -08002006 uint32_t queueFamilyIndex;
Jesse Hall3fbc8562015-11-29 22:10:52 -08002007} VkCommandPoolCreateInfo;
Jesse Hall04f4f472015-08-16 19:51:04 -07002008
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002009typedef struct VkCommandBufferAllocateInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07002010 VkStructureType sType;
2011 const void* pNext;
Jesse Hall3fbc8562015-11-29 22:10:52 -08002012 VkCommandPool commandPool;
2013 VkCommandBufferLevel level;
Jesse Hall03b6fe12015-11-24 12:44:21 -08002014 uint32_t bufferCount;
Jesse Hall3fbc8562015-11-29 22:10:52 -08002015} VkCommandBufferAllocateInfo;
Jesse Hall04f4f472015-08-16 19:51:04 -07002016
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002017typedef struct VkCommandBufferBeginInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07002018 VkStructureType sType;
2019 const void* pNext;
Jesse Hall3fbc8562015-11-29 22:10:52 -08002020 VkCommandBufferUsageFlags flags;
Jesse Hall04f4f472015-08-16 19:51:04 -07002021 VkRenderPass renderPass;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002022 uint32_t subpass;
Jesse Hall04f4f472015-08-16 19:51:04 -07002023 VkFramebuffer framebuffer;
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002024 VkBool32 occlusionQueryEnable;
2025 VkQueryControlFlags queryFlags;
2026 VkQueryPipelineStatisticFlags pipelineStatistics;
Jesse Hall3fbc8562015-11-29 22:10:52 -08002027} VkCommandBufferBeginInfo;
Jesse Hall04f4f472015-08-16 19:51:04 -07002028
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002029typedef struct VkBufferCopy {
Jesse Hall04f4f472015-08-16 19:51:04 -07002030 VkDeviceSize srcOffset;
Jesse Hall3fbc8562015-11-29 22:10:52 -08002031 VkDeviceSize dstOffset;
Jesse Hallb00daad2015-11-29 19:46:20 -08002032 VkDeviceSize size;
Jesse Hall04f4f472015-08-16 19:51:04 -07002033} VkBufferCopy;
2034
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002035typedef struct VkImageSubresourceLayers {
Jesse Hall65ab5522015-11-30 00:07:16 -08002036 VkImageAspectFlags aspectMask;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002037 uint32_t mipLevel;
Jesse Halla15a4bf2015-11-19 22:48:02 -08002038 uint32_t baseArrayLayer;
Jesse Hall3fbc8562015-11-29 22:10:52 -08002039 uint32_t layerCount;
Jesse Hall65ab5522015-11-30 00:07:16 -08002040} VkImageSubresourceLayers;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002041
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002042typedef struct VkImageCopy {
Jesse Hall65ab5522015-11-30 00:07:16 -08002043 VkImageSubresourceLayers srcSubresource;
Jesse Hall04f4f472015-08-16 19:51:04 -07002044 VkOffset3D srcOffset;
Jesse Hall65ab5522015-11-30 00:07:16 -08002045 VkImageSubresourceLayers dstSubresource;
Jesse Hall3fbc8562015-11-29 22:10:52 -08002046 VkOffset3D dstOffset;
Jesse Hall04f4f472015-08-16 19:51:04 -07002047 VkExtent3D extent;
2048} VkImageCopy;
2049
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002050typedef struct VkImageBlit {
Jesse Hall65ab5522015-11-30 00:07:16 -08002051 VkImageSubresourceLayers srcSubresource;
Jesse Hall04f4f472015-08-16 19:51:04 -07002052 VkOffset3D srcOffset;
2053 VkExtent3D srcExtent;
Jesse Hall65ab5522015-11-30 00:07:16 -08002054 VkImageSubresourceLayers dstSubresource;
Jesse Hall3fbc8562015-11-29 22:10:52 -08002055 VkOffset3D dstOffset;
2056 VkExtent3D dstExtent;
Jesse Hall04f4f472015-08-16 19:51:04 -07002057} VkImageBlit;
2058
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002059typedef struct VkBufferImageCopy {
Jesse Hall04f4f472015-08-16 19:51:04 -07002060 VkDeviceSize bufferOffset;
2061 uint32_t bufferRowLength;
2062 uint32_t bufferImageHeight;
Jesse Hall65ab5522015-11-30 00:07:16 -08002063 VkImageSubresourceLayers imageSubresource;
Jesse Hall04f4f472015-08-16 19:51:04 -07002064 VkOffset3D imageOffset;
2065 VkExtent3D imageExtent;
2066} VkBufferImageCopy;
2067
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002068typedef union VkClearColorValue {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002069 float float32[4];
2070 int32_t int32[4];
2071 uint32_t uint32[4];
Jesse Hall04f4f472015-08-16 19:51:04 -07002072} VkClearColorValue;
2073
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002074typedef struct VkClearDepthStencilValue {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002075 float depth;
2076 uint32_t stencil;
2077} VkClearDepthStencilValue;
2078
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002079typedef union VkClearValue {
Jesse Hallae38f732015-11-19 21:32:50 -08002080 VkClearColorValue color;
2081 VkClearDepthStencilValue depthStencil;
2082} VkClearValue;
2083
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002084typedef struct VkClearAttachment {
Jesse Hallae38f732015-11-19 21:32:50 -08002085 VkImageAspectFlags aspectMask;
2086 uint32_t colorAttachment;
2087 VkClearValue clearValue;
2088} VkClearAttachment;
2089
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002090typedef struct VkClearRect {
Jesse Halla15a4bf2015-11-19 22:48:02 -08002091 VkRect2D rect;
2092 uint32_t baseArrayLayer;
Jesse Hall3fbc8562015-11-29 22:10:52 -08002093 uint32_t layerCount;
Jesse Halla15a4bf2015-11-19 22:48:02 -08002094} VkClearRect;
Jesse Hall04f4f472015-08-16 19:51:04 -07002095
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002096typedef struct VkImageResolve {
Jesse Hall65ab5522015-11-30 00:07:16 -08002097 VkImageSubresourceLayers srcSubresource;
Jesse Hall04f4f472015-08-16 19:51:04 -07002098 VkOffset3D srcOffset;
Jesse Hall65ab5522015-11-30 00:07:16 -08002099 VkImageSubresourceLayers dstSubresource;
Jesse Hall3fbc8562015-11-29 22:10:52 -08002100 VkOffset3D dstOffset;
Jesse Hall04f4f472015-08-16 19:51:04 -07002101 VkExtent3D extent;
2102} VkImageResolve;
2103
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002104typedef struct VkRenderPassBeginInfo {
Jesse Hall04f4f472015-08-16 19:51:04 -07002105 VkStructureType sType;
2106 const void* pNext;
2107 VkRenderPass renderPass;
2108 VkFramebuffer framebuffer;
2109 VkRect2D renderArea;
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002110 uint32_t clearValueCount;
2111 const VkClearValue* pClearValues;
Jesse Hall04f4f472015-08-16 19:51:04 -07002112} VkRenderPassBeginInfo;
2113
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002114typedef struct VkBufferMemoryBarrier {
Jesse Hall04f4f472015-08-16 19:51:04 -07002115 VkStructureType sType;
2116 const void* pNext;
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002117 VkAccessFlags srcAccessMask;
2118 VkAccessFlags dstAccessMask;
Jesse Hall04f4f472015-08-16 19:51:04 -07002119 uint32_t srcQueueFamilyIndex;
Jesse Hall3fbc8562015-11-29 22:10:52 -08002120 uint32_t dstQueueFamilyIndex;
Jesse Hall04f4f472015-08-16 19:51:04 -07002121 VkBuffer buffer;
2122 VkDeviceSize offset;
2123 VkDeviceSize size;
2124} VkBufferMemoryBarrier;
2125
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002126typedef struct VkDispatchIndirectCommand {
Jesse Hall04f4f472015-08-16 19:51:04 -07002127 uint32_t x;
2128 uint32_t y;
2129 uint32_t z;
Jesse Hall3fbc8562015-11-29 22:10:52 -08002130} VkDispatchIndirectCommand;
Jesse Hall04f4f472015-08-16 19:51:04 -07002131
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002132typedef struct VkDrawIndexedIndirectCommand {
Jesse Hall04f4f472015-08-16 19:51:04 -07002133 uint32_t indexCount;
2134 uint32_t instanceCount;
2135 uint32_t firstIndex;
2136 int32_t vertexOffset;
2137 uint32_t firstInstance;
Jesse Hall3fbc8562015-11-29 22:10:52 -08002138} VkDrawIndexedIndirectCommand;
Jesse Hall04f4f472015-08-16 19:51:04 -07002139
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002140typedef struct VkDrawIndirectCommand {
Jesse Hall04f4f472015-08-16 19:51:04 -07002141 uint32_t vertexCount;
2142 uint32_t instanceCount;
2143 uint32_t firstVertex;
2144 uint32_t firstInstance;
Jesse Hall3fbc8562015-11-29 22:10:52 -08002145} VkDrawIndirectCommand;
Jesse Hall04f4f472015-08-16 19:51:04 -07002146
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002147typedef struct VkImageMemoryBarrier {
Jesse Hall04f4f472015-08-16 19:51:04 -07002148 VkStructureType sType;
2149 const void* pNext;
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002150 VkAccessFlags srcAccessMask;
2151 VkAccessFlags dstAccessMask;
Jesse Hall04f4f472015-08-16 19:51:04 -07002152 VkImageLayout oldLayout;
2153 VkImageLayout newLayout;
2154 uint32_t srcQueueFamilyIndex;
Jesse Hall3fbc8562015-11-29 22:10:52 -08002155 uint32_t dstQueueFamilyIndex;
Jesse Hall04f4f472015-08-16 19:51:04 -07002156 VkImage image;
2157 VkImageSubresourceRange subresourceRange;
2158} VkImageMemoryBarrier;
2159
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002160typedef struct VkMemoryBarrier {
Jesse Hall04f4f472015-08-16 19:51:04 -07002161 VkStructureType sType;
2162 const void* pNext;
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002163 VkAccessFlags srcAccessMask;
2164 VkAccessFlags dstAccessMask;
Jesse Hall04f4f472015-08-16 19:51:04 -07002165} VkMemoryBarrier;
2166
2167
Jesse Halle1b12782015-11-30 11:27:32 -08002168typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
2169typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
2170typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
2171typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
2172typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
2173typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
2174typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
2175typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
2176typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
2177typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
2178typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
2179typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
2180typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
2181typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2182typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2183typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2184typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2185typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
2186typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
2187typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
2188typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
2189typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
2190typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
2191typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
2192typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
2193typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2194typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2195typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
2196typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2197typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2198typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
2199typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
2200typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
2201typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
2202typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
2203typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
2204typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
2205typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
2206typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
2207typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
2208typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
2209typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
2210typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
2211typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
2212typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
2213typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
2214typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
2215typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
2216typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
2217typedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
2218typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
2219typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
2220typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
2221typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
2222typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
2223typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
2224typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
2225typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
2226typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
2227typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
2228typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
2229typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
2230typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
2231typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
2232typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
2233typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2234typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2235typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
2236typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
2237typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
2238typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
2239typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
2240typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
2241typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
2242typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
2243typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
2244typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
2245typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
2246typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
2247typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
2248typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
2249typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
2250typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
2251typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
2252typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
2253typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
2254typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
2255typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
2256typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
2257typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
2258typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
2259typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
2260typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
2261typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
2262typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
2263typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
2264typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
2265typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
2266typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
2267typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
2268typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
2269typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
2270typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
2271typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets);
2272typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
2273typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t startBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
2274typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
2275typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
2276typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2277typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
2278typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z);
2279typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
2280typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
2281typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
2282typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
2283typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
2284typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
2285typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const uint32_t* pData);
2286typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
2287typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2288typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
2289typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
2290typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
2291typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
2292typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
2293typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const void* const* ppMemoryBarriers);
2294typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const void* const* ppMemoryBarriers);
2295typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t entry, VkQueryControlFlags flags);
2296typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t entry);
2297typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount);
2298typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t entry);
2299typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
Jesse Hallf4ab2b12015-11-30 16:04:55 -08002300typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
Jesse Halle1b12782015-11-30 11:27:32 -08002301typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
2302typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
2303typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
2304typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBuffersCount, const VkCommandBuffer* pCommandBuffers);
Jesse Hall04f4f472015-08-16 19:51:04 -07002305
2306#ifdef VK_PROTOTYPES
Jesse Halle1b12782015-11-30 11:27:32 -08002307VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
Jesse Hall04f4f472015-08-16 19:51:04 -07002308 const VkInstanceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002309 const VkAllocationCallbacks* pAllocator,
Jesse Hall04f4f472015-08-16 19:51:04 -07002310 VkInstance* pInstance);
2311
Jesse Halle1b12782015-11-30 11:27:32 -08002312VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
Jesse Hall03b6fe12015-11-24 12:44:21 -08002313 VkInstance instance,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002314 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002315
Jesse Halle1b12782015-11-30 11:27:32 -08002316VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
Jesse Hall04f4f472015-08-16 19:51:04 -07002317 VkInstance instance,
2318 uint32_t* pPhysicalDeviceCount,
2319 VkPhysicalDevice* pPhysicalDevices);
2320
Jesse Halle1b12782015-11-30 11:27:32 -08002321VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
Jesse Hall04f4f472015-08-16 19:51:04 -07002322 VkPhysicalDevice physicalDevice,
2323 VkPhysicalDeviceFeatures* pFeatures);
2324
Jesse Halle1b12782015-11-30 11:27:32 -08002325VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
Jesse Hall04f4f472015-08-16 19:51:04 -07002326 VkPhysicalDevice physicalDevice,
2327 VkFormat format,
2328 VkFormatProperties* pFormatProperties);
2329
Jesse Halle1b12782015-11-30 11:27:32 -08002330VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
Jesse Hall04f4f472015-08-16 19:51:04 -07002331 VkPhysicalDevice physicalDevice,
2332 VkFormat format,
2333 VkImageType type,
2334 VkImageTiling tiling,
2335 VkImageUsageFlags usage,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002336 VkImageCreateFlags flags,
Jesse Hall04f4f472015-08-16 19:51:04 -07002337 VkImageFormatProperties* pImageFormatProperties);
2338
Jesse Halle1b12782015-11-30 11:27:32 -08002339VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
Jesse Hall04f4f472015-08-16 19:51:04 -07002340 VkPhysicalDevice physicalDevice,
2341 VkPhysicalDeviceProperties* pProperties);
2342
Jesse Halle1b12782015-11-30 11:27:32 -08002343VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
Jesse Hall04f4f472015-08-16 19:51:04 -07002344 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002345 uint32_t* pQueueFamilyPropertyCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002346 VkQueueFamilyProperties* pQueueFamilyProperties);
Jesse Hall04f4f472015-08-16 19:51:04 -07002347
Jesse Halle1b12782015-11-30 11:27:32 -08002348VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
Jesse Hall04f4f472015-08-16 19:51:04 -07002349 VkPhysicalDevice physicalDevice,
2350 VkPhysicalDeviceMemoryProperties* pMemoryProperties);
2351
Jesse Halle1b12782015-11-30 11:27:32 -08002352VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
Jesse Hall04f4f472015-08-16 19:51:04 -07002353 VkInstance instance,
2354 const char* pName);
2355
Jesse Halle1b12782015-11-30 11:27:32 -08002356VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
Jesse Hall04f4f472015-08-16 19:51:04 -07002357 VkDevice device,
2358 const char* pName);
2359
Jesse Halle1b12782015-11-30 11:27:32 -08002360VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
Jesse Hall04f4f472015-08-16 19:51:04 -07002361 VkPhysicalDevice physicalDevice,
2362 const VkDeviceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002363 const VkAllocationCallbacks* pAllocator,
Jesse Hall04f4f472015-08-16 19:51:04 -07002364 VkDevice* pDevice);
2365
Jesse Halle1b12782015-11-30 11:27:32 -08002366VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
Jesse Hall03b6fe12015-11-24 12:44:21 -08002367 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002368 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002369
Jesse Halle1b12782015-11-30 11:27:32 -08002370VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
Jesse Hall04f4f472015-08-16 19:51:04 -07002371 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002372 uint32_t* pPropertyCount,
Jesse Hall04f4f472015-08-16 19:51:04 -07002373 VkExtensionProperties* pProperties);
2374
Jesse Halle1b12782015-11-30 11:27:32 -08002375VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
Jesse Hall04f4f472015-08-16 19:51:04 -07002376 VkPhysicalDevice physicalDevice,
2377 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002378 uint32_t* pPropertyCount,
Jesse Hall04f4f472015-08-16 19:51:04 -07002379 VkExtensionProperties* pProperties);
2380
Jesse Halle1b12782015-11-30 11:27:32 -08002381VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
Jesse Hall03b6fe12015-11-24 12:44:21 -08002382 uint32_t* pPropertyCount,
Jesse Hall04f4f472015-08-16 19:51:04 -07002383 VkLayerProperties* pProperties);
2384
Jesse Halle1b12782015-11-30 11:27:32 -08002385VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
Jesse Hall04f4f472015-08-16 19:51:04 -07002386 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002387 uint32_t* pPropertyCount,
Jesse Hall04f4f472015-08-16 19:51:04 -07002388 VkLayerProperties* pProperties);
2389
Jesse Halle1b12782015-11-30 11:27:32 -08002390VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
Jesse Hall04f4f472015-08-16 19:51:04 -07002391 VkDevice device,
2392 uint32_t queueFamilyIndex,
2393 uint32_t queueIndex,
2394 VkQueue* pQueue);
2395
Jesse Halle1b12782015-11-30 11:27:32 -08002396VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
Jesse Hall04f4f472015-08-16 19:51:04 -07002397 VkQueue queue,
Jesse Halla366a512015-11-19 22:30:07 -08002398 uint32_t submitCount,
Jesse Hallb00daad2015-11-29 19:46:20 -08002399 const VkSubmitInfo* pSubmits,
Jesse Hall04f4f472015-08-16 19:51:04 -07002400 VkFence fence);
2401
Jesse Halle1b12782015-11-30 11:27:32 -08002402VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
Jesse Hall04f4f472015-08-16 19:51:04 -07002403 VkQueue queue);
2404
Jesse Halle1b12782015-11-30 11:27:32 -08002405VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
Jesse Hall04f4f472015-08-16 19:51:04 -07002406 VkDevice device);
2407
Jesse Halle1b12782015-11-30 11:27:32 -08002408VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
Jesse Hall04f4f472015-08-16 19:51:04 -07002409 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002410 const VkMemoryAllocateInfo* pAllocateInfo,
2411 const VkAllocationCallbacks* pAllocator,
2412 VkDeviceMemory* pMemory);
Jesse Hall04f4f472015-08-16 19:51:04 -07002413
Jesse Halle1b12782015-11-30 11:27:32 -08002414VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
Jesse Hall04f4f472015-08-16 19:51:04 -07002415 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002416 VkDeviceMemory memory,
2417 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002418
Jesse Halle1b12782015-11-30 11:27:32 -08002419VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
Jesse Hall04f4f472015-08-16 19:51:04 -07002420 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002421 VkDeviceMemory memory,
Jesse Hall04f4f472015-08-16 19:51:04 -07002422 VkDeviceSize offset,
2423 VkDeviceSize size,
2424 VkMemoryMapFlags flags,
2425 void** ppData);
2426
Jesse Halle1b12782015-11-30 11:27:32 -08002427VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
Jesse Hall04f4f472015-08-16 19:51:04 -07002428 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002429 VkDeviceMemory memory);
Jesse Hall04f4f472015-08-16 19:51:04 -07002430
Jesse Halle1b12782015-11-30 11:27:32 -08002431VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
Jesse Hall04f4f472015-08-16 19:51:04 -07002432 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002433 uint32_t memoryRangeCount,
2434 const VkMappedMemoryRange* pMemoryRanges);
Jesse Hall04f4f472015-08-16 19:51:04 -07002435
Jesse Halle1b12782015-11-30 11:27:32 -08002436VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
Jesse Hall04f4f472015-08-16 19:51:04 -07002437 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002438 uint32_t memoryRangeCount,
2439 const VkMappedMemoryRange* pMemoryRanges);
Jesse Hall04f4f472015-08-16 19:51:04 -07002440
Jesse Halle1b12782015-11-30 11:27:32 -08002441VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
Jesse Hall04f4f472015-08-16 19:51:04 -07002442 VkDevice device,
2443 VkDeviceMemory memory,
2444 VkDeviceSize* pCommittedMemoryInBytes);
2445
Jesse Halle1b12782015-11-30 11:27:32 -08002446VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
Jesse Hall04f4f472015-08-16 19:51:04 -07002447 VkDevice device,
2448 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002449 VkDeviceMemory memory,
2450 VkDeviceSize memoryOffset);
Jesse Hall04f4f472015-08-16 19:51:04 -07002451
Jesse Halle1b12782015-11-30 11:27:32 -08002452VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
Jesse Hall04f4f472015-08-16 19:51:04 -07002453 VkDevice device,
2454 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002455 VkDeviceMemory memory,
2456 VkDeviceSize memoryOffset);
Jesse Hall04f4f472015-08-16 19:51:04 -07002457
Jesse Halle1b12782015-11-30 11:27:32 -08002458VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
Jesse Hall04f4f472015-08-16 19:51:04 -07002459 VkDevice device,
2460 VkBuffer buffer,
2461 VkMemoryRequirements* pMemoryRequirements);
2462
Jesse Halle1b12782015-11-30 11:27:32 -08002463VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
Jesse Hall04f4f472015-08-16 19:51:04 -07002464 VkDevice device,
2465 VkImage image,
2466 VkMemoryRequirements* pMemoryRequirements);
2467
Jesse Halle1b12782015-11-30 11:27:32 -08002468VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
Jesse Hall04f4f472015-08-16 19:51:04 -07002469 VkDevice device,
2470 VkImage image,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002471 uint32_t* pSparseMemoryRequirementCount,
Jesse Hall04f4f472015-08-16 19:51:04 -07002472 VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
2473
Jesse Halle1b12782015-11-30 11:27:32 -08002474VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
Jesse Hall04f4f472015-08-16 19:51:04 -07002475 VkPhysicalDevice physicalDevice,
2476 VkFormat format,
2477 VkImageType type,
Jesse Hall091ed9e2015-11-30 00:55:29 -08002478 VkSampleCountFlagBits samples,
Jesse Hall04f4f472015-08-16 19:51:04 -07002479 VkImageUsageFlags usage,
2480 VkImageTiling tiling,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002481 uint32_t* pPropertyCount,
Jesse Hall04f4f472015-08-16 19:51:04 -07002482 VkSparseImageFormatProperties* pProperties);
2483
Jesse Halle1b12782015-11-30 11:27:32 -08002484VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
Jesse Hall04f4f472015-08-16 19:51:04 -07002485 VkQueue queue,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002486 uint32_t bindInfoCount,
Jesse Halla6429252015-11-29 18:59:42 -08002487 const VkBindSparseInfo* pBindInfo,
2488 VkFence fence);
Jesse Hall04f4f472015-08-16 19:51:04 -07002489
Jesse Halle1b12782015-11-30 11:27:32 -08002490VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
Jesse Hall04f4f472015-08-16 19:51:04 -07002491 VkDevice device,
2492 const VkFenceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002493 const VkAllocationCallbacks* pAllocator,
Jesse Hall04f4f472015-08-16 19:51:04 -07002494 VkFence* pFence);
2495
Jesse Halle1b12782015-11-30 11:27:32 -08002496VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
Jesse Hall04f4f472015-08-16 19:51:04 -07002497 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002498 VkFence fence,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002499 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002500
Jesse Halle1b12782015-11-30 11:27:32 -08002501VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
Jesse Hall04f4f472015-08-16 19:51:04 -07002502 VkDevice device,
2503 uint32_t fenceCount,
2504 const VkFence* pFences);
2505
Jesse Halle1b12782015-11-30 11:27:32 -08002506VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
Jesse Hall04f4f472015-08-16 19:51:04 -07002507 VkDevice device,
2508 VkFence fence);
2509
Jesse Halle1b12782015-11-30 11:27:32 -08002510VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
Jesse Hall04f4f472015-08-16 19:51:04 -07002511 VkDevice device,
2512 uint32_t fenceCount,
2513 const VkFence* pFences,
2514 VkBool32 waitAll,
2515 uint64_t timeout);
2516
Jesse Halle1b12782015-11-30 11:27:32 -08002517VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
Jesse Hall04f4f472015-08-16 19:51:04 -07002518 VkDevice device,
2519 const VkSemaphoreCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002520 const VkAllocationCallbacks* pAllocator,
Jesse Hall04f4f472015-08-16 19:51:04 -07002521 VkSemaphore* pSemaphore);
2522
Jesse Halle1b12782015-11-30 11:27:32 -08002523VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
Jesse Hall04f4f472015-08-16 19:51:04 -07002524 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002525 VkSemaphore semaphore,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002526 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002527
Jesse Halle1b12782015-11-30 11:27:32 -08002528VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
Jesse Hall04f4f472015-08-16 19:51:04 -07002529 VkDevice device,
2530 const VkEventCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002531 const VkAllocationCallbacks* pAllocator,
Jesse Hall04f4f472015-08-16 19:51:04 -07002532 VkEvent* pEvent);
2533
Jesse Halle1b12782015-11-30 11:27:32 -08002534VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
Jesse Hall04f4f472015-08-16 19:51:04 -07002535 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002536 VkEvent event,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002537 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002538
Jesse Halle1b12782015-11-30 11:27:32 -08002539VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
Jesse Hall04f4f472015-08-16 19:51:04 -07002540 VkDevice device,
2541 VkEvent event);
2542
Jesse Halle1b12782015-11-30 11:27:32 -08002543VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
Jesse Hall04f4f472015-08-16 19:51:04 -07002544 VkDevice device,
2545 VkEvent event);
2546
Jesse Halle1b12782015-11-30 11:27:32 -08002547VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
Jesse Hall04f4f472015-08-16 19:51:04 -07002548 VkDevice device,
2549 VkEvent event);
2550
Jesse Halle1b12782015-11-30 11:27:32 -08002551VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
Jesse Hall04f4f472015-08-16 19:51:04 -07002552 VkDevice device,
2553 const VkQueryPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002554 const VkAllocationCallbacks* pAllocator,
Jesse Hall04f4f472015-08-16 19:51:04 -07002555 VkQueryPool* pQueryPool);
2556
Jesse Halle1b12782015-11-30 11:27:32 -08002557VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
Jesse Hall04f4f472015-08-16 19:51:04 -07002558 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002559 VkQueryPool queryPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002560 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002561
Jesse Halle1b12782015-11-30 11:27:32 -08002562VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
Jesse Hall04f4f472015-08-16 19:51:04 -07002563 VkDevice device,
2564 VkQueryPool queryPool,
2565 uint32_t startQuery,
2566 uint32_t queryCount,
Jesse Halla9bb62b2015-11-21 19:31:56 -08002567 size_t dataSize,
Jesse Hall04f4f472015-08-16 19:51:04 -07002568 void* pData,
Jesse Halla9bb62b2015-11-21 19:31:56 -08002569 VkDeviceSize stride,
Jesse Hall04f4f472015-08-16 19:51:04 -07002570 VkQueryResultFlags flags);
2571
Jesse Halle1b12782015-11-30 11:27:32 -08002572VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
Jesse Hall04f4f472015-08-16 19:51:04 -07002573 VkDevice device,
2574 const VkBufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002575 const VkAllocationCallbacks* pAllocator,
Jesse Hall04f4f472015-08-16 19:51:04 -07002576 VkBuffer* pBuffer);
2577
Jesse Halle1b12782015-11-30 11:27:32 -08002578VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
Jesse Hall04f4f472015-08-16 19:51:04 -07002579 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002580 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002581 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002582
Jesse Halle1b12782015-11-30 11:27:32 -08002583VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
Jesse Hall04f4f472015-08-16 19:51:04 -07002584 VkDevice device,
2585 const VkBufferViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002586 const VkAllocationCallbacks* pAllocator,
Jesse Hall04f4f472015-08-16 19:51:04 -07002587 VkBufferView* pView);
2588
Jesse Halle1b12782015-11-30 11:27:32 -08002589VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
Jesse Hall04f4f472015-08-16 19:51:04 -07002590 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002591 VkBufferView bufferView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002592 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002593
Jesse Halle1b12782015-11-30 11:27:32 -08002594VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
Jesse Hall04f4f472015-08-16 19:51:04 -07002595 VkDevice device,
2596 const VkImageCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002597 const VkAllocationCallbacks* pAllocator,
Jesse Hall04f4f472015-08-16 19:51:04 -07002598 VkImage* pImage);
2599
Jesse Halle1b12782015-11-30 11:27:32 -08002600VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
Jesse Hall04f4f472015-08-16 19:51:04 -07002601 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002602 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002603 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002604
Jesse Halle1b12782015-11-30 11:27:32 -08002605VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
Jesse Hall04f4f472015-08-16 19:51:04 -07002606 VkDevice device,
2607 VkImage image,
2608 const VkImageSubresource* pSubresource,
2609 VkSubresourceLayout* pLayout);
2610
Jesse Halle1b12782015-11-30 11:27:32 -08002611VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
Jesse Hall04f4f472015-08-16 19:51:04 -07002612 VkDevice device,
2613 const VkImageViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002614 const VkAllocationCallbacks* pAllocator,
Jesse Hall04f4f472015-08-16 19:51:04 -07002615 VkImageView* pView);
2616
Jesse Halle1b12782015-11-30 11:27:32 -08002617VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
Jesse Hall04f4f472015-08-16 19:51:04 -07002618 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002619 VkImageView imageView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002620 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002621
Jesse Halle1b12782015-11-30 11:27:32 -08002622VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
Jesse Hall04f4f472015-08-16 19:51:04 -07002623 VkDevice device,
2624 const VkShaderModuleCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002625 const VkAllocationCallbacks* pAllocator,
Jesse Hall04f4f472015-08-16 19:51:04 -07002626 VkShaderModule* pShaderModule);
2627
Jesse Halle1b12782015-11-30 11:27:32 -08002628VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
Jesse Hall04f4f472015-08-16 19:51:04 -07002629 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002630 VkShaderModule shaderModule,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002631 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002632
Jesse Halle1b12782015-11-30 11:27:32 -08002633VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
Jesse Hall04f4f472015-08-16 19:51:04 -07002634 VkDevice device,
2635 const VkPipelineCacheCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002636 const VkAllocationCallbacks* pAllocator,
Jesse Hall04f4f472015-08-16 19:51:04 -07002637 VkPipelineCache* pPipelineCache);
2638
Jesse Halle1b12782015-11-30 11:27:32 -08002639VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
Jesse Hall04f4f472015-08-16 19:51:04 -07002640 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002641 VkPipelineCache pipelineCache,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002642 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002643
Jesse Halle1b12782015-11-30 11:27:32 -08002644VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
Jesse Hall04f4f472015-08-16 19:51:04 -07002645 VkDevice device,
2646 VkPipelineCache pipelineCache,
Jesse Halla9bb62b2015-11-21 19:31:56 -08002647 size_t* pDataSize,
Jesse Hall04f4f472015-08-16 19:51:04 -07002648 void* pData);
2649
Jesse Halle1b12782015-11-30 11:27:32 -08002650VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
Jesse Hall04f4f472015-08-16 19:51:04 -07002651 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002652 VkPipelineCache dstCache,
Jesse Hall04f4f472015-08-16 19:51:04 -07002653 uint32_t srcCacheCount,
2654 const VkPipelineCache* pSrcCaches);
2655
Jesse Halle1b12782015-11-30 11:27:32 -08002656VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
Jesse Hall04f4f472015-08-16 19:51:04 -07002657 VkDevice device,
2658 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002659 uint32_t createInfoCount,
Jesse Hall04f4f472015-08-16 19:51:04 -07002660 const VkGraphicsPipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002661 const VkAllocationCallbacks* pAllocator,
Jesse Hall04f4f472015-08-16 19:51:04 -07002662 VkPipeline* pPipelines);
2663
Jesse Halle1b12782015-11-30 11:27:32 -08002664VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
Jesse Hall04f4f472015-08-16 19:51:04 -07002665 VkDevice device,
2666 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002667 uint32_t createInfoCount,
Jesse Hall04f4f472015-08-16 19:51:04 -07002668 const VkComputePipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002669 const VkAllocationCallbacks* pAllocator,
Jesse Hall04f4f472015-08-16 19:51:04 -07002670 VkPipeline* pPipelines);
2671
Jesse Halle1b12782015-11-30 11:27:32 -08002672VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
Jesse Hall04f4f472015-08-16 19:51:04 -07002673 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002674 VkPipeline pipeline,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002675 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002676
Jesse Halle1b12782015-11-30 11:27:32 -08002677VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
Jesse Hall04f4f472015-08-16 19:51:04 -07002678 VkDevice device,
2679 const VkPipelineLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002680 const VkAllocationCallbacks* pAllocator,
Jesse Hall04f4f472015-08-16 19:51:04 -07002681 VkPipelineLayout* pPipelineLayout);
2682
Jesse Halle1b12782015-11-30 11:27:32 -08002683VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
Jesse Hall04f4f472015-08-16 19:51:04 -07002684 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002685 VkPipelineLayout pipelineLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002686 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002687
Jesse Halle1b12782015-11-30 11:27:32 -08002688VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
Jesse Hall04f4f472015-08-16 19:51:04 -07002689 VkDevice device,
2690 const VkSamplerCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002691 const VkAllocationCallbacks* pAllocator,
Jesse Hall04f4f472015-08-16 19:51:04 -07002692 VkSampler* pSampler);
2693
Jesse Halle1b12782015-11-30 11:27:32 -08002694VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
Jesse Hall04f4f472015-08-16 19:51:04 -07002695 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002696 VkSampler sampler,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002697 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002698
Jesse Halle1b12782015-11-30 11:27:32 -08002699VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
Jesse Hall04f4f472015-08-16 19:51:04 -07002700 VkDevice device,
2701 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002702 const VkAllocationCallbacks* pAllocator,
Jesse Hall04f4f472015-08-16 19:51:04 -07002703 VkDescriptorSetLayout* pSetLayout);
2704
Jesse Halle1b12782015-11-30 11:27:32 -08002705VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
Jesse Hall04f4f472015-08-16 19:51:04 -07002706 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002707 VkDescriptorSetLayout descriptorSetLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002708 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002709
Jesse Halle1b12782015-11-30 11:27:32 -08002710VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
Jesse Hall04f4f472015-08-16 19:51:04 -07002711 VkDevice device,
Jesse Hall04f4f472015-08-16 19:51:04 -07002712 const VkDescriptorPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002713 const VkAllocationCallbacks* pAllocator,
Jesse Hall04f4f472015-08-16 19:51:04 -07002714 VkDescriptorPool* pDescriptorPool);
2715
Jesse Halle1b12782015-11-30 11:27:32 -08002716VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
Jesse Hall04f4f472015-08-16 19:51:04 -07002717 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002718 VkDescriptorPool descriptorPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002719 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002720
Jesse Halle1b12782015-11-30 11:27:32 -08002721VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
Jesse Hall04f4f472015-08-16 19:51:04 -07002722 VkDevice device,
Jesse Hallfbf97b02015-11-20 14:17:03 -08002723 VkDescriptorPool descriptorPool,
2724 VkDescriptorPoolResetFlags flags);
Jesse Hall04f4f472015-08-16 19:51:04 -07002725
Jesse Halle1b12782015-11-30 11:27:32 -08002726VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
Jesse Hall04f4f472015-08-16 19:51:04 -07002727 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002728 const VkDescriptorSetAllocateInfo* pAllocateInfo,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002729 VkDescriptorSet* pDescriptorSets);
Jesse Hall04f4f472015-08-16 19:51:04 -07002730
Jesse Halle1b12782015-11-30 11:27:32 -08002731VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
Jesse Hall04f4f472015-08-16 19:51:04 -07002732 VkDevice device,
2733 VkDescriptorPool descriptorPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002734 uint32_t descriptorSetCount,
Jesse Hall04f4f472015-08-16 19:51:04 -07002735 const VkDescriptorSet* pDescriptorSets);
2736
Jesse Halle1b12782015-11-30 11:27:32 -08002737VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
Jesse Hall04f4f472015-08-16 19:51:04 -07002738 VkDevice device,
Jesse Hallb00daad2015-11-29 19:46:20 -08002739 uint32_t descriptorWriteCount,
Jesse Hall04f4f472015-08-16 19:51:04 -07002740 const VkWriteDescriptorSet* pDescriptorWrites,
Jesse Hallb00daad2015-11-29 19:46:20 -08002741 uint32_t descriptorCopyCount,
Jesse Hall04f4f472015-08-16 19:51:04 -07002742 const VkCopyDescriptorSet* pDescriptorCopies);
2743
Jesse Halle1b12782015-11-30 11:27:32 -08002744VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
Jesse Hall04f4f472015-08-16 19:51:04 -07002745 VkDevice device,
2746 const VkFramebufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002747 const VkAllocationCallbacks* pAllocator,
Jesse Hall04f4f472015-08-16 19:51:04 -07002748 VkFramebuffer* pFramebuffer);
2749
Jesse Halle1b12782015-11-30 11:27:32 -08002750VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
Jesse Hall04f4f472015-08-16 19:51:04 -07002751 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002752 VkFramebuffer framebuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002753 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002754
Jesse Halle1b12782015-11-30 11:27:32 -08002755VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
Jesse Hall04f4f472015-08-16 19:51:04 -07002756 VkDevice device,
2757 const VkRenderPassCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002758 const VkAllocationCallbacks* pAllocator,
Jesse Hall04f4f472015-08-16 19:51:04 -07002759 VkRenderPass* pRenderPass);
2760
Jesse Halle1b12782015-11-30 11:27:32 -08002761VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
Jesse Hall04f4f472015-08-16 19:51:04 -07002762 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002763 VkRenderPass renderPass,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002764 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002765
Jesse Halle1b12782015-11-30 11:27:32 -08002766VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
Jesse Hall04f4f472015-08-16 19:51:04 -07002767 VkDevice device,
2768 VkRenderPass renderPass,
2769 VkExtent2D* pGranularity);
2770
Jesse Halle1b12782015-11-30 11:27:32 -08002771VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
Jesse Hall04f4f472015-08-16 19:51:04 -07002772 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002773 const VkCommandPoolCreateInfo* pCreateInfo,
2774 const VkAllocationCallbacks* pAllocator,
2775 VkCommandPool* pCommandPool);
Jesse Hall04f4f472015-08-16 19:51:04 -07002776
Jesse Halle1b12782015-11-30 11:27:32 -08002777VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
Jesse Hall04f4f472015-08-16 19:51:04 -07002778 VkDevice device,
Jesse Hall65ab5522015-11-30 00:07:16 -08002779 VkCommandPool commandPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002780 const VkAllocationCallbacks* pAllocator);
Jesse Hall04f4f472015-08-16 19:51:04 -07002781
Jesse Halle1b12782015-11-30 11:27:32 -08002782VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
Jesse Hall04f4f472015-08-16 19:51:04 -07002783 VkDevice device,
Jesse Hall65ab5522015-11-30 00:07:16 -08002784 VkCommandPool commandPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002785 VkCommandPoolResetFlags flags);
Jesse Hall04f4f472015-08-16 19:51:04 -07002786
Jesse Halle1b12782015-11-30 11:27:32 -08002787VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
Jesse Hall04f4f472015-08-16 19:51:04 -07002788 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002789 const VkCommandBufferAllocateInfo* pAllocateInfo,
2790 VkCommandBuffer* pCommandBuffers);
Jesse Hall04f4f472015-08-16 19:51:04 -07002791
Jesse Halle1b12782015-11-30 11:27:32 -08002792VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
Jesse Hall04f4f472015-08-16 19:51:04 -07002793 VkDevice device,
Jesse Hall65ab5522015-11-30 00:07:16 -08002794 VkCommandPool commandPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002795 uint32_t commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002796 const VkCommandBuffer* pCommandBuffers);
Jesse Hall04f4f472015-08-16 19:51:04 -07002797
Jesse Halle1b12782015-11-30 11:27:32 -08002798VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002799 VkCommandBuffer commandBuffer,
2800 const VkCommandBufferBeginInfo* pBeginInfo);
Jesse Hall04f4f472015-08-16 19:51:04 -07002801
Jesse Halle1b12782015-11-30 11:27:32 -08002802VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002803 VkCommandBuffer commandBuffer);
Jesse Hall04f4f472015-08-16 19:51:04 -07002804
Jesse Halle1b12782015-11-30 11:27:32 -08002805VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002806 VkCommandBuffer commandBuffer,
2807 VkCommandBufferResetFlags flags);
Jesse Hall04f4f472015-08-16 19:51:04 -07002808
Jesse Halle1b12782015-11-30 11:27:32 -08002809VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002810 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07002811 VkPipelineBindPoint pipelineBindPoint,
2812 VkPipeline pipeline);
2813
Jesse Halle1b12782015-11-30 11:27:32 -08002814VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002815 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002816 uint32_t viewportCount,
2817 const VkViewport* pViewports);
Jesse Hall04f4f472015-08-16 19:51:04 -07002818
Jesse Halle1b12782015-11-30 11:27:32 -08002819VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002820 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002821 uint32_t scissorCount,
2822 const VkRect2D* pScissors);
Jesse Hall04f4f472015-08-16 19:51:04 -07002823
Jesse Halle1b12782015-11-30 11:27:32 -08002824VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002825 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002826 float lineWidth);
Jesse Hall04f4f472015-08-16 19:51:04 -07002827
Jesse Halle1b12782015-11-30 11:27:32 -08002828VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002829 VkCommandBuffer commandBuffer,
Jesse Halla9bb62b2015-11-21 19:31:56 -08002830 float depthBiasConstantFactor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002831 float depthBiasClamp,
Jesse Halla9bb62b2015-11-21 19:31:56 -08002832 float depthBiasSlopeFactor);
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002833
Jesse Halle1b12782015-11-30 11:27:32 -08002834VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002835 VkCommandBuffer commandBuffer,
Jesse Hallb00daad2015-11-29 19:46:20 -08002836 const float blendConstants[4]);
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002837
Jesse Halle1b12782015-11-30 11:27:32 -08002838VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002839 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002840 float minDepthBounds,
2841 float maxDepthBounds);
2842
Jesse Halle1b12782015-11-30 11:27:32 -08002843VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002844 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002845 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08002846 uint32_t compareMask);
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002847
Jesse Halle1b12782015-11-30 11:27:32 -08002848VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002849 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002850 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08002851 uint32_t writeMask);
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002852
Jesse Halle1b12782015-11-30 11:27:32 -08002853VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002854 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002855 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08002856 uint32_t reference);
Jesse Hall04f4f472015-08-16 19:51:04 -07002857
Jesse Halle1b12782015-11-30 11:27:32 -08002858VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002859 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07002860 VkPipelineBindPoint pipelineBindPoint,
2861 VkPipelineLayout layout,
2862 uint32_t firstSet,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002863 uint32_t descriptorSetCount,
Jesse Hall04f4f472015-08-16 19:51:04 -07002864 const VkDescriptorSet* pDescriptorSets,
2865 uint32_t dynamicOffsetCount,
2866 const uint32_t* pDynamicOffsets);
2867
Jesse Halle1b12782015-11-30 11:27:32 -08002868VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002869 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07002870 VkBuffer buffer,
2871 VkDeviceSize offset,
2872 VkIndexType indexType);
2873
Jesse Halle1b12782015-11-30 11:27:32 -08002874VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002875 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07002876 uint32_t startBinding,
2877 uint32_t bindingCount,
2878 const VkBuffer* pBuffers,
2879 const VkDeviceSize* pOffsets);
2880
Jesse Halle1b12782015-11-30 11:27:32 -08002881VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002882 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07002883 uint32_t vertexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002884 uint32_t instanceCount,
2885 uint32_t firstVertex,
2886 uint32_t firstInstance);
Jesse Hall04f4f472015-08-16 19:51:04 -07002887
Jesse Halle1b12782015-11-30 11:27:32 -08002888VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002889 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07002890 uint32_t indexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002891 uint32_t instanceCount,
2892 uint32_t firstIndex,
Jesse Hall04f4f472015-08-16 19:51:04 -07002893 int32_t vertexOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002894 uint32_t firstInstance);
Jesse Hall04f4f472015-08-16 19:51:04 -07002895
Jesse Halle1b12782015-11-30 11:27:32 -08002896VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002897 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07002898 VkBuffer buffer,
2899 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002900 uint32_t drawCount,
Jesse Hall04f4f472015-08-16 19:51:04 -07002901 uint32_t stride);
2902
Jesse Halle1b12782015-11-30 11:27:32 -08002903VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002904 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07002905 VkBuffer buffer,
2906 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002907 uint32_t drawCount,
Jesse Hall04f4f472015-08-16 19:51:04 -07002908 uint32_t stride);
2909
Jesse Halle1b12782015-11-30 11:27:32 -08002910VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002911 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07002912 uint32_t x,
2913 uint32_t y,
2914 uint32_t z);
2915
Jesse Halle1b12782015-11-30 11:27:32 -08002916VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002917 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07002918 VkBuffer buffer,
2919 VkDeviceSize offset);
2920
Jesse Halle1b12782015-11-30 11:27:32 -08002921VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002922 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07002923 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002924 VkBuffer dstBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07002925 uint32_t regionCount,
2926 const VkBufferCopy* pRegions);
2927
Jesse Halle1b12782015-11-30 11:27:32 -08002928VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002929 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07002930 VkImage srcImage,
2931 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002932 VkImage dstImage,
2933 VkImageLayout dstImageLayout,
Jesse Hall04f4f472015-08-16 19:51:04 -07002934 uint32_t regionCount,
2935 const VkImageCopy* pRegions);
2936
Jesse Halle1b12782015-11-30 11:27:32 -08002937VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002938 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07002939 VkImage srcImage,
2940 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002941 VkImage dstImage,
2942 VkImageLayout dstImageLayout,
Jesse Hall04f4f472015-08-16 19:51:04 -07002943 uint32_t regionCount,
2944 const VkImageBlit* pRegions,
Jesse Hall23ff73f2015-11-29 14:36:39 -08002945 VkFilter filter);
Jesse Hall04f4f472015-08-16 19:51:04 -07002946
Jesse Halle1b12782015-11-30 11:27:32 -08002947VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002948 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07002949 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002950 VkImage dstImage,
2951 VkImageLayout dstImageLayout,
Jesse Hall04f4f472015-08-16 19:51:04 -07002952 uint32_t regionCount,
2953 const VkBufferImageCopy* pRegions);
2954
Jesse Halle1b12782015-11-30 11:27:32 -08002955VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002956 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07002957 VkImage srcImage,
2958 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08002959 VkBuffer dstBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07002960 uint32_t regionCount,
2961 const VkBufferImageCopy* pRegions);
2962
Jesse Halle1b12782015-11-30 11:27:32 -08002963VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002964 VkCommandBuffer commandBuffer,
2965 VkBuffer dstBuffer,
2966 VkDeviceSize dstOffset,
Jesse Hall04f4f472015-08-16 19:51:04 -07002967 VkDeviceSize dataSize,
2968 const uint32_t* pData);
2969
Jesse Halle1b12782015-11-30 11:27:32 -08002970VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002971 VkCommandBuffer commandBuffer,
2972 VkBuffer dstBuffer,
2973 VkDeviceSize dstOffset,
Jesse Hallb00daad2015-11-29 19:46:20 -08002974 VkDeviceSize size,
Jesse Hall04f4f472015-08-16 19:51:04 -07002975 uint32_t data);
2976
Jesse Halle1b12782015-11-30 11:27:32 -08002977VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002978 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07002979 VkImage image,
2980 VkImageLayout imageLayout,
2981 const VkClearColorValue* pColor,
2982 uint32_t rangeCount,
2983 const VkImageSubresourceRange* pRanges);
2984
Jesse Halle1b12782015-11-30 11:27:32 -08002985VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002986 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07002987 VkImage image,
2988 VkImageLayout imageLayout,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002989 const VkClearDepthStencilValue* pDepthStencil,
Jesse Hall04f4f472015-08-16 19:51:04 -07002990 uint32_t rangeCount,
2991 const VkImageSubresourceRange* pRanges);
2992
Jesse Halle1b12782015-11-30 11:27:32 -08002993VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
Jesse Hall3fbc8562015-11-29 22:10:52 -08002994 VkCommandBuffer commandBuffer,
Jesse Hallae38f732015-11-19 21:32:50 -08002995 uint32_t attachmentCount,
2996 const VkClearAttachment* pAttachments,
Jesse Hall04f4f472015-08-16 19:51:04 -07002997 uint32_t rectCount,
Jesse Halla15a4bf2015-11-19 22:48:02 -08002998 const VkClearRect* pRects);
Jesse Hall04f4f472015-08-16 19:51:04 -07002999
Jesse Halle1b12782015-11-30 11:27:32 -08003000VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08003001 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07003002 VkImage srcImage,
3003 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08003004 VkImage dstImage,
3005 VkImageLayout dstImageLayout,
Jesse Hall04f4f472015-08-16 19:51:04 -07003006 uint32_t regionCount,
3007 const VkImageResolve* pRegions);
3008
Jesse Halle1b12782015-11-30 11:27:32 -08003009VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08003010 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07003011 VkEvent event,
3012 VkPipelineStageFlags stageMask);
3013
Jesse Halle1b12782015-11-30 11:27:32 -08003014VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08003015 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07003016 VkEvent event,
3017 VkPipelineStageFlags stageMask);
3018
Jesse Halle1b12782015-11-30 11:27:32 -08003019VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
Jesse Hall3fbc8562015-11-29 22:10:52 -08003020 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07003021 uint32_t eventCount,
3022 const VkEvent* pEvents,
3023 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08003024 VkPipelineStageFlags dstStageMask,
3025 uint32_t memoryBarrierCount,
3026 const void* const* ppMemoryBarriers);
Jesse Hall04f4f472015-08-16 19:51:04 -07003027
Jesse Halle1b12782015-11-30 11:27:32 -08003028VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
Jesse Hall3fbc8562015-11-29 22:10:52 -08003029 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07003030 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08003031 VkPipelineStageFlags dstStageMask,
Jesse Halldc6d36c2015-11-29 19:12:15 -08003032 VkDependencyFlags dependencyFlags,
Jesse Hall3fbc8562015-11-29 22:10:52 -08003033 uint32_t memoryBarrierCount,
3034 const void* const* ppMemoryBarriers);
Jesse Hall04f4f472015-08-16 19:51:04 -07003035
Jesse Halle1b12782015-11-30 11:27:32 -08003036VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08003037 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07003038 VkQueryPool queryPool,
Jesse Hall65ab5522015-11-30 00:07:16 -08003039 uint32_t entry,
Jesse Hall04f4f472015-08-16 19:51:04 -07003040 VkQueryControlFlags flags);
3041
Jesse Halle1b12782015-11-30 11:27:32 -08003042VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08003043 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07003044 VkQueryPool queryPool,
Jesse Hall65ab5522015-11-30 00:07:16 -08003045 uint32_t entry);
Jesse Hall04f4f472015-08-16 19:51:04 -07003046
Jesse Halle1b12782015-11-30 11:27:32 -08003047VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
Jesse Hall3fbc8562015-11-29 22:10:52 -08003048 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07003049 VkQueryPool queryPool,
3050 uint32_t startQuery,
3051 uint32_t queryCount);
3052
Jesse Halle1b12782015-11-30 11:27:32 -08003053VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
Jesse Hall3fbc8562015-11-29 22:10:52 -08003054 VkCommandBuffer commandBuffer,
Jesse Hall6f39a6d2015-11-24 11:08:36 -08003055 VkPipelineStageFlagBits pipelineStage,
Jesse Halla3a7a1d2015-11-24 11:37:23 -08003056 VkQueryPool queryPool,
Jesse Hall65ab5522015-11-30 00:07:16 -08003057 uint32_t entry);
Jesse Hall04f4f472015-08-16 19:51:04 -07003058
Jesse Halle1b12782015-11-30 11:27:32 -08003059VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
Jesse Hall3fbc8562015-11-29 22:10:52 -08003060 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07003061 VkQueryPool queryPool,
3062 uint32_t startQuery,
3063 uint32_t queryCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08003064 VkBuffer dstBuffer,
3065 VkDeviceSize dstOffset,
Jesse Halla9bb62b2015-11-21 19:31:56 -08003066 VkDeviceSize stride,
Jesse Hall04f4f472015-08-16 19:51:04 -07003067 VkQueryResultFlags flags);
3068
Jesse Halle1b12782015-11-30 11:27:32 -08003069VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08003070 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07003071 VkPipelineLayout layout,
3072 VkShaderStageFlags stageFlags,
Jesse Hall03b6fe12015-11-24 12:44:21 -08003073 uint32_t offset,
3074 uint32_t size,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003075 const void* pValues);
Jesse Hall04f4f472015-08-16 19:51:04 -07003076
Jesse Halle1b12782015-11-30 11:27:32 -08003077VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08003078 VkCommandBuffer commandBuffer,
Jesse Hall04f4f472015-08-16 19:51:04 -07003079 const VkRenderPassBeginInfo* pRenderPassBegin,
Jesse Hall65ab5522015-11-30 00:07:16 -08003080 VkSubpassContents contents);
Jesse Hall04f4f472015-08-16 19:51:04 -07003081
Jesse Halle1b12782015-11-30 11:27:32 -08003082VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08003083 VkCommandBuffer commandBuffer,
Jesse Hall65ab5522015-11-30 00:07:16 -08003084 VkSubpassContents contents);
Jesse Hall04f4f472015-08-16 19:51:04 -07003085
Jesse Halle1b12782015-11-30 11:27:32 -08003086VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08003087 VkCommandBuffer commandBuffer);
Jesse Hall04f4f472015-08-16 19:51:04 -07003088
Jesse Halle1b12782015-11-30 11:27:32 -08003089VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
Jesse Hall3fbc8562015-11-29 22:10:52 -08003090 VkCommandBuffer commandBuffer,
3091 uint32_t commandBuffersCount,
3092 const VkCommandBuffer* pCommandBuffers);
Jesse Hall04f4f472015-08-16 19:51:04 -07003093#endif
3094
Jesse Hall091ed9e2015-11-30 00:55:29 -08003095#define VK_KHR_surface 1
Jesse Hall3fbc8562015-11-29 22:10:52 -08003096VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
Jesse Hall1356b0d2015-11-23 17:24:58 -08003097
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003098#define VK_KHR_SURFACE_REVISION 24
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003099#define VK_KHR_SURFACE_EXTENSION_NUMBER 1
3100#define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -08003101
Jesse Hall1356b0d2015-11-23 17:24:58 -08003102
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003103typedef enum VkColorSpaceKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08003104 VK_COLORSPACE_SRGB_NONLINEAR_KHR = 0,
3105 VK_COLORSPACE_BEGIN_RANGE = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
3106 VK_COLORSPACE_END_RANGE = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
Jesse Hall3fbc8562015-11-29 22:10:52 -08003107 VK_COLORSPACE_RANGE_SIZE = (VK_COLORSPACE_SRGB_NONLINEAR_KHR - VK_COLORSPACE_SRGB_NONLINEAR_KHR + 1),
Jesse Hall1356b0d2015-11-23 17:24:58 -08003108 VK_COLORSPACE_MAX_ENUM = 0x7FFFFFFF
3109} VkColorSpaceKHR;
3110
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003111typedef enum VkPresentModeKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08003112 VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
3113 VK_PRESENT_MODE_MAILBOX_KHR = 1,
3114 VK_PRESENT_MODE_FIFO_KHR = 2,
Jesse Hall03b6fe12015-11-24 12:44:21 -08003115 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003116 VK_PRESENT_MODE_BEGIN_RANGE = VK_PRESENT_MODE_IMMEDIATE_KHR,
Jesse Hall03b6fe12015-11-24 12:44:21 -08003117 VK_PRESENT_MODE_END_RANGE = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
Jesse Hall3fbc8562015-11-29 22:10:52 -08003118 VK_PRESENT_MODE_RANGE_SIZE = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
Jesse Hall1356b0d2015-11-23 17:24:58 -08003119 VK_PRESENT_MODE_MAX_ENUM = 0x7FFFFFFF
3120} VkPresentModeKHR;
3121
3122
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003123typedef enum VkSurfaceTransformFlagBitsKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08003124 VK_SURFACE_TRANSFORM_NONE_BIT_KHR = 0x00000001,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003125 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
3126 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
3127 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
3128 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
3129 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
3130 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
3131 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003132 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
3133} VkSurfaceTransformFlagBitsKHR;
3134typedef VkFlags VkSurfaceTransformFlagsKHR;
3135
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003136typedef enum VkCompositeAlphaFlagBitsKHR {
Jesse Halla6429252015-11-29 18:59:42 -08003137 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3138 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3139 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3140 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
3141} VkCompositeAlphaFlagBitsKHR;
3142typedef VkFlags VkCompositeAlphaFlagsKHR;
3143
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003144typedef struct VkSurfaceCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08003145 uint32_t minImageCount;
3146 uint32_t maxImageCount;
3147 VkExtent2D currentExtent;
3148 VkExtent2D minImageExtent;
3149 VkExtent2D maxImageExtent;
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003150 uint32_t maxImageArrayLayers;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003151 VkSurfaceTransformFlagsKHR supportedTransforms;
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003152 VkSurfaceTransformFlagBitsKHR currentTransform;
Jesse Halla6429252015-11-29 18:59:42 -08003153 VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003154 VkImageUsageFlags supportedUsageFlags;
Jesse Hallb00daad2015-11-29 19:46:20 -08003155} VkSurfaceCapabilitiesKHR;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003156
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003157typedef struct VkSurfaceFormatKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08003158 VkFormat format;
3159 VkColorSpaceKHR colorSpace;
3160} VkSurfaceFormatKHR;
3161
Jesse Hallb00daad2015-11-29 19:46:20 -08003162
Jesse Hall0e74f002015-11-30 11:37:59 -08003163typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
Jesse Halle1b12782015-11-30 11:27:32 -08003164typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
3165typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
3166typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
3167typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
Jesse Hallb00daad2015-11-29 19:46:20 -08003168
3169#ifdef VK_PROTOTYPES
Jesse Halle1b12782015-11-30 11:27:32 -08003170VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
Jesse Hallb00daad2015-11-29 19:46:20 -08003171 VkInstance instance,
Jesse Hall0e74f002015-11-30 11:37:59 -08003172 VkSurfaceKHR surface,
3173 const VkAllocationCallbacks* pAllocator);
Jesse Hallb00daad2015-11-29 19:46:20 -08003174
Jesse Halle1b12782015-11-30 11:27:32 -08003175VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
Jesse Hallb00daad2015-11-29 19:46:20 -08003176 VkPhysicalDevice physicalDevice,
3177 uint32_t queueFamilyIndex,
3178 VkSurfaceKHR surface,
3179 VkBool32* pSupported);
3180
Jesse Halle1b12782015-11-30 11:27:32 -08003181VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
Jesse Hallb00daad2015-11-29 19:46:20 -08003182 VkPhysicalDevice physicalDevice,
3183 VkSurfaceKHR surface,
3184 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
3185
Jesse Halle1b12782015-11-30 11:27:32 -08003186VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
Jesse Hallb00daad2015-11-29 19:46:20 -08003187 VkPhysicalDevice physicalDevice,
3188 VkSurfaceKHR surface,
3189 uint32_t* pSurfaceFormatCount,
3190 VkSurfaceFormatKHR* pSurfaceFormats);
3191
Jesse Halle1b12782015-11-30 11:27:32 -08003192VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
Jesse Hallb00daad2015-11-29 19:46:20 -08003193 VkPhysicalDevice physicalDevice,
3194 VkSurfaceKHR surface,
3195 uint32_t* pPresentModeCount,
3196 VkPresentModeKHR* pPresentModes);
3197#endif
3198
Jesse Hall091ed9e2015-11-30 00:55:29 -08003199#define VK_KHR_swapchain 1
Jesse Hall3fbc8562015-11-29 22:10:52 -08003200VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
Jesse Hallb00daad2015-11-29 19:46:20 -08003201
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003202#define VK_KHR_SWAPCHAIN_REVISION 67
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003203#define VK_KHR_SWAPCHAIN_EXTENSION_NUMBER 2
3204#define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
Jesse Hallb00daad2015-11-29 19:46:20 -08003205
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003206typedef VkFlags VkSwapchainCreateFlagsKHR;
3207
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003208typedef struct VkSwapchainCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08003209 VkStructureType sType;
Jesse Halla9e57032015-11-30 01:03:10 -08003210 const void* pNext;
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003211 VkSwapchainCreateFlagsKHR flags;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003212 VkSurfaceKHR surface;
3213 uint32_t minImageCount;
3214 VkFormat imageFormat;
3215 VkColorSpaceKHR imageColorSpace;
3216 VkExtent2D imageExtent;
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003217 uint32_t imageArrayLayers;
3218 VkImageUsageFlags imageUsage;
3219 VkSharingMode imageSharingMode;
Jesse Hall03b6fe12015-11-24 12:44:21 -08003220 uint32_t queueFamilyIndexCount;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003221 const uint32_t* pQueueFamilyIndices;
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003222 VkSurfaceTransformFlagBitsKHR preTransform;
3223 VkCompositeAlphaFlagBitsKHR compositeAlpha;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003224 VkPresentModeKHR presentMode;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003225 VkBool32 clipped;
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003226 VkSwapchainKHR oldSwapchain;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003227} VkSwapchainCreateInfoKHR;
3228
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003229typedef struct VkPresentInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08003230 VkStructureType sType;
Jesse Halla9e57032015-11-30 01:03:10 -08003231 const void* pNext;
Jesse Hallb00daad2015-11-29 19:46:20 -08003232 uint32_t waitSemaphoreCount;
3233 const VkSemaphore* pWaitSemaphores;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003234 uint32_t swapchainCount;
Jesse Hall03b6fe12015-11-24 12:44:21 -08003235 const VkSwapchainKHR* pSwapchains;
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003236 const uint32_t* pImageIndices;
Jesse Halla9e57032015-11-30 01:03:10 -08003237 VkResult* pResults;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003238} VkPresentInfoKHR;
3239
3240
Jesse Hall0e74f002015-11-30 11:37:59 -08003241typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
3242typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
Jesse Halle1b12782015-11-30 11:27:32 -08003243typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
3244typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003245typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
Jesse Hall1356b0d2015-11-23 17:24:58 -08003246
3247#ifdef VK_PROTOTYPES
Jesse Halle1b12782015-11-30 11:27:32 -08003248VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08003249 VkDevice device,
3250 const VkSwapchainCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08003251 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003252 VkSwapchainKHR* pSwapchain);
3253
Jesse Halle1b12782015-11-30 11:27:32 -08003254VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08003255 VkDevice device,
Jesse Hall0e74f002015-11-30 11:37:59 -08003256 VkSwapchainKHR swapchain,
3257 const VkAllocationCallbacks* pAllocator);
Jesse Hall1356b0d2015-11-23 17:24:58 -08003258
Jesse Halle1b12782015-11-30 11:27:32 -08003259VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08003260 VkDevice device,
3261 VkSwapchainKHR swapchain,
Jesse Hall03b6fe12015-11-24 12:44:21 -08003262 uint32_t* pSwapchainImageCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003263 VkImage* pSwapchainImages);
3264
Jesse Halle1b12782015-11-30 11:27:32 -08003265VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08003266 VkDevice device,
3267 VkSwapchainKHR swapchain,
3268 uint64_t timeout,
3269 VkSemaphore semaphore,
3270 VkFence fence,
3271 uint32_t* pImageIndex);
3272
Jesse Halle1b12782015-11-30 11:27:32 -08003273VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08003274 VkQueue queue,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003275 const VkPresentInfoKHR* pPresentInfo);
Jesse Hall1356b0d2015-11-23 17:24:58 -08003276#endif
3277
Jesse Hall091ed9e2015-11-30 00:55:29 -08003278#define VK_KHR_display 1
Jesse Hall3fbc8562015-11-29 22:10:52 -08003279VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
3280VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
Jesse Hall1356b0d2015-11-23 17:24:58 -08003281
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003282#define VK_KHR_DISPLAY_REVISION 21
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003283#define VK_KHR_DISPLAY_EXTENSION_NUMBER 3
3284#define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display"
Jesse Hall1356b0d2015-11-23 17:24:58 -08003285
3286
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003287typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003288 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3289 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
3290 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
3291 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003292} VkDisplayPlaneAlphaFlagBitsKHR;
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003293typedef VkFlags VkDisplayModeCreateFlagsKHR;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003294typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003295typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003296
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003297typedef struct VkDisplayPropertiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08003298 VkDisplayKHR display;
Jesse Hall03b6fe12015-11-24 12:44:21 -08003299 const char* displayName;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003300 VkExtent2D physicalDimensions;
3301 VkExtent2D physicalResolution;
3302 VkSurfaceTransformFlagsKHR supportedTransforms;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003303 VkBool32 planeReorderPossible;
Jesse Halla6429252015-11-29 18:59:42 -08003304 VkBool32 persistentContent;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003305} VkDisplayPropertiesKHR;
3306
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003307typedef struct VkDisplayModeParametersKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08003308 VkExtent2D visibleRegion;
Jesse Halla6429252015-11-29 18:59:42 -08003309 uint32_t refreshRate;
3310} VkDisplayModeParametersKHR;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003311
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003312typedef struct VkDisplayModePropertiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08003313 VkDisplayModeKHR displayMode;
Jesse Halla6429252015-11-29 18:59:42 -08003314 VkDisplayModeParametersKHR parameters;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003315} VkDisplayModePropertiesKHR;
3316
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003317typedef struct VkDisplayModeCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08003318 VkStructureType sType;
Jesse Halla9e57032015-11-30 01:03:10 -08003319 const void* pNext;
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003320 VkDisplayModeCreateFlagsKHR flags;
Jesse Halla6429252015-11-29 18:59:42 -08003321 VkDisplayModeParametersKHR parameters;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003322} VkDisplayModeCreateInfoKHR;
3323
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003324typedef struct VkDisplayPlaneCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08003325 VkDisplayPlaneAlphaFlagsKHR supportedAlpha;
3326 VkOffset2D minSrcPosition;
3327 VkOffset2D maxSrcPosition;
3328 VkExtent2D minSrcExtent;
3329 VkExtent2D maxSrcExtent;
3330 VkOffset2D minDstPosition;
3331 VkOffset2D maxDstPosition;
3332 VkExtent2D minDstExtent;
3333 VkExtent2D maxDstExtent;
Jesse Halla6429252015-11-29 18:59:42 -08003334} VkDisplayPlaneCapabilitiesKHR;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003335
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003336typedef struct VkDisplayPlanePropertiesKHR {
Jesse Hallb00daad2015-11-29 19:46:20 -08003337 VkDisplayKHR currentDisplay;
3338 uint32_t currentStackIndex;
3339} VkDisplayPlanePropertiesKHR;
3340
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003341typedef struct VkDisplaySurfaceCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08003342 VkStructureType sType;
Jesse Halla9e57032015-11-30 01:03:10 -08003343 const void* pNext;
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003344 VkDisplaySurfaceCreateFlagsKHR flags;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003345 VkDisplayModeKHR displayMode;
3346 uint32_t planeIndex;
3347 uint32_t planeStackIndex;
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003348 VkSurfaceTransformFlagBitsKHR transform;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003349 float globalAlpha;
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003350 VkDisplayPlaneAlphaFlagBitsKHR alphaMode;
3351 VkExtent2D imageExtent;
Jesse Halla6429252015-11-29 18:59:42 -08003352} VkDisplaySurfaceCreateInfoKHR;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003353
3354
Jesse Halle1b12782015-11-30 11:27:32 -08003355typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
3356typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003357typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
Jesse Halle1b12782015-11-30 11:27:32 -08003358typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
Jesse Hall0e74f002015-11-30 11:37:59 -08003359typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR*pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003360typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
Jesse Hall0e74f002015-11-30 11:37:59 -08003361typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
Jesse Hall1356b0d2015-11-23 17:24:58 -08003362
3363#ifdef VK_PROTOTYPES
Jesse Halle1b12782015-11-30 11:27:32 -08003364VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08003365 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08003366 uint32_t* pPropertyCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003367 VkDisplayPropertiesKHR* pProperties);
3368
Jesse Halle1b12782015-11-30 11:27:32 -08003369VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
Jesse Halla6429252015-11-29 18:59:42 -08003370 VkPhysicalDevice physicalDevice,
3371 uint32_t* pPropertyCount,
3372 VkDisplayPlanePropertiesKHR* pProperties);
3373
Jesse Halle1b12782015-11-30 11:27:32 -08003374VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
Jesse Halla6429252015-11-29 18:59:42 -08003375 VkPhysicalDevice physicalDevice,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003376 uint32_t* pDisplayCount,
3377 VkDisplayKHR* pDisplays);
Jesse Halla6429252015-11-29 18:59:42 -08003378
Jesse Halle1b12782015-11-30 11:27:32 -08003379VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08003380 VkPhysicalDevice physicalDevice,
3381 VkDisplayKHR display,
Jesse Hall03b6fe12015-11-24 12:44:21 -08003382 uint32_t* pPropertyCount,
3383 VkDisplayModePropertiesKHR* pProperties);
Jesse Hall1356b0d2015-11-23 17:24:58 -08003384
Jesse Halle1b12782015-11-30 11:27:32 -08003385VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08003386 VkPhysicalDevice physicalDevice,
3387 VkDisplayKHR display,
3388 const VkDisplayModeCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08003389 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003390 VkDisplayModeKHR* pMode);
3391
Jesse Halle1b12782015-11-30 11:27:32 -08003392VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08003393 VkPhysicalDevice physicalDevice,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003394 VkDisplayModeKHR mode,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003395 uint32_t planeIndex,
Jesse Halla6429252015-11-29 18:59:42 -08003396 VkDisplayPlaneCapabilitiesKHR* pCapabilities);
3397
Jesse Halle1b12782015-11-30 11:27:32 -08003398VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
Jesse Halla6429252015-11-29 18:59:42 -08003399 VkInstance instance,
3400 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -08003401 const VkAllocationCallbacks* pAllocator,
Jesse Halla6429252015-11-29 18:59:42 -08003402 VkSurfaceKHR* pSurface);
Jesse Hall1356b0d2015-11-23 17:24:58 -08003403#endif
3404
Jesse Hall091ed9e2015-11-30 00:55:29 -08003405#define VK_KHR_display_swapchain 1
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003406#define VK_KHR_DISPLAY_SWAPCHAIN_REVISION 9
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003407#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NUMBER 4
3408#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
Jesse Hall1356b0d2015-11-23 17:24:58 -08003409
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003410typedef struct VkDisplayPresentInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08003411 VkStructureType sType;
Jesse Halla9e57032015-11-30 01:03:10 -08003412 const void* pNext;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003413 VkRect2D srcRect;
3414 VkRect2D dstRect;
Jesse Halla6429252015-11-29 18:59:42 -08003415 VkBool32 persistent;
Jesse Hall1356b0d2015-11-23 17:24:58 -08003416} VkDisplayPresentInfoKHR;
3417
3418
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003419typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
3420
3421#ifdef VK_PROTOTYPES
3422VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
3423 VkDevice device,
3424 uint32_t swapchainCount,
3425 const VkSwapchainCreateInfoKHR* pCreateInfos,
3426 const VkAllocationCallbacks* pAllocator,
3427 VkSwapchainKHR* pSwapchains);
3428#endif
Jesse Hall1356b0d2015-11-23 17:24:58 -08003429
Jesse Halla6429252015-11-29 18:59:42 -08003430#ifdef VK_USE_PLATFORM_XLIB_KHR
Jesse Hall091ed9e2015-11-30 00:55:29 -08003431#define VK_KHR_xlib_surface 1
Jesse Hall1356b0d2015-11-23 17:24:58 -08003432#include <X11/Xlib.h>
3433
Jesse Hall0e74f002015-11-30 11:37:59 -08003434#define VK_KHR_XLIB_SURFACE_REVISION 5
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003435#define VK_KHR_XLIB_SURFACE_EXTENSION_NUMBER 5
Jesse Hall091ed9e2015-11-30 00:55:29 -08003436#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -08003437
Jesse Hall0e74f002015-11-30 11:37:59 -08003438typedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, Display* dpy, Window window, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
Jesse Halle1b12782015-11-30 11:27:32 -08003439typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID);
Jesse Hall1356b0d2015-11-23 17:24:58 -08003440
3441#ifdef VK_PROTOTYPES
Jesse Halle1b12782015-11-30 11:27:32 -08003442VKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08003443 VkInstance instance,
3444 Display* dpy,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003445 Window window,
Jesse Hall0e74f002015-11-30 11:37:59 -08003446 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003447 VkSurfaceKHR* pSurface);
Jesse Halla6429252015-11-29 18:59:42 -08003448
Jesse Halle1b12782015-11-30 11:27:32 -08003449VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXlibPresentationSupportKHR(
Jesse Halla6429252015-11-29 18:59:42 -08003450 VkPhysicalDevice physicalDevice,
3451 uint32_t queueFamilyIndex,
3452 Display* dpy,
Jesse Hall65ab5522015-11-30 00:07:16 -08003453 VisualID visualID);
Jesse Hall1356b0d2015-11-23 17:24:58 -08003454#endif
Jesse Halla6429252015-11-29 18:59:42 -08003455#endif /* VK_USE_PLATFORM_XLIB_KHR */
Jesse Hall1356b0d2015-11-23 17:24:58 -08003456
Jesse Hall1356b0d2015-11-23 17:24:58 -08003457#ifdef VK_USE_PLATFORM_XCB_KHR
Jesse Hall091ed9e2015-11-30 00:55:29 -08003458#define VK_KHR_xcb_surface 1
Jesse Hall1356b0d2015-11-23 17:24:58 -08003459#include <xcb/xcb.h>
3460
Jesse Hall0e74f002015-11-30 11:37:59 -08003461#define VK_KHR_XCB_SURFACE_REVISION 5
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003462#define VK_KHR_XCB_SURFACE_EXTENSION_NUMBER 6
3463#define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -08003464
Jesse Hall0e74f002015-11-30 11:37:59 -08003465typedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, xcb_connection_t* connection, xcb_window_t window, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
Jesse Halle1b12782015-11-30 11:27:32 -08003466typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id);
Jesse Hall1356b0d2015-11-23 17:24:58 -08003467
3468#ifdef VK_PROTOTYPES
Jesse Halle1b12782015-11-30 11:27:32 -08003469VKAPI_ATTR VkResult VKAPI_CALL vkCreateXcbSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08003470 VkInstance instance,
3471 xcb_connection_t* connection,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003472 xcb_window_t window,
Jesse Hall0e74f002015-11-30 11:37:59 -08003473 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003474 VkSurfaceKHR* pSurface);
Jesse Halla6429252015-11-29 18:59:42 -08003475
Jesse Halle1b12782015-11-30 11:27:32 -08003476VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXcbPresentationSupportKHR(
Jesse Halla6429252015-11-29 18:59:42 -08003477 VkPhysicalDevice physicalDevice,
3478 uint32_t queueFamilyIndex,
3479 xcb_connection_t* connection,
3480 xcb_visualid_t visual_id);
Jesse Hall1356b0d2015-11-23 17:24:58 -08003481#endif
3482#endif /* VK_USE_PLATFORM_XCB_KHR */
3483
Jesse Hall1356b0d2015-11-23 17:24:58 -08003484#ifdef VK_USE_PLATFORM_WAYLAND_KHR
Jesse Hall091ed9e2015-11-30 00:55:29 -08003485#define VK_KHR_wayland_surface 1
Jesse Hall1356b0d2015-11-23 17:24:58 -08003486#include <wayland-client.h>
3487
Jesse Hall0e74f002015-11-30 11:37:59 -08003488#define VK_KHR_WAYLAND_SURFACE_REVISION 4
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003489#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NUMBER 7
3490#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -08003491
Jesse Hall0e74f002015-11-30 11:37:59 -08003492typedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, struct wl_display* display, struct wl_surface* surface, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
Jesse Halle1b12782015-11-30 11:27:32 -08003493typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display);
Jesse Hall1356b0d2015-11-23 17:24:58 -08003494
3495#ifdef VK_PROTOTYPES
Jesse Halle1b12782015-11-30 11:27:32 -08003496VKAPI_ATTR VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08003497 VkInstance instance,
3498 struct wl_display* display,
3499 struct wl_surface* surface,
Jesse Hall0e74f002015-11-30 11:37:59 -08003500 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003501 VkSurfaceKHR* pSurface);
Jesse Halla6429252015-11-29 18:59:42 -08003502
Jesse Halle1b12782015-11-30 11:27:32 -08003503VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR(
Jesse Halla6429252015-11-29 18:59:42 -08003504 VkPhysicalDevice physicalDevice,
3505 uint32_t queueFamilyIndex,
3506 struct wl_display* display);
Jesse Hall1356b0d2015-11-23 17:24:58 -08003507#endif
3508#endif /* VK_USE_PLATFORM_WAYLAND_KHR */
3509
Jesse Hall1356b0d2015-11-23 17:24:58 -08003510#ifdef VK_USE_PLATFORM_MIR_KHR
Jesse Hall091ed9e2015-11-30 00:55:29 -08003511#define VK_KHR_mir_surface 1
Jesse Hall1356b0d2015-11-23 17:24:58 -08003512#include <mir_toolkit/client_types.h>
3513
Jesse Hall0e74f002015-11-30 11:37:59 -08003514#define VK_KHR_MIR_SURFACE_REVISION 4
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003515#define VK_KHR_MIR_SURFACE_EXTENSION_NUMBER 8
3516#define VK_KHR_MIR_SURFACE_EXTENSION_NAME "VK_KHR_mir_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -08003517
Jesse Hall0e74f002015-11-30 11:37:59 -08003518typedef VkResult (VKAPI_PTR *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, MirConnection* connection, MirSurface* mirSurface, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
Jesse Halle1b12782015-11-30 11:27:32 -08003519typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection);
Jesse Hall1356b0d2015-11-23 17:24:58 -08003520
3521#ifdef VK_PROTOTYPES
Jesse Halle1b12782015-11-30 11:27:32 -08003522VKAPI_ATTR VkResult VKAPI_CALL vkCreateMirSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08003523 VkInstance instance,
3524 MirConnection* connection,
3525 MirSurface* mirSurface,
Jesse Hall0e74f002015-11-30 11:37:59 -08003526 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003527 VkSurfaceKHR* pSurface);
Jesse Halla6429252015-11-29 18:59:42 -08003528
Jesse Halle1b12782015-11-30 11:27:32 -08003529VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceMirPresentationSupportKHR(
Jesse Halla6429252015-11-29 18:59:42 -08003530 VkPhysicalDevice physicalDevice,
3531 uint32_t queueFamilyIndex,
3532 MirConnection* connection);
Jesse Hall1356b0d2015-11-23 17:24:58 -08003533#endif
3534#endif /* VK_USE_PLATFORM_MIR_KHR */
3535
Jesse Hall1356b0d2015-11-23 17:24:58 -08003536#ifdef VK_USE_PLATFORM_ANDROID_KHR
Jesse Hall091ed9e2015-11-30 00:55:29 -08003537#define VK_KHR_android_surface 1
Jesse Hall1356b0d2015-11-23 17:24:58 -08003538#include <android/native_window.h>
3539
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003540#define VK_KHR_ANDROID_SURFACE_REVISION 4
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003541#define VK_KHR_ANDROID_SURFACE_EXTENSION_NUMBER 9
3542#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -08003543
Jesse Hall0e74f002015-11-30 11:37:59 -08003544typedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, ANativeWindow* window, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
Jesse Hall1356b0d2015-11-23 17:24:58 -08003545
3546#ifdef VK_PROTOTYPES
Jesse Halle1b12782015-11-30 11:27:32 -08003547VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08003548 VkInstance instance,
3549 ANativeWindow* window,
Jesse Hall0e74f002015-11-30 11:37:59 -08003550 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003551 VkSurfaceKHR* pSurface);
3552#endif
3553#endif /* VK_USE_PLATFORM_ANDROID_KHR */
3554
Jesse Hall1356b0d2015-11-23 17:24:58 -08003555#ifdef VK_USE_PLATFORM_WIN32_KHR
Jesse Hall091ed9e2015-11-30 00:55:29 -08003556#define VK_KHR_win32_surface 1
Jesse Hall1356b0d2015-11-23 17:24:58 -08003557#include <windows.h>
3558
Jesse Hall0e74f002015-11-30 11:37:59 -08003559#define VK_KHR_WIN32_SURFACE_REVISION 4
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003560#define VK_KHR_WIN32_SURFACE_EXTENSION_NUMBER 10
3561#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
Jesse Hall1356b0d2015-11-23 17:24:58 -08003562
Jesse Hall0e74f002015-11-30 11:37:59 -08003563typedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, HINSTANCE hinstance, HWND hwnd, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
Jesse Halle1b12782015-11-30 11:27:32 -08003564typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
Jesse Hall1356b0d2015-11-23 17:24:58 -08003565
3566#ifdef VK_PROTOTYPES
Jesse Halle1b12782015-11-30 11:27:32 -08003567VKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -08003568 VkInstance instance,
3569 HINSTANCE hinstance,
3570 HWND hwnd,
Jesse Hall0e74f002015-11-30 11:37:59 -08003571 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003572 VkSurfaceKHR* pSurface);
Jesse Halla6429252015-11-29 18:59:42 -08003573
Jesse Halle1b12782015-11-30 11:27:32 -08003574VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(
Jesse Halla6429252015-11-29 18:59:42 -08003575 VkPhysicalDevice physicalDevice,
3576 uint32_t queueFamilyIndex);
Jesse Hall1356b0d2015-11-23 17:24:58 -08003577#endif
3578#endif /* VK_USE_PLATFORM_WIN32_KHR */
3579
Jesse Hall04f4f472015-08-16 19:51:04 -07003580#ifdef __cplusplus
3581}
3582#endif
3583
3584#endif