1 /// Vulkan D bindings generated by vkdgen.py for Gfx-d
2 module gfx.bindings.vulkan.vk;
3 
4 version(Windows) {
5     import core.sys.windows.windef : HINSTANCE, HWND;
6 }
7 
8 version(linux) {
9     import xcb.xcb : xcb_connection_t, xcb_visualid_t, xcb_window_t;
10 }
11 
12 version(linux) {
13     import wayland.native.client : wl_display, wl_proxy;
14     alias wl_surface = wl_proxy;
15 }
16 
17 enum VK_HEADER_VERSION =  67;
18 
19 // Basic types definition
20 
21 alias uint8_t  = ubyte;
22 alias uint16_t = ushort;
23 alias uint32_t = uint;
24 alias uint64_t = ulong;
25 alias int8_t   = byte;
26 alias int16_t  = short;
27 alias int32_t  = int;
28 alias int64_t  = long;
29 
30 // VK_VERSION_1_0
31 alias VkFlags                                 = uint32_t;
32 alias VkInstanceCreateFlags                   = VkFlags;
33 alias VkBool32                                = uint32_t;
34 alias VkFormatFeatureFlags                    = VkFlags;
35 alias VkImageUsageFlags                       = VkFlags;
36 alias VkImageCreateFlags                      = VkFlags;
37 alias VkSampleCountFlags                      = VkFlags;
38 alias VkDeviceSize                            = uint64_t;
39 alias VkQueueFlags                            = VkFlags;
40 alias VkMemoryPropertyFlags                   = VkFlags;
41 alias VkMemoryHeapFlags                       = VkFlags;
42 alias VkDeviceCreateFlags                     = VkFlags;
43 alias VkDeviceQueueCreateFlags                = VkFlags;
44 alias VkPipelineStageFlags                    = VkFlags;
45 alias VkMemoryMapFlags                        = VkFlags;
46 alias VkImageAspectFlags                      = VkFlags;
47 alias VkSparseImageFormatFlags                = VkFlags;
48 alias VkSparseMemoryBindFlags                 = VkFlags;
49 alias VkFenceCreateFlags                      = VkFlags;
50 alias VkSemaphoreCreateFlags                  = VkFlags;
51 alias VkEventCreateFlags                      = VkFlags;
52 alias VkQueryPoolCreateFlags                  = VkFlags;
53 alias VkQueryPipelineStatisticFlags           = VkFlags;
54 alias VkQueryResultFlags                      = VkFlags;
55 alias VkBufferCreateFlags                     = VkFlags;
56 alias VkBufferUsageFlags                      = VkFlags;
57 alias VkBufferViewCreateFlags                 = VkFlags;
58 alias VkImageViewCreateFlags                  = VkFlags;
59 alias VkShaderModuleCreateFlags               = VkFlags;
60 alias VkPipelineCacheCreateFlags              = VkFlags;
61 alias VkPipelineCreateFlags                   = VkFlags;
62 alias VkPipelineShaderStageCreateFlags        = VkFlags;
63 alias VkPipelineVertexInputStateCreateFlags   = VkFlags;
64 alias VkPipelineInputAssemblyStateCreateFlags = VkFlags;
65 alias VkPipelineTessellationStateCreateFlags  = VkFlags;
66 alias VkPipelineViewportStateCreateFlags      = VkFlags;
67 alias VkPipelineRasterizationStateCreateFlags = VkFlags;
68 alias VkCullModeFlags                         = VkFlags;
69 alias VkPipelineMultisampleStateCreateFlags   = VkFlags;
70 alias VkSampleMask                            = uint32_t;
71 alias VkPipelineDepthStencilStateCreateFlags  = VkFlags;
72 alias VkPipelineColorBlendStateCreateFlags    = VkFlags;
73 alias VkColorComponentFlags                   = VkFlags;
74 alias VkPipelineDynamicStateCreateFlags       = VkFlags;
75 alias VkPipelineLayoutCreateFlags             = VkFlags;
76 alias VkShaderStageFlags                      = VkFlags;
77 alias VkSamplerCreateFlags                    = VkFlags;
78 alias VkDescriptorSetLayoutCreateFlags        = VkFlags;
79 alias VkDescriptorPoolCreateFlags             = VkFlags;
80 alias VkDescriptorPoolResetFlags              = VkFlags;
81 alias VkFramebufferCreateFlags                = VkFlags;
82 alias VkRenderPassCreateFlags                 = VkFlags;
83 alias VkAttachmentDescriptionFlags            = VkFlags;
84 alias VkSubpassDescriptionFlags               = VkFlags;
85 alias VkAccessFlags                           = VkFlags;
86 alias VkDependencyFlags                       = VkFlags;
87 alias VkCommandPoolCreateFlags                = VkFlags;
88 alias VkCommandPoolResetFlags                 = VkFlags;
89 alias VkCommandBufferUsageFlags               = VkFlags;
90 alias VkQueryControlFlags                     = VkFlags;
91 alias VkCommandBufferResetFlags               = VkFlags;
92 alias VkStencilFaceFlags                      = VkFlags;
93 
94 // VK_KHR_surface
95 alias VkSurfaceTransformFlagsKHR = VkFlags;
96 alias VkCompositeAlphaFlagsKHR   = VkFlags;
97 
98 // VK_KHR_swapchain
99 alias VkSwapchainCreateFlagsKHR = VkFlags;
100 
101 // VK_KHR_display
102 alias VkDisplayPlaneAlphaFlagsKHR    = VkFlags;
103 alias VkDisplayModeCreateFlagsKHR    = VkFlags;
104 alias VkDisplaySurfaceCreateFlagsKHR = VkFlags;
105 
106 // VK_KHR_xcb_surface
107 version(linux) {
108     alias VkXcbSurfaceCreateFlagsKHR = VkFlags;
109 }
110 
111 // VK_KHR_wayland_surface
112 version(linux) {
113     alias VkWaylandSurfaceCreateFlagsKHR = VkFlags;
114 }
115 
116 // VK_KHR_win32_surface
117 version(Windows) {
118     alias VkWin32SurfaceCreateFlagsKHR = VkFlags;
119 }
120 
121 // VK_EXT_debug_report
122 alias VkDebugReportFlagsEXT = VkFlags;
123 
124 // Handles
125 
126 // VK_VERSION_1_0
127 struct VkInstance_T;       alias VkInstance       = VkInstance_T*;
128 struct VkPhysicalDevice_T; alias VkPhysicalDevice = VkPhysicalDevice_T*;
129 struct VkDevice_T;         alias VkDevice         = VkDevice_T*;
130 struct VkQueue_T;          alias VkQueue          = VkQueue_T*;
131 struct VkCommandBuffer_T;  alias VkCommandBuffer  = VkCommandBuffer_T*;
132 
133 // Non-dispatchable handles
134 
135 version(X86_64) {
136     // VK_VERSION_1_0
137     struct VkSemaphore_T;           alias VkSemaphore           = VkSemaphore_T*;
138     struct VkFence_T;               alias VkFence               = VkFence_T*;
139     struct VkDeviceMemory_T;        alias VkDeviceMemory        = VkDeviceMemory_T*;
140     struct VkBuffer_T;              alias VkBuffer              = VkBuffer_T*;
141     struct VkImage_T;               alias VkImage               = VkImage_T*;
142     struct VkEvent_T;               alias VkEvent               = VkEvent_T*;
143     struct VkQueryPool_T;           alias VkQueryPool           = VkQueryPool_T*;
144     struct VkBufferView_T;          alias VkBufferView          = VkBufferView_T*;
145     struct VkImageView_T;           alias VkImageView           = VkImageView_T*;
146     struct VkShaderModule_T;        alias VkShaderModule        = VkShaderModule_T*;
147     struct VkPipelineCache_T;       alias VkPipelineCache       = VkPipelineCache_T*;
148     struct VkPipelineLayout_T;      alias VkPipelineLayout      = VkPipelineLayout_T*;
149     struct VkRenderPass_T;          alias VkRenderPass          = VkRenderPass_T*;
150     struct VkPipeline_T;            alias VkPipeline            = VkPipeline_T*;
151     struct VkDescriptorSetLayout_T; alias VkDescriptorSetLayout = VkDescriptorSetLayout_T*;
152     struct VkSampler_T;             alias VkSampler             = VkSampler_T*;
153     struct VkDescriptorPool_T;      alias VkDescriptorPool      = VkDescriptorPool_T*;
154     struct VkDescriptorSet_T;       alias VkDescriptorSet       = VkDescriptorSet_T*;
155     struct VkFramebuffer_T;         alias VkFramebuffer         = VkFramebuffer_T*;
156     struct VkCommandPool_T;         alias VkCommandPool         = VkCommandPool_T*;
157 
158     // VK_KHR_surface
159     struct VkSurfaceKHR_T; alias VkSurfaceKHR = VkSurfaceKHR_T*;
160 
161     // VK_KHR_swapchain
162     struct VkSwapchainKHR_T; alias VkSwapchainKHR = VkSwapchainKHR_T*;
163 
164     // VK_KHR_display
165     struct VkDisplayKHR_T;     alias VkDisplayKHR     = VkDisplayKHR_T*;
166     struct VkDisplayModeKHR_T; alias VkDisplayModeKHR = VkDisplayModeKHR_T*;
167 
168     // VK_EXT_debug_report
169     struct VkDebugReportCallbackEXT_T; alias VkDebugReportCallbackEXT = VkDebugReportCallbackEXT_T*;
170 }
171 else {
172     // VK_VERSION_1_0
173     alias VkSemaphore           = ulong;
174     alias VkFence               = ulong;
175     alias VkDeviceMemory        = ulong;
176     alias VkBuffer              = ulong;
177     alias VkImage               = ulong;
178     alias VkEvent               = ulong;
179     alias VkQueryPool           = ulong;
180     alias VkBufferView          = ulong;
181     alias VkImageView           = ulong;
182     alias VkShaderModule        = ulong;
183     alias VkPipelineCache       = ulong;
184     alias VkPipelineLayout      = ulong;
185     alias VkRenderPass          = ulong;
186     alias VkPipeline            = ulong;
187     alias VkDescriptorSetLayout = ulong;
188     alias VkSampler             = ulong;
189     alias VkDescriptorPool      = ulong;
190     alias VkDescriptorSet       = ulong;
191     alias VkFramebuffer         = ulong;
192     alias VkCommandPool         = ulong;
193 
194     // VK_KHR_surface
195     alias VkSurfaceKHR = ulong;
196 
197     // VK_KHR_swapchain
198     alias VkSwapchainKHR = ulong;
199 
200     // VK_KHR_display
201     alias VkDisplayKHR     = ulong;
202     alias VkDisplayModeKHR = ulong;
203 
204     // VK_EXT_debug_report
205     alias VkDebugReportCallbackEXT = ulong;
206 }
207 
208 // Constants
209 
210 // VK_VERSION_1_0
211 enum VK_LOD_CLAMP_NONE                = 1000.0f;
212 enum VK_REMAINING_MIP_LEVELS          = ~0;
213 enum VK_REMAINING_ARRAY_LAYERS        = ~0;
214 enum VK_WHOLE_SIZE                    = ~0;
215 enum VK_ATTACHMENT_UNUSED             = ~0;
216 enum VK_TRUE                          = 1;
217 enum VK_FALSE                         = 0;
218 enum VK_QUEUE_FAMILY_IGNORED          = ~0;
219 enum VK_SUBPASS_EXTERNAL              = ~0;
220 enum VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = 256;
221 enum VK_UUID_SIZE                     = 16;
222 enum VK_MAX_MEMORY_TYPES              = 32;
223 enum VK_MAX_MEMORY_HEAPS              = 16;
224 enum VK_MAX_EXTENSION_NAME_SIZE       = 256;
225 enum VK_MAX_DESCRIPTION_SIZE          = 256;
226 
227 // VK_KHR_surface
228 enum VK_KHR_SURFACE_SPEC_VERSION      = 25;
229 enum VK_KHR_SURFACE_EXTENSION_NAME    = "VK_KHR_surface";
230 enum VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR;
231 
232 // VK_KHR_swapchain
233 enum VK_KHR_SWAPCHAIN_SPEC_VERSION   = 68;
234 enum VK_KHR_SWAPCHAIN_EXTENSION_NAME = "VK_KHR_swapchain";
235 
236 // VK_KHR_display
237 enum VK_KHR_DISPLAY_SPEC_VERSION   = 21;
238 enum VK_KHR_DISPLAY_EXTENSION_NAME = "VK_KHR_display";
239 
240 // VK_KHR_xcb_surface
241 version(linux) {
242     enum VK_KHR_XCB_SURFACE_SPEC_VERSION   = 6;
243     enum VK_KHR_XCB_SURFACE_EXTENSION_NAME = "VK_KHR_xcb_surface";
244 }
245 
246 // VK_KHR_wayland_surface
247 version(linux) {
248     enum VK_KHR_WAYLAND_SURFACE_SPEC_VERSION   = 6;
249     enum VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME = "VK_KHR_wayland_surface";
250 }
251 
252 // VK_KHR_win32_surface
253 version(Windows) {
254     enum VK_KHR_WIN32_SURFACE_SPEC_VERSION   = 6;
255     enum VK_KHR_WIN32_SURFACE_EXTENSION_NAME = "VK_KHR_win32_surface";
256 }
257 
258 // VK_EXT_debug_report
259 enum VK_EXT_DEBUG_REPORT_SPEC_VERSION               = 9;
260 enum VK_EXT_DEBUG_REPORT_EXTENSION_NAME             = "VK_EXT_debug_report";
261 enum VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
262 enum VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT   = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT;
263 
264 // Function pointers
265 
266 extern(C) nothrow {
267     // VK_VERSION_1_0
268     alias PFN_vkAllocationFunction = void* function(
269         void*                   pUserData,
270         size_t                  size,
271         size_t                  alignment,
272         VkSystemAllocationScope allocationScope
273     );
274     alias PFN_vkReallocationFunction = void* function(
275         void*                   pUserData,
276         void*                   pOriginal,
277         size_t                  size,
278         size_t                  alignment,
279         VkSystemAllocationScope allocationScope
280     );
281     alias PFN_vkFreeFunction = void function(
282         void* pUserData,
283         void* pMemory
284     );
285     alias PFN_vkInternalAllocationNotification = void function(
286         void*                    pUserData,
287         size_t                   size,
288         VkInternalAllocationType allocationType,
289         VkSystemAllocationScope  allocationScope
290     );
291     alias PFN_vkInternalFreeNotification = void function(
292         void*                    pUserData,
293         size_t                   size,
294         VkInternalAllocationType allocationType,
295         VkSystemAllocationScope  allocationScope
296     );
297     alias PFN_vkVoidFunction = void function();
298 
299     // VK_EXT_debug_report
300     alias PFN_vkDebugReportCallbackEXT = VkBool32 function(
301         VkDebugReportFlagsEXT      flags,
302         VkDebugReportObjectTypeEXT objectType,
303         uint64_t                   object,
304         size_t                     location,
305         int32_t                    messageCode,
306         const(char)*               pLayerPrefix,
307         const(char)*               pMessage,
308         void*                      pUserData
309     );
310 }
311 
312 // Enumerations
313 
314 // VK_VERSION_1_0
315 enum VkPipelineCacheHeaderVersion {
316     VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
317 }
318 enum VK_PIPELINE_CACHE_HEADER_VERSION_ONE = VkPipelineCacheHeaderVersion.VK_PIPELINE_CACHE_HEADER_VERSION_ONE;
319 
320 enum VkResult {
321     VK_SUCCESS                           = 0,
322     VK_NOT_READY                         = 1,
323     VK_TIMEOUT                           = 2,
324     VK_EVENT_SET                         = 3,
325     VK_EVENT_RESET                       = 4,
326     VK_INCOMPLETE                        = 5,
327     VK_ERROR_OUT_OF_HOST_MEMORY          = -1,
328     VK_ERROR_OUT_OF_DEVICE_MEMORY        = -2,
329     VK_ERROR_INITIALIZATION_FAILED       = -3,
330     VK_ERROR_DEVICE_LOST                 = -4,
331     VK_ERROR_MEMORY_MAP_FAILED           = -5,
332     VK_ERROR_LAYER_NOT_PRESENT           = -6,
333     VK_ERROR_EXTENSION_NOT_PRESENT       = -7,
334     VK_ERROR_FEATURE_NOT_PRESENT         = -8,
335     VK_ERROR_INCOMPATIBLE_DRIVER         = -9,
336     VK_ERROR_TOO_MANY_OBJECTS            = -10,
337     VK_ERROR_FORMAT_NOT_SUPPORTED        = -11,
338     VK_ERROR_FRAGMENTED_POOL             = -12,
339     VK_ERROR_SURFACE_LOST_KHR            = -1000000000,
340     VK_ERROR_NATIVE_WINDOW_IN_USE_KHR    = -1000000001,
341     VK_SUBOPTIMAL_KHR                    = 1000001003,
342     VK_ERROR_OUT_OF_DATE_KHR             = -1000001004,
343     VK_ERROR_INCOMPATIBLE_DISPLAY_KHR    = -1000003001,
344     VK_ERROR_VALIDATION_FAILED_EXT       = -1000011001,
345     VK_ERROR_INVALID_SHADER_NV           = -1000012000,
346     VK_ERROR_OUT_OF_POOL_MEMORY_KHR      = -1000069000,
347     VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003,
348     VK_ERROR_NOT_PERMITTED_EXT           = -1000174001,
349 }
350 enum VK_SUCCESS                           = VkResult.VK_SUCCESS;
351 enum VK_NOT_READY                         = VkResult.VK_NOT_READY;
352 enum VK_TIMEOUT                           = VkResult.VK_TIMEOUT;
353 enum VK_EVENT_SET                         = VkResult.VK_EVENT_SET;
354 enum VK_EVENT_RESET                       = VkResult.VK_EVENT_RESET;
355 enum VK_INCOMPLETE                        = VkResult.VK_INCOMPLETE;
356 enum VK_ERROR_OUT_OF_HOST_MEMORY          = VkResult.VK_ERROR_OUT_OF_HOST_MEMORY;
357 enum VK_ERROR_OUT_OF_DEVICE_MEMORY        = VkResult.VK_ERROR_OUT_OF_DEVICE_MEMORY;
358 enum VK_ERROR_INITIALIZATION_FAILED       = VkResult.VK_ERROR_INITIALIZATION_FAILED;
359 enum VK_ERROR_DEVICE_LOST                 = VkResult.VK_ERROR_DEVICE_LOST;
360 enum VK_ERROR_MEMORY_MAP_FAILED           = VkResult.VK_ERROR_MEMORY_MAP_FAILED;
361 enum VK_ERROR_LAYER_NOT_PRESENT           = VkResult.VK_ERROR_LAYER_NOT_PRESENT;
362 enum VK_ERROR_EXTENSION_NOT_PRESENT       = VkResult.VK_ERROR_EXTENSION_NOT_PRESENT;
363 enum VK_ERROR_FEATURE_NOT_PRESENT         = VkResult.VK_ERROR_FEATURE_NOT_PRESENT;
364 enum VK_ERROR_INCOMPATIBLE_DRIVER         = VkResult.VK_ERROR_INCOMPATIBLE_DRIVER;
365 enum VK_ERROR_TOO_MANY_OBJECTS            = VkResult.VK_ERROR_TOO_MANY_OBJECTS;
366 enum VK_ERROR_FORMAT_NOT_SUPPORTED        = VkResult.VK_ERROR_FORMAT_NOT_SUPPORTED;
367 enum VK_ERROR_FRAGMENTED_POOL             = VkResult.VK_ERROR_FRAGMENTED_POOL;
368 enum VK_ERROR_SURFACE_LOST_KHR            = VkResult.VK_ERROR_SURFACE_LOST_KHR;
369 enum VK_ERROR_NATIVE_WINDOW_IN_USE_KHR    = VkResult.VK_ERROR_NATIVE_WINDOW_IN_USE_KHR;
370 enum VK_SUBOPTIMAL_KHR                    = VkResult.VK_SUBOPTIMAL_KHR;
371 enum VK_ERROR_OUT_OF_DATE_KHR             = VkResult.VK_ERROR_OUT_OF_DATE_KHR;
372 enum VK_ERROR_INCOMPATIBLE_DISPLAY_KHR    = VkResult.VK_ERROR_INCOMPATIBLE_DISPLAY_KHR;
373 enum VK_ERROR_VALIDATION_FAILED_EXT       = VkResult.VK_ERROR_VALIDATION_FAILED_EXT;
374 enum VK_ERROR_INVALID_SHADER_NV           = VkResult.VK_ERROR_INVALID_SHADER_NV;
375 enum VK_ERROR_OUT_OF_POOL_MEMORY_KHR      = VkResult.VK_ERROR_OUT_OF_POOL_MEMORY_KHR;
376 enum VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VkResult.VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR;
377 enum VK_ERROR_NOT_PERMITTED_EXT           = VkResult.VK_ERROR_NOT_PERMITTED_EXT;
378 
379 enum VkStructureType {
380     VK_STRUCTURE_TYPE_APPLICATION_INFO                                             = 0,
381     VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO                                         = 1,
382     VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO                                     = 2,
383     VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO                                           = 3,
384     VK_STRUCTURE_TYPE_SUBMIT_INFO                                                  = 4,
385     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO                                         = 5,
386     VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE                                          = 6,
387     VK_STRUCTURE_TYPE_BIND_SPARSE_INFO                                             = 7,
388     VK_STRUCTURE_TYPE_FENCE_CREATE_INFO                                            = 8,
389     VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO                                        = 9,
390     VK_STRUCTURE_TYPE_EVENT_CREATE_INFO                                            = 10,
391     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO                                       = 11,
392     VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO                                           = 12,
393     VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO                                      = 13,
394     VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO                                            = 14,
395     VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO                                       = 15,
396     VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO                                    = 16,
397     VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO                                   = 17,
398     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO                            = 18,
399     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO                      = 19,
400     VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO                    = 20,
401     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO                      = 21,
402     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO                          = 22,
403     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO                     = 23,
404     VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO                       = 24,
405     VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO                     = 25,
406     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO                       = 26,
407     VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO                           = 27,
408     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO                                = 28,
409     VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO                                 = 29,
410     VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO                                  = 30,
411     VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO                                          = 31,
412     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO                            = 32,
413     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO                                  = 33,
414     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO                                 = 34,
415     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET                                         = 35,
416     VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET                                          = 36,
417     VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO                                      = 37,
418     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO                                      = 38,
419     VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO                                     = 39,
420     VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO                                 = 40,
421     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO                              = 41,
422     VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO                                    = 42,
423     VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO                                       = 43,
424     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER                                        = 44,
425     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER                                         = 45,
426     VK_STRUCTURE_TYPE_MEMORY_BARRIER                                               = 46,
427     VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO                                  = 47,
428     VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO                                    = 48,
429     VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR                                    = 1000001000,
430     VK_STRUCTURE_TYPE_PRESENT_INFO_KHR                                             = 1000001001,
431     VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR                                 = 1000002000,
432     VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR                              = 1000002001,
433     VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR                                     = 1000003000,
434     VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR                                 = 1000004000,
435     VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR                                  = 1000005000,
436     VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR                              = 1000006000,
437     VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR                                  = 1000007000,
438     VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR                              = 1000008000,
439     VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR                                = 1000009000,
440     VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID                                        = 1000010000,
441     VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT                        = 1000011000,
442     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD         = 1000018000,
443     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT                            = 1000022000,
444     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT                             = 1000022001,
445     VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT                                 = 1000022002,
446     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV                    = 1000026000,
447     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV                   = 1000026001,
448     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV                 = 1000026002,
449     VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD                     = 1000041000,
450     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHX                        = 1000053000,
451     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX                       = 1000053001,
452     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX                     = 1000053002,
453     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV                         = 1000056000,
454     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV                               = 1000056001,
455     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV                           = 1000057000,
456     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV                           = 1000057001,
457     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV                    = 1000058000,
458     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR                               = 1000059000,
459     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR                             = 1000059001,
460     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR                                      = 1000059002,
461     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR                                = 1000059003,
462     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR                      = 1000059004,
463     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR                                = 1000059005,
464     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR                      = 1000059006,
465     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR                         = 1000059007,
466     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR               = 1000059008,
467     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHX                               = 1000060000,
468     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHX                      = 1000060003,
469     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHX                   = 1000060004,
470     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHX                                 = 1000060005,
471     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHX                            = 1000060006,
472     VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX                                  = 1000060010,
473     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHX                     = 1000060013,
474     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHX                      = 1000060014,
475     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX                        = 1000060007,
476     VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHX                              = 1000060008,
477     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHX                         = 1000060009,
478     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHX                                = 1000060011,
479     VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHX                       = 1000060012,
480     VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT                                         = 1000061000,
481     VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN                                    = 1000062000,
482     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX                         = 1000070000,
483     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX                          = 1000070001,
484     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR               = 1000071000,
485     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR                         = 1000071001,
486     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR                     = 1000071002,
487     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR                               = 1000071003,
488     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR                            = 1000071004,
489     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR                       = 1000072000,
490     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR                        = 1000072001,
491     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR                              = 1000072002,
492     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR                          = 1000073000,
493     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR                          = 1000073001,
494     VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR                           = 1000073002,
495     VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR                             = 1000073003,
496     VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR                                    = 1000074000,
497     VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR                                     = 1000074001,
498     VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR                                       = 1000074002,
499     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR                   = 1000075000,
500     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR                  = 1000076000,
501     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR                            = 1000076001,
502     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR                             = 1000077000,
503     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR                       = 1000078000,
504     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR                       = 1000078001,
505     VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR                                  = 1000078002,
506     VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR                          = 1000078003,
507     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR                                 = 1000079000,
508     VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR                                    = 1000079001,
509     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR               = 1000080000,
510     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR                   = 1000083000,
511     VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR                                          = 1000084000,
512     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR                   = 1000085000,
513     VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX                                 = 1000086000,
514     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX                     = 1000086001,
515     VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX                                = 1000086002,
516     VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX                      = 1000086003,
517     VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX                         = 1000086004,
518     VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX                       = 1000086005,
519     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV             = 1000087000,
520     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT                                   = 1000090000,
521     VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT                                       = 1000091000,
522     VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT                                        = 1000091001,
523     VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT                                       = 1000091002,
524     VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT                            = 1000091003,
525     VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE                                    = 1000092000,
526     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
527     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV               = 1000098000,
528     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT             = 1000099000,
529     VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT             = 1000099001,
530     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT    = 1000101000,
531     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT    = 1000101001,
532     VK_STRUCTURE_TYPE_HDR_METADATA_EXT                                             = 1000105000,
533     VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR                      = 1000111000,
534     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR                      = 1000112000,
535     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR                                = 1000112001,
536     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR                                 = 1000113000,
537     VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR                           = 1000114000,
538     VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR                           = 1000114001,
539     VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR                              = 1000114002,
540     VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR                                     = 1000115000,
541     VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR                                        = 1000115001,
542     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR                = 1000117000,
543     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR          = 1000117001,
544     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR                             = 1000117002,
545     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR    = 1000117003,
546     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR                           = 1000119000,
547     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR                                   = 1000119001,
548     VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR                                         = 1000119002,
549     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR                = 1000120000,
550     VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK                                  = 1000122000,
551     VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK                                = 1000123000,
552     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR                            = 1000127000,
553     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR                           = 1000127001,
554     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT         = 1000130000,
555     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT                       = 1000130001,
556     VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT                                    = 1000143000,
557     VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT                  = 1000143001,
558     VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT              = 1000143002,
559     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT              = 1000143003,
560     VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT                                   = 1000143004,
561     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR                        = 1000146000,
562     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR                         = 1000146001,
563     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR                  = 1000146002,
564     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR                                    = 1000146003,
565     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR                       = 1000146004,
566     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR                            = 1000147000,
567     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT        = 1000148000,
568     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT      = 1000148001,
569     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT          = 1000148002,
570     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV              = 1000149000,
571     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV            = 1000152000,
572     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR                     = 1000156000,
573     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR                            = 1000156001,
574     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR                             = 1000156002,
575     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR                     = 1000156003,
576     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR        = 1000156004,
577     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR         = 1000156005,
578     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR                                  = 1000157000,
579     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR                                   = 1000157001,
580     VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT                             = 1000160000,
581     VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT               = 1000160001,
582     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT                 = 1000174000,
583     VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT                          = 1000178000,
584     VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT                           = 1000178001,
585     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT          = 1000178002,
586 }
587 enum VK_STRUCTURE_TYPE_APPLICATION_INFO                                             = VkStructureType.VK_STRUCTURE_TYPE_APPLICATION_INFO;
588 enum VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO                                         = VkStructureType.VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
589 enum VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO                                     = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
590 enum VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO                                           = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
591 enum VK_STRUCTURE_TYPE_SUBMIT_INFO                                                  = VkStructureType.VK_STRUCTURE_TYPE_SUBMIT_INFO;
592 enum VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO                                         = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
593 enum VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE                                          = VkStructureType.VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE;
594 enum VK_STRUCTURE_TYPE_BIND_SPARSE_INFO                                             = VkStructureType.VK_STRUCTURE_TYPE_BIND_SPARSE_INFO;
595 enum VK_STRUCTURE_TYPE_FENCE_CREATE_INFO                                            = VkStructureType.VK_STRUCTURE_TYPE_FENCE_CREATE_INFO;
596 enum VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO                                        = VkStructureType.VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO;
597 enum VK_STRUCTURE_TYPE_EVENT_CREATE_INFO                                            = VkStructureType.VK_STRUCTURE_TYPE_EVENT_CREATE_INFO;
598 enum VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO                                       = VkStructureType.VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO;
599 enum VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO                                           = VkStructureType.VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
600 enum VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO                                      = VkStructureType.VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO;
601 enum VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO                                            = VkStructureType.VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
602 enum VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO                                       = VkStructureType.VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
603 enum VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO                                    = VkStructureType.VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
604 enum VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO                                   = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO;
605 enum VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO                            = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
606 enum VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO                      = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO;
607 enum VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO                    = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO;
608 enum VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO                      = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO;
609 enum VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO                          = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO;
610 enum VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO                     = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO;
611 enum VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO                       = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO;
612 enum VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO                     = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO;
613 enum VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO                       = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO;
614 enum VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO                           = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO;
615 enum VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO                                = VkStructureType.VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;
616 enum VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO                                 = VkStructureType.VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO;
617 enum VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO                                  = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
618 enum VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO                                          = VkStructureType.VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
619 enum VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO                            = VkStructureType.VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
620 enum VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO                                  = VkStructureType.VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
621 enum VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO                                 = VkStructureType.VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
622 enum VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET                                         = VkStructureType.VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
623 enum VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET                                          = VkStructureType.VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET;
624 enum VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO                                      = VkStructureType.VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO;
625 enum VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO                                      = VkStructureType.VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO;
626 enum VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO                                     = VkStructureType.VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO;
627 enum VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO                                 = VkStructureType.VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
628 enum VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO                              = VkStructureType.VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO;
629 enum VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO                                    = VkStructureType.VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
630 enum VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO                                       = VkStructureType.VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
631 enum VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER                                        = VkStructureType.VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER;
632 enum VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER                                         = VkStructureType.VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
633 enum VK_STRUCTURE_TYPE_MEMORY_BARRIER                                               = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_BARRIER;
634 enum VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO                                  = VkStructureType.VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO;
635 enum VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO                                    = VkStructureType.VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO;
636 enum VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR                                    = VkStructureType.VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR;
637 enum VK_STRUCTURE_TYPE_PRESENT_INFO_KHR                                             = VkStructureType.VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
638 enum VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR                                 = VkStructureType.VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR;
639 enum VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR                              = VkStructureType.VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR;
640 enum VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR                                     = VkStructureType.VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR;
641 enum VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR                                 = VkStructureType.VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR;
642 enum VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR                                  = VkStructureType.VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR;
643 enum VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR                              = VkStructureType.VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR;
644 enum VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR                                  = VkStructureType.VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR;
645 enum VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR                              = VkStructureType.VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR;
646 enum VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR                                = VkStructureType.VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR;
647 enum VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID                                        = VkStructureType.VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID;
648 enum VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT                        = VkStructureType.VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
649 enum VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD         = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD;
650 enum VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT                            = VkStructureType.VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT;
651 enum VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT                             = VkStructureType.VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT;
652 enum VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT                                 = VkStructureType.VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT;
653 enum VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV                    = VkStructureType.VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV;
654 enum VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV                   = VkStructureType.VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV;
655 enum VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV                 = VkStructureType.VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV;
656 enum VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD                     = VkStructureType.VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD;
657 enum VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHX                        = VkStructureType.VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHX;
658 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX                       = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX;
659 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX                     = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX;
660 enum VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV                         = VkStructureType.VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV;
661 enum VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV                               = VkStructureType.VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV;
662 enum VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV                           = VkStructureType.VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV;
663 enum VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV                           = VkStructureType.VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV;
664 enum VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV                    = VkStructureType.VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV;
665 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR                               = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR;
666 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR                             = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR;
667 enum VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR                                      = VkStructureType.VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR;
668 enum VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR                                = VkStructureType.VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR;
669 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR                      = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR;
670 enum VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR                                = VkStructureType.VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR;
671 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR                      = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR;
672 enum VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR                         = VkStructureType.VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR;
673 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR               = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR;
674 enum VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHX                               = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHX;
675 enum VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHX                      = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHX;
676 enum VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHX                   = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHX;
677 enum VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHX                                 = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHX;
678 enum VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHX                            = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHX;
679 enum VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX                                  = VkStructureType.VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX;
680 enum VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHX                     = VkStructureType.VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHX;
681 enum VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHX                      = VkStructureType.VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHX;
682 enum VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX                        = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX;
683 enum VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHX                              = VkStructureType.VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHX;
684 enum VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHX                         = VkStructureType.VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHX;
685 enum VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHX                                = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHX;
686 enum VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHX                       = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHX;
687 enum VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT                                         = VkStructureType.VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT;
688 enum VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN                                    = VkStructureType.VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN;
689 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX                         = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX;
690 enum VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX                          = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX;
691 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR               = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR;
692 enum VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR                         = VkStructureType.VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR;
693 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR                     = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR;
694 enum VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR                               = VkStructureType.VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR;
695 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR                            = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR;
696 enum VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR                       = VkStructureType.VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR;
697 enum VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR                        = VkStructureType.VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR;
698 enum VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR                              = VkStructureType.VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR;
699 enum VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR                          = VkStructureType.VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
700 enum VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR                          = VkStructureType.VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
701 enum VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR                           = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR;
702 enum VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR                             = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR;
703 enum VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR                                    = VkStructureType.VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR;
704 enum VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR                                     = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR;
705 enum VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR                                       = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR;
706 enum VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR                   = VkStructureType.VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR;
707 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR                  = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR;
708 enum VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR                            = VkStructureType.VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR;
709 enum VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR                             = VkStructureType.VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR;
710 enum VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR                       = VkStructureType.VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
711 enum VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR                       = VkStructureType.VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
712 enum VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR                                  = VkStructureType.VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR;
713 enum VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR                          = VkStructureType.VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR;
714 enum VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR                                 = VkStructureType.VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR;
715 enum VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR                                    = VkStructureType.VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR;
716 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR               = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR;
717 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR                   = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR;
718 enum VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR                                          = VkStructureType.VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR;
719 enum VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR                   = VkStructureType.VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR;
720 enum VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX                                 = VkStructureType.VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX;
721 enum VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX                     = VkStructureType.VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX;
722 enum VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX                                = VkStructureType.VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX;
723 enum VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX                      = VkStructureType.VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX;
724 enum VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX                         = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX;
725 enum VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX                       = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX;
726 enum VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV             = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV;
727 enum VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT                                   = VkStructureType.VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT;
728 enum VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT                                       = VkStructureType.VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT;
729 enum VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT                                        = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT;
730 enum VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT                                       = VkStructureType.VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT;
731 enum VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT                            = VkStructureType.VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT;
732 enum VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE                                    = VkStructureType.VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE;
733 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX;
734 enum VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV               = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV;
735 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT             = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT;
736 enum VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT             = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT;
737 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT    = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT;
738 enum VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT    = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT;
739 enum VK_STRUCTURE_TYPE_HDR_METADATA_EXT                                             = VkStructureType.VK_STRUCTURE_TYPE_HDR_METADATA_EXT;
740 enum VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR                      = VkStructureType.VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR;
741 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR                      = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR;
742 enum VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR                                = VkStructureType.VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR;
743 enum VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR                                 = VkStructureType.VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR;
744 enum VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR                           = VkStructureType.VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR;
745 enum VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR                           = VkStructureType.VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR;
746 enum VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR                              = VkStructureType.VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR;
747 enum VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR                                     = VkStructureType.VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR;
748 enum VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR                                        = VkStructureType.VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR;
749 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR                = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR;
750 enum VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR          = VkStructureType.VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR;
751 enum VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR                             = VkStructureType.VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR;
752 enum VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR    = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR;
753 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR                           = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR;
754 enum VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR                                   = VkStructureType.VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR;
755 enum VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR                                         = VkStructureType.VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR;
756 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR                = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR;
757 enum VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK                                  = VkStructureType.VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK;
758 enum VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK                                = VkStructureType.VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK;
759 enum VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR                            = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR;
760 enum VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR                           = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR;
761 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT         = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT;
762 enum VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT                       = VkStructureType.VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT;
763 enum VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT                                    = VkStructureType.VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT;
764 enum VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT                  = VkStructureType.VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT;
765 enum VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT              = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT;
766 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT              = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT;
767 enum VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT                                   = VkStructureType.VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT;
768 enum VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR                        = VkStructureType.VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR;
769 enum VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR                         = VkStructureType.VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR;
770 enum VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR                  = VkStructureType.VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR;
771 enum VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR                                    = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR;
772 enum VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR                       = VkStructureType.VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR;
773 enum VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR                            = VkStructureType.VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR;
774 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT        = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT;
775 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT      = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT;
776 enum VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT          = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT;
777 enum VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV              = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV;
778 enum VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV            = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV;
779 enum VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR                     = VkStructureType.VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR;
780 enum VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR                            = VkStructureType.VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR;
781 enum VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR                             = VkStructureType.VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR;
782 enum VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR                     = VkStructureType.VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR;
783 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR        = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR;
784 enum VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR         = VkStructureType.VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR;
785 enum VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR                                  = VkStructureType.VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR;
786 enum VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR                                   = VkStructureType.VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR;
787 enum VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT                             = VkStructureType.VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT;
788 enum VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT               = VkStructureType.VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT;
789 enum VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT                 = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT;
790 enum VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT                          = VkStructureType.VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT;
791 enum VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT                           = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT;
792 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT          = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT;
793 
794 enum VkSystemAllocationScope {
795     VK_SYSTEM_ALLOCATION_SCOPE_COMMAND  = 0,
796     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT   = 1,
797     VK_SYSTEM_ALLOCATION_SCOPE_CACHE    = 2,
798     VK_SYSTEM_ALLOCATION_SCOPE_DEVICE   = 3,
799     VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
800 }
801 enum VK_SYSTEM_ALLOCATION_SCOPE_COMMAND  = VkSystemAllocationScope.VK_SYSTEM_ALLOCATION_SCOPE_COMMAND;
802 enum VK_SYSTEM_ALLOCATION_SCOPE_OBJECT   = VkSystemAllocationScope.VK_SYSTEM_ALLOCATION_SCOPE_OBJECT;
803 enum VK_SYSTEM_ALLOCATION_SCOPE_CACHE    = VkSystemAllocationScope.VK_SYSTEM_ALLOCATION_SCOPE_CACHE;
804 enum VK_SYSTEM_ALLOCATION_SCOPE_DEVICE   = VkSystemAllocationScope.VK_SYSTEM_ALLOCATION_SCOPE_DEVICE;
805 enum VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = VkSystemAllocationScope.VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE;
806 
807 enum VkInternalAllocationType {
808     VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
809 }
810 enum VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = VkInternalAllocationType.VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE;
811 
812 enum VkFormat {
813     VK_FORMAT_UNDEFINED                                      = 0,
814     VK_FORMAT_R4G4_UNORM_PACK8                               = 1,
815     VK_FORMAT_R4G4B4A4_UNORM_PACK16                          = 2,
816     VK_FORMAT_B4G4R4A4_UNORM_PACK16                          = 3,
817     VK_FORMAT_R5G6B5_UNORM_PACK16                            = 4,
818     VK_FORMAT_B5G6R5_UNORM_PACK16                            = 5,
819     VK_FORMAT_R5G5B5A1_UNORM_PACK16                          = 6,
820     VK_FORMAT_B5G5R5A1_UNORM_PACK16                          = 7,
821     VK_FORMAT_A1R5G5B5_UNORM_PACK16                          = 8,
822     VK_FORMAT_R8_UNORM                                       = 9,
823     VK_FORMAT_R8_SNORM                                       = 10,
824     VK_FORMAT_R8_USCALED                                     = 11,
825     VK_FORMAT_R8_SSCALED                                     = 12,
826     VK_FORMAT_R8_UINT                                        = 13,
827     VK_FORMAT_R8_SINT                                        = 14,
828     VK_FORMAT_R8_SRGB                                        = 15,
829     VK_FORMAT_R8G8_UNORM                                     = 16,
830     VK_FORMAT_R8G8_SNORM                                     = 17,
831     VK_FORMAT_R8G8_USCALED                                   = 18,
832     VK_FORMAT_R8G8_SSCALED                                   = 19,
833     VK_FORMAT_R8G8_UINT                                      = 20,
834     VK_FORMAT_R8G8_SINT                                      = 21,
835     VK_FORMAT_R8G8_SRGB                                      = 22,
836     VK_FORMAT_R8G8B8_UNORM                                   = 23,
837     VK_FORMAT_R8G8B8_SNORM                                   = 24,
838     VK_FORMAT_R8G8B8_USCALED                                 = 25,
839     VK_FORMAT_R8G8B8_SSCALED                                 = 26,
840     VK_FORMAT_R8G8B8_UINT                                    = 27,
841     VK_FORMAT_R8G8B8_SINT                                    = 28,
842     VK_FORMAT_R8G8B8_SRGB                                    = 29,
843     VK_FORMAT_B8G8R8_UNORM                                   = 30,
844     VK_FORMAT_B8G8R8_SNORM                                   = 31,
845     VK_FORMAT_B8G8R8_USCALED                                 = 32,
846     VK_FORMAT_B8G8R8_SSCALED                                 = 33,
847     VK_FORMAT_B8G8R8_UINT                                    = 34,
848     VK_FORMAT_B8G8R8_SINT                                    = 35,
849     VK_FORMAT_B8G8R8_SRGB                                    = 36,
850     VK_FORMAT_R8G8B8A8_UNORM                                 = 37,
851     VK_FORMAT_R8G8B8A8_SNORM                                 = 38,
852     VK_FORMAT_R8G8B8A8_USCALED                               = 39,
853     VK_FORMAT_R8G8B8A8_SSCALED                               = 40,
854     VK_FORMAT_R8G8B8A8_UINT                                  = 41,
855     VK_FORMAT_R8G8B8A8_SINT                                  = 42,
856     VK_FORMAT_R8G8B8A8_SRGB                                  = 43,
857     VK_FORMAT_B8G8R8A8_UNORM                                 = 44,
858     VK_FORMAT_B8G8R8A8_SNORM                                 = 45,
859     VK_FORMAT_B8G8R8A8_USCALED                               = 46,
860     VK_FORMAT_B8G8R8A8_SSCALED                               = 47,
861     VK_FORMAT_B8G8R8A8_UINT                                  = 48,
862     VK_FORMAT_B8G8R8A8_SINT                                  = 49,
863     VK_FORMAT_B8G8R8A8_SRGB                                  = 50,
864     VK_FORMAT_A8B8G8R8_UNORM_PACK32                          = 51,
865     VK_FORMAT_A8B8G8R8_SNORM_PACK32                          = 52,
866     VK_FORMAT_A8B8G8R8_USCALED_PACK32                        = 53,
867     VK_FORMAT_A8B8G8R8_SSCALED_PACK32                        = 54,
868     VK_FORMAT_A8B8G8R8_UINT_PACK32                           = 55,
869     VK_FORMAT_A8B8G8R8_SINT_PACK32                           = 56,
870     VK_FORMAT_A8B8G8R8_SRGB_PACK32                           = 57,
871     VK_FORMAT_A2R10G10B10_UNORM_PACK32                       = 58,
872     VK_FORMAT_A2R10G10B10_SNORM_PACK32                       = 59,
873     VK_FORMAT_A2R10G10B10_USCALED_PACK32                     = 60,
874     VK_FORMAT_A2R10G10B10_SSCALED_PACK32                     = 61,
875     VK_FORMAT_A2R10G10B10_UINT_PACK32                        = 62,
876     VK_FORMAT_A2R10G10B10_SINT_PACK32                        = 63,
877     VK_FORMAT_A2B10G10R10_UNORM_PACK32                       = 64,
878     VK_FORMAT_A2B10G10R10_SNORM_PACK32                       = 65,
879     VK_FORMAT_A2B10G10R10_USCALED_PACK32                     = 66,
880     VK_FORMAT_A2B10G10R10_SSCALED_PACK32                     = 67,
881     VK_FORMAT_A2B10G10R10_UINT_PACK32                        = 68,
882     VK_FORMAT_A2B10G10R10_SINT_PACK32                        = 69,
883     VK_FORMAT_R16_UNORM                                      = 70,
884     VK_FORMAT_R16_SNORM                                      = 71,
885     VK_FORMAT_R16_USCALED                                    = 72,
886     VK_FORMAT_R16_SSCALED                                    = 73,
887     VK_FORMAT_R16_UINT                                       = 74,
888     VK_FORMAT_R16_SINT                                       = 75,
889     VK_FORMAT_R16_SFLOAT                                     = 76,
890     VK_FORMAT_R16G16_UNORM                                   = 77,
891     VK_FORMAT_R16G16_SNORM                                   = 78,
892     VK_FORMAT_R16G16_USCALED                                 = 79,
893     VK_FORMAT_R16G16_SSCALED                                 = 80,
894     VK_FORMAT_R16G16_UINT                                    = 81,
895     VK_FORMAT_R16G16_SINT                                    = 82,
896     VK_FORMAT_R16G16_SFLOAT                                  = 83,
897     VK_FORMAT_R16G16B16_UNORM                                = 84,
898     VK_FORMAT_R16G16B16_SNORM                                = 85,
899     VK_FORMAT_R16G16B16_USCALED                              = 86,
900     VK_FORMAT_R16G16B16_SSCALED                              = 87,
901     VK_FORMAT_R16G16B16_UINT                                 = 88,
902     VK_FORMAT_R16G16B16_SINT                                 = 89,
903     VK_FORMAT_R16G16B16_SFLOAT                               = 90,
904     VK_FORMAT_R16G16B16A16_UNORM                             = 91,
905     VK_FORMAT_R16G16B16A16_SNORM                             = 92,
906     VK_FORMAT_R16G16B16A16_USCALED                           = 93,
907     VK_FORMAT_R16G16B16A16_SSCALED                           = 94,
908     VK_FORMAT_R16G16B16A16_UINT                              = 95,
909     VK_FORMAT_R16G16B16A16_SINT                              = 96,
910     VK_FORMAT_R16G16B16A16_SFLOAT                            = 97,
911     VK_FORMAT_R32_UINT                                       = 98,
912     VK_FORMAT_R32_SINT                                       = 99,
913     VK_FORMAT_R32_SFLOAT                                     = 100,
914     VK_FORMAT_R32G32_UINT                                    = 101,
915     VK_FORMAT_R32G32_SINT                                    = 102,
916     VK_FORMAT_R32G32_SFLOAT                                  = 103,
917     VK_FORMAT_R32G32B32_UINT                                 = 104,
918     VK_FORMAT_R32G32B32_SINT                                 = 105,
919     VK_FORMAT_R32G32B32_SFLOAT                               = 106,
920     VK_FORMAT_R32G32B32A32_UINT                              = 107,
921     VK_FORMAT_R32G32B32A32_SINT                              = 108,
922     VK_FORMAT_R32G32B32A32_SFLOAT                            = 109,
923     VK_FORMAT_R64_UINT                                       = 110,
924     VK_FORMAT_R64_SINT                                       = 111,
925     VK_FORMAT_R64_SFLOAT                                     = 112,
926     VK_FORMAT_R64G64_UINT                                    = 113,
927     VK_FORMAT_R64G64_SINT                                    = 114,
928     VK_FORMAT_R64G64_SFLOAT                                  = 115,
929     VK_FORMAT_R64G64B64_UINT                                 = 116,
930     VK_FORMAT_R64G64B64_SINT                                 = 117,
931     VK_FORMAT_R64G64B64_SFLOAT                               = 118,
932     VK_FORMAT_R64G64B64A64_UINT                              = 119,
933     VK_FORMAT_R64G64B64A64_SINT                              = 120,
934     VK_FORMAT_R64G64B64A64_SFLOAT                            = 121,
935     VK_FORMAT_B10G11R11_UFLOAT_PACK32                        = 122,
936     VK_FORMAT_E5B9G9R9_UFLOAT_PACK32                         = 123,
937     VK_FORMAT_D16_UNORM                                      = 124,
938     VK_FORMAT_X8_D24_UNORM_PACK32                            = 125,
939     VK_FORMAT_D32_SFLOAT                                     = 126,
940     VK_FORMAT_S8_UINT                                        = 127,
941     VK_FORMAT_D16_UNORM_S8_UINT                              = 128,
942     VK_FORMAT_D24_UNORM_S8_UINT                              = 129,
943     VK_FORMAT_D32_SFLOAT_S8_UINT                             = 130,
944     VK_FORMAT_BC1_RGB_UNORM_BLOCK                            = 131,
945     VK_FORMAT_BC1_RGB_SRGB_BLOCK                             = 132,
946     VK_FORMAT_BC1_RGBA_UNORM_BLOCK                           = 133,
947     VK_FORMAT_BC1_RGBA_SRGB_BLOCK                            = 134,
948     VK_FORMAT_BC2_UNORM_BLOCK                                = 135,
949     VK_FORMAT_BC2_SRGB_BLOCK                                 = 136,
950     VK_FORMAT_BC3_UNORM_BLOCK                                = 137,
951     VK_FORMAT_BC3_SRGB_BLOCK                                 = 138,
952     VK_FORMAT_BC4_UNORM_BLOCK                                = 139,
953     VK_FORMAT_BC4_SNORM_BLOCK                                = 140,
954     VK_FORMAT_BC5_UNORM_BLOCK                                = 141,
955     VK_FORMAT_BC5_SNORM_BLOCK                                = 142,
956     VK_FORMAT_BC6H_UFLOAT_BLOCK                              = 143,
957     VK_FORMAT_BC6H_SFLOAT_BLOCK                              = 144,
958     VK_FORMAT_BC7_UNORM_BLOCK                                = 145,
959     VK_FORMAT_BC7_SRGB_BLOCK                                 = 146,
960     VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK                        = 147,
961     VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK                         = 148,
962     VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK                      = 149,
963     VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK                       = 150,
964     VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK                      = 151,
965     VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK                       = 152,
966     VK_FORMAT_EAC_R11_UNORM_BLOCK                            = 153,
967     VK_FORMAT_EAC_R11_SNORM_BLOCK                            = 154,
968     VK_FORMAT_EAC_R11G11_UNORM_BLOCK                         = 155,
969     VK_FORMAT_EAC_R11G11_SNORM_BLOCK                         = 156,
970     VK_FORMAT_ASTC_4x4_UNORM_BLOCK                           = 157,
971     VK_FORMAT_ASTC_4x4_SRGB_BLOCK                            = 158,
972     VK_FORMAT_ASTC_5x4_UNORM_BLOCK                           = 159,
973     VK_FORMAT_ASTC_5x4_SRGB_BLOCK                            = 160,
974     VK_FORMAT_ASTC_5x5_UNORM_BLOCK                           = 161,
975     VK_FORMAT_ASTC_5x5_SRGB_BLOCK                            = 162,
976     VK_FORMAT_ASTC_6x5_UNORM_BLOCK                           = 163,
977     VK_FORMAT_ASTC_6x5_SRGB_BLOCK                            = 164,
978     VK_FORMAT_ASTC_6x6_UNORM_BLOCK                           = 165,
979     VK_FORMAT_ASTC_6x6_SRGB_BLOCK                            = 166,
980     VK_FORMAT_ASTC_8x5_UNORM_BLOCK                           = 167,
981     VK_FORMAT_ASTC_8x5_SRGB_BLOCK                            = 168,
982     VK_FORMAT_ASTC_8x6_UNORM_BLOCK                           = 169,
983     VK_FORMAT_ASTC_8x6_SRGB_BLOCK                            = 170,
984     VK_FORMAT_ASTC_8x8_UNORM_BLOCK                           = 171,
985     VK_FORMAT_ASTC_8x8_SRGB_BLOCK                            = 172,
986     VK_FORMAT_ASTC_10x5_UNORM_BLOCK                          = 173,
987     VK_FORMAT_ASTC_10x5_SRGB_BLOCK                           = 174,
988     VK_FORMAT_ASTC_10x6_UNORM_BLOCK                          = 175,
989     VK_FORMAT_ASTC_10x6_SRGB_BLOCK                           = 176,
990     VK_FORMAT_ASTC_10x8_UNORM_BLOCK                          = 177,
991     VK_FORMAT_ASTC_10x8_SRGB_BLOCK                           = 178,
992     VK_FORMAT_ASTC_10x10_UNORM_BLOCK                         = 179,
993     VK_FORMAT_ASTC_10x10_SRGB_BLOCK                          = 180,
994     VK_FORMAT_ASTC_12x10_UNORM_BLOCK                         = 181,
995     VK_FORMAT_ASTC_12x10_SRGB_BLOCK                          = 182,
996     VK_FORMAT_ASTC_12x12_UNORM_BLOCK                         = 183,
997     VK_FORMAT_ASTC_12x12_SRGB_BLOCK                          = 184,
998     VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG                    = 1000054000,
999     VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG                    = 1000054001,
1000     VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG                    = 1000054002,
1001     VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG                    = 1000054003,
1002     VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG                     = 1000054004,
1003     VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG                     = 1000054005,
1004     VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG                     = 1000054006,
1005     VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG                     = 1000054007,
1006     VK_FORMAT_G8B8G8R8_422_UNORM_KHR                         = 1000156000,
1007     VK_FORMAT_B8G8R8G8_422_UNORM_KHR                         = 1000156001,
1008     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR                  = 1000156002,
1009     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR                   = 1000156003,
1010     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR                  = 1000156004,
1011     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR                   = 1000156005,
1012     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR                  = 1000156006,
1013     VK_FORMAT_R10X6_UNORM_PACK16_KHR                         = 1000156007,
1014     VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR                   = 1000156008,
1015     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR         = 1000156009,
1016     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR     = 1000156010,
1017     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR     = 1000156011,
1018     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012,
1019     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR  = 1000156013,
1020     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014,
1021     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR  = 1000156015,
1022     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016,
1023     VK_FORMAT_R12X4_UNORM_PACK16_KHR                         = 1000156017,
1024     VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR                   = 1000156018,
1025     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR         = 1000156019,
1026     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR     = 1000156020,
1027     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR     = 1000156021,
1028     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022,
1029     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR  = 1000156023,
1030     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024,
1031     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR  = 1000156025,
1032     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026,
1033     VK_FORMAT_G16B16G16R16_422_UNORM_KHR                     = 1000156027,
1034     VK_FORMAT_B16G16R16G16_422_UNORM_KHR                     = 1000156028,
1035     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR               = 1000156029,
1036     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR                = 1000156030,
1037     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR               = 1000156031,
1038     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR                = 1000156032,
1039     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR               = 1000156033,
1040 }
1041 enum VK_FORMAT_UNDEFINED                                      = VkFormat.VK_FORMAT_UNDEFINED;
1042 enum VK_FORMAT_R4G4_UNORM_PACK8                               = VkFormat.VK_FORMAT_R4G4_UNORM_PACK8;
1043 enum VK_FORMAT_R4G4B4A4_UNORM_PACK16                          = VkFormat.VK_FORMAT_R4G4B4A4_UNORM_PACK16;
1044 enum VK_FORMAT_B4G4R4A4_UNORM_PACK16                          = VkFormat.VK_FORMAT_B4G4R4A4_UNORM_PACK16;
1045 enum VK_FORMAT_R5G6B5_UNORM_PACK16                            = VkFormat.VK_FORMAT_R5G6B5_UNORM_PACK16;
1046 enum VK_FORMAT_B5G6R5_UNORM_PACK16                            = VkFormat.VK_FORMAT_B5G6R5_UNORM_PACK16;
1047 enum VK_FORMAT_R5G5B5A1_UNORM_PACK16                          = VkFormat.VK_FORMAT_R5G5B5A1_UNORM_PACK16;
1048 enum VK_FORMAT_B5G5R5A1_UNORM_PACK16                          = VkFormat.VK_FORMAT_B5G5R5A1_UNORM_PACK16;
1049 enum VK_FORMAT_A1R5G5B5_UNORM_PACK16                          = VkFormat.VK_FORMAT_A1R5G5B5_UNORM_PACK16;
1050 enum VK_FORMAT_R8_UNORM                                       = VkFormat.VK_FORMAT_R8_UNORM;
1051 enum VK_FORMAT_R8_SNORM                                       = VkFormat.VK_FORMAT_R8_SNORM;
1052 enum VK_FORMAT_R8_USCALED                                     = VkFormat.VK_FORMAT_R8_USCALED;
1053 enum VK_FORMAT_R8_SSCALED                                     = VkFormat.VK_FORMAT_R8_SSCALED;
1054 enum VK_FORMAT_R8_UINT                                        = VkFormat.VK_FORMAT_R8_UINT;
1055 enum VK_FORMAT_R8_SINT                                        = VkFormat.VK_FORMAT_R8_SINT;
1056 enum VK_FORMAT_R8_SRGB                                        = VkFormat.VK_FORMAT_R8_SRGB;
1057 enum VK_FORMAT_R8G8_UNORM                                     = VkFormat.VK_FORMAT_R8G8_UNORM;
1058 enum VK_FORMAT_R8G8_SNORM                                     = VkFormat.VK_FORMAT_R8G8_SNORM;
1059 enum VK_FORMAT_R8G8_USCALED                                   = VkFormat.VK_FORMAT_R8G8_USCALED;
1060 enum VK_FORMAT_R8G8_SSCALED                                   = VkFormat.VK_FORMAT_R8G8_SSCALED;
1061 enum VK_FORMAT_R8G8_UINT                                      = VkFormat.VK_FORMAT_R8G8_UINT;
1062 enum VK_FORMAT_R8G8_SINT                                      = VkFormat.VK_FORMAT_R8G8_SINT;
1063 enum VK_FORMAT_R8G8_SRGB                                      = VkFormat.VK_FORMAT_R8G8_SRGB;
1064 enum VK_FORMAT_R8G8B8_UNORM                                   = VkFormat.VK_FORMAT_R8G8B8_UNORM;
1065 enum VK_FORMAT_R8G8B8_SNORM                                   = VkFormat.VK_FORMAT_R8G8B8_SNORM;
1066 enum VK_FORMAT_R8G8B8_USCALED                                 = VkFormat.VK_FORMAT_R8G8B8_USCALED;
1067 enum VK_FORMAT_R8G8B8_SSCALED                                 = VkFormat.VK_FORMAT_R8G8B8_SSCALED;
1068 enum VK_FORMAT_R8G8B8_UINT                                    = VkFormat.VK_FORMAT_R8G8B8_UINT;
1069 enum VK_FORMAT_R8G8B8_SINT                                    = VkFormat.VK_FORMAT_R8G8B8_SINT;
1070 enum VK_FORMAT_R8G8B8_SRGB                                    = VkFormat.VK_FORMAT_R8G8B8_SRGB;
1071 enum VK_FORMAT_B8G8R8_UNORM                                   = VkFormat.VK_FORMAT_B8G8R8_UNORM;
1072 enum VK_FORMAT_B8G8R8_SNORM                                   = VkFormat.VK_FORMAT_B8G8R8_SNORM;
1073 enum VK_FORMAT_B8G8R8_USCALED                                 = VkFormat.VK_FORMAT_B8G8R8_USCALED;
1074 enum VK_FORMAT_B8G8R8_SSCALED                                 = VkFormat.VK_FORMAT_B8G8R8_SSCALED;
1075 enum VK_FORMAT_B8G8R8_UINT                                    = VkFormat.VK_FORMAT_B8G8R8_UINT;
1076 enum VK_FORMAT_B8G8R8_SINT                                    = VkFormat.VK_FORMAT_B8G8R8_SINT;
1077 enum VK_FORMAT_B8G8R8_SRGB                                    = VkFormat.VK_FORMAT_B8G8R8_SRGB;
1078 enum VK_FORMAT_R8G8B8A8_UNORM                                 = VkFormat.VK_FORMAT_R8G8B8A8_UNORM;
1079 enum VK_FORMAT_R8G8B8A8_SNORM                                 = VkFormat.VK_FORMAT_R8G8B8A8_SNORM;
1080 enum VK_FORMAT_R8G8B8A8_USCALED                               = VkFormat.VK_FORMAT_R8G8B8A8_USCALED;
1081 enum VK_FORMAT_R8G8B8A8_SSCALED                               = VkFormat.VK_FORMAT_R8G8B8A8_SSCALED;
1082 enum VK_FORMAT_R8G8B8A8_UINT                                  = VkFormat.VK_FORMAT_R8G8B8A8_UINT;
1083 enum VK_FORMAT_R8G8B8A8_SINT                                  = VkFormat.VK_FORMAT_R8G8B8A8_SINT;
1084 enum VK_FORMAT_R8G8B8A8_SRGB                                  = VkFormat.VK_FORMAT_R8G8B8A8_SRGB;
1085 enum VK_FORMAT_B8G8R8A8_UNORM                                 = VkFormat.VK_FORMAT_B8G8R8A8_UNORM;
1086 enum VK_FORMAT_B8G8R8A8_SNORM                                 = VkFormat.VK_FORMAT_B8G8R8A8_SNORM;
1087 enum VK_FORMAT_B8G8R8A8_USCALED                               = VkFormat.VK_FORMAT_B8G8R8A8_USCALED;
1088 enum VK_FORMAT_B8G8R8A8_SSCALED                               = VkFormat.VK_FORMAT_B8G8R8A8_SSCALED;
1089 enum VK_FORMAT_B8G8R8A8_UINT                                  = VkFormat.VK_FORMAT_B8G8R8A8_UINT;
1090 enum VK_FORMAT_B8G8R8A8_SINT                                  = VkFormat.VK_FORMAT_B8G8R8A8_SINT;
1091 enum VK_FORMAT_B8G8R8A8_SRGB                                  = VkFormat.VK_FORMAT_B8G8R8A8_SRGB;
1092 enum VK_FORMAT_A8B8G8R8_UNORM_PACK32                          = VkFormat.VK_FORMAT_A8B8G8R8_UNORM_PACK32;
1093 enum VK_FORMAT_A8B8G8R8_SNORM_PACK32                          = VkFormat.VK_FORMAT_A8B8G8R8_SNORM_PACK32;
1094 enum VK_FORMAT_A8B8G8R8_USCALED_PACK32                        = VkFormat.VK_FORMAT_A8B8G8R8_USCALED_PACK32;
1095 enum VK_FORMAT_A8B8G8R8_SSCALED_PACK32                        = VkFormat.VK_FORMAT_A8B8G8R8_SSCALED_PACK32;
1096 enum VK_FORMAT_A8B8G8R8_UINT_PACK32                           = VkFormat.VK_FORMAT_A8B8G8R8_UINT_PACK32;
1097 enum VK_FORMAT_A8B8G8R8_SINT_PACK32                           = VkFormat.VK_FORMAT_A8B8G8R8_SINT_PACK32;
1098 enum VK_FORMAT_A8B8G8R8_SRGB_PACK32                           = VkFormat.VK_FORMAT_A8B8G8R8_SRGB_PACK32;
1099 enum VK_FORMAT_A2R10G10B10_UNORM_PACK32                       = VkFormat.VK_FORMAT_A2R10G10B10_UNORM_PACK32;
1100 enum VK_FORMAT_A2R10G10B10_SNORM_PACK32                       = VkFormat.VK_FORMAT_A2R10G10B10_SNORM_PACK32;
1101 enum VK_FORMAT_A2R10G10B10_USCALED_PACK32                     = VkFormat.VK_FORMAT_A2R10G10B10_USCALED_PACK32;
1102 enum VK_FORMAT_A2R10G10B10_SSCALED_PACK32                     = VkFormat.VK_FORMAT_A2R10G10B10_SSCALED_PACK32;
1103 enum VK_FORMAT_A2R10G10B10_UINT_PACK32                        = VkFormat.VK_FORMAT_A2R10G10B10_UINT_PACK32;
1104 enum VK_FORMAT_A2R10G10B10_SINT_PACK32                        = VkFormat.VK_FORMAT_A2R10G10B10_SINT_PACK32;
1105 enum VK_FORMAT_A2B10G10R10_UNORM_PACK32                       = VkFormat.VK_FORMAT_A2B10G10R10_UNORM_PACK32;
1106 enum VK_FORMAT_A2B10G10R10_SNORM_PACK32                       = VkFormat.VK_FORMAT_A2B10G10R10_SNORM_PACK32;
1107 enum VK_FORMAT_A2B10G10R10_USCALED_PACK32                     = VkFormat.VK_FORMAT_A2B10G10R10_USCALED_PACK32;
1108 enum VK_FORMAT_A2B10G10R10_SSCALED_PACK32                     = VkFormat.VK_FORMAT_A2B10G10R10_SSCALED_PACK32;
1109 enum VK_FORMAT_A2B10G10R10_UINT_PACK32                        = VkFormat.VK_FORMAT_A2B10G10R10_UINT_PACK32;
1110 enum VK_FORMAT_A2B10G10R10_SINT_PACK32                        = VkFormat.VK_FORMAT_A2B10G10R10_SINT_PACK32;
1111 enum VK_FORMAT_R16_UNORM                                      = VkFormat.VK_FORMAT_R16_UNORM;
1112 enum VK_FORMAT_R16_SNORM                                      = VkFormat.VK_FORMAT_R16_SNORM;
1113 enum VK_FORMAT_R16_USCALED                                    = VkFormat.VK_FORMAT_R16_USCALED;
1114 enum VK_FORMAT_R16_SSCALED                                    = VkFormat.VK_FORMAT_R16_SSCALED;
1115 enum VK_FORMAT_R16_UINT                                       = VkFormat.VK_FORMAT_R16_UINT;
1116 enum VK_FORMAT_R16_SINT                                       = VkFormat.VK_FORMAT_R16_SINT;
1117 enum VK_FORMAT_R16_SFLOAT                                     = VkFormat.VK_FORMAT_R16_SFLOAT;
1118 enum VK_FORMAT_R16G16_UNORM                                   = VkFormat.VK_FORMAT_R16G16_UNORM;
1119 enum VK_FORMAT_R16G16_SNORM                                   = VkFormat.VK_FORMAT_R16G16_SNORM;
1120 enum VK_FORMAT_R16G16_USCALED                                 = VkFormat.VK_FORMAT_R16G16_USCALED;
1121 enum VK_FORMAT_R16G16_SSCALED                                 = VkFormat.VK_FORMAT_R16G16_SSCALED;
1122 enum VK_FORMAT_R16G16_UINT                                    = VkFormat.VK_FORMAT_R16G16_UINT;
1123 enum VK_FORMAT_R16G16_SINT                                    = VkFormat.VK_FORMAT_R16G16_SINT;
1124 enum VK_FORMAT_R16G16_SFLOAT                                  = VkFormat.VK_FORMAT_R16G16_SFLOAT;
1125 enum VK_FORMAT_R16G16B16_UNORM                                = VkFormat.VK_FORMAT_R16G16B16_UNORM;
1126 enum VK_FORMAT_R16G16B16_SNORM                                = VkFormat.VK_FORMAT_R16G16B16_SNORM;
1127 enum VK_FORMAT_R16G16B16_USCALED                              = VkFormat.VK_FORMAT_R16G16B16_USCALED;
1128 enum VK_FORMAT_R16G16B16_SSCALED                              = VkFormat.VK_FORMAT_R16G16B16_SSCALED;
1129 enum VK_FORMAT_R16G16B16_UINT                                 = VkFormat.VK_FORMAT_R16G16B16_UINT;
1130 enum VK_FORMAT_R16G16B16_SINT                                 = VkFormat.VK_FORMAT_R16G16B16_SINT;
1131 enum VK_FORMAT_R16G16B16_SFLOAT                               = VkFormat.VK_FORMAT_R16G16B16_SFLOAT;
1132 enum VK_FORMAT_R16G16B16A16_UNORM                             = VkFormat.VK_FORMAT_R16G16B16A16_UNORM;
1133 enum VK_FORMAT_R16G16B16A16_SNORM                             = VkFormat.VK_FORMAT_R16G16B16A16_SNORM;
1134 enum VK_FORMAT_R16G16B16A16_USCALED                           = VkFormat.VK_FORMAT_R16G16B16A16_USCALED;
1135 enum VK_FORMAT_R16G16B16A16_SSCALED                           = VkFormat.VK_FORMAT_R16G16B16A16_SSCALED;
1136 enum VK_FORMAT_R16G16B16A16_UINT                              = VkFormat.VK_FORMAT_R16G16B16A16_UINT;
1137 enum VK_FORMAT_R16G16B16A16_SINT                              = VkFormat.VK_FORMAT_R16G16B16A16_SINT;
1138 enum VK_FORMAT_R16G16B16A16_SFLOAT                            = VkFormat.VK_FORMAT_R16G16B16A16_SFLOAT;
1139 enum VK_FORMAT_R32_UINT                                       = VkFormat.VK_FORMAT_R32_UINT;
1140 enum VK_FORMAT_R32_SINT                                       = VkFormat.VK_FORMAT_R32_SINT;
1141 enum VK_FORMAT_R32_SFLOAT                                     = VkFormat.VK_FORMAT_R32_SFLOAT;
1142 enum VK_FORMAT_R32G32_UINT                                    = VkFormat.VK_FORMAT_R32G32_UINT;
1143 enum VK_FORMAT_R32G32_SINT                                    = VkFormat.VK_FORMAT_R32G32_SINT;
1144 enum VK_FORMAT_R32G32_SFLOAT                                  = VkFormat.VK_FORMAT_R32G32_SFLOAT;
1145 enum VK_FORMAT_R32G32B32_UINT                                 = VkFormat.VK_FORMAT_R32G32B32_UINT;
1146 enum VK_FORMAT_R32G32B32_SINT                                 = VkFormat.VK_FORMAT_R32G32B32_SINT;
1147 enum VK_FORMAT_R32G32B32_SFLOAT                               = VkFormat.VK_FORMAT_R32G32B32_SFLOAT;
1148 enum VK_FORMAT_R32G32B32A32_UINT                              = VkFormat.VK_FORMAT_R32G32B32A32_UINT;
1149 enum VK_FORMAT_R32G32B32A32_SINT                              = VkFormat.VK_FORMAT_R32G32B32A32_SINT;
1150 enum VK_FORMAT_R32G32B32A32_SFLOAT                            = VkFormat.VK_FORMAT_R32G32B32A32_SFLOAT;
1151 enum VK_FORMAT_R64_UINT                                       = VkFormat.VK_FORMAT_R64_UINT;
1152 enum VK_FORMAT_R64_SINT                                       = VkFormat.VK_FORMAT_R64_SINT;
1153 enum VK_FORMAT_R64_SFLOAT                                     = VkFormat.VK_FORMAT_R64_SFLOAT;
1154 enum VK_FORMAT_R64G64_UINT                                    = VkFormat.VK_FORMAT_R64G64_UINT;
1155 enum VK_FORMAT_R64G64_SINT                                    = VkFormat.VK_FORMAT_R64G64_SINT;
1156 enum VK_FORMAT_R64G64_SFLOAT                                  = VkFormat.VK_FORMAT_R64G64_SFLOAT;
1157 enum VK_FORMAT_R64G64B64_UINT                                 = VkFormat.VK_FORMAT_R64G64B64_UINT;
1158 enum VK_FORMAT_R64G64B64_SINT                                 = VkFormat.VK_FORMAT_R64G64B64_SINT;
1159 enum VK_FORMAT_R64G64B64_SFLOAT                               = VkFormat.VK_FORMAT_R64G64B64_SFLOAT;
1160 enum VK_FORMAT_R64G64B64A64_UINT                              = VkFormat.VK_FORMAT_R64G64B64A64_UINT;
1161 enum VK_FORMAT_R64G64B64A64_SINT                              = VkFormat.VK_FORMAT_R64G64B64A64_SINT;
1162 enum VK_FORMAT_R64G64B64A64_SFLOAT                            = VkFormat.VK_FORMAT_R64G64B64A64_SFLOAT;
1163 enum VK_FORMAT_B10G11R11_UFLOAT_PACK32                        = VkFormat.VK_FORMAT_B10G11R11_UFLOAT_PACK32;
1164 enum VK_FORMAT_E5B9G9R9_UFLOAT_PACK32                         = VkFormat.VK_FORMAT_E5B9G9R9_UFLOAT_PACK32;
1165 enum VK_FORMAT_D16_UNORM                                      = VkFormat.VK_FORMAT_D16_UNORM;
1166 enum VK_FORMAT_X8_D24_UNORM_PACK32                            = VkFormat.VK_FORMAT_X8_D24_UNORM_PACK32;
1167 enum VK_FORMAT_D32_SFLOAT                                     = VkFormat.VK_FORMAT_D32_SFLOAT;
1168 enum VK_FORMAT_S8_UINT                                        = VkFormat.VK_FORMAT_S8_UINT;
1169 enum VK_FORMAT_D16_UNORM_S8_UINT                              = VkFormat.VK_FORMAT_D16_UNORM_S8_UINT;
1170 enum VK_FORMAT_D24_UNORM_S8_UINT                              = VkFormat.VK_FORMAT_D24_UNORM_S8_UINT;
1171 enum VK_FORMAT_D32_SFLOAT_S8_UINT                             = VkFormat.VK_FORMAT_D32_SFLOAT_S8_UINT;
1172 enum VK_FORMAT_BC1_RGB_UNORM_BLOCK                            = VkFormat.VK_FORMAT_BC1_RGB_UNORM_BLOCK;
1173 enum VK_FORMAT_BC1_RGB_SRGB_BLOCK                             = VkFormat.VK_FORMAT_BC1_RGB_SRGB_BLOCK;
1174 enum VK_FORMAT_BC1_RGBA_UNORM_BLOCK                           = VkFormat.VK_FORMAT_BC1_RGBA_UNORM_BLOCK;
1175 enum VK_FORMAT_BC1_RGBA_SRGB_BLOCK                            = VkFormat.VK_FORMAT_BC1_RGBA_SRGB_BLOCK;
1176 enum VK_FORMAT_BC2_UNORM_BLOCK                                = VkFormat.VK_FORMAT_BC2_UNORM_BLOCK;
1177 enum VK_FORMAT_BC2_SRGB_BLOCK                                 = VkFormat.VK_FORMAT_BC2_SRGB_BLOCK;
1178 enum VK_FORMAT_BC3_UNORM_BLOCK                                = VkFormat.VK_FORMAT_BC3_UNORM_BLOCK;
1179 enum VK_FORMAT_BC3_SRGB_BLOCK                                 = VkFormat.VK_FORMAT_BC3_SRGB_BLOCK;
1180 enum VK_FORMAT_BC4_UNORM_BLOCK                                = VkFormat.VK_FORMAT_BC4_UNORM_BLOCK;
1181 enum VK_FORMAT_BC4_SNORM_BLOCK                                = VkFormat.VK_FORMAT_BC4_SNORM_BLOCK;
1182 enum VK_FORMAT_BC5_UNORM_BLOCK                                = VkFormat.VK_FORMAT_BC5_UNORM_BLOCK;
1183 enum VK_FORMAT_BC5_SNORM_BLOCK                                = VkFormat.VK_FORMAT_BC5_SNORM_BLOCK;
1184 enum VK_FORMAT_BC6H_UFLOAT_BLOCK                              = VkFormat.VK_FORMAT_BC6H_UFLOAT_BLOCK;
1185 enum VK_FORMAT_BC6H_SFLOAT_BLOCK                              = VkFormat.VK_FORMAT_BC6H_SFLOAT_BLOCK;
1186 enum VK_FORMAT_BC7_UNORM_BLOCK                                = VkFormat.VK_FORMAT_BC7_UNORM_BLOCK;
1187 enum VK_FORMAT_BC7_SRGB_BLOCK                                 = VkFormat.VK_FORMAT_BC7_SRGB_BLOCK;
1188 enum VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK                        = VkFormat.VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK;
1189 enum VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK                         = VkFormat.VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK;
1190 enum VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK                      = VkFormat.VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK;
1191 enum VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK                       = VkFormat.VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK;
1192 enum VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK                      = VkFormat.VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK;
1193 enum VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK                       = VkFormat.VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK;
1194 enum VK_FORMAT_EAC_R11_UNORM_BLOCK                            = VkFormat.VK_FORMAT_EAC_R11_UNORM_BLOCK;
1195 enum VK_FORMAT_EAC_R11_SNORM_BLOCK                            = VkFormat.VK_FORMAT_EAC_R11_SNORM_BLOCK;
1196 enum VK_FORMAT_EAC_R11G11_UNORM_BLOCK                         = VkFormat.VK_FORMAT_EAC_R11G11_UNORM_BLOCK;
1197 enum VK_FORMAT_EAC_R11G11_SNORM_BLOCK                         = VkFormat.VK_FORMAT_EAC_R11G11_SNORM_BLOCK;
1198 enum VK_FORMAT_ASTC_4x4_UNORM_BLOCK                           = VkFormat.VK_FORMAT_ASTC_4x4_UNORM_BLOCK;
1199 enum VK_FORMAT_ASTC_4x4_SRGB_BLOCK                            = VkFormat.VK_FORMAT_ASTC_4x4_SRGB_BLOCK;
1200 enum VK_FORMAT_ASTC_5x4_UNORM_BLOCK                           = VkFormat.VK_FORMAT_ASTC_5x4_UNORM_BLOCK;
1201 enum VK_FORMAT_ASTC_5x4_SRGB_BLOCK                            = VkFormat.VK_FORMAT_ASTC_5x4_SRGB_BLOCK;
1202 enum VK_FORMAT_ASTC_5x5_UNORM_BLOCK                           = VkFormat.VK_FORMAT_ASTC_5x5_UNORM_BLOCK;
1203 enum VK_FORMAT_ASTC_5x5_SRGB_BLOCK                            = VkFormat.VK_FORMAT_ASTC_5x5_SRGB_BLOCK;
1204 enum VK_FORMAT_ASTC_6x5_UNORM_BLOCK                           = VkFormat.VK_FORMAT_ASTC_6x5_UNORM_BLOCK;
1205 enum VK_FORMAT_ASTC_6x5_SRGB_BLOCK                            = VkFormat.VK_FORMAT_ASTC_6x5_SRGB_BLOCK;
1206 enum VK_FORMAT_ASTC_6x6_UNORM_BLOCK                           = VkFormat.VK_FORMAT_ASTC_6x6_UNORM_BLOCK;
1207 enum VK_FORMAT_ASTC_6x6_SRGB_BLOCK                            = VkFormat.VK_FORMAT_ASTC_6x6_SRGB_BLOCK;
1208 enum VK_FORMAT_ASTC_8x5_UNORM_BLOCK                           = VkFormat.VK_FORMAT_ASTC_8x5_UNORM_BLOCK;
1209 enum VK_FORMAT_ASTC_8x5_SRGB_BLOCK                            = VkFormat.VK_FORMAT_ASTC_8x5_SRGB_BLOCK;
1210 enum VK_FORMAT_ASTC_8x6_UNORM_BLOCK                           = VkFormat.VK_FORMAT_ASTC_8x6_UNORM_BLOCK;
1211 enum VK_FORMAT_ASTC_8x6_SRGB_BLOCK                            = VkFormat.VK_FORMAT_ASTC_8x6_SRGB_BLOCK;
1212 enum VK_FORMAT_ASTC_8x8_UNORM_BLOCK                           = VkFormat.VK_FORMAT_ASTC_8x8_UNORM_BLOCK;
1213 enum VK_FORMAT_ASTC_8x8_SRGB_BLOCK                            = VkFormat.VK_FORMAT_ASTC_8x8_SRGB_BLOCK;
1214 enum VK_FORMAT_ASTC_10x5_UNORM_BLOCK                          = VkFormat.VK_FORMAT_ASTC_10x5_UNORM_BLOCK;
1215 enum VK_FORMAT_ASTC_10x5_SRGB_BLOCK                           = VkFormat.VK_FORMAT_ASTC_10x5_SRGB_BLOCK;
1216 enum VK_FORMAT_ASTC_10x6_UNORM_BLOCK                          = VkFormat.VK_FORMAT_ASTC_10x6_UNORM_BLOCK;
1217 enum VK_FORMAT_ASTC_10x6_SRGB_BLOCK                           = VkFormat.VK_FORMAT_ASTC_10x6_SRGB_BLOCK;
1218 enum VK_FORMAT_ASTC_10x8_UNORM_BLOCK                          = VkFormat.VK_FORMAT_ASTC_10x8_UNORM_BLOCK;
1219 enum VK_FORMAT_ASTC_10x8_SRGB_BLOCK                           = VkFormat.VK_FORMAT_ASTC_10x8_SRGB_BLOCK;
1220 enum VK_FORMAT_ASTC_10x10_UNORM_BLOCK                         = VkFormat.VK_FORMAT_ASTC_10x10_UNORM_BLOCK;
1221 enum VK_FORMAT_ASTC_10x10_SRGB_BLOCK                          = VkFormat.VK_FORMAT_ASTC_10x10_SRGB_BLOCK;
1222 enum VK_FORMAT_ASTC_12x10_UNORM_BLOCK                         = VkFormat.VK_FORMAT_ASTC_12x10_UNORM_BLOCK;
1223 enum VK_FORMAT_ASTC_12x10_SRGB_BLOCK                          = VkFormat.VK_FORMAT_ASTC_12x10_SRGB_BLOCK;
1224 enum VK_FORMAT_ASTC_12x12_UNORM_BLOCK                         = VkFormat.VK_FORMAT_ASTC_12x12_UNORM_BLOCK;
1225 enum VK_FORMAT_ASTC_12x12_SRGB_BLOCK                          = VkFormat.VK_FORMAT_ASTC_12x12_SRGB_BLOCK;
1226 enum VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG                    = VkFormat.VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG;
1227 enum VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG                    = VkFormat.VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG;
1228 enum VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG                    = VkFormat.VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG;
1229 enum VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG                    = VkFormat.VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG;
1230 enum VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG                     = VkFormat.VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG;
1231 enum VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG                     = VkFormat.VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG;
1232 enum VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG                     = VkFormat.VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG;
1233 enum VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG                     = VkFormat.VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG;
1234 enum VK_FORMAT_G8B8G8R8_422_UNORM_KHR                         = VkFormat.VK_FORMAT_G8B8G8R8_422_UNORM_KHR;
1235 enum VK_FORMAT_B8G8R8G8_422_UNORM_KHR                         = VkFormat.VK_FORMAT_B8G8R8G8_422_UNORM_KHR;
1236 enum VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR                  = VkFormat.VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR;
1237 enum VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR                   = VkFormat.VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR;
1238 enum VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR                  = VkFormat.VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR;
1239 enum VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR                   = VkFormat.VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR;
1240 enum VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR                  = VkFormat.VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR;
1241 enum VK_FORMAT_R10X6_UNORM_PACK16_KHR                         = VkFormat.VK_FORMAT_R10X6_UNORM_PACK16_KHR;
1242 enum VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR                   = VkFormat.VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR;
1243 enum VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR         = VkFormat.VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR;
1244 enum VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR     = VkFormat.VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR;
1245 enum VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR     = VkFormat.VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR;
1246 enum VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VkFormat.VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR;
1247 enum VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR  = VkFormat.VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR;
1248 enum VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VkFormat.VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR;
1249 enum VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR  = VkFormat.VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR;
1250 enum VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VkFormat.VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR;
1251 enum VK_FORMAT_R12X4_UNORM_PACK16_KHR                         = VkFormat.VK_FORMAT_R12X4_UNORM_PACK16_KHR;
1252 enum VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR                   = VkFormat.VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR;
1253 enum VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR         = VkFormat.VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR;
1254 enum VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR     = VkFormat.VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR;
1255 enum VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR     = VkFormat.VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR;
1256 enum VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VkFormat.VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR;
1257 enum VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR  = VkFormat.VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR;
1258 enum VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VkFormat.VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR;
1259 enum VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR  = VkFormat.VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR;
1260 enum VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VkFormat.VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR;
1261 enum VK_FORMAT_G16B16G16R16_422_UNORM_KHR                     = VkFormat.VK_FORMAT_G16B16G16R16_422_UNORM_KHR;
1262 enum VK_FORMAT_B16G16R16G16_422_UNORM_KHR                     = VkFormat.VK_FORMAT_B16G16R16G16_422_UNORM_KHR;
1263 enum VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR               = VkFormat.VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR;
1264 enum VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR                = VkFormat.VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR;
1265 enum VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR               = VkFormat.VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR;
1266 enum VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR                = VkFormat.VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR;
1267 enum VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR               = VkFormat.VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR;
1268 
1269 enum VkFormatFeatureFlagBits : VkFlags {
1270     VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT                                                               = 0x00000001,
1271     VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT                                                               = 0x00000002,
1272     VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT                                                        = 0x00000004,
1273     VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT                                                        = 0x00000008,
1274     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT                                                        = 0x00000010,
1275     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT                                                 = 0x00000020,
1276     VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT                                                               = 0x00000040,
1277     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT                                                            = 0x00000080,
1278     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT                                                      = 0x00000100,
1279     VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT                                                    = 0x00000200,
1280     VK_FORMAT_FEATURE_BLIT_SRC_BIT                                                                    = 0x00000400,
1281     VK_FORMAT_FEATURE_BLIT_DST_BIT                                                                    = 0x00000800,
1282     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT                                                 = 0x00001000,
1283     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG                                              = 0x00002000,
1284     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR                                                            = 0x00004000,
1285     VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR                                                            = 0x00008000,
1286     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT                                             = 0x00010000,
1287     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR                                                 = 0x00020000,
1288     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR                            = 0x00040000,
1289     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR           = 0x00080000,
1290     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR           = 0x00100000,
1291     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000,
1292     VK_FORMAT_FEATURE_DISJOINT_BIT_KHR                                                                = 0x00400000,
1293     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR                                                  = 0x00800000,
1294 }
1295 enum VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT                                                               = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT;
1296 enum VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT                                                               = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT;
1297 enum VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT                                                        = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT;
1298 enum VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT                                                        = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT;
1299 enum VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT                                                        = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT;
1300 enum VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT                                                 = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT;
1301 enum VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT                                                               = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT;
1302 enum VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT                                                            = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT;
1303 enum VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT                                                      = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT;
1304 enum VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT                                                    = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT;
1305 enum VK_FORMAT_FEATURE_BLIT_SRC_BIT                                                                    = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_BLIT_SRC_BIT;
1306 enum VK_FORMAT_FEATURE_BLIT_DST_BIT                                                                    = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_BLIT_DST_BIT;
1307 enum VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT                                                 = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT;
1308 enum VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG                                              = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG;
1309 enum VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR                                                            = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR;
1310 enum VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR                                                            = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR;
1311 enum VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT                                             = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT;
1312 enum VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR                                                 = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR;
1313 enum VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR                            = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR;
1314 enum VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR           = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR;
1315 enum VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR           = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR;
1316 enum VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR;
1317 enum VK_FORMAT_FEATURE_DISJOINT_BIT_KHR                                                                = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_DISJOINT_BIT_KHR;
1318 enum VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR                                                  = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR;
1319 
1320 enum VkImageType {
1321     VK_IMAGE_TYPE_1D = 0,
1322     VK_IMAGE_TYPE_2D = 1,
1323     VK_IMAGE_TYPE_3D = 2,
1324 }
1325 enum VK_IMAGE_TYPE_1D = VkImageType.VK_IMAGE_TYPE_1D;
1326 enum VK_IMAGE_TYPE_2D = VkImageType.VK_IMAGE_TYPE_2D;
1327 enum VK_IMAGE_TYPE_3D = VkImageType.VK_IMAGE_TYPE_3D;
1328 
1329 enum VkImageTiling {
1330     VK_IMAGE_TILING_OPTIMAL = 0,
1331     VK_IMAGE_TILING_LINEAR  = 1,
1332 }
1333 enum VK_IMAGE_TILING_OPTIMAL = VkImageTiling.VK_IMAGE_TILING_OPTIMAL;
1334 enum VK_IMAGE_TILING_LINEAR  = VkImageTiling.VK_IMAGE_TILING_LINEAR;
1335 
1336 enum VkImageUsageFlagBits : VkFlags {
1337     VK_IMAGE_USAGE_TRANSFER_SRC_BIT             = 0x00000001,
1338     VK_IMAGE_USAGE_TRANSFER_DST_BIT             = 0x00000002,
1339     VK_IMAGE_USAGE_SAMPLED_BIT                  = 0x00000004,
1340     VK_IMAGE_USAGE_STORAGE_BIT                  = 0x00000008,
1341     VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT         = 0x00000010,
1342     VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
1343     VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT     = 0x00000040,
1344     VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT         = 0x00000080,
1345 }
1346 enum VK_IMAGE_USAGE_TRANSFER_SRC_BIT             = VkImageUsageFlagBits.VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
1347 enum VK_IMAGE_USAGE_TRANSFER_DST_BIT             = VkImageUsageFlagBits.VK_IMAGE_USAGE_TRANSFER_DST_BIT;
1348 enum VK_IMAGE_USAGE_SAMPLED_BIT                  = VkImageUsageFlagBits.VK_IMAGE_USAGE_SAMPLED_BIT;
1349 enum VK_IMAGE_USAGE_STORAGE_BIT                  = VkImageUsageFlagBits.VK_IMAGE_USAGE_STORAGE_BIT;
1350 enum VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT         = VkImageUsageFlagBits.VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
1351 enum VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = VkImageUsageFlagBits.VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT;
1352 enum VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT     = VkImageUsageFlagBits.VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT;
1353 enum VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT         = VkImageUsageFlagBits.VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
1354 
1355 enum VkImageCreateFlagBits : VkFlags {
1356     VK_IMAGE_CREATE_SPARSE_BINDING_BIT                        = 0x00000001,
1357     VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT                      = 0x00000002,
1358     VK_IMAGE_CREATE_SPARSE_ALIASED_BIT                        = 0x00000004,
1359     VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT                        = 0x00000008,
1360     VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT                       = 0x00000010,
1361     VK_IMAGE_CREATE_BIND_SFR_BIT_KHX                          = 0x00000040,
1362     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR               = 0x00000020,
1363     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR       = 0x00000080,
1364     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR                    = 0x00000100,
1365     VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
1366     VK_IMAGE_CREATE_DISJOINT_BIT_KHR                          = 0x00000200,
1367     VK_IMAGE_CREATE_ALIAS_BIT_KHR                             = 0x00000400,
1368 }
1369 enum VK_IMAGE_CREATE_SPARSE_BINDING_BIT                        = VkImageCreateFlagBits.VK_IMAGE_CREATE_SPARSE_BINDING_BIT;
1370 enum VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT                      = VkImageCreateFlagBits.VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT;
1371 enum VK_IMAGE_CREATE_SPARSE_ALIASED_BIT                        = VkImageCreateFlagBits.VK_IMAGE_CREATE_SPARSE_ALIASED_BIT;
1372 enum VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT                        = VkImageCreateFlagBits.VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT;
1373 enum VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT                       = VkImageCreateFlagBits.VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT;
1374 enum VK_IMAGE_CREATE_BIND_SFR_BIT_KHX                          = VkImageCreateFlagBits.VK_IMAGE_CREATE_BIND_SFR_BIT_KHX;
1375 enum VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR               = VkImageCreateFlagBits.VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR;
1376 enum VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR       = VkImageCreateFlagBits.VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR;
1377 enum VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR                    = VkImageCreateFlagBits.VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR;
1378 enum VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = VkImageCreateFlagBits.VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT;
1379 enum VK_IMAGE_CREATE_DISJOINT_BIT_KHR                          = VkImageCreateFlagBits.VK_IMAGE_CREATE_DISJOINT_BIT_KHR;
1380 enum VK_IMAGE_CREATE_ALIAS_BIT_KHR                             = VkImageCreateFlagBits.VK_IMAGE_CREATE_ALIAS_BIT_KHR;
1381 
1382 enum VkSampleCountFlagBits : VkFlags {
1383     VK_SAMPLE_COUNT_1_BIT  = 0x00000001,
1384     VK_SAMPLE_COUNT_2_BIT  = 0x00000002,
1385     VK_SAMPLE_COUNT_4_BIT  = 0x00000004,
1386     VK_SAMPLE_COUNT_8_BIT  = 0x00000008,
1387     VK_SAMPLE_COUNT_16_BIT = 0x00000010,
1388     VK_SAMPLE_COUNT_32_BIT = 0x00000020,
1389     VK_SAMPLE_COUNT_64_BIT = 0x00000040,
1390 }
1391 enum VK_SAMPLE_COUNT_1_BIT  = VkSampleCountFlagBits.VK_SAMPLE_COUNT_1_BIT;
1392 enum VK_SAMPLE_COUNT_2_BIT  = VkSampleCountFlagBits.VK_SAMPLE_COUNT_2_BIT;
1393 enum VK_SAMPLE_COUNT_4_BIT  = VkSampleCountFlagBits.VK_SAMPLE_COUNT_4_BIT;
1394 enum VK_SAMPLE_COUNT_8_BIT  = VkSampleCountFlagBits.VK_SAMPLE_COUNT_8_BIT;
1395 enum VK_SAMPLE_COUNT_16_BIT = VkSampleCountFlagBits.VK_SAMPLE_COUNT_16_BIT;
1396 enum VK_SAMPLE_COUNT_32_BIT = VkSampleCountFlagBits.VK_SAMPLE_COUNT_32_BIT;
1397 enum VK_SAMPLE_COUNT_64_BIT = VkSampleCountFlagBits.VK_SAMPLE_COUNT_64_BIT;
1398 
1399 enum VkPhysicalDeviceType {
1400     VK_PHYSICAL_DEVICE_TYPE_OTHER          = 0,
1401     VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
1402     VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU   = 2,
1403     VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU    = 3,
1404     VK_PHYSICAL_DEVICE_TYPE_CPU            = 4,
1405 }
1406 enum VK_PHYSICAL_DEVICE_TYPE_OTHER          = VkPhysicalDeviceType.VK_PHYSICAL_DEVICE_TYPE_OTHER;
1407 enum VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = VkPhysicalDeviceType.VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU;
1408 enum VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU   = VkPhysicalDeviceType.VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU;
1409 enum VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU    = VkPhysicalDeviceType.VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU;
1410 enum VK_PHYSICAL_DEVICE_TYPE_CPU            = VkPhysicalDeviceType.VK_PHYSICAL_DEVICE_TYPE_CPU;
1411 
1412 enum VkQueueFlagBits : VkFlags {
1413     VK_QUEUE_GRAPHICS_BIT       = 0x00000001,
1414     VK_QUEUE_COMPUTE_BIT        = 0x00000002,
1415     VK_QUEUE_TRANSFER_BIT       = 0x00000004,
1416     VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
1417 }
1418 enum VK_QUEUE_GRAPHICS_BIT       = VkQueueFlagBits.VK_QUEUE_GRAPHICS_BIT;
1419 enum VK_QUEUE_COMPUTE_BIT        = VkQueueFlagBits.VK_QUEUE_COMPUTE_BIT;
1420 enum VK_QUEUE_TRANSFER_BIT       = VkQueueFlagBits.VK_QUEUE_TRANSFER_BIT;
1421 enum VK_QUEUE_SPARSE_BINDING_BIT = VkQueueFlagBits.VK_QUEUE_SPARSE_BINDING_BIT;
1422 
1423 enum VkMemoryPropertyFlagBits : VkFlags {
1424     VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT     = 0x00000001,
1425     VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT     = 0x00000002,
1426     VK_MEMORY_PROPERTY_HOST_COHERENT_BIT    = 0x00000004,
1427     VK_MEMORY_PROPERTY_HOST_CACHED_BIT      = 0x00000008,
1428     VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
1429 }
1430 enum VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT     = VkMemoryPropertyFlagBits.VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT;
1431 enum VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT     = VkMemoryPropertyFlagBits.VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT;
1432 enum VK_MEMORY_PROPERTY_HOST_COHERENT_BIT    = VkMemoryPropertyFlagBits.VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;
1433 enum VK_MEMORY_PROPERTY_HOST_CACHED_BIT      = VkMemoryPropertyFlagBits.VK_MEMORY_PROPERTY_HOST_CACHED_BIT;
1434 enum VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = VkMemoryPropertyFlagBits.VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT;
1435 
1436 enum VkMemoryHeapFlagBits : VkFlags {
1437     VK_MEMORY_HEAP_DEVICE_LOCAL_BIT       = 0x00000001,
1438     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHX = 0x00000002,
1439 }
1440 enum VK_MEMORY_HEAP_DEVICE_LOCAL_BIT       = VkMemoryHeapFlagBits.VK_MEMORY_HEAP_DEVICE_LOCAL_BIT;
1441 enum VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHX = VkMemoryHeapFlagBits.VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHX;
1442 
1443 enum VkPipelineStageFlagBits : VkFlags {
1444     VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT                    = 0x00000001,
1445     VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT                  = 0x00000002,
1446     VK_PIPELINE_STAGE_VERTEX_INPUT_BIT                   = 0x00000004,
1447     VK_PIPELINE_STAGE_VERTEX_SHADER_BIT                  = 0x00000008,
1448     VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT    = 0x00000010,
1449     VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
1450     VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT                = 0x00000040,
1451     VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT                = 0x00000080,
1452     VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT           = 0x00000100,
1453     VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT            = 0x00000200,
1454     VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT        = 0x00000400,
1455     VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT                 = 0x00000800,
1456     VK_PIPELINE_STAGE_TRANSFER_BIT                       = 0x00001000,
1457     VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT                 = 0x00002000,
1458     VK_PIPELINE_STAGE_HOST_BIT                           = 0x00004000,
1459     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT                   = 0x00008000,
1460     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT                   = 0x00010000,
1461     VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX            = 0x00020000,
1462 }
1463 enum VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT                    = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
1464 enum VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT                  = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT;
1465 enum VK_PIPELINE_STAGE_VERTEX_INPUT_BIT                   = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_VERTEX_INPUT_BIT;
1466 enum VK_PIPELINE_STAGE_VERTEX_SHADER_BIT                  = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_VERTEX_SHADER_BIT;
1467 enum VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT    = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT;
1468 enum VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT;
1469 enum VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT                = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT;
1470 enum VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT                = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
1471 enum VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT           = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT;
1472 enum VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT            = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT;
1473 enum VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT        = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
1474 enum VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT                 = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT;
1475 enum VK_PIPELINE_STAGE_TRANSFER_BIT                       = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_TRANSFER_BIT;
1476 enum VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT                 = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT;
1477 enum VK_PIPELINE_STAGE_HOST_BIT                           = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_HOST_BIT;
1478 enum VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT                   = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT;
1479 enum VK_PIPELINE_STAGE_ALL_COMMANDS_BIT                   = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_ALL_COMMANDS_BIT;
1480 enum VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX            = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX;
1481 
1482 enum VkImageAspectFlagBits : VkFlags {
1483     VK_IMAGE_ASPECT_COLOR_BIT       = 0x00000001,
1484     VK_IMAGE_ASPECT_DEPTH_BIT       = 0x00000002,
1485     VK_IMAGE_ASPECT_STENCIL_BIT     = 0x00000004,
1486     VK_IMAGE_ASPECT_METADATA_BIT    = 0x00000008,
1487     VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010,
1488     VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020,
1489     VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040,
1490 }
1491 enum VK_IMAGE_ASPECT_COLOR_BIT       = VkImageAspectFlagBits.VK_IMAGE_ASPECT_COLOR_BIT;
1492 enum VK_IMAGE_ASPECT_DEPTH_BIT       = VkImageAspectFlagBits.VK_IMAGE_ASPECT_DEPTH_BIT;
1493 enum VK_IMAGE_ASPECT_STENCIL_BIT     = VkImageAspectFlagBits.VK_IMAGE_ASPECT_STENCIL_BIT;
1494 enum VK_IMAGE_ASPECT_METADATA_BIT    = VkImageAspectFlagBits.VK_IMAGE_ASPECT_METADATA_BIT;
1495 enum VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VkImageAspectFlagBits.VK_IMAGE_ASPECT_PLANE_0_BIT_KHR;
1496 enum VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VkImageAspectFlagBits.VK_IMAGE_ASPECT_PLANE_1_BIT_KHR;
1497 enum VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VkImageAspectFlagBits.VK_IMAGE_ASPECT_PLANE_2_BIT_KHR;
1498 
1499 enum VkSparseImageFormatFlagBits : VkFlags {
1500     VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT         = 0x00000001,
1501     VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT       = 0x00000002,
1502     VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
1503 }
1504 enum VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT         = VkSparseImageFormatFlagBits.VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT;
1505 enum VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT       = VkSparseImageFormatFlagBits.VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT;
1506 enum VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = VkSparseImageFormatFlagBits.VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT;
1507 
1508 enum VkSparseMemoryBindFlagBits : VkFlags {
1509     VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
1510 }
1511 enum VK_SPARSE_MEMORY_BIND_METADATA_BIT = VkSparseMemoryBindFlagBits.VK_SPARSE_MEMORY_BIND_METADATA_BIT;
1512 
1513 enum VkFenceCreateFlagBits : VkFlags {
1514     VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
1515 }
1516 enum VK_FENCE_CREATE_SIGNALED_BIT = VkFenceCreateFlagBits.VK_FENCE_CREATE_SIGNALED_BIT;
1517 
1518 enum VkQueryType {
1519     VK_QUERY_TYPE_OCCLUSION           = 0,
1520     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
1521     VK_QUERY_TYPE_TIMESTAMP           = 2,
1522 }
1523 enum VK_QUERY_TYPE_OCCLUSION           = VkQueryType.VK_QUERY_TYPE_OCCLUSION;
1524 enum VK_QUERY_TYPE_PIPELINE_STATISTICS = VkQueryType.VK_QUERY_TYPE_PIPELINE_STATISTICS;
1525 enum VK_QUERY_TYPE_TIMESTAMP           = VkQueryType.VK_QUERY_TYPE_TIMESTAMP;
1526 
1527 enum VkQueryPipelineStatisticFlagBits : VkFlags {
1528     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT                    = 0x00000001,
1529     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT                  = 0x00000002,
1530     VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT                  = 0x00000004,
1531     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT                = 0x00000008,
1532     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT                 = 0x00000010,
1533     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT                       = 0x00000020,
1534     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT                        = 0x00000040,
1535     VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT                = 0x00000080,
1536     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT        = 0x00000100,
1537     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
1538     VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT                 = 0x00000400,
1539 }
1540 enum VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT                    = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT;
1541 enum VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT                  = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT;
1542 enum VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT                  = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT;
1543 enum VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT                = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT;
1544 enum VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT                 = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT;
1545 enum VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT                       = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT;
1546 enum VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT                        = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT;
1547 enum VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT                = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT;
1548 enum VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT        = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT;
1549 enum VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT;
1550 enum VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT                 = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT;
1551 
1552 enum VkQueryResultFlagBits : VkFlags {
1553     VK_QUERY_RESULT_64_BIT                = 0x00000001,
1554     VK_QUERY_RESULT_WAIT_BIT              = 0x00000002,
1555     VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
1556     VK_QUERY_RESULT_PARTIAL_BIT           = 0x00000008,
1557 }
1558 enum VK_QUERY_RESULT_64_BIT                = VkQueryResultFlagBits.VK_QUERY_RESULT_64_BIT;
1559 enum VK_QUERY_RESULT_WAIT_BIT              = VkQueryResultFlagBits.VK_QUERY_RESULT_WAIT_BIT;
1560 enum VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = VkQueryResultFlagBits.VK_QUERY_RESULT_WITH_AVAILABILITY_BIT;
1561 enum VK_QUERY_RESULT_PARTIAL_BIT           = VkQueryResultFlagBits.VK_QUERY_RESULT_PARTIAL_BIT;
1562 
1563 enum VkBufferCreateFlagBits : VkFlags {
1564     VK_BUFFER_CREATE_SPARSE_BINDING_BIT   = 0x00000001,
1565     VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
1566     VK_BUFFER_CREATE_SPARSE_ALIASED_BIT   = 0x00000004,
1567 }
1568 enum VK_BUFFER_CREATE_SPARSE_BINDING_BIT   = VkBufferCreateFlagBits.VK_BUFFER_CREATE_SPARSE_BINDING_BIT;
1569 enum VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = VkBufferCreateFlagBits.VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT;
1570 enum VK_BUFFER_CREATE_SPARSE_ALIASED_BIT   = VkBufferCreateFlagBits.VK_BUFFER_CREATE_SPARSE_ALIASED_BIT;
1571 
1572 enum VkBufferUsageFlagBits : VkFlags {
1573     VK_BUFFER_USAGE_TRANSFER_SRC_BIT         = 0x00000001,
1574     VK_BUFFER_USAGE_TRANSFER_DST_BIT         = 0x00000002,
1575     VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
1576     VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
1577     VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT       = 0x00000010,
1578     VK_BUFFER_USAGE_STORAGE_BUFFER_BIT       = 0x00000020,
1579     VK_BUFFER_USAGE_INDEX_BUFFER_BIT         = 0x00000040,
1580     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT        = 0x00000080,
1581     VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT      = 0x00000100,
1582 }
1583 enum VK_BUFFER_USAGE_TRANSFER_SRC_BIT         = VkBufferUsageFlagBits.VK_BUFFER_USAGE_TRANSFER_SRC_BIT;
1584 enum VK_BUFFER_USAGE_TRANSFER_DST_BIT         = VkBufferUsageFlagBits.VK_BUFFER_USAGE_TRANSFER_DST_BIT;
1585 enum VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = VkBufferUsageFlagBits.VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT;
1586 enum VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = VkBufferUsageFlagBits.VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT;
1587 enum VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT       = VkBufferUsageFlagBits.VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT;
1588 enum VK_BUFFER_USAGE_STORAGE_BUFFER_BIT       = VkBufferUsageFlagBits.VK_BUFFER_USAGE_STORAGE_BUFFER_BIT;
1589 enum VK_BUFFER_USAGE_INDEX_BUFFER_BIT         = VkBufferUsageFlagBits.VK_BUFFER_USAGE_INDEX_BUFFER_BIT;
1590 enum VK_BUFFER_USAGE_VERTEX_BUFFER_BIT        = VkBufferUsageFlagBits.VK_BUFFER_USAGE_VERTEX_BUFFER_BIT;
1591 enum VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT      = VkBufferUsageFlagBits.VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT;
1592 
1593 enum VkSharingMode {
1594     VK_SHARING_MODE_EXCLUSIVE  = 0,
1595     VK_SHARING_MODE_CONCURRENT = 1,
1596 }
1597 enum VK_SHARING_MODE_EXCLUSIVE  = VkSharingMode.VK_SHARING_MODE_EXCLUSIVE;
1598 enum VK_SHARING_MODE_CONCURRENT = VkSharingMode.VK_SHARING_MODE_CONCURRENT;
1599 
1600 enum VkImageLayout {
1601     VK_IMAGE_LAYOUT_UNDEFINED                                      = 0,
1602     VK_IMAGE_LAYOUT_GENERAL                                        = 1,
1603     VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL                       = 2,
1604     VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL               = 3,
1605     VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL                = 4,
1606     VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL                       = 5,
1607     VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL                           = 6,
1608     VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL                           = 7,
1609     VK_IMAGE_LAYOUT_PREINITIALIZED                                 = 8,
1610     VK_IMAGE_LAYOUT_PRESENT_SRC_KHR                                = 1000001002,
1611     VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR                             = 1000111000,
1612     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000,
1613     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001,
1614 }
1615 enum VK_IMAGE_LAYOUT_UNDEFINED                                      = VkImageLayout.VK_IMAGE_LAYOUT_UNDEFINED;
1616 enum VK_IMAGE_LAYOUT_GENERAL                                        = VkImageLayout.VK_IMAGE_LAYOUT_GENERAL;
1617 enum VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL                       = VkImageLayout.VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
1618 enum VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL               = VkImageLayout.VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
1619 enum VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL                = VkImageLayout.VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL;
1620 enum VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL                       = VkImageLayout.VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
1621 enum VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL                           = VkImageLayout.VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
1622 enum VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL                           = VkImageLayout.VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
1623 enum VK_IMAGE_LAYOUT_PREINITIALIZED                                 = VkImageLayout.VK_IMAGE_LAYOUT_PREINITIALIZED;
1624 enum VK_IMAGE_LAYOUT_PRESENT_SRC_KHR                                = VkImageLayout.VK_IMAGE_LAYOUT_PRESENT_SRC_KHR;
1625 enum VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR                             = VkImageLayout.VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR;
1626 enum VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VkImageLayout.VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR;
1627 enum VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VkImageLayout.VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR;
1628 
1629 enum VkImageViewType {
1630     VK_IMAGE_VIEW_TYPE_1D         = 0,
1631     VK_IMAGE_VIEW_TYPE_2D         = 1,
1632     VK_IMAGE_VIEW_TYPE_3D         = 2,
1633     VK_IMAGE_VIEW_TYPE_CUBE       = 3,
1634     VK_IMAGE_VIEW_TYPE_1D_ARRAY   = 4,
1635     VK_IMAGE_VIEW_TYPE_2D_ARRAY   = 5,
1636     VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
1637 }
1638 enum VK_IMAGE_VIEW_TYPE_1D         = VkImageViewType.VK_IMAGE_VIEW_TYPE_1D;
1639 enum VK_IMAGE_VIEW_TYPE_2D         = VkImageViewType.VK_IMAGE_VIEW_TYPE_2D;
1640 enum VK_IMAGE_VIEW_TYPE_3D         = VkImageViewType.VK_IMAGE_VIEW_TYPE_3D;
1641 enum VK_IMAGE_VIEW_TYPE_CUBE       = VkImageViewType.VK_IMAGE_VIEW_TYPE_CUBE;
1642 enum VK_IMAGE_VIEW_TYPE_1D_ARRAY   = VkImageViewType.VK_IMAGE_VIEW_TYPE_1D_ARRAY;
1643 enum VK_IMAGE_VIEW_TYPE_2D_ARRAY   = VkImageViewType.VK_IMAGE_VIEW_TYPE_2D_ARRAY;
1644 enum VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = VkImageViewType.VK_IMAGE_VIEW_TYPE_CUBE_ARRAY;
1645 
1646 enum VkComponentSwizzle {
1647     VK_COMPONENT_SWIZZLE_IDENTITY = 0,
1648     VK_COMPONENT_SWIZZLE_ZERO     = 1,
1649     VK_COMPONENT_SWIZZLE_ONE      = 2,
1650     VK_COMPONENT_SWIZZLE_R        = 3,
1651     VK_COMPONENT_SWIZZLE_G        = 4,
1652     VK_COMPONENT_SWIZZLE_B        = 5,
1653     VK_COMPONENT_SWIZZLE_A        = 6,
1654 }
1655 enum VK_COMPONENT_SWIZZLE_IDENTITY = VkComponentSwizzle.VK_COMPONENT_SWIZZLE_IDENTITY;
1656 enum VK_COMPONENT_SWIZZLE_ZERO     = VkComponentSwizzle.VK_COMPONENT_SWIZZLE_ZERO;
1657 enum VK_COMPONENT_SWIZZLE_ONE      = VkComponentSwizzle.VK_COMPONENT_SWIZZLE_ONE;
1658 enum VK_COMPONENT_SWIZZLE_R        = VkComponentSwizzle.VK_COMPONENT_SWIZZLE_R;
1659 enum VK_COMPONENT_SWIZZLE_G        = VkComponentSwizzle.VK_COMPONENT_SWIZZLE_G;
1660 enum VK_COMPONENT_SWIZZLE_B        = VkComponentSwizzle.VK_COMPONENT_SWIZZLE_B;
1661 enum VK_COMPONENT_SWIZZLE_A        = VkComponentSwizzle.VK_COMPONENT_SWIZZLE_A;
1662 
1663 enum VkPipelineCreateFlagBits : VkFlags {
1664     VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT             = 0x00000001,
1665     VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT                = 0x00000002,
1666     VK_PIPELINE_CREATE_DERIVATIVE_BIT                       = 0x00000004,
1667     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHX = 0x00000008,
1668     VK_PIPELINE_CREATE_DISPATCH_BASE_KHX                    = 0x00000010,
1669 }
1670 enum VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT             = VkPipelineCreateFlagBits.VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT;
1671 enum VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT                = VkPipelineCreateFlagBits.VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT;
1672 enum VK_PIPELINE_CREATE_DERIVATIVE_BIT                       = VkPipelineCreateFlagBits.VK_PIPELINE_CREATE_DERIVATIVE_BIT;
1673 enum VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHX = VkPipelineCreateFlagBits.VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHX;
1674 enum VK_PIPELINE_CREATE_DISPATCH_BASE_KHX                    = VkPipelineCreateFlagBits.VK_PIPELINE_CREATE_DISPATCH_BASE_KHX;
1675 
1676 enum VkShaderStageFlagBits : VkFlags {
1677     VK_SHADER_STAGE_VERTEX_BIT                  = 0x00000001,
1678     VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT    = 0x00000002,
1679     VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
1680     VK_SHADER_STAGE_GEOMETRY_BIT                = 0x00000008,
1681     VK_SHADER_STAGE_FRAGMENT_BIT                = 0x00000010,
1682     VK_SHADER_STAGE_COMPUTE_BIT                 = 0x00000020,
1683     VK_SHADER_STAGE_ALL_GRAPHICS                = 0x0000001F,
1684     VK_SHADER_STAGE_ALL                         = 0x7FFFFFFF,
1685 }
1686 enum VK_SHADER_STAGE_VERTEX_BIT                  = VkShaderStageFlagBits.VK_SHADER_STAGE_VERTEX_BIT;
1687 enum VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT    = VkShaderStageFlagBits.VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT;
1688 enum VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = VkShaderStageFlagBits.VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT;
1689 enum VK_SHADER_STAGE_GEOMETRY_BIT                = VkShaderStageFlagBits.VK_SHADER_STAGE_GEOMETRY_BIT;
1690 enum VK_SHADER_STAGE_FRAGMENT_BIT                = VkShaderStageFlagBits.VK_SHADER_STAGE_FRAGMENT_BIT;
1691 enum VK_SHADER_STAGE_COMPUTE_BIT                 = VkShaderStageFlagBits.VK_SHADER_STAGE_COMPUTE_BIT;
1692 enum VK_SHADER_STAGE_ALL_GRAPHICS                = VkShaderStageFlagBits.VK_SHADER_STAGE_ALL_GRAPHICS;
1693 enum VK_SHADER_STAGE_ALL                         = VkShaderStageFlagBits.VK_SHADER_STAGE_ALL;
1694 
1695 enum VkVertexInputRate {
1696     VK_VERTEX_INPUT_RATE_VERTEX   = 0,
1697     VK_VERTEX_INPUT_RATE_INSTANCE = 1,
1698 }
1699 enum VK_VERTEX_INPUT_RATE_VERTEX   = VkVertexInputRate.VK_VERTEX_INPUT_RATE_VERTEX;
1700 enum VK_VERTEX_INPUT_RATE_INSTANCE = VkVertexInputRate.VK_VERTEX_INPUT_RATE_INSTANCE;
1701 
1702 enum VkPrimitiveTopology {
1703     VK_PRIMITIVE_TOPOLOGY_POINT_LIST                    = 0,
1704     VK_PRIMITIVE_TOPOLOGY_LINE_LIST                     = 1,
1705     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP                    = 2,
1706     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST                 = 3,
1707     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP                = 4,
1708     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN                  = 5,
1709     VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY      = 6,
1710     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY     = 7,
1711     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY  = 8,
1712     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
1713     VK_PRIMITIVE_TOPOLOGY_PATCH_LIST                    = 10,
1714 }
1715 enum VK_PRIMITIVE_TOPOLOGY_POINT_LIST                    = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_POINT_LIST;
1716 enum VK_PRIMITIVE_TOPOLOGY_LINE_LIST                     = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_LINE_LIST;
1717 enum VK_PRIMITIVE_TOPOLOGY_LINE_STRIP                    = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_LINE_STRIP;
1718 enum VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST                 = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
1719 enum VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP                = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
1720 enum VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN                  = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN;
1721 enum VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY      = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY;
1722 enum VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY     = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY;
1723 enum VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY  = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY;
1724 enum VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY;
1725 enum VK_PRIMITIVE_TOPOLOGY_PATCH_LIST                    = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_PATCH_LIST;
1726 
1727 enum VkPolygonMode {
1728     VK_POLYGON_MODE_FILL              = 0,
1729     VK_POLYGON_MODE_LINE              = 1,
1730     VK_POLYGON_MODE_POINT             = 2,
1731     VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
1732 }
1733 enum VK_POLYGON_MODE_FILL              = VkPolygonMode.VK_POLYGON_MODE_FILL;
1734 enum VK_POLYGON_MODE_LINE              = VkPolygonMode.VK_POLYGON_MODE_LINE;
1735 enum VK_POLYGON_MODE_POINT             = VkPolygonMode.VK_POLYGON_MODE_POINT;
1736 enum VK_POLYGON_MODE_FILL_RECTANGLE_NV = VkPolygonMode.VK_POLYGON_MODE_FILL_RECTANGLE_NV;
1737 
1738 enum VkCullModeFlagBits : VkFlags {
1739     VK_CULL_MODE_NONE           = 0,
1740     VK_CULL_MODE_FRONT_BIT      = 0x00000001,
1741     VK_CULL_MODE_BACK_BIT       = 0x00000002,
1742     VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
1743 }
1744 enum VK_CULL_MODE_NONE           = VkCullModeFlagBits.VK_CULL_MODE_NONE;
1745 enum VK_CULL_MODE_FRONT_BIT      = VkCullModeFlagBits.VK_CULL_MODE_FRONT_BIT;
1746 enum VK_CULL_MODE_BACK_BIT       = VkCullModeFlagBits.VK_CULL_MODE_BACK_BIT;
1747 enum VK_CULL_MODE_FRONT_AND_BACK = VkCullModeFlagBits.VK_CULL_MODE_FRONT_AND_BACK;
1748 
1749 enum VkFrontFace {
1750     VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
1751     VK_FRONT_FACE_CLOCKWISE         = 1,
1752 }
1753 enum VK_FRONT_FACE_COUNTER_CLOCKWISE = VkFrontFace.VK_FRONT_FACE_COUNTER_CLOCKWISE;
1754 enum VK_FRONT_FACE_CLOCKWISE         = VkFrontFace.VK_FRONT_FACE_CLOCKWISE;
1755 
1756 enum VkCompareOp {
1757     VK_COMPARE_OP_NEVER            = 0,
1758     VK_COMPARE_OP_LESS             = 1,
1759     VK_COMPARE_OP_EQUAL            = 2,
1760     VK_COMPARE_OP_LESS_OR_EQUAL    = 3,
1761     VK_COMPARE_OP_GREATER          = 4,
1762     VK_COMPARE_OP_NOT_EQUAL        = 5,
1763     VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
1764     VK_COMPARE_OP_ALWAYS           = 7,
1765 }
1766 enum VK_COMPARE_OP_NEVER            = VkCompareOp.VK_COMPARE_OP_NEVER;
1767 enum VK_COMPARE_OP_LESS             = VkCompareOp.VK_COMPARE_OP_LESS;
1768 enum VK_COMPARE_OP_EQUAL            = VkCompareOp.VK_COMPARE_OP_EQUAL;
1769 enum VK_COMPARE_OP_LESS_OR_EQUAL    = VkCompareOp.VK_COMPARE_OP_LESS_OR_EQUAL;
1770 enum VK_COMPARE_OP_GREATER          = VkCompareOp.VK_COMPARE_OP_GREATER;
1771 enum VK_COMPARE_OP_NOT_EQUAL        = VkCompareOp.VK_COMPARE_OP_NOT_EQUAL;
1772 enum VK_COMPARE_OP_GREATER_OR_EQUAL = VkCompareOp.VK_COMPARE_OP_GREATER_OR_EQUAL;
1773 enum VK_COMPARE_OP_ALWAYS           = VkCompareOp.VK_COMPARE_OP_ALWAYS;
1774 
1775 enum VkStencilOp {
1776     VK_STENCIL_OP_KEEP                = 0,
1777     VK_STENCIL_OP_ZERO                = 1,
1778     VK_STENCIL_OP_REPLACE             = 2,
1779     VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
1780     VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
1781     VK_STENCIL_OP_INVERT              = 5,
1782     VK_STENCIL_OP_INCREMENT_AND_WRAP  = 6,
1783     VK_STENCIL_OP_DECREMENT_AND_WRAP  = 7,
1784 }
1785 enum VK_STENCIL_OP_KEEP                = VkStencilOp.VK_STENCIL_OP_KEEP;
1786 enum VK_STENCIL_OP_ZERO                = VkStencilOp.VK_STENCIL_OP_ZERO;
1787 enum VK_STENCIL_OP_REPLACE             = VkStencilOp.VK_STENCIL_OP_REPLACE;
1788 enum VK_STENCIL_OP_INCREMENT_AND_CLAMP = VkStencilOp.VK_STENCIL_OP_INCREMENT_AND_CLAMP;
1789 enum VK_STENCIL_OP_DECREMENT_AND_CLAMP = VkStencilOp.VK_STENCIL_OP_DECREMENT_AND_CLAMP;
1790 enum VK_STENCIL_OP_INVERT              = VkStencilOp.VK_STENCIL_OP_INVERT;
1791 enum VK_STENCIL_OP_INCREMENT_AND_WRAP  = VkStencilOp.VK_STENCIL_OP_INCREMENT_AND_WRAP;
1792 enum VK_STENCIL_OP_DECREMENT_AND_WRAP  = VkStencilOp.VK_STENCIL_OP_DECREMENT_AND_WRAP;
1793 
1794 enum VkLogicOp {
1795     VK_LOGIC_OP_CLEAR         = 0,
1796     VK_LOGIC_OP_AND           = 1,
1797     VK_LOGIC_OP_AND_REVERSE   = 2,
1798     VK_LOGIC_OP_COPY          = 3,
1799     VK_LOGIC_OP_AND_INVERTED  = 4,
1800     VK_LOGIC_OP_NO_OP         = 5,
1801     VK_LOGIC_OP_XOR           = 6,
1802     VK_LOGIC_OP_OR            = 7,
1803     VK_LOGIC_OP_NOR           = 8,
1804     VK_LOGIC_OP_EQUIVALENT    = 9,
1805     VK_LOGIC_OP_INVERT        = 10,
1806     VK_LOGIC_OP_OR_REVERSE    = 11,
1807     VK_LOGIC_OP_COPY_INVERTED = 12,
1808     VK_LOGIC_OP_OR_INVERTED   = 13,
1809     VK_LOGIC_OP_NAND          = 14,
1810     VK_LOGIC_OP_SET           = 15,
1811 }
1812 enum VK_LOGIC_OP_CLEAR         = VkLogicOp.VK_LOGIC_OP_CLEAR;
1813 enum VK_LOGIC_OP_AND           = VkLogicOp.VK_LOGIC_OP_AND;
1814 enum VK_LOGIC_OP_AND_REVERSE   = VkLogicOp.VK_LOGIC_OP_AND_REVERSE;
1815 enum VK_LOGIC_OP_COPY          = VkLogicOp.VK_LOGIC_OP_COPY;
1816 enum VK_LOGIC_OP_AND_INVERTED  = VkLogicOp.VK_LOGIC_OP_AND_INVERTED;
1817 enum VK_LOGIC_OP_NO_OP         = VkLogicOp.VK_LOGIC_OP_NO_OP;
1818 enum VK_LOGIC_OP_XOR           = VkLogicOp.VK_LOGIC_OP_XOR;
1819 enum VK_LOGIC_OP_OR            = VkLogicOp.VK_LOGIC_OP_OR;
1820 enum VK_LOGIC_OP_NOR           = VkLogicOp.VK_LOGIC_OP_NOR;
1821 enum VK_LOGIC_OP_EQUIVALENT    = VkLogicOp.VK_LOGIC_OP_EQUIVALENT;
1822 enum VK_LOGIC_OP_INVERT        = VkLogicOp.VK_LOGIC_OP_INVERT;
1823 enum VK_LOGIC_OP_OR_REVERSE    = VkLogicOp.VK_LOGIC_OP_OR_REVERSE;
1824 enum VK_LOGIC_OP_COPY_INVERTED = VkLogicOp.VK_LOGIC_OP_COPY_INVERTED;
1825 enum VK_LOGIC_OP_OR_INVERTED   = VkLogicOp.VK_LOGIC_OP_OR_INVERTED;
1826 enum VK_LOGIC_OP_NAND          = VkLogicOp.VK_LOGIC_OP_NAND;
1827 enum VK_LOGIC_OP_SET           = VkLogicOp.VK_LOGIC_OP_SET;
1828 
1829 enum VkBlendFactor {
1830     VK_BLEND_FACTOR_ZERO                     = 0,
1831     VK_BLEND_FACTOR_ONE                      = 1,
1832     VK_BLEND_FACTOR_SRC_COLOR                = 2,
1833     VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR      = 3,
1834     VK_BLEND_FACTOR_DST_COLOR                = 4,
1835     VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR      = 5,
1836     VK_BLEND_FACTOR_SRC_ALPHA                = 6,
1837     VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA      = 7,
1838     VK_BLEND_FACTOR_DST_ALPHA                = 8,
1839     VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA      = 9,
1840     VK_BLEND_FACTOR_CONSTANT_COLOR           = 10,
1841     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
1842     VK_BLEND_FACTOR_CONSTANT_ALPHA           = 12,
1843     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
1844     VK_BLEND_FACTOR_SRC_ALPHA_SATURATE       = 14,
1845     VK_BLEND_FACTOR_SRC1_COLOR               = 15,
1846     VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR     = 16,
1847     VK_BLEND_FACTOR_SRC1_ALPHA               = 17,
1848     VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA     = 18,
1849 }
1850 enum VK_BLEND_FACTOR_ZERO                     = VkBlendFactor.VK_BLEND_FACTOR_ZERO;
1851 enum VK_BLEND_FACTOR_ONE                      = VkBlendFactor.VK_BLEND_FACTOR_ONE;
1852 enum VK_BLEND_FACTOR_SRC_COLOR                = VkBlendFactor.VK_BLEND_FACTOR_SRC_COLOR;
1853 enum VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR      = VkBlendFactor.VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR;
1854 enum VK_BLEND_FACTOR_DST_COLOR                = VkBlendFactor.VK_BLEND_FACTOR_DST_COLOR;
1855 enum VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR      = VkBlendFactor.VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR;
1856 enum VK_BLEND_FACTOR_SRC_ALPHA                = VkBlendFactor.VK_BLEND_FACTOR_SRC_ALPHA;
1857 enum VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA      = VkBlendFactor.VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
1858 enum VK_BLEND_FACTOR_DST_ALPHA                = VkBlendFactor.VK_BLEND_FACTOR_DST_ALPHA;
1859 enum VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA      = VkBlendFactor.VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA;
1860 enum VK_BLEND_FACTOR_CONSTANT_COLOR           = VkBlendFactor.VK_BLEND_FACTOR_CONSTANT_COLOR;
1861 enum VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = VkBlendFactor.VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR;
1862 enum VK_BLEND_FACTOR_CONSTANT_ALPHA           = VkBlendFactor.VK_BLEND_FACTOR_CONSTANT_ALPHA;
1863 enum VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = VkBlendFactor.VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA;
1864 enum VK_BLEND_FACTOR_SRC_ALPHA_SATURATE       = VkBlendFactor.VK_BLEND_FACTOR_SRC_ALPHA_SATURATE;
1865 enum VK_BLEND_FACTOR_SRC1_COLOR               = VkBlendFactor.VK_BLEND_FACTOR_SRC1_COLOR;
1866 enum VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR     = VkBlendFactor.VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR;
1867 enum VK_BLEND_FACTOR_SRC1_ALPHA               = VkBlendFactor.VK_BLEND_FACTOR_SRC1_ALPHA;
1868 enum VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA     = VkBlendFactor.VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA;
1869 
1870 enum VkBlendOp {
1871     VK_BLEND_OP_ADD                    = 0,
1872     VK_BLEND_OP_SUBTRACT               = 1,
1873     VK_BLEND_OP_REVERSE_SUBTRACT       = 2,
1874     VK_BLEND_OP_MIN                    = 3,
1875     VK_BLEND_OP_MAX                    = 4,
1876     VK_BLEND_OP_ZERO_EXT               = 1000148000,
1877     VK_BLEND_OP_SRC_EXT                = 1000148001,
1878     VK_BLEND_OP_DST_EXT                = 1000148002,
1879     VK_BLEND_OP_SRC_OVER_EXT           = 1000148003,
1880     VK_BLEND_OP_DST_OVER_EXT           = 1000148004,
1881     VK_BLEND_OP_SRC_IN_EXT             = 1000148005,
1882     VK_BLEND_OP_DST_IN_EXT             = 1000148006,
1883     VK_BLEND_OP_SRC_OUT_EXT            = 1000148007,
1884     VK_BLEND_OP_DST_OUT_EXT            = 1000148008,
1885     VK_BLEND_OP_SRC_ATOP_EXT           = 1000148009,
1886     VK_BLEND_OP_DST_ATOP_EXT           = 1000148010,
1887     VK_BLEND_OP_XOR_EXT                = 1000148011,
1888     VK_BLEND_OP_MULTIPLY_EXT           = 1000148012,
1889     VK_BLEND_OP_SCREEN_EXT             = 1000148013,
1890     VK_BLEND_OP_OVERLAY_EXT            = 1000148014,
1891     VK_BLEND_OP_DARKEN_EXT             = 1000148015,
1892     VK_BLEND_OP_LIGHTEN_EXT            = 1000148016,
1893     VK_BLEND_OP_COLORDODGE_EXT         = 1000148017,
1894     VK_BLEND_OP_COLORBURN_EXT          = 1000148018,
1895     VK_BLEND_OP_HARDLIGHT_EXT          = 1000148019,
1896     VK_BLEND_OP_SOFTLIGHT_EXT          = 1000148020,
1897     VK_BLEND_OP_DIFFERENCE_EXT         = 1000148021,
1898     VK_BLEND_OP_EXCLUSION_EXT          = 1000148022,
1899     VK_BLEND_OP_INVERT_EXT             = 1000148023,
1900     VK_BLEND_OP_INVERT_RGB_EXT         = 1000148024,
1901     VK_BLEND_OP_LINEARDODGE_EXT        = 1000148025,
1902     VK_BLEND_OP_LINEARBURN_EXT         = 1000148026,
1903     VK_BLEND_OP_VIVIDLIGHT_EXT         = 1000148027,
1904     VK_BLEND_OP_LINEARLIGHT_EXT        = 1000148028,
1905     VK_BLEND_OP_PINLIGHT_EXT           = 1000148029,
1906     VK_BLEND_OP_HARDMIX_EXT            = 1000148030,
1907     VK_BLEND_OP_HSL_HUE_EXT            = 1000148031,
1908     VK_BLEND_OP_HSL_SATURATION_EXT     = 1000148032,
1909     VK_BLEND_OP_HSL_COLOR_EXT          = 1000148033,
1910     VK_BLEND_OP_HSL_LUMINOSITY_EXT     = 1000148034,
1911     VK_BLEND_OP_PLUS_EXT               = 1000148035,
1912     VK_BLEND_OP_PLUS_CLAMPED_EXT       = 1000148036,
1913     VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
1914     VK_BLEND_OP_PLUS_DARKER_EXT        = 1000148038,
1915     VK_BLEND_OP_MINUS_EXT              = 1000148039,
1916     VK_BLEND_OP_MINUS_CLAMPED_EXT      = 1000148040,
1917     VK_BLEND_OP_CONTRAST_EXT           = 1000148041,
1918     VK_BLEND_OP_INVERT_OVG_EXT         = 1000148042,
1919     VK_BLEND_OP_RED_EXT                = 1000148043,
1920     VK_BLEND_OP_GREEN_EXT              = 1000148044,
1921     VK_BLEND_OP_BLUE_EXT               = 1000148045,
1922 }
1923 enum VK_BLEND_OP_ADD                    = VkBlendOp.VK_BLEND_OP_ADD;
1924 enum VK_BLEND_OP_SUBTRACT               = VkBlendOp.VK_BLEND_OP_SUBTRACT;
1925 enum VK_BLEND_OP_REVERSE_SUBTRACT       = VkBlendOp.VK_BLEND_OP_REVERSE_SUBTRACT;
1926 enum VK_BLEND_OP_MIN                    = VkBlendOp.VK_BLEND_OP_MIN;
1927 enum VK_BLEND_OP_MAX                    = VkBlendOp.VK_BLEND_OP_MAX;
1928 enum VK_BLEND_OP_ZERO_EXT               = VkBlendOp.VK_BLEND_OP_ZERO_EXT;
1929 enum VK_BLEND_OP_SRC_EXT                = VkBlendOp.VK_BLEND_OP_SRC_EXT;
1930 enum VK_BLEND_OP_DST_EXT                = VkBlendOp.VK_BLEND_OP_DST_EXT;
1931 enum VK_BLEND_OP_SRC_OVER_EXT           = VkBlendOp.VK_BLEND_OP_SRC_OVER_EXT;
1932 enum VK_BLEND_OP_DST_OVER_EXT           = VkBlendOp.VK_BLEND_OP_DST_OVER_EXT;
1933 enum VK_BLEND_OP_SRC_IN_EXT             = VkBlendOp.VK_BLEND_OP_SRC_IN_EXT;
1934 enum VK_BLEND_OP_DST_IN_EXT             = VkBlendOp.VK_BLEND_OP_DST_IN_EXT;
1935 enum VK_BLEND_OP_SRC_OUT_EXT            = VkBlendOp.VK_BLEND_OP_SRC_OUT_EXT;
1936 enum VK_BLEND_OP_DST_OUT_EXT            = VkBlendOp.VK_BLEND_OP_DST_OUT_EXT;
1937 enum VK_BLEND_OP_SRC_ATOP_EXT           = VkBlendOp.VK_BLEND_OP_SRC_ATOP_EXT;
1938 enum VK_BLEND_OP_DST_ATOP_EXT           = VkBlendOp.VK_BLEND_OP_DST_ATOP_EXT;
1939 enum VK_BLEND_OP_XOR_EXT                = VkBlendOp.VK_BLEND_OP_XOR_EXT;
1940 enum VK_BLEND_OP_MULTIPLY_EXT           = VkBlendOp.VK_BLEND_OP_MULTIPLY_EXT;
1941 enum VK_BLEND_OP_SCREEN_EXT             = VkBlendOp.VK_BLEND_OP_SCREEN_EXT;
1942 enum VK_BLEND_OP_OVERLAY_EXT            = VkBlendOp.VK_BLEND_OP_OVERLAY_EXT;
1943 enum VK_BLEND_OP_DARKEN_EXT             = VkBlendOp.VK_BLEND_OP_DARKEN_EXT;
1944 enum VK_BLEND_OP_LIGHTEN_EXT            = VkBlendOp.VK_BLEND_OP_LIGHTEN_EXT;
1945 enum VK_BLEND_OP_COLORDODGE_EXT         = VkBlendOp.VK_BLEND_OP_COLORDODGE_EXT;
1946 enum VK_BLEND_OP_COLORBURN_EXT          = VkBlendOp.VK_BLEND_OP_COLORBURN_EXT;
1947 enum VK_BLEND_OP_HARDLIGHT_EXT          = VkBlendOp.VK_BLEND_OP_HARDLIGHT_EXT;
1948 enum VK_BLEND_OP_SOFTLIGHT_EXT          = VkBlendOp.VK_BLEND_OP_SOFTLIGHT_EXT;
1949 enum VK_BLEND_OP_DIFFERENCE_EXT         = VkBlendOp.VK_BLEND_OP_DIFFERENCE_EXT;
1950 enum VK_BLEND_OP_EXCLUSION_EXT          = VkBlendOp.VK_BLEND_OP_EXCLUSION_EXT;
1951 enum VK_BLEND_OP_INVERT_EXT             = VkBlendOp.VK_BLEND_OP_INVERT_EXT;
1952 enum VK_BLEND_OP_INVERT_RGB_EXT         = VkBlendOp.VK_BLEND_OP_INVERT_RGB_EXT;
1953 enum VK_BLEND_OP_LINEARDODGE_EXT        = VkBlendOp.VK_BLEND_OP_LINEARDODGE_EXT;
1954 enum VK_BLEND_OP_LINEARBURN_EXT         = VkBlendOp.VK_BLEND_OP_LINEARBURN_EXT;
1955 enum VK_BLEND_OP_VIVIDLIGHT_EXT         = VkBlendOp.VK_BLEND_OP_VIVIDLIGHT_EXT;
1956 enum VK_BLEND_OP_LINEARLIGHT_EXT        = VkBlendOp.VK_BLEND_OP_LINEARLIGHT_EXT;
1957 enum VK_BLEND_OP_PINLIGHT_EXT           = VkBlendOp.VK_BLEND_OP_PINLIGHT_EXT;
1958 enum VK_BLEND_OP_HARDMIX_EXT            = VkBlendOp.VK_BLEND_OP_HARDMIX_EXT;
1959 enum VK_BLEND_OP_HSL_HUE_EXT            = VkBlendOp.VK_BLEND_OP_HSL_HUE_EXT;
1960 enum VK_BLEND_OP_HSL_SATURATION_EXT     = VkBlendOp.VK_BLEND_OP_HSL_SATURATION_EXT;
1961 enum VK_BLEND_OP_HSL_COLOR_EXT          = VkBlendOp.VK_BLEND_OP_HSL_COLOR_EXT;
1962 enum VK_BLEND_OP_HSL_LUMINOSITY_EXT     = VkBlendOp.VK_BLEND_OP_HSL_LUMINOSITY_EXT;
1963 enum VK_BLEND_OP_PLUS_EXT               = VkBlendOp.VK_BLEND_OP_PLUS_EXT;
1964 enum VK_BLEND_OP_PLUS_CLAMPED_EXT       = VkBlendOp.VK_BLEND_OP_PLUS_CLAMPED_EXT;
1965 enum VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = VkBlendOp.VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT;
1966 enum VK_BLEND_OP_PLUS_DARKER_EXT        = VkBlendOp.VK_BLEND_OP_PLUS_DARKER_EXT;
1967 enum VK_BLEND_OP_MINUS_EXT              = VkBlendOp.VK_BLEND_OP_MINUS_EXT;
1968 enum VK_BLEND_OP_MINUS_CLAMPED_EXT      = VkBlendOp.VK_BLEND_OP_MINUS_CLAMPED_EXT;
1969 enum VK_BLEND_OP_CONTRAST_EXT           = VkBlendOp.VK_BLEND_OP_CONTRAST_EXT;
1970 enum VK_BLEND_OP_INVERT_OVG_EXT         = VkBlendOp.VK_BLEND_OP_INVERT_OVG_EXT;
1971 enum VK_BLEND_OP_RED_EXT                = VkBlendOp.VK_BLEND_OP_RED_EXT;
1972 enum VK_BLEND_OP_GREEN_EXT              = VkBlendOp.VK_BLEND_OP_GREEN_EXT;
1973 enum VK_BLEND_OP_BLUE_EXT               = VkBlendOp.VK_BLEND_OP_BLUE_EXT;
1974 
1975 enum VkColorComponentFlagBits : VkFlags {
1976     VK_COLOR_COMPONENT_R_BIT = 0x00000001,
1977     VK_COLOR_COMPONENT_G_BIT = 0x00000002,
1978     VK_COLOR_COMPONENT_B_BIT = 0x00000004,
1979     VK_COLOR_COMPONENT_A_BIT = 0x00000008,
1980 }
1981 enum VK_COLOR_COMPONENT_R_BIT = VkColorComponentFlagBits.VK_COLOR_COMPONENT_R_BIT;
1982 enum VK_COLOR_COMPONENT_G_BIT = VkColorComponentFlagBits.VK_COLOR_COMPONENT_G_BIT;
1983 enum VK_COLOR_COMPONENT_B_BIT = VkColorComponentFlagBits.VK_COLOR_COMPONENT_B_BIT;
1984 enum VK_COLOR_COMPONENT_A_BIT = VkColorComponentFlagBits.VK_COLOR_COMPONENT_A_BIT;
1985 
1986 enum VkDynamicState {
1987     VK_DYNAMIC_STATE_VIEWPORT              = 0,
1988     VK_DYNAMIC_STATE_SCISSOR               = 1,
1989     VK_DYNAMIC_STATE_LINE_WIDTH            = 2,
1990     VK_DYNAMIC_STATE_DEPTH_BIAS            = 3,
1991     VK_DYNAMIC_STATE_BLEND_CONSTANTS       = 4,
1992     VK_DYNAMIC_STATE_DEPTH_BOUNDS          = 5,
1993     VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK  = 6,
1994     VK_DYNAMIC_STATE_STENCIL_WRITE_MASK    = 7,
1995     VK_DYNAMIC_STATE_STENCIL_REFERENCE     = 8,
1996     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1997     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
1998     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT  = 1000143000,
1999 }
2000 enum VK_DYNAMIC_STATE_VIEWPORT              = VkDynamicState.VK_DYNAMIC_STATE_VIEWPORT;
2001 enum VK_DYNAMIC_STATE_SCISSOR               = VkDynamicState.VK_DYNAMIC_STATE_SCISSOR;
2002 enum VK_DYNAMIC_STATE_LINE_WIDTH            = VkDynamicState.VK_DYNAMIC_STATE_LINE_WIDTH;
2003 enum VK_DYNAMIC_STATE_DEPTH_BIAS            = VkDynamicState.VK_DYNAMIC_STATE_DEPTH_BIAS;
2004 enum VK_DYNAMIC_STATE_BLEND_CONSTANTS       = VkDynamicState.VK_DYNAMIC_STATE_BLEND_CONSTANTS;
2005 enum VK_DYNAMIC_STATE_DEPTH_BOUNDS          = VkDynamicState.VK_DYNAMIC_STATE_DEPTH_BOUNDS;
2006 enum VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK  = VkDynamicState.VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK;
2007 enum VK_DYNAMIC_STATE_STENCIL_WRITE_MASK    = VkDynamicState.VK_DYNAMIC_STATE_STENCIL_WRITE_MASK;
2008 enum VK_DYNAMIC_STATE_STENCIL_REFERENCE     = VkDynamicState.VK_DYNAMIC_STATE_STENCIL_REFERENCE;
2009 enum VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = VkDynamicState.VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV;
2010 enum VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = VkDynamicState.VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT;
2011 enum VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT  = VkDynamicState.VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT;
2012 
2013 enum VkFilter {
2014     VK_FILTER_NEAREST   = 0,
2015     VK_FILTER_LINEAR    = 1,
2016     VK_FILTER_CUBIC_IMG = 1000015000,
2017 }
2018 enum VK_FILTER_NEAREST   = VkFilter.VK_FILTER_NEAREST;
2019 enum VK_FILTER_LINEAR    = VkFilter.VK_FILTER_LINEAR;
2020 enum VK_FILTER_CUBIC_IMG = VkFilter.VK_FILTER_CUBIC_IMG;
2021 
2022 enum VkSamplerMipmapMode {
2023     VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
2024     VK_SAMPLER_MIPMAP_MODE_LINEAR  = 1,
2025 }
2026 enum VK_SAMPLER_MIPMAP_MODE_NEAREST = VkSamplerMipmapMode.VK_SAMPLER_MIPMAP_MODE_NEAREST;
2027 enum VK_SAMPLER_MIPMAP_MODE_LINEAR  = VkSamplerMipmapMode.VK_SAMPLER_MIPMAP_MODE_LINEAR;
2028 
2029 enum VkSamplerAddressMode {
2030     VK_SAMPLER_ADDRESS_MODE_REPEAT               = 0,
2031     VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT      = 1,
2032     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE        = 2,
2033     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER      = 3,
2034     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
2035 }
2036 enum VK_SAMPLER_ADDRESS_MODE_REPEAT               = VkSamplerAddressMode.VK_SAMPLER_ADDRESS_MODE_REPEAT;
2037 enum VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT      = VkSamplerAddressMode.VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT;
2038 enum VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE        = VkSamplerAddressMode.VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
2039 enum VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER      = VkSamplerAddressMode.VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER;
2040 enum VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = VkSamplerAddressMode.VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE;
2041 
2042 enum VkBorderColor {
2043     VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
2044     VK_BORDER_COLOR_INT_TRANSPARENT_BLACK   = 1,
2045     VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK      = 2,
2046     VK_BORDER_COLOR_INT_OPAQUE_BLACK        = 3,
2047     VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE      = 4,
2048     VK_BORDER_COLOR_INT_OPAQUE_WHITE        = 5,
2049 }
2050 enum VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = VkBorderColor.VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK;
2051 enum VK_BORDER_COLOR_INT_TRANSPARENT_BLACK   = VkBorderColor.VK_BORDER_COLOR_INT_TRANSPARENT_BLACK;
2052 enum VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK      = VkBorderColor.VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK;
2053 enum VK_BORDER_COLOR_INT_OPAQUE_BLACK        = VkBorderColor.VK_BORDER_COLOR_INT_OPAQUE_BLACK;
2054 enum VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE      = VkBorderColor.VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE;
2055 enum VK_BORDER_COLOR_INT_OPAQUE_WHITE        = VkBorderColor.VK_BORDER_COLOR_INT_OPAQUE_WHITE;
2056 
2057 enum VkDescriptorSetLayoutCreateFlagBits : VkFlags {
2058     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
2059 }
2060 enum VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = VkDescriptorSetLayoutCreateFlagBits.VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR;
2061 
2062 enum VkDescriptorType {
2063     VK_DESCRIPTOR_TYPE_SAMPLER                = 0,
2064     VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
2065     VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE          = 2,
2066     VK_DESCRIPTOR_TYPE_STORAGE_IMAGE          = 3,
2067     VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER   = 4,
2068     VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER   = 5,
2069     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER         = 6,
2070     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER         = 7,
2071     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
2072     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
2073     VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT       = 10,
2074 }
2075 enum VK_DESCRIPTOR_TYPE_SAMPLER                = VkDescriptorType.VK_DESCRIPTOR_TYPE_SAMPLER;
2076 enum VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = VkDescriptorType.VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
2077 enum VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE          = VkDescriptorType.VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE;
2078 enum VK_DESCRIPTOR_TYPE_STORAGE_IMAGE          = VkDescriptorType.VK_DESCRIPTOR_TYPE_STORAGE_IMAGE;
2079 enum VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER   = VkDescriptorType.VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER;
2080 enum VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER   = VkDescriptorType.VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER;
2081 enum VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER         = VkDescriptorType.VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
2082 enum VK_DESCRIPTOR_TYPE_STORAGE_BUFFER         = VkDescriptorType.VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
2083 enum VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = VkDescriptorType.VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC;
2084 enum VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = VkDescriptorType.VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC;
2085 enum VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT       = VkDescriptorType.VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT;
2086 
2087 enum VkDescriptorPoolCreateFlagBits : VkFlags {
2088     VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
2089 }
2090 enum VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = VkDescriptorPoolCreateFlagBits.VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT;
2091 
2092 enum VkAttachmentDescriptionFlagBits : VkFlags {
2093     VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
2094 }
2095 enum VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = VkAttachmentDescriptionFlagBits.VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT;
2096 
2097 enum VkAttachmentLoadOp {
2098     VK_ATTACHMENT_LOAD_OP_LOAD      = 0,
2099     VK_ATTACHMENT_LOAD_OP_CLEAR     = 1,
2100     VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
2101 }
2102 enum VK_ATTACHMENT_LOAD_OP_LOAD      = VkAttachmentLoadOp.VK_ATTACHMENT_LOAD_OP_LOAD;
2103 enum VK_ATTACHMENT_LOAD_OP_CLEAR     = VkAttachmentLoadOp.VK_ATTACHMENT_LOAD_OP_CLEAR;
2104 enum VK_ATTACHMENT_LOAD_OP_DONT_CARE = VkAttachmentLoadOp.VK_ATTACHMENT_LOAD_OP_DONT_CARE;
2105 
2106 enum VkAttachmentStoreOp {
2107     VK_ATTACHMENT_STORE_OP_STORE     = 0,
2108     VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
2109 }
2110 enum VK_ATTACHMENT_STORE_OP_STORE     = VkAttachmentStoreOp.VK_ATTACHMENT_STORE_OP_STORE;
2111 enum VK_ATTACHMENT_STORE_OP_DONT_CARE = VkAttachmentStoreOp.VK_ATTACHMENT_STORE_OP_DONT_CARE;
2112 
2113 enum VkSubpassDescriptionFlagBits : VkFlags {
2114     VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX      = 0x00000001,
2115     VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
2116 }
2117 enum VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX      = VkSubpassDescriptionFlagBits.VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX;
2118 enum VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = VkSubpassDescriptionFlagBits.VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX;
2119 
2120 enum VkPipelineBindPoint {
2121     VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
2122     VK_PIPELINE_BIND_POINT_COMPUTE  = 1,
2123 }
2124 enum VK_PIPELINE_BIND_POINT_GRAPHICS = VkPipelineBindPoint.VK_PIPELINE_BIND_POINT_GRAPHICS;
2125 enum VK_PIPELINE_BIND_POINT_COMPUTE  = VkPipelineBindPoint.VK_PIPELINE_BIND_POINT_COMPUTE;
2126 
2127 enum VkAccessFlagBits : VkFlags {
2128     VK_ACCESS_INDIRECT_COMMAND_READ_BIT                 = 0x00000001,
2129     VK_ACCESS_INDEX_READ_BIT                            = 0x00000002,
2130     VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT                 = 0x00000004,
2131     VK_ACCESS_UNIFORM_READ_BIT                          = 0x00000008,
2132     VK_ACCESS_INPUT_ATTACHMENT_READ_BIT                 = 0x00000010,
2133     VK_ACCESS_SHADER_READ_BIT                           = 0x00000020,
2134     VK_ACCESS_SHADER_WRITE_BIT                          = 0x00000040,
2135     VK_ACCESS_COLOR_ATTACHMENT_READ_BIT                 = 0x00000080,
2136     VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT                = 0x00000100,
2137     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT         = 0x00000200,
2138     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT        = 0x00000400,
2139     VK_ACCESS_TRANSFER_READ_BIT                         = 0x00000800,
2140     VK_ACCESS_TRANSFER_WRITE_BIT                        = 0x00001000,
2141     VK_ACCESS_HOST_READ_BIT                             = 0x00002000,
2142     VK_ACCESS_HOST_WRITE_BIT                            = 0x00004000,
2143     VK_ACCESS_MEMORY_READ_BIT                           = 0x00008000,
2144     VK_ACCESS_MEMORY_WRITE_BIT                          = 0x00010000,
2145     VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX              = 0x00020000,
2146     VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX             = 0x00040000,
2147     VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
2148 }
2149 enum VK_ACCESS_INDIRECT_COMMAND_READ_BIT                 = VkAccessFlagBits.VK_ACCESS_INDIRECT_COMMAND_READ_BIT;
2150 enum VK_ACCESS_INDEX_READ_BIT                            = VkAccessFlagBits.VK_ACCESS_INDEX_READ_BIT;
2151 enum VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT                 = VkAccessFlagBits.VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT;
2152 enum VK_ACCESS_UNIFORM_READ_BIT                          = VkAccessFlagBits.VK_ACCESS_UNIFORM_READ_BIT;
2153 enum VK_ACCESS_INPUT_ATTACHMENT_READ_BIT                 = VkAccessFlagBits.VK_ACCESS_INPUT_ATTACHMENT_READ_BIT;
2154 enum VK_ACCESS_SHADER_READ_BIT                           = VkAccessFlagBits.VK_ACCESS_SHADER_READ_BIT;
2155 enum VK_ACCESS_SHADER_WRITE_BIT                          = VkAccessFlagBits.VK_ACCESS_SHADER_WRITE_BIT;
2156 enum VK_ACCESS_COLOR_ATTACHMENT_READ_BIT                 = VkAccessFlagBits.VK_ACCESS_COLOR_ATTACHMENT_READ_BIT;
2157 enum VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT                = VkAccessFlagBits.VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
2158 enum VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT         = VkAccessFlagBits.VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT;
2159 enum VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT        = VkAccessFlagBits.VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT;
2160 enum VK_ACCESS_TRANSFER_READ_BIT                         = VkAccessFlagBits.VK_ACCESS_TRANSFER_READ_BIT;
2161 enum VK_ACCESS_TRANSFER_WRITE_BIT                        = VkAccessFlagBits.VK_ACCESS_TRANSFER_WRITE_BIT;
2162 enum VK_ACCESS_HOST_READ_BIT                             = VkAccessFlagBits.VK_ACCESS_HOST_READ_BIT;
2163 enum VK_ACCESS_HOST_WRITE_BIT                            = VkAccessFlagBits.VK_ACCESS_HOST_WRITE_BIT;
2164 enum VK_ACCESS_MEMORY_READ_BIT                           = VkAccessFlagBits.VK_ACCESS_MEMORY_READ_BIT;
2165 enum VK_ACCESS_MEMORY_WRITE_BIT                          = VkAccessFlagBits.VK_ACCESS_MEMORY_WRITE_BIT;
2166 enum VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX              = VkAccessFlagBits.VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX;
2167 enum VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX             = VkAccessFlagBits.VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX;
2168 enum VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = VkAccessFlagBits.VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT;
2169 
2170 enum VkDependencyFlagBits : VkFlags {
2171     VK_DEPENDENCY_BY_REGION_BIT        = 0x00000001,
2172     VK_DEPENDENCY_VIEW_LOCAL_BIT_KHX   = 0x00000002,
2173     VK_DEPENDENCY_DEVICE_GROUP_BIT_KHX = 0x00000004,
2174 }
2175 enum VK_DEPENDENCY_BY_REGION_BIT        = VkDependencyFlagBits.VK_DEPENDENCY_BY_REGION_BIT;
2176 enum VK_DEPENDENCY_VIEW_LOCAL_BIT_KHX   = VkDependencyFlagBits.VK_DEPENDENCY_VIEW_LOCAL_BIT_KHX;
2177 enum VK_DEPENDENCY_DEVICE_GROUP_BIT_KHX = VkDependencyFlagBits.VK_DEPENDENCY_DEVICE_GROUP_BIT_KHX;
2178 
2179 enum VkCommandPoolCreateFlagBits : VkFlags {
2180     VK_COMMAND_POOL_CREATE_TRANSIENT_BIT            = 0x00000001,
2181     VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
2182 }
2183 enum VK_COMMAND_POOL_CREATE_TRANSIENT_BIT            = VkCommandPoolCreateFlagBits.VK_COMMAND_POOL_CREATE_TRANSIENT_BIT;
2184 enum VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = VkCommandPoolCreateFlagBits.VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT;
2185 
2186 enum VkCommandPoolResetFlagBits : VkFlags {
2187     VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
2188 }
2189 enum VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = VkCommandPoolResetFlagBits.VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT;
2190 
2191 enum VkCommandBufferLevel {
2192     VK_COMMAND_BUFFER_LEVEL_PRIMARY   = 0,
2193     VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
2194 }
2195 enum VK_COMMAND_BUFFER_LEVEL_PRIMARY   = VkCommandBufferLevel.VK_COMMAND_BUFFER_LEVEL_PRIMARY;
2196 enum VK_COMMAND_BUFFER_LEVEL_SECONDARY = VkCommandBufferLevel.VK_COMMAND_BUFFER_LEVEL_SECONDARY;
2197 
2198 enum VkCommandBufferUsageFlagBits : VkFlags {
2199     VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT      = 0x00000001,
2200     VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2201     VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT     = 0x00000004,
2202 }
2203 enum VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT      = VkCommandBufferUsageFlagBits.VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
2204 enum VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = VkCommandBufferUsageFlagBits.VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT;
2205 enum VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT     = VkCommandBufferUsageFlagBits.VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT;
2206 
2207 enum VkQueryControlFlagBits : VkFlags {
2208     VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
2209 }
2210 enum VK_QUERY_CONTROL_PRECISE_BIT = VkQueryControlFlagBits.VK_QUERY_CONTROL_PRECISE_BIT;
2211 
2212 enum VkCommandBufferResetFlagBits : VkFlags {
2213     VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
2214 }
2215 enum VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = VkCommandBufferResetFlagBits.VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT;
2216 
2217 enum VkStencilFaceFlagBits : VkFlags {
2218     VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
2219     VK_STENCIL_FACE_BACK_BIT  = 0x00000002,
2220     VK_STENCIL_FRONT_AND_BACK = 0x00000003,
2221 }
2222 enum VK_STENCIL_FACE_FRONT_BIT = VkStencilFaceFlagBits.VK_STENCIL_FACE_FRONT_BIT;
2223 enum VK_STENCIL_FACE_BACK_BIT  = VkStencilFaceFlagBits.VK_STENCIL_FACE_BACK_BIT;
2224 enum VK_STENCIL_FRONT_AND_BACK = VkStencilFaceFlagBits.VK_STENCIL_FRONT_AND_BACK;
2225 
2226 enum VkIndexType {
2227     VK_INDEX_TYPE_UINT16 = 0,
2228     VK_INDEX_TYPE_UINT32 = 1,
2229 }
2230 enum VK_INDEX_TYPE_UINT16 = VkIndexType.VK_INDEX_TYPE_UINT16;
2231 enum VK_INDEX_TYPE_UINT32 = VkIndexType.VK_INDEX_TYPE_UINT32;
2232 
2233 enum VkSubpassContents {
2234     VK_SUBPASS_CONTENTS_INLINE                    = 0,
2235     VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
2236 }
2237 enum VK_SUBPASS_CONTENTS_INLINE                    = VkSubpassContents.VK_SUBPASS_CONTENTS_INLINE;
2238 enum VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = VkSubpassContents.VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS;
2239 
2240 enum VkObjectType {
2241     VK_OBJECT_TYPE_UNKNOWN                        = 0,
2242     VK_OBJECT_TYPE_INSTANCE                       = 1,
2243     VK_OBJECT_TYPE_PHYSICAL_DEVICE                = 2,
2244     VK_OBJECT_TYPE_DEVICE                         = 3,
2245     VK_OBJECT_TYPE_QUEUE                          = 4,
2246     VK_OBJECT_TYPE_SEMAPHORE                      = 5,
2247     VK_OBJECT_TYPE_COMMAND_BUFFER                 = 6,
2248     VK_OBJECT_TYPE_FENCE                          = 7,
2249     VK_OBJECT_TYPE_DEVICE_MEMORY                  = 8,
2250     VK_OBJECT_TYPE_BUFFER                         = 9,
2251     VK_OBJECT_TYPE_IMAGE                          = 10,
2252     VK_OBJECT_TYPE_EVENT                          = 11,
2253     VK_OBJECT_TYPE_QUERY_POOL                     = 12,
2254     VK_OBJECT_TYPE_BUFFER_VIEW                    = 13,
2255     VK_OBJECT_TYPE_IMAGE_VIEW                     = 14,
2256     VK_OBJECT_TYPE_SHADER_MODULE                  = 15,
2257     VK_OBJECT_TYPE_PIPELINE_CACHE                 = 16,
2258     VK_OBJECT_TYPE_PIPELINE_LAYOUT                = 17,
2259     VK_OBJECT_TYPE_RENDER_PASS                    = 18,
2260     VK_OBJECT_TYPE_PIPELINE                       = 19,
2261     VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT          = 20,
2262     VK_OBJECT_TYPE_SAMPLER                        = 21,
2263     VK_OBJECT_TYPE_DESCRIPTOR_POOL                = 22,
2264     VK_OBJECT_TYPE_DESCRIPTOR_SET                 = 23,
2265     VK_OBJECT_TYPE_FRAMEBUFFER                    = 24,
2266     VK_OBJECT_TYPE_COMMAND_POOL                   = 25,
2267     VK_OBJECT_TYPE_SURFACE_KHR                    = 1000000000,
2268     VK_OBJECT_TYPE_SWAPCHAIN_KHR                  = 1000001000,
2269     VK_OBJECT_TYPE_DISPLAY_KHR                    = 1000002000,
2270     VK_OBJECT_TYPE_DISPLAY_MODE_KHR               = 1000002001,
2271     VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT      = 1000011000,
2272     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000,
2273     VK_OBJECT_TYPE_OBJECT_TABLE_NVX               = 1000086000,
2274     VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX   = 1000086001,
2275     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR   = 1000156000,
2276     VK_OBJECT_TYPE_VALIDATION_CACHE_EXT           = 1000160000,
2277 }
2278 enum VK_OBJECT_TYPE_UNKNOWN                        = VkObjectType.VK_OBJECT_TYPE_UNKNOWN;
2279 enum VK_OBJECT_TYPE_INSTANCE                       = VkObjectType.VK_OBJECT_TYPE_INSTANCE;
2280 enum VK_OBJECT_TYPE_PHYSICAL_DEVICE                = VkObjectType.VK_OBJECT_TYPE_PHYSICAL_DEVICE;
2281 enum VK_OBJECT_TYPE_DEVICE                         = VkObjectType.VK_OBJECT_TYPE_DEVICE;
2282 enum VK_OBJECT_TYPE_QUEUE                          = VkObjectType.VK_OBJECT_TYPE_QUEUE;
2283 enum VK_OBJECT_TYPE_SEMAPHORE                      = VkObjectType.VK_OBJECT_TYPE_SEMAPHORE;
2284 enum VK_OBJECT_TYPE_COMMAND_BUFFER                 = VkObjectType.VK_OBJECT_TYPE_COMMAND_BUFFER;
2285 enum VK_OBJECT_TYPE_FENCE                          = VkObjectType.VK_OBJECT_TYPE_FENCE;
2286 enum VK_OBJECT_TYPE_DEVICE_MEMORY                  = VkObjectType.VK_OBJECT_TYPE_DEVICE_MEMORY;
2287 enum VK_OBJECT_TYPE_BUFFER                         = VkObjectType.VK_OBJECT_TYPE_BUFFER;
2288 enum VK_OBJECT_TYPE_IMAGE                          = VkObjectType.VK_OBJECT_TYPE_IMAGE;
2289 enum VK_OBJECT_TYPE_EVENT                          = VkObjectType.VK_OBJECT_TYPE_EVENT;
2290 enum VK_OBJECT_TYPE_QUERY_POOL                     = VkObjectType.VK_OBJECT_TYPE_QUERY_POOL;
2291 enum VK_OBJECT_TYPE_BUFFER_VIEW                    = VkObjectType.VK_OBJECT_TYPE_BUFFER_VIEW;
2292 enum VK_OBJECT_TYPE_IMAGE_VIEW                     = VkObjectType.VK_OBJECT_TYPE_IMAGE_VIEW;
2293 enum VK_OBJECT_TYPE_SHADER_MODULE                  = VkObjectType.VK_OBJECT_TYPE_SHADER_MODULE;
2294 enum VK_OBJECT_TYPE_PIPELINE_CACHE                 = VkObjectType.VK_OBJECT_TYPE_PIPELINE_CACHE;
2295 enum VK_OBJECT_TYPE_PIPELINE_LAYOUT                = VkObjectType.VK_OBJECT_TYPE_PIPELINE_LAYOUT;
2296 enum VK_OBJECT_TYPE_RENDER_PASS                    = VkObjectType.VK_OBJECT_TYPE_RENDER_PASS;
2297 enum VK_OBJECT_TYPE_PIPELINE                       = VkObjectType.VK_OBJECT_TYPE_PIPELINE;
2298 enum VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT          = VkObjectType.VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT;
2299 enum VK_OBJECT_TYPE_SAMPLER                        = VkObjectType.VK_OBJECT_TYPE_SAMPLER;
2300 enum VK_OBJECT_TYPE_DESCRIPTOR_POOL                = VkObjectType.VK_OBJECT_TYPE_DESCRIPTOR_POOL;
2301 enum VK_OBJECT_TYPE_DESCRIPTOR_SET                 = VkObjectType.VK_OBJECT_TYPE_DESCRIPTOR_SET;
2302 enum VK_OBJECT_TYPE_FRAMEBUFFER                    = VkObjectType.VK_OBJECT_TYPE_FRAMEBUFFER;
2303 enum VK_OBJECT_TYPE_COMMAND_POOL                   = VkObjectType.VK_OBJECT_TYPE_COMMAND_POOL;
2304 enum VK_OBJECT_TYPE_SURFACE_KHR                    = VkObjectType.VK_OBJECT_TYPE_SURFACE_KHR;
2305 enum VK_OBJECT_TYPE_SWAPCHAIN_KHR                  = VkObjectType.VK_OBJECT_TYPE_SWAPCHAIN_KHR;
2306 enum VK_OBJECT_TYPE_DISPLAY_KHR                    = VkObjectType.VK_OBJECT_TYPE_DISPLAY_KHR;
2307 enum VK_OBJECT_TYPE_DISPLAY_MODE_KHR               = VkObjectType.VK_OBJECT_TYPE_DISPLAY_MODE_KHR;
2308 enum VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT      = VkObjectType.VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT;
2309 enum VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VkObjectType.VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR;
2310 enum VK_OBJECT_TYPE_OBJECT_TABLE_NVX               = VkObjectType.VK_OBJECT_TYPE_OBJECT_TABLE_NVX;
2311 enum VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX   = VkObjectType.VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX;
2312 enum VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR   = VkObjectType.VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR;
2313 enum VK_OBJECT_TYPE_VALIDATION_CACHE_EXT           = VkObjectType.VK_OBJECT_TYPE_VALIDATION_CACHE_EXT;
2314 
2315 
2316 // VK_KHR_surface
2317 enum VkSurfaceTransformFlagBitsKHR {
2318     VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR                     = 0x00000001,
2319     VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR                    = 0x00000002,
2320     VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR                   = 0x00000004,
2321     VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR                   = 0x00000008,
2322     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR            = 0x00000010,
2323     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR  = 0x00000020,
2324     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
2325     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
2326     VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR                      = 0x00000100,
2327 }
2328 enum VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR                     = VkSurfaceTransformFlagBitsKHR.VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR;
2329 enum VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR                    = VkSurfaceTransformFlagBitsKHR.VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR;
2330 enum VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR                   = VkSurfaceTransformFlagBitsKHR.VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR;
2331 enum VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR                   = VkSurfaceTransformFlagBitsKHR.VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR;
2332 enum VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR            = VkSurfaceTransformFlagBitsKHR.VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR;
2333 enum VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR  = VkSurfaceTransformFlagBitsKHR.VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR;
2334 enum VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = VkSurfaceTransformFlagBitsKHR.VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR;
2335 enum VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = VkSurfaceTransformFlagBitsKHR.VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR;
2336 enum VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR                      = VkSurfaceTransformFlagBitsKHR.VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR;
2337 
2338 enum VkCompositeAlphaFlagBitsKHR {
2339     VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR          = 0x00000001,
2340     VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR  = 0x00000002,
2341     VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
2342     VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR         = 0x00000008,
2343 }
2344 enum VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR          = VkCompositeAlphaFlagBitsKHR.VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR;
2345 enum VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR  = VkCompositeAlphaFlagBitsKHR.VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR;
2346 enum VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = VkCompositeAlphaFlagBitsKHR.VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR;
2347 enum VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR         = VkCompositeAlphaFlagBitsKHR.VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR;
2348 
2349 enum VkColorSpaceKHR {
2350     VK_COLOR_SPACE_SRGB_NONLINEAR_KHR          = 0,
2351     VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT    = 1000104001,
2352     VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT    = 1000104002,
2353     VK_COLOR_SPACE_DCI_P3_LINEAR_EXT           = 1000104003,
2354     VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT        = 1000104004,
2355     VK_COLOR_SPACE_BT709_LINEAR_EXT            = 1000104005,
2356     VK_COLOR_SPACE_BT709_NONLINEAR_EXT         = 1000104006,
2357     VK_COLOR_SPACE_BT2020_LINEAR_EXT           = 1000104007,
2358     VK_COLOR_SPACE_HDR10_ST2084_EXT            = 1000104008,
2359     VK_COLOR_SPACE_DOLBYVISION_EXT             = 1000104009,
2360     VK_COLOR_SPACE_HDR10_HLG_EXT               = 1000104010,
2361     VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT         = 1000104011,
2362     VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT      = 1000104012,
2363     VK_COLOR_SPACE_PASS_THROUGH_EXT            = 1000104013,
2364     VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
2365 }
2366 enum VK_COLOR_SPACE_SRGB_NONLINEAR_KHR          = VkColorSpaceKHR.VK_COLOR_SPACE_SRGB_NONLINEAR_KHR;
2367 enum VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT    = VkColorSpaceKHR.VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT;
2368 enum VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT    = VkColorSpaceKHR.VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT;
2369 enum VK_COLOR_SPACE_DCI_P3_LINEAR_EXT           = VkColorSpaceKHR.VK_COLOR_SPACE_DCI_P3_LINEAR_EXT;
2370 enum VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT        = VkColorSpaceKHR.VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT;
2371 enum VK_COLOR_SPACE_BT709_LINEAR_EXT            = VkColorSpaceKHR.VK_COLOR_SPACE_BT709_LINEAR_EXT;
2372 enum VK_COLOR_SPACE_BT709_NONLINEAR_EXT         = VkColorSpaceKHR.VK_COLOR_SPACE_BT709_NONLINEAR_EXT;
2373 enum VK_COLOR_SPACE_BT2020_LINEAR_EXT           = VkColorSpaceKHR.VK_COLOR_SPACE_BT2020_LINEAR_EXT;
2374 enum VK_COLOR_SPACE_HDR10_ST2084_EXT            = VkColorSpaceKHR.VK_COLOR_SPACE_HDR10_ST2084_EXT;
2375 enum VK_COLOR_SPACE_DOLBYVISION_EXT             = VkColorSpaceKHR.VK_COLOR_SPACE_DOLBYVISION_EXT;
2376 enum VK_COLOR_SPACE_HDR10_HLG_EXT               = VkColorSpaceKHR.VK_COLOR_SPACE_HDR10_HLG_EXT;
2377 enum VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT         = VkColorSpaceKHR.VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT;
2378 enum VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT      = VkColorSpaceKHR.VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT;
2379 enum VK_COLOR_SPACE_PASS_THROUGH_EXT            = VkColorSpaceKHR.VK_COLOR_SPACE_PASS_THROUGH_EXT;
2380 enum VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = VkColorSpaceKHR.VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT;
2381 
2382 enum VkPresentModeKHR {
2383     VK_PRESENT_MODE_IMMEDIATE_KHR                 = 0,
2384     VK_PRESENT_MODE_MAILBOX_KHR                   = 1,
2385     VK_PRESENT_MODE_FIFO_KHR                      = 2,
2386     VK_PRESENT_MODE_FIFO_RELAXED_KHR              = 3,
2387     VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR     = 1000111000,
2388     VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
2389 }
2390 enum VK_PRESENT_MODE_IMMEDIATE_KHR                 = VkPresentModeKHR.VK_PRESENT_MODE_IMMEDIATE_KHR;
2391 enum VK_PRESENT_MODE_MAILBOX_KHR                   = VkPresentModeKHR.VK_PRESENT_MODE_MAILBOX_KHR;
2392 enum VK_PRESENT_MODE_FIFO_KHR                      = VkPresentModeKHR.VK_PRESENT_MODE_FIFO_KHR;
2393 enum VK_PRESENT_MODE_FIFO_RELAXED_KHR              = VkPresentModeKHR.VK_PRESENT_MODE_FIFO_RELAXED_KHR;
2394 enum VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR     = VkPresentModeKHR.VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR;
2395 enum VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = VkPresentModeKHR.VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR;
2396 
2397 
2398 // VK_KHR_swapchain
2399 enum VkSwapchainCreateFlagBitsKHR {
2400     VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHX = 0x00000001,
2401 }
2402 enum VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHX = VkSwapchainCreateFlagBitsKHR.VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHX;
2403 
2404 
2405 // VK_KHR_display
2406 enum VkDisplayPlaneAlphaFlagBitsKHR {
2407     VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR                  = 0x00000001,
2408     VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR                  = 0x00000002,
2409     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR               = 0x00000004,
2410     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
2411 }
2412 enum VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR                  = VkDisplayPlaneAlphaFlagBitsKHR.VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR;
2413 enum VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR                  = VkDisplayPlaneAlphaFlagBitsKHR.VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR;
2414 enum VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR               = VkDisplayPlaneAlphaFlagBitsKHR.VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR;
2415 enum VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = VkDisplayPlaneAlphaFlagBitsKHR.VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR;
2416 
2417 
2418 // VK_EXT_debug_report
2419 enum VkDebugReportObjectTypeEXT {
2420     VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT                        = 0,
2421     VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT                       = 1,
2422     VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT                = 2,
2423     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT                         = 3,
2424     VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT                          = 4,
2425     VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT                      = 5,
2426     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT                 = 6,
2427     VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT                          = 7,
2428     VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT                  = 8,
2429     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT                         = 9,
2430     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT                          = 10,
2431     VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT                          = 11,
2432     VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT                     = 12,
2433     VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT                    = 13,
2434     VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT                     = 14,
2435     VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT                  = 15,
2436     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT                 = 16,
2437     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT                = 17,
2438     VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT                    = 18,
2439     VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT                       = 19,
2440     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT          = 20,
2441     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT                        = 21,
2442     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT                = 22,
2443     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT                 = 23,
2444     VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT                    = 24,
2445     VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT                   = 25,
2446     VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT                    = 26,
2447     VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT                  = 27,
2448     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT      = 28,
2449     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT                    = 29,
2450     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT               = 30,
2451     VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT               = 31,
2452     VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT   = 32,
2453     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT               = 33,
2454     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
2455     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT   = 1000156000,
2456 }
2457 enum VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT                        = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT;
2458 enum VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT                       = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT;
2459 enum VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT                = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT;
2460 enum VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT                         = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT;
2461 enum VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT                          = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT;
2462 enum VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT                      = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT;
2463 enum VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT                 = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT;
2464 enum VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT                          = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT;
2465 enum VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT                  = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT;
2466 enum VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT                         = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT;
2467 enum VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT                          = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT;
2468 enum VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT                          = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT;
2469 enum VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT                     = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT;
2470 enum VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT                    = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT;
2471 enum VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT                     = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT;
2472 enum VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT                  = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT;
2473 enum VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT                 = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT;
2474 enum VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT                = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT;
2475 enum VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT                    = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT;
2476 enum VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT                       = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT;
2477 enum VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT          = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT;
2478 enum VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT                        = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT;
2479 enum VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT                = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT;
2480 enum VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT                 = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT;
2481 enum VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT                    = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT;
2482 enum VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT                   = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT;
2483 enum VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT                    = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT;
2484 enum VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT                  = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT;
2485 enum VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT      = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT;
2486 enum VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT                    = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT;
2487 enum VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT               = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT;
2488 enum VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT               = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT;
2489 enum VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT   = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT;
2490 enum VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT               = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT;
2491 enum VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT;
2492 enum VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT   = VkDebugReportObjectTypeEXT.VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT;
2493 
2494 enum VkDebugReportFlagBitsEXT {
2495     VK_DEBUG_REPORT_INFORMATION_BIT_EXT         = 0x00000001,
2496     VK_DEBUG_REPORT_WARNING_BIT_EXT             = 0x00000002,
2497     VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
2498     VK_DEBUG_REPORT_ERROR_BIT_EXT               = 0x00000008,
2499     VK_DEBUG_REPORT_DEBUG_BIT_EXT               = 0x00000010,
2500 }
2501 enum VK_DEBUG_REPORT_INFORMATION_BIT_EXT         = VkDebugReportFlagBitsEXT.VK_DEBUG_REPORT_INFORMATION_BIT_EXT;
2502 enum VK_DEBUG_REPORT_WARNING_BIT_EXT             = VkDebugReportFlagBitsEXT.VK_DEBUG_REPORT_WARNING_BIT_EXT;
2503 enum VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = VkDebugReportFlagBitsEXT.VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT;
2504 enum VK_DEBUG_REPORT_ERROR_BIT_EXT               = VkDebugReportFlagBitsEXT.VK_DEBUG_REPORT_ERROR_BIT_EXT;
2505 enum VK_DEBUG_REPORT_DEBUG_BIT_EXT               = VkDebugReportFlagBitsEXT.VK_DEBUG_REPORT_DEBUG_BIT_EXT;
2506 
2507 
2508 // Structures
2509 
2510 // VK_VERSION_1_0
2511 struct VkApplicationInfo {
2512     VkStructureType sType;
2513     const(void)*    pNext;
2514     const(char)*    pApplicationName;
2515     uint32_t        applicationVersion;
2516     const(char)*    pEngineName;
2517     uint32_t        engineVersion;
2518     uint32_t        apiVersion;
2519 }
2520 struct VkInstanceCreateInfo {
2521     VkStructureType           sType;
2522     const(void)*              pNext;
2523     VkInstanceCreateFlags     flags;
2524     const(VkApplicationInfo)* pApplicationInfo;
2525     uint32_t                  enabledLayerCount;
2526     const(char*)*             ppEnabledLayerNames;
2527     uint32_t                  enabledExtensionCount;
2528     const(char*)*             ppEnabledExtensionNames;
2529 }
2530 struct VkAllocationCallbacks {
2531     void*                                pUserData;
2532     PFN_vkAllocationFunction             pfnAllocation;
2533     PFN_vkReallocationFunction           pfnReallocation;
2534     PFN_vkFreeFunction                   pfnFree;
2535     PFN_vkInternalAllocationNotification pfnInternalAllocation;
2536     PFN_vkInternalFreeNotification       pfnInternalFree;
2537 }
2538 struct VkPhysicalDeviceFeatures {
2539     VkBool32 robustBufferAccess;
2540     VkBool32 fullDrawIndexUint32;
2541     VkBool32 imageCubeArray;
2542     VkBool32 independentBlend;
2543     VkBool32 geometryShader;
2544     VkBool32 tessellationShader;
2545     VkBool32 sampleRateShading;
2546     VkBool32 dualSrcBlend;
2547     VkBool32 logicOp;
2548     VkBool32 multiDrawIndirect;
2549     VkBool32 drawIndirectFirstInstance;
2550     VkBool32 depthClamp;
2551     VkBool32 depthBiasClamp;
2552     VkBool32 fillModeNonSolid;
2553     VkBool32 depthBounds;
2554     VkBool32 wideLines;
2555     VkBool32 largePoints;
2556     VkBool32 alphaToOne;
2557     VkBool32 multiViewport;
2558     VkBool32 samplerAnisotropy;
2559     VkBool32 textureCompressionETC2;
2560     VkBool32 textureCompressionASTC_LDR;
2561     VkBool32 textureCompressionBC;
2562     VkBool32 occlusionQueryPrecise;
2563     VkBool32 pipelineStatisticsQuery;
2564     VkBool32 vertexPipelineStoresAndAtomics;
2565     VkBool32 fragmentStoresAndAtomics;
2566     VkBool32 shaderTessellationAndGeometryPointSize;
2567     VkBool32 shaderImageGatherExtended;
2568     VkBool32 shaderStorageImageExtendedFormats;
2569     VkBool32 shaderStorageImageMultisample;
2570     VkBool32 shaderStorageImageReadWithoutFormat;
2571     VkBool32 shaderStorageImageWriteWithoutFormat;
2572     VkBool32 shaderUniformBufferArrayDynamicIndexing;
2573     VkBool32 shaderSampledImageArrayDynamicIndexing;
2574     VkBool32 shaderStorageBufferArrayDynamicIndexing;
2575     VkBool32 shaderStorageImageArrayDynamicIndexing;
2576     VkBool32 shaderClipDistance;
2577     VkBool32 shaderCullDistance;
2578     VkBool32 shaderFloat64;
2579     VkBool32 shaderInt64;
2580     VkBool32 shaderInt16;
2581     VkBool32 shaderResourceResidency;
2582     VkBool32 shaderResourceMinLod;
2583     VkBool32 sparseBinding;
2584     VkBool32 sparseResidencyBuffer;
2585     VkBool32 sparseResidencyImage2D;
2586     VkBool32 sparseResidencyImage3D;
2587     VkBool32 sparseResidency2Samples;
2588     VkBool32 sparseResidency4Samples;
2589     VkBool32 sparseResidency8Samples;
2590     VkBool32 sparseResidency16Samples;
2591     VkBool32 sparseResidencyAliased;
2592     VkBool32 variableMultisampleRate;
2593     VkBool32 inheritedQueries;
2594 }
2595 struct VkFormatProperties {
2596     VkFormatFeatureFlags linearTilingFeatures;
2597     VkFormatFeatureFlags optimalTilingFeatures;
2598     VkFormatFeatureFlags bufferFeatures;
2599 }
2600 struct VkExtent3D {
2601     uint32_t width;
2602     uint32_t height;
2603     uint32_t depth;
2604 }
2605 struct VkImageFormatProperties {
2606     VkExtent3D         maxExtent;
2607     uint32_t           maxMipLevels;
2608     uint32_t           maxArrayLayers;
2609     VkSampleCountFlags sampleCounts;
2610     VkDeviceSize       maxResourceSize;
2611 }
2612 struct VkPhysicalDeviceLimits {
2613     uint32_t           maxImageDimension1D;
2614     uint32_t           maxImageDimension2D;
2615     uint32_t           maxImageDimension3D;
2616     uint32_t           maxImageDimensionCube;
2617     uint32_t           maxImageArrayLayers;
2618     uint32_t           maxTexelBufferElements;
2619     uint32_t           maxUniformBufferRange;
2620     uint32_t           maxStorageBufferRange;
2621     uint32_t           maxPushConstantsSize;
2622     uint32_t           maxMemoryAllocationCount;
2623     uint32_t           maxSamplerAllocationCount;
2624     VkDeviceSize       bufferImageGranularity;
2625     VkDeviceSize       sparseAddressSpaceSize;
2626     uint32_t           maxBoundDescriptorSets;
2627     uint32_t           maxPerStageDescriptorSamplers;
2628     uint32_t           maxPerStageDescriptorUniformBuffers;
2629     uint32_t           maxPerStageDescriptorStorageBuffers;
2630     uint32_t           maxPerStageDescriptorSampledImages;
2631     uint32_t           maxPerStageDescriptorStorageImages;
2632     uint32_t           maxPerStageDescriptorInputAttachments;
2633     uint32_t           maxPerStageResources;
2634     uint32_t           maxDescriptorSetSamplers;
2635     uint32_t           maxDescriptorSetUniformBuffers;
2636     uint32_t           maxDescriptorSetUniformBuffersDynamic;
2637     uint32_t           maxDescriptorSetStorageBuffers;
2638     uint32_t           maxDescriptorSetStorageBuffersDynamic;
2639     uint32_t           maxDescriptorSetSampledImages;
2640     uint32_t           maxDescriptorSetStorageImages;
2641     uint32_t           maxDescriptorSetInputAttachments;
2642     uint32_t           maxVertexInputAttributes;
2643     uint32_t           maxVertexInputBindings;
2644     uint32_t           maxVertexInputAttributeOffset;
2645     uint32_t           maxVertexInputBindingStride;
2646     uint32_t           maxVertexOutputComponents;
2647     uint32_t           maxTessellationGenerationLevel;
2648     uint32_t           maxTessellationPatchSize;
2649     uint32_t           maxTessellationControlPerVertexInputComponents;
2650     uint32_t           maxTessellationControlPerVertexOutputComponents;
2651     uint32_t           maxTessellationControlPerPatchOutputComponents;
2652     uint32_t           maxTessellationControlTotalOutputComponents;
2653     uint32_t           maxTessellationEvaluationInputComponents;
2654     uint32_t           maxTessellationEvaluationOutputComponents;
2655     uint32_t           maxGeometryShaderInvocations;
2656     uint32_t           maxGeometryInputComponents;
2657     uint32_t           maxGeometryOutputComponents;
2658     uint32_t           maxGeometryOutputVertices;
2659     uint32_t           maxGeometryTotalOutputComponents;
2660     uint32_t           maxFragmentInputComponents;
2661     uint32_t           maxFragmentOutputAttachments;
2662     uint32_t           maxFragmentDualSrcAttachments;
2663     uint32_t           maxFragmentCombinedOutputResources;
2664     uint32_t           maxComputeSharedMemorySize;
2665     uint32_t[3]        maxComputeWorkGroupCount;
2666     uint32_t           maxComputeWorkGroupInvocations;
2667     uint32_t[3]        maxComputeWorkGroupSize;
2668     uint32_t           subPixelPrecisionBits;
2669     uint32_t           subTexelPrecisionBits;
2670     uint32_t           mipmapPrecisionBits;
2671     uint32_t           maxDrawIndexedIndexValue;
2672     uint32_t           maxDrawIndirectCount;
2673     float              maxSamplerLodBias;
2674     float              maxSamplerAnisotropy;
2675     uint32_t           maxViewports;
2676     uint32_t[2]        maxViewportDimensions;
2677     float[2]           viewportBoundsRange;
2678     uint32_t           viewportSubPixelBits;
2679     size_t             minMemoryMapAlignment;
2680     VkDeviceSize       minTexelBufferOffsetAlignment;
2681     VkDeviceSize       minUniformBufferOffsetAlignment;
2682     VkDeviceSize       minStorageBufferOffsetAlignment;
2683     int32_t            minTexelOffset;
2684     uint32_t           maxTexelOffset;
2685     int32_t            minTexelGatherOffset;
2686     uint32_t           maxTexelGatherOffset;
2687     float              minInterpolationOffset;
2688     float              maxInterpolationOffset;
2689     uint32_t           subPixelInterpolationOffsetBits;
2690     uint32_t           maxFramebufferWidth;
2691     uint32_t           maxFramebufferHeight;
2692     uint32_t           maxFramebufferLayers;
2693     VkSampleCountFlags framebufferColorSampleCounts;
2694     VkSampleCountFlags framebufferDepthSampleCounts;
2695     VkSampleCountFlags framebufferStencilSampleCounts;
2696     VkSampleCountFlags framebufferNoAttachmentsSampleCounts;
2697     uint32_t           maxColorAttachments;
2698     VkSampleCountFlags sampledImageColorSampleCounts;
2699     VkSampleCountFlags sampledImageIntegerSampleCounts;
2700     VkSampleCountFlags sampledImageDepthSampleCounts;
2701     VkSampleCountFlags sampledImageStencilSampleCounts;
2702     VkSampleCountFlags storageImageSampleCounts;
2703     uint32_t           maxSampleMaskWords;
2704     VkBool32           timestampComputeAndGraphics;
2705     float              timestampPeriod;
2706     uint32_t           maxClipDistances;
2707     uint32_t           maxCullDistances;
2708     uint32_t           maxCombinedClipAndCullDistances;
2709     uint32_t           discreteQueuePriorities;
2710     float[2]           pointSizeRange;
2711     float[2]           lineWidthRange;
2712     float              pointSizeGranularity;
2713     float              lineWidthGranularity;
2714     VkBool32           strictLines;
2715     VkBool32           standardSampleLocations;
2716     VkDeviceSize       optimalBufferCopyOffsetAlignment;
2717     VkDeviceSize       optimalBufferCopyRowPitchAlignment;
2718     VkDeviceSize       nonCoherentAtomSize;
2719 }
2720 struct VkPhysicalDeviceSparseProperties {
2721     VkBool32 residencyStandard2DBlockShape;
2722     VkBool32 residencyStandard2DMultisampleBlockShape;
2723     VkBool32 residencyStandard3DBlockShape;
2724     VkBool32 residencyAlignedMipSize;
2725     VkBool32 residencyNonResidentStrict;
2726 }
2727 struct VkPhysicalDeviceProperties {
2728     uint32_t                               apiVersion;
2729     uint32_t                               driverVersion;
2730     uint32_t                               vendorID;
2731     uint32_t                               deviceID;
2732     VkPhysicalDeviceType                   deviceType;
2733     char[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] deviceName;
2734     uint8_t[VK_UUID_SIZE]                  pipelineCacheUUID;
2735     VkPhysicalDeviceLimits                 limits;
2736     VkPhysicalDeviceSparseProperties       sparseProperties;
2737 }
2738 struct VkQueueFamilyProperties {
2739     VkQueueFlags queueFlags;
2740     uint32_t     queueCount;
2741     uint32_t     timestampValidBits;
2742     VkExtent3D   minImageTransferGranularity;
2743 }
2744 struct VkMemoryType {
2745     VkMemoryPropertyFlags propertyFlags;
2746     uint32_t              heapIndex;
2747 }
2748 struct VkMemoryHeap {
2749     VkDeviceSize      size;
2750     VkMemoryHeapFlags flags;
2751 }
2752 struct VkPhysicalDeviceMemoryProperties {
2753     uint32_t                          memoryTypeCount;
2754     VkMemoryType[VK_MAX_MEMORY_TYPES] memoryTypes;
2755     uint32_t                          memoryHeapCount;
2756     VkMemoryHeap[VK_MAX_MEMORY_HEAPS] memoryHeaps;
2757 }
2758 struct VkDeviceQueueCreateInfo {
2759     VkStructureType          sType;
2760     const(void)*             pNext;
2761     VkDeviceQueueCreateFlags flags;
2762     uint32_t                 queueFamilyIndex;
2763     uint32_t                 queueCount;
2764     const(float)*            pQueuePriorities;
2765 }
2766 struct VkDeviceCreateInfo {
2767     VkStructureType                  sType;
2768     const(void)*                     pNext;
2769     VkDeviceCreateFlags              flags;
2770     uint32_t                         queueCreateInfoCount;
2771     const(VkDeviceQueueCreateInfo)*  pQueueCreateInfos;
2772     uint32_t                         enabledLayerCount;
2773     const(char*)*                    ppEnabledLayerNames;
2774     uint32_t                         enabledExtensionCount;
2775     const(char*)*                    ppEnabledExtensionNames;
2776     const(VkPhysicalDeviceFeatures)* pEnabledFeatures;
2777 }
2778 struct VkExtensionProperties {
2779     char[VK_MAX_EXTENSION_NAME_SIZE] extensionName;
2780     uint32_t                         specVersion;
2781 }
2782 struct VkLayerProperties {
2783     char[VK_MAX_EXTENSION_NAME_SIZE] layerName;
2784     uint32_t                         specVersion;
2785     uint32_t                         implementationVersion;
2786     char[VK_MAX_DESCRIPTION_SIZE]    description;
2787 }
2788 struct VkSubmitInfo {
2789     VkStructureType              sType;
2790     const(void)*                 pNext;
2791     uint32_t                     waitSemaphoreCount;
2792     const(VkSemaphore)*          pWaitSemaphores;
2793     const(VkPipelineStageFlags)* pWaitDstStageMask;
2794     uint32_t                     commandBufferCount;
2795     const(VkCommandBuffer)*      pCommandBuffers;
2796     uint32_t                     signalSemaphoreCount;
2797     const(VkSemaphore)*          pSignalSemaphores;
2798 }
2799 struct VkMemoryAllocateInfo {
2800     VkStructureType sType;
2801     const(void)*    pNext;
2802     VkDeviceSize    allocationSize;
2803     uint32_t        memoryTypeIndex;
2804 }
2805 struct VkMappedMemoryRange {
2806     VkStructureType sType;
2807     const(void)*    pNext;
2808     VkDeviceMemory  memory;
2809     VkDeviceSize    offset;
2810     VkDeviceSize    size;
2811 }
2812 struct VkMemoryRequirements {
2813     VkDeviceSize size;
2814     VkDeviceSize alignment;
2815     uint32_t     memoryTypeBits;
2816 }
2817 struct VkSparseImageFormatProperties {
2818     VkImageAspectFlags       aspectMask;
2819     VkExtent3D               imageGranularity;
2820     VkSparseImageFormatFlags flags;
2821 }
2822 struct VkSparseImageMemoryRequirements {
2823     VkSparseImageFormatProperties formatProperties;
2824     uint32_t                      imageMipTailFirstLod;
2825     VkDeviceSize                  imageMipTailSize;
2826     VkDeviceSize                  imageMipTailOffset;
2827     VkDeviceSize                  imageMipTailStride;
2828 }
2829 struct VkSparseMemoryBind {
2830     VkDeviceSize            resourceOffset;
2831     VkDeviceSize            size;
2832     VkDeviceMemory          memory;
2833     VkDeviceSize            memoryOffset;
2834     VkSparseMemoryBindFlags flags;
2835 }
2836 struct VkSparseBufferMemoryBindInfo {
2837     VkBuffer                   buffer;
2838     uint32_t                   bindCount;
2839     const(VkSparseMemoryBind)* pBinds;
2840 }
2841 struct VkSparseImageOpaqueMemoryBindInfo {
2842     VkImage                    image;
2843     uint32_t                   bindCount;
2844     const(VkSparseMemoryBind)* pBinds;
2845 }
2846 struct VkImageSubresource {
2847     VkImageAspectFlags aspectMask;
2848     uint32_t           mipLevel;
2849     uint32_t           arrayLayer;
2850 }
2851 struct VkOffset3D {
2852     int32_t x;
2853     int32_t y;
2854     int32_t z;
2855 }
2856 struct VkSparseImageMemoryBind {
2857     VkImageSubresource      subresource;
2858     VkOffset3D              offset;
2859     VkExtent3D              extent;
2860     VkDeviceMemory          memory;
2861     VkDeviceSize            memoryOffset;
2862     VkSparseMemoryBindFlags flags;
2863 }
2864 struct VkSparseImageMemoryBindInfo {
2865     VkImage                         image;
2866     uint32_t                        bindCount;
2867     const(VkSparseImageMemoryBind)* pBinds;
2868 }
2869 struct VkBindSparseInfo {
2870     VkStructureType                           sType;
2871     const(void)*                              pNext;
2872     uint32_t                                  waitSemaphoreCount;
2873     const(VkSemaphore)*                       pWaitSemaphores;
2874     uint32_t                                  bufferBindCount;
2875     const(VkSparseBufferMemoryBindInfo)*      pBufferBinds;
2876     uint32_t                                  imageOpaqueBindCount;
2877     const(VkSparseImageOpaqueMemoryBindInfo)* pImageOpaqueBinds;
2878     uint32_t                                  imageBindCount;
2879     const(VkSparseImageMemoryBindInfo)*       pImageBinds;
2880     uint32_t                                  signalSemaphoreCount;
2881     const(VkSemaphore)*                       pSignalSemaphores;
2882 }
2883 struct VkFenceCreateInfo {
2884     VkStructureType    sType;
2885     const(void)*       pNext;
2886     VkFenceCreateFlags flags;
2887 }
2888 struct VkSemaphoreCreateInfo {
2889     VkStructureType        sType;
2890     const(void)*           pNext;
2891     VkSemaphoreCreateFlags flags;
2892 }
2893 struct VkEventCreateInfo {
2894     VkStructureType    sType;
2895     const(void)*       pNext;
2896     VkEventCreateFlags flags;
2897 }
2898 struct VkQueryPoolCreateInfo {
2899     VkStructureType               sType;
2900     const(void)*                  pNext;
2901     VkQueryPoolCreateFlags        flags;
2902     VkQueryType                   queryType;
2903     uint32_t                      queryCount;
2904     VkQueryPipelineStatisticFlags pipelineStatistics;
2905 }
2906 struct VkBufferCreateInfo {
2907     VkStructureType     sType;
2908     const(void)*        pNext;
2909     VkBufferCreateFlags flags;
2910     VkDeviceSize        size;
2911     VkBufferUsageFlags  usage;
2912     VkSharingMode       sharingMode;
2913     uint32_t            queueFamilyIndexCount;
2914     const(uint32_t)*    pQueueFamilyIndices;
2915 }
2916 struct VkBufferViewCreateInfo {
2917     VkStructureType         sType;
2918     const(void)*            pNext;
2919     VkBufferViewCreateFlags flags;
2920     VkBuffer                buffer;
2921     VkFormat                format;
2922     VkDeviceSize            offset;
2923     VkDeviceSize            range;
2924 }
2925 struct VkImageCreateInfo {
2926     VkStructureType       sType;
2927     const(void)*          pNext;
2928     VkImageCreateFlags    flags;
2929     VkImageType           imageType;
2930     VkFormat              format;
2931     VkExtent3D            extent;
2932     uint32_t              mipLevels;
2933     uint32_t              arrayLayers;
2934     VkSampleCountFlagBits samples;
2935     VkImageTiling         tiling;
2936     VkImageUsageFlags     usage;
2937     VkSharingMode         sharingMode;
2938     uint32_t              queueFamilyIndexCount;
2939     const(uint32_t)*      pQueueFamilyIndices;
2940     VkImageLayout         initialLayout;
2941 }
2942 struct VkSubresourceLayout {
2943     VkDeviceSize offset;
2944     VkDeviceSize size;
2945     VkDeviceSize rowPitch;
2946     VkDeviceSize arrayPitch;
2947     VkDeviceSize depthPitch;
2948 }
2949 struct VkComponentMapping {
2950     VkComponentSwizzle r;
2951     VkComponentSwizzle g;
2952     VkComponentSwizzle b;
2953     VkComponentSwizzle a;
2954 }
2955 struct VkImageSubresourceRange {
2956     VkImageAspectFlags aspectMask;
2957     uint32_t           baseMipLevel;
2958     uint32_t           levelCount;
2959     uint32_t           baseArrayLayer;
2960     uint32_t           layerCount;
2961 }
2962 struct VkImageViewCreateInfo {
2963     VkStructureType         sType;
2964     const(void)*            pNext;
2965     VkImageViewCreateFlags  flags;
2966     VkImage                 image;
2967     VkImageViewType         viewType;
2968     VkFormat                format;
2969     VkComponentMapping      components;
2970     VkImageSubresourceRange subresourceRange;
2971 }
2972 struct VkShaderModuleCreateInfo {
2973     VkStructureType           sType;
2974     const(void)*              pNext;
2975     VkShaderModuleCreateFlags flags;
2976     size_t                    codeSize;
2977     const(uint32_t)*          pCode;
2978 }
2979 struct VkPipelineCacheCreateInfo {
2980     VkStructureType            sType;
2981     const(void)*               pNext;
2982     VkPipelineCacheCreateFlags flags;
2983     size_t                     initialDataSize;
2984     const(void)*               pInitialData;
2985 }
2986 struct VkSpecializationMapEntry {
2987     uint32_t constantID;
2988     uint32_t offset;
2989     size_t   size;
2990 }
2991 struct VkSpecializationInfo {
2992     uint32_t                         mapEntryCount;
2993     const(VkSpecializationMapEntry)* pMapEntries;
2994     size_t                           dataSize;
2995     const(void)*                     pData;
2996 }
2997 struct VkPipelineShaderStageCreateInfo {
2998     VkStructureType                  sType;
2999     const(void)*                     pNext;
3000     VkPipelineShaderStageCreateFlags flags;
3001     VkShaderStageFlagBits            stage;
3002     VkShaderModule                   module_;
3003     const(char)*                     pName;
3004     const(VkSpecializationInfo)*     pSpecializationInfo;
3005 }
3006 struct VkVertexInputBindingDescription {
3007     uint32_t          binding;
3008     uint32_t          stride;
3009     VkVertexInputRate inputRate;
3010 }
3011 struct VkVertexInputAttributeDescription {
3012     uint32_t location;
3013     uint32_t binding;
3014     VkFormat format;
3015     uint32_t offset;
3016 }
3017 struct VkPipelineVertexInputStateCreateInfo {
3018     VkStructureType                           sType;
3019     const(void)*                              pNext;
3020     VkPipelineVertexInputStateCreateFlags     flags;
3021     uint32_t                                  vertexBindingDescriptionCount;
3022     const(VkVertexInputBindingDescription)*   pVertexBindingDescriptions;
3023     uint32_t                                  vertexAttributeDescriptionCount;
3024     const(VkVertexInputAttributeDescription)* pVertexAttributeDescriptions;
3025 }
3026 struct VkPipelineInputAssemblyStateCreateInfo {
3027     VkStructureType                         sType;
3028     const(void)*                            pNext;
3029     VkPipelineInputAssemblyStateCreateFlags flags;
3030     VkPrimitiveTopology                     topology;
3031     VkBool32                                primitiveRestartEnable;
3032 }
3033 struct VkPipelineTessellationStateCreateInfo {
3034     VkStructureType                        sType;
3035     const(void)*                           pNext;
3036     VkPipelineTessellationStateCreateFlags flags;
3037     uint32_t                               patchControlPoints;
3038 }
3039 struct VkViewport {
3040     float x;
3041     float y;
3042     float width;
3043     float height;
3044     float minDepth;
3045     float maxDepth;
3046 }
3047 struct VkOffset2D {
3048     int32_t x;
3049     int32_t y;
3050 }
3051 struct VkExtent2D {
3052     uint32_t width;
3053     uint32_t height;
3054 }
3055 struct VkRect2D {
3056     VkOffset2D offset;
3057     VkExtent2D extent;
3058 }
3059 struct VkPipelineViewportStateCreateInfo {
3060     VkStructureType                    sType;
3061     const(void)*                       pNext;
3062     VkPipelineViewportStateCreateFlags flags;
3063     uint32_t                           viewportCount;
3064     const(VkViewport)*                 pViewports;
3065     uint32_t                           scissorCount;
3066     const(VkRect2D)*                   pScissors;
3067 }
3068 struct VkPipelineRasterizationStateCreateInfo {
3069     VkStructureType                         sType;
3070     const(void)*                            pNext;
3071     VkPipelineRasterizationStateCreateFlags flags;
3072     VkBool32                                depthClampEnable;
3073     VkBool32                                rasterizerDiscardEnable;
3074     VkPolygonMode                           polygonMode;
3075     VkCullModeFlags                         cullMode;
3076     VkFrontFace                             frontFace;
3077     VkBool32                                depthBiasEnable;
3078     float                                   depthBiasConstantFactor;
3079     float                                   depthBiasClamp;
3080     float                                   depthBiasSlopeFactor;
3081     float                                   lineWidth;
3082 }
3083 struct VkPipelineMultisampleStateCreateInfo {
3084     VkStructureType                       sType;
3085     const(void)*                          pNext;
3086     VkPipelineMultisampleStateCreateFlags flags;
3087     VkSampleCountFlagBits                 rasterizationSamples;
3088     VkBool32                              sampleShadingEnable;
3089     float                                 minSampleShading;
3090     const(VkSampleMask)*                  pSampleMask;
3091     VkBool32                              alphaToCoverageEnable;
3092     VkBool32                              alphaToOneEnable;
3093 }
3094 struct VkStencilOpState {
3095     VkStencilOp failOp;
3096     VkStencilOp passOp;
3097     VkStencilOp depthFailOp;
3098     VkCompareOp compareOp;
3099     uint32_t    compareMask;
3100     uint32_t    writeMask;
3101     uint32_t    reference;
3102 }
3103 struct VkPipelineDepthStencilStateCreateInfo {
3104     VkStructureType                        sType;
3105     const(void)*                           pNext;
3106     VkPipelineDepthStencilStateCreateFlags flags;
3107     VkBool32                               depthTestEnable;
3108     VkBool32                               depthWriteEnable;
3109     VkCompareOp                            depthCompareOp;
3110     VkBool32                               depthBoundsTestEnable;
3111     VkBool32                               stencilTestEnable;
3112     VkStencilOpState                       front;
3113     VkStencilOpState                       back;
3114     float                                  minDepthBounds;
3115     float                                  maxDepthBounds;
3116 }
3117 struct VkPipelineColorBlendAttachmentState {
3118     VkBool32              blendEnable;
3119     VkBlendFactor         srcColorBlendFactor;
3120     VkBlendFactor         dstColorBlendFactor;
3121     VkBlendOp             colorBlendOp;
3122     VkBlendFactor         srcAlphaBlendFactor;
3123     VkBlendFactor         dstAlphaBlendFactor;
3124     VkBlendOp             alphaBlendOp;
3125     VkColorComponentFlags colorWriteMask;
3126 }
3127 struct VkPipelineColorBlendStateCreateInfo {
3128     VkStructureType                             sType;
3129     const(void)*                                pNext;
3130     VkPipelineColorBlendStateCreateFlags        flags;
3131     VkBool32                                    logicOpEnable;
3132     VkLogicOp                                   logicOp;
3133     uint32_t                                    attachmentCount;
3134     const(VkPipelineColorBlendAttachmentState)* pAttachments;
3135     float[4]                                    blendConstants;
3136 }
3137 struct VkPipelineDynamicStateCreateInfo {
3138     VkStructureType                   sType;
3139     const(void)*                      pNext;
3140     VkPipelineDynamicStateCreateFlags flags;
3141     uint32_t                          dynamicStateCount;
3142     const(VkDynamicState)*            pDynamicStates;
3143 }
3144 struct VkGraphicsPipelineCreateInfo {
3145     VkStructureType                                sType;
3146     const(void)*                                   pNext;
3147     VkPipelineCreateFlags                          flags;
3148     uint32_t                                       stageCount;
3149     const(VkPipelineShaderStageCreateInfo)*        pStages;
3150     const(VkPipelineVertexInputStateCreateInfo)*   pVertexInputState;
3151     const(VkPipelineInputAssemblyStateCreateInfo)* pInputAssemblyState;
3152     const(VkPipelineTessellationStateCreateInfo)*  pTessellationState;
3153     const(VkPipelineViewportStateCreateInfo)*      pViewportState;
3154     const(VkPipelineRasterizationStateCreateInfo)* pRasterizationState;
3155     const(VkPipelineMultisampleStateCreateInfo)*   pMultisampleState;
3156     const(VkPipelineDepthStencilStateCreateInfo)*  pDepthStencilState;
3157     const(VkPipelineColorBlendStateCreateInfo)*    pColorBlendState;
3158     const(VkPipelineDynamicStateCreateInfo)*       pDynamicState;
3159     VkPipelineLayout                               layout;
3160     VkRenderPass                                   renderPass;
3161     uint32_t                                       subpass;
3162     VkPipeline                                     basePipelineHandle;
3163     int32_t                                        basePipelineIndex;
3164 }
3165 struct VkComputePipelineCreateInfo {
3166     VkStructureType                 sType;
3167     const(void)*                    pNext;
3168     VkPipelineCreateFlags           flags;
3169     VkPipelineShaderStageCreateInfo stage;
3170     VkPipelineLayout                layout;
3171     VkPipeline                      basePipelineHandle;
3172     int32_t                         basePipelineIndex;
3173 }
3174 struct VkPushConstantRange {
3175     VkShaderStageFlags stageFlags;
3176     uint32_t           offset;
3177     uint32_t           size;
3178 }
3179 struct VkPipelineLayoutCreateInfo {
3180     VkStructureType               sType;
3181     const(void)*                  pNext;
3182     VkPipelineLayoutCreateFlags   flags;
3183     uint32_t                      setLayoutCount;
3184     const(VkDescriptorSetLayout)* pSetLayouts;
3185     uint32_t                      pushConstantRangeCount;
3186     const(VkPushConstantRange)*   pPushConstantRanges;
3187 }
3188 struct VkSamplerCreateInfo {
3189     VkStructureType      sType;
3190     const(void)*         pNext;
3191     VkSamplerCreateFlags flags;
3192     VkFilter             magFilter;
3193     VkFilter             minFilter;
3194     VkSamplerMipmapMode  mipmapMode;
3195     VkSamplerAddressMode addressModeU;
3196     VkSamplerAddressMode addressModeV;
3197     VkSamplerAddressMode addressModeW;
3198     float                mipLodBias;
3199     VkBool32             anisotropyEnable;
3200     float                maxAnisotropy;
3201     VkBool32             compareEnable;
3202     VkCompareOp          compareOp;
3203     float                minLod;
3204     float                maxLod;
3205     VkBorderColor        borderColor;
3206     VkBool32             unnormalizedCoordinates;
3207 }
3208 struct VkDescriptorSetLayoutBinding {
3209     uint32_t           binding;
3210     VkDescriptorType   descriptorType;
3211     uint32_t           descriptorCount;
3212     VkShaderStageFlags stageFlags;
3213     const(VkSampler)*  pImmutableSamplers;
3214 }
3215 struct VkDescriptorSetLayoutCreateInfo {
3216     VkStructureType                      sType;
3217     const(void)*                         pNext;
3218     VkDescriptorSetLayoutCreateFlags     flags;
3219     uint32_t                             bindingCount;
3220     const(VkDescriptorSetLayoutBinding)* pBindings;
3221 }
3222 struct VkDescriptorPoolSize {
3223     VkDescriptorType type;
3224     uint32_t         descriptorCount;
3225 }
3226 struct VkDescriptorPoolCreateInfo {
3227     VkStructureType              sType;
3228     const(void)*                 pNext;
3229     VkDescriptorPoolCreateFlags  flags;
3230     uint32_t                     maxSets;
3231     uint32_t                     poolSizeCount;
3232     const(VkDescriptorPoolSize)* pPoolSizes;
3233 }
3234 struct VkDescriptorSetAllocateInfo {
3235     VkStructureType               sType;
3236     const(void)*                  pNext;
3237     VkDescriptorPool              descriptorPool;
3238     uint32_t                      descriptorSetCount;
3239     const(VkDescriptorSetLayout)* pSetLayouts;
3240 }
3241 struct VkDescriptorImageInfo {
3242     VkSampler     sampler;
3243     VkImageView   imageView;
3244     VkImageLayout imageLayout;
3245 }
3246 struct VkDescriptorBufferInfo {
3247     VkBuffer     buffer;
3248     VkDeviceSize offset;
3249     VkDeviceSize range;
3250 }
3251 struct VkWriteDescriptorSet {
3252     VkStructureType                sType;
3253     const(void)*                   pNext;
3254     VkDescriptorSet                dstSet;
3255     uint32_t                       dstBinding;
3256     uint32_t                       dstArrayElement;
3257     uint32_t                       descriptorCount;
3258     VkDescriptorType               descriptorType;
3259     const(VkDescriptorImageInfo)*  pImageInfo;
3260     const(VkDescriptorBufferInfo)* pBufferInfo;
3261     const(VkBufferView)*           pTexelBufferView;
3262 }
3263 struct VkCopyDescriptorSet {
3264     VkStructureType sType;
3265     const(void)*    pNext;
3266     VkDescriptorSet srcSet;
3267     uint32_t        srcBinding;
3268     uint32_t        srcArrayElement;
3269     VkDescriptorSet dstSet;
3270     uint32_t        dstBinding;
3271     uint32_t        dstArrayElement;
3272     uint32_t        descriptorCount;
3273 }
3274 struct VkFramebufferCreateInfo {
3275     VkStructureType          sType;
3276     const(void)*             pNext;
3277     VkFramebufferCreateFlags flags;
3278     VkRenderPass             renderPass;
3279     uint32_t                 attachmentCount;
3280     const(VkImageView)*      pAttachments;
3281     uint32_t                 width;
3282     uint32_t                 height;
3283     uint32_t                 layers;
3284 }
3285 struct VkAttachmentDescription {
3286     VkAttachmentDescriptionFlags flags;
3287     VkFormat                     format;
3288     VkSampleCountFlagBits        samples;
3289     VkAttachmentLoadOp           loadOp;
3290     VkAttachmentStoreOp          storeOp;
3291     VkAttachmentLoadOp           stencilLoadOp;
3292     VkAttachmentStoreOp          stencilStoreOp;
3293     VkImageLayout                initialLayout;
3294     VkImageLayout                finalLayout;
3295 }
3296 struct VkAttachmentReference {
3297     uint32_t      attachment;
3298     VkImageLayout layout;
3299 }
3300 struct VkSubpassDescription {
3301     VkSubpassDescriptionFlags     flags;
3302     VkPipelineBindPoint           pipelineBindPoint;
3303     uint32_t                      inputAttachmentCount;
3304     const(VkAttachmentReference)* pInputAttachments;
3305     uint32_t                      colorAttachmentCount;
3306     const(VkAttachmentReference)* pColorAttachments;
3307     const(VkAttachmentReference)* pResolveAttachments;
3308     const(VkAttachmentReference)* pDepthStencilAttachment;
3309     uint32_t                      preserveAttachmentCount;
3310     const(uint32_t)*              pPreserveAttachments;
3311 }
3312 struct VkSubpassDependency {
3313     uint32_t             srcSubpass;
3314     uint32_t             dstSubpass;
3315     VkPipelineStageFlags srcStageMask;
3316     VkPipelineStageFlags dstStageMask;
3317     VkAccessFlags        srcAccessMask;
3318     VkAccessFlags        dstAccessMask;
3319     VkDependencyFlags    dependencyFlags;
3320 }
3321 struct VkRenderPassCreateInfo {
3322     VkStructureType                 sType;
3323     const(void)*                    pNext;
3324     VkRenderPassCreateFlags         flags;
3325     uint32_t                        attachmentCount;
3326     const(VkAttachmentDescription)* pAttachments;
3327     uint32_t                        subpassCount;
3328     const(VkSubpassDescription)*    pSubpasses;
3329     uint32_t                        dependencyCount;
3330     const(VkSubpassDependency)*     pDependencies;
3331 }
3332 struct VkCommandPoolCreateInfo {
3333     VkStructureType          sType;
3334     const(void)*             pNext;
3335     VkCommandPoolCreateFlags flags;
3336     uint32_t                 queueFamilyIndex;
3337 }
3338 struct VkCommandBufferAllocateInfo {
3339     VkStructureType      sType;
3340     const(void)*         pNext;
3341     VkCommandPool        commandPool;
3342     VkCommandBufferLevel level;
3343     uint32_t             commandBufferCount;
3344 }
3345 struct VkCommandBufferInheritanceInfo {
3346     VkStructureType               sType;
3347     const(void)*                  pNext;
3348     VkRenderPass                  renderPass;
3349     uint32_t                      subpass;
3350     VkFramebuffer                 framebuffer;
3351     VkBool32                      occlusionQueryEnable;
3352     VkQueryControlFlags           queryFlags;
3353     VkQueryPipelineStatisticFlags pipelineStatistics;
3354 }
3355 struct VkCommandBufferBeginInfo {
3356     VkStructureType                        sType;
3357     const(void)*                           pNext;
3358     VkCommandBufferUsageFlags              flags;
3359     const(VkCommandBufferInheritanceInfo)* pInheritanceInfo;
3360 }
3361 struct VkBufferCopy {
3362     VkDeviceSize srcOffset;
3363     VkDeviceSize dstOffset;
3364     VkDeviceSize size;
3365 }
3366 struct VkImageSubresourceLayers {
3367     VkImageAspectFlags aspectMask;
3368     uint32_t           mipLevel;
3369     uint32_t           baseArrayLayer;
3370     uint32_t           layerCount;
3371 }
3372 struct VkImageCopy {
3373     VkImageSubresourceLayers srcSubresource;
3374     VkOffset3D               srcOffset;
3375     VkImageSubresourceLayers dstSubresource;
3376     VkOffset3D               dstOffset;
3377     VkExtent3D               extent;
3378 }
3379 struct VkImageBlit {
3380     VkImageSubresourceLayers srcSubresource;
3381     VkOffset3D[2]            srcOffsets;
3382     VkImageSubresourceLayers dstSubresource;
3383     VkOffset3D[2]            dstOffsets;
3384 }
3385 struct VkBufferImageCopy {
3386     VkDeviceSize             bufferOffset;
3387     uint32_t                 bufferRowLength;
3388     uint32_t                 bufferImageHeight;
3389     VkImageSubresourceLayers imageSubresource;
3390     VkOffset3D               imageOffset;
3391     VkExtent3D               imageExtent;
3392 }
3393 union VkClearColorValue {
3394     float[4]    float32;
3395     int32_t[4]  int32;
3396     uint32_t[4] uint32;
3397 }
3398 struct VkClearDepthStencilValue {
3399     float    depth;
3400     uint32_t stencil;
3401 }
3402 union VkClearValue {
3403     VkClearColorValue        color;
3404     VkClearDepthStencilValue depthStencil;
3405 }
3406 struct VkClearAttachment {
3407     VkImageAspectFlags aspectMask;
3408     uint32_t           colorAttachment;
3409     VkClearValue       clearValue;
3410 }
3411 struct VkClearRect {
3412     VkRect2D rect;
3413     uint32_t baseArrayLayer;
3414     uint32_t layerCount;
3415 }
3416 struct VkImageResolve {
3417     VkImageSubresourceLayers srcSubresource;
3418     VkOffset3D               srcOffset;
3419     VkImageSubresourceLayers dstSubresource;
3420     VkOffset3D               dstOffset;
3421     VkExtent3D               extent;
3422 }
3423 struct VkMemoryBarrier {
3424     VkStructureType sType;
3425     const(void)*    pNext;
3426     VkAccessFlags   srcAccessMask;
3427     VkAccessFlags   dstAccessMask;
3428 }
3429 struct VkBufferMemoryBarrier {
3430     VkStructureType sType;
3431     const(void)*    pNext;
3432     VkAccessFlags   srcAccessMask;
3433     VkAccessFlags   dstAccessMask;
3434     uint32_t        srcQueueFamilyIndex;
3435     uint32_t        dstQueueFamilyIndex;
3436     VkBuffer        buffer;
3437     VkDeviceSize    offset;
3438     VkDeviceSize    size;
3439 }
3440 struct VkImageMemoryBarrier {
3441     VkStructureType         sType;
3442     const(void)*            pNext;
3443     VkAccessFlags           srcAccessMask;
3444     VkAccessFlags           dstAccessMask;
3445     VkImageLayout           oldLayout;
3446     VkImageLayout           newLayout;
3447     uint32_t                srcQueueFamilyIndex;
3448     uint32_t                dstQueueFamilyIndex;
3449     VkImage                 image;
3450     VkImageSubresourceRange subresourceRange;
3451 }
3452 struct VkRenderPassBeginInfo {
3453     VkStructureType      sType;
3454     const(void)*         pNext;
3455     VkRenderPass         renderPass;
3456     VkFramebuffer        framebuffer;
3457     VkRect2D             renderArea;
3458     uint32_t             clearValueCount;
3459     const(VkClearValue)* pClearValues;
3460 }
3461 struct VkDispatchIndirectCommand {
3462     uint32_t x;
3463     uint32_t y;
3464     uint32_t z;
3465 }
3466 struct VkDrawIndexedIndirectCommand {
3467     uint32_t indexCount;
3468     uint32_t instanceCount;
3469     uint32_t firstIndex;
3470     int32_t  vertexOffset;
3471     uint32_t firstInstance;
3472 }
3473 struct VkDrawIndirectCommand {
3474     uint32_t vertexCount;
3475     uint32_t instanceCount;
3476     uint32_t firstVertex;
3477     uint32_t firstInstance;
3478 }
3479 
3480 // VK_KHR_surface
3481 struct VkSurfaceCapabilitiesKHR {
3482     uint32_t                      minImageCount;
3483     uint32_t                      maxImageCount;
3484     VkExtent2D                    currentExtent;
3485     VkExtent2D                    minImageExtent;
3486     VkExtent2D                    maxImageExtent;
3487     uint32_t                      maxImageArrayLayers;
3488     VkSurfaceTransformFlagsKHR    supportedTransforms;
3489     VkSurfaceTransformFlagBitsKHR currentTransform;
3490     VkCompositeAlphaFlagsKHR      supportedCompositeAlpha;
3491     VkImageUsageFlags             supportedUsageFlags;
3492 }
3493 struct VkSurfaceFormatKHR {
3494     VkFormat        format;
3495     VkColorSpaceKHR colorSpace;
3496 }
3497 
3498 // VK_KHR_swapchain
3499 struct VkSwapchainCreateInfoKHR {
3500     VkStructureType               sType;
3501     const(void)*                  pNext;
3502     VkSwapchainCreateFlagsKHR     flags;
3503     VkSurfaceKHR                  surface;
3504     uint32_t                      minImageCount;
3505     VkFormat                      imageFormat;
3506     VkColorSpaceKHR               imageColorSpace;
3507     VkExtent2D                    imageExtent;
3508     uint32_t                      imageArrayLayers;
3509     VkImageUsageFlags             imageUsage;
3510     VkSharingMode                 imageSharingMode;
3511     uint32_t                      queueFamilyIndexCount;
3512     const(uint32_t)*              pQueueFamilyIndices;
3513     VkSurfaceTransformFlagBitsKHR preTransform;
3514     VkCompositeAlphaFlagBitsKHR   compositeAlpha;
3515     VkPresentModeKHR              presentMode;
3516     VkBool32                      clipped;
3517     VkSwapchainKHR                oldSwapchain;
3518 }
3519 struct VkPresentInfoKHR {
3520     VkStructureType        sType;
3521     const(void)*           pNext;
3522     uint32_t               waitSemaphoreCount;
3523     const(VkSemaphore)*    pWaitSemaphores;
3524     uint32_t               swapchainCount;
3525     const(VkSwapchainKHR)* pSwapchains;
3526     const(uint32_t)*       pImageIndices;
3527     VkResult*              pResults;
3528 }
3529 
3530 // VK_KHR_display
3531 struct VkDisplayPropertiesKHR {
3532     VkDisplayKHR               display;
3533     const(char)*               displayName;
3534     VkExtent2D                 physicalDimensions;
3535     VkExtent2D                 physicalResolution;
3536     VkSurfaceTransformFlagsKHR supportedTransforms;
3537     VkBool32                   planeReorderPossible;
3538     VkBool32                   persistentContent;
3539 }
3540 struct VkDisplayModeParametersKHR {
3541     VkExtent2D visibleRegion;
3542     uint32_t   refreshRate;
3543 }
3544 struct VkDisplayModePropertiesKHR {
3545     VkDisplayModeKHR           displayMode;
3546     VkDisplayModeParametersKHR parameters;
3547 }
3548 struct VkDisplayModeCreateInfoKHR {
3549     VkStructureType             sType;
3550     const(void)*                pNext;
3551     VkDisplayModeCreateFlagsKHR flags;
3552     VkDisplayModeParametersKHR  parameters;
3553 }
3554 struct VkDisplayPlaneCapabilitiesKHR {
3555     VkDisplayPlaneAlphaFlagsKHR supportedAlpha;
3556     VkOffset2D                  minSrcPosition;
3557     VkOffset2D                  maxSrcPosition;
3558     VkExtent2D                  minSrcExtent;
3559     VkExtent2D                  maxSrcExtent;
3560     VkOffset2D                  minDstPosition;
3561     VkOffset2D                  maxDstPosition;
3562     VkExtent2D                  minDstExtent;
3563     VkExtent2D                  maxDstExtent;
3564 }
3565 struct VkDisplayPlanePropertiesKHR {
3566     VkDisplayKHR currentDisplay;
3567     uint32_t     currentStackIndex;
3568 }
3569 struct VkDisplaySurfaceCreateInfoKHR {
3570     VkStructureType                sType;
3571     const(void)*                   pNext;
3572     VkDisplaySurfaceCreateFlagsKHR flags;
3573     VkDisplayModeKHR               displayMode;
3574     uint32_t                       planeIndex;
3575     uint32_t                       planeStackIndex;
3576     VkSurfaceTransformFlagBitsKHR  transform;
3577     float                          globalAlpha;
3578     VkDisplayPlaneAlphaFlagBitsKHR alphaMode;
3579     VkExtent2D                     imageExtent;
3580 }
3581 
3582 // VK_KHR_xcb_surface
3583 version(linux) {
3584     struct VkXcbSurfaceCreateInfoKHR {
3585         VkStructureType            sType;
3586         const(void)*               pNext;
3587         VkXcbSurfaceCreateFlagsKHR flags;
3588         xcb_connection_t*          connection;
3589         xcb_window_t               window;
3590     }
3591 }
3592 
3593 // VK_KHR_wayland_surface
3594 version(linux) {
3595     struct VkWaylandSurfaceCreateInfoKHR {
3596         VkStructureType                sType;
3597         const(void)*                   pNext;
3598         VkWaylandSurfaceCreateFlagsKHR flags;
3599         wl_display*                    display;
3600         wl_surface*                    surface;
3601     }
3602 }
3603 
3604 // VK_KHR_win32_surface
3605 version(Windows) {
3606     struct VkWin32SurfaceCreateInfoKHR {
3607         VkStructureType              sType;
3608         const(void)*                 pNext;
3609         VkWin32SurfaceCreateFlagsKHR flags;
3610         HINSTANCE                    hinstance;
3611         HWND                         hwnd;
3612     }
3613 }
3614 
3615 // VK_EXT_debug_report
3616 struct VkDebugReportCallbackCreateInfoEXT {
3617     VkStructureType              sType;
3618     const(void)*                 pNext;
3619     VkDebugReportFlagsEXT        flags;
3620     PFN_vkDebugReportCallbackEXT pfnCallback;
3621     void*                        pUserData;
3622 }
3623 
3624 // Command pointer aliases
3625 
3626 extern(C) nothrow @nogc {
3627     // VK_VERSION_1_0
3628     alias PFN_vkCreateInstance = VkResult function (
3629         const(VkInstanceCreateInfo)*  pCreateInfo,
3630         const(VkAllocationCallbacks)* pAllocator,
3631         VkInstance*                   pInstance,
3632     );
3633     alias PFN_vkDestroyInstance = void function (
3634         VkInstance                    instance,
3635         const(VkAllocationCallbacks)* pAllocator,
3636     );
3637     alias PFN_vkEnumeratePhysicalDevices = VkResult function (
3638         VkInstance        instance,
3639         uint32_t*         pPhysicalDeviceCount,
3640         VkPhysicalDevice* pPhysicalDevices,
3641     );
3642     alias PFN_vkGetPhysicalDeviceFeatures = void function (
3643         VkPhysicalDevice          physicalDevice,
3644         VkPhysicalDeviceFeatures* pFeatures,
3645     );
3646     alias PFN_vkGetPhysicalDeviceFormatProperties = void function (
3647         VkPhysicalDevice    physicalDevice,
3648         VkFormat            format,
3649         VkFormatProperties* pFormatProperties,
3650     );
3651     alias PFN_vkGetPhysicalDeviceImageFormatProperties = VkResult function (
3652         VkPhysicalDevice         physicalDevice,
3653         VkFormat                 format,
3654         VkImageType              type,
3655         VkImageTiling            tiling,
3656         VkImageUsageFlags        usage,
3657         VkImageCreateFlags       flags,
3658         VkImageFormatProperties* pImageFormatProperties,
3659     );
3660     alias PFN_vkGetPhysicalDeviceProperties = void function (
3661         VkPhysicalDevice            physicalDevice,
3662         VkPhysicalDeviceProperties* pProperties,
3663     );
3664     alias PFN_vkGetPhysicalDeviceQueueFamilyProperties = void function (
3665         VkPhysicalDevice         physicalDevice,
3666         uint32_t*                pQueueFamilyPropertyCount,
3667         VkQueueFamilyProperties* pQueueFamilyProperties,
3668     );
3669     alias PFN_vkGetPhysicalDeviceMemoryProperties = void function (
3670         VkPhysicalDevice                  physicalDevice,
3671         VkPhysicalDeviceMemoryProperties* pMemoryProperties,
3672     );
3673     alias PFN_vkGetInstanceProcAddr = PFN_vkVoidFunction function (
3674         VkInstance   instance,
3675         const(char)* pName,
3676     );
3677     alias PFN_vkGetDeviceProcAddr = PFN_vkVoidFunction function (
3678         VkDevice     device,
3679         const(char)* pName,
3680     );
3681     alias PFN_vkCreateDevice = VkResult function (
3682         VkPhysicalDevice              physicalDevice,
3683         const(VkDeviceCreateInfo)*    pCreateInfo,
3684         const(VkAllocationCallbacks)* pAllocator,
3685         VkDevice*                     pDevice,
3686     );
3687     alias PFN_vkDestroyDevice = void function (
3688         VkDevice                      device,
3689         const(VkAllocationCallbacks)* pAllocator,
3690     );
3691     alias PFN_vkEnumerateInstanceExtensionProperties = VkResult function (
3692         const(char)*           pLayerName,
3693         uint32_t*              pPropertyCount,
3694         VkExtensionProperties* pProperties,
3695     );
3696     alias PFN_vkEnumerateDeviceExtensionProperties = VkResult function (
3697         VkPhysicalDevice       physicalDevice,
3698         const(char)*           pLayerName,
3699         uint32_t*              pPropertyCount,
3700         VkExtensionProperties* pProperties,
3701     );
3702     alias PFN_vkEnumerateInstanceLayerProperties = VkResult function (
3703         uint32_t*          pPropertyCount,
3704         VkLayerProperties* pProperties,
3705     );
3706     alias PFN_vkEnumerateDeviceLayerProperties = VkResult function (
3707         VkPhysicalDevice   physicalDevice,
3708         uint32_t*          pPropertyCount,
3709         VkLayerProperties* pProperties,
3710     );
3711     alias PFN_vkGetDeviceQueue = void function (
3712         VkDevice device,
3713         uint32_t queueFamilyIndex,
3714         uint32_t queueIndex,
3715         VkQueue* pQueue,
3716     );
3717     alias PFN_vkQueueSubmit = VkResult function (
3718         VkQueue              queue,
3719         uint32_t             submitCount,
3720         const(VkSubmitInfo)* pSubmits,
3721         VkFence              fence,
3722     );
3723     alias PFN_vkQueueWaitIdle = VkResult function (
3724         VkQueue queue,
3725     );
3726     alias PFN_vkDeviceWaitIdle = VkResult function (
3727         VkDevice device,
3728     );
3729     alias PFN_vkAllocateMemory = VkResult function (
3730         VkDevice                      device,
3731         const(VkMemoryAllocateInfo)*  pAllocateInfo,
3732         const(VkAllocationCallbacks)* pAllocator,
3733         VkDeviceMemory*               pMemory,
3734     );
3735     alias PFN_vkFreeMemory = void function (
3736         VkDevice                      device,
3737         VkDeviceMemory                memory,
3738         const(VkAllocationCallbacks)* pAllocator,
3739     );
3740     alias PFN_vkMapMemory = VkResult function (
3741         VkDevice         device,
3742         VkDeviceMemory   memory,
3743         VkDeviceSize     offset,
3744         VkDeviceSize     size,
3745         VkMemoryMapFlags flags,
3746         void**           ppData,
3747     );
3748     alias PFN_vkUnmapMemory = void function (
3749         VkDevice       device,
3750         VkDeviceMemory memory,
3751     );
3752     alias PFN_vkFlushMappedMemoryRanges = VkResult function (
3753         VkDevice                    device,
3754         uint32_t                    memoryRangeCount,
3755         const(VkMappedMemoryRange)* pMemoryRanges,
3756     );
3757     alias PFN_vkInvalidateMappedMemoryRanges = VkResult function (
3758         VkDevice                    device,
3759         uint32_t                    memoryRangeCount,
3760         const(VkMappedMemoryRange)* pMemoryRanges,
3761     );
3762     alias PFN_vkGetDeviceMemoryCommitment = void function (
3763         VkDevice       device,
3764         VkDeviceMemory memory,
3765         VkDeviceSize*  pCommittedMemoryInBytes,
3766     );
3767     alias PFN_vkBindBufferMemory = VkResult function (
3768         VkDevice       device,
3769         VkBuffer       buffer,
3770         VkDeviceMemory memory,
3771         VkDeviceSize   memoryOffset,
3772     );
3773     alias PFN_vkBindImageMemory = VkResult function (
3774         VkDevice       device,
3775         VkImage        image,
3776         VkDeviceMemory memory,
3777         VkDeviceSize   memoryOffset,
3778     );
3779     alias PFN_vkGetBufferMemoryRequirements = void function (
3780         VkDevice              device,
3781         VkBuffer              buffer,
3782         VkMemoryRequirements* pMemoryRequirements,
3783     );
3784     alias PFN_vkGetImageMemoryRequirements = void function (
3785         VkDevice              device,
3786         VkImage               image,
3787         VkMemoryRequirements* pMemoryRequirements,
3788     );
3789     alias PFN_vkGetImageSparseMemoryRequirements = void function (
3790         VkDevice                         device,
3791         VkImage                          image,
3792         uint32_t*                        pSparseMemoryRequirementCount,
3793         VkSparseImageMemoryRequirements* pSparseMemoryRequirements,
3794     );
3795     alias PFN_vkGetPhysicalDeviceSparseImageFormatProperties = void function (
3796         VkPhysicalDevice               physicalDevice,
3797         VkFormat                       format,
3798         VkImageType                    type,
3799         VkSampleCountFlagBits          samples,
3800         VkImageUsageFlags              usage,
3801         VkImageTiling                  tiling,
3802         uint32_t*                      pPropertyCount,
3803         VkSparseImageFormatProperties* pProperties,
3804     );
3805     alias PFN_vkQueueBindSparse = VkResult function (
3806         VkQueue                  queue,
3807         uint32_t                 bindInfoCount,
3808         const(VkBindSparseInfo)* pBindInfo,
3809         VkFence                  fence,
3810     );
3811     alias PFN_vkCreateFence = VkResult function (
3812         VkDevice                      device,
3813         const(VkFenceCreateInfo)*     pCreateInfo,
3814         const(VkAllocationCallbacks)* pAllocator,
3815         VkFence*                      pFence,
3816     );
3817     alias PFN_vkDestroyFence = void function (
3818         VkDevice                      device,
3819         VkFence                       fence,
3820         const(VkAllocationCallbacks)* pAllocator,
3821     );
3822     alias PFN_vkResetFences = VkResult function (
3823         VkDevice        device,
3824         uint32_t        fenceCount,
3825         const(VkFence)* pFences,
3826     );
3827     alias PFN_vkGetFenceStatus = VkResult function (
3828         VkDevice device,
3829         VkFence  fence,
3830     );
3831     alias PFN_vkWaitForFences = VkResult function (
3832         VkDevice        device,
3833         uint32_t        fenceCount,
3834         const(VkFence)* pFences,
3835         VkBool32        waitAll,
3836         uint64_t        timeout,
3837     );
3838     alias PFN_vkCreateSemaphore = VkResult function (
3839         VkDevice                      device,
3840         const(VkSemaphoreCreateInfo)* pCreateInfo,
3841         const(VkAllocationCallbacks)* pAllocator,
3842         VkSemaphore*                  pSemaphore,
3843     );
3844     alias PFN_vkDestroySemaphore = void function (
3845         VkDevice                      device,
3846         VkSemaphore                   semaphore,
3847         const(VkAllocationCallbacks)* pAllocator,
3848     );
3849     alias PFN_vkCreateEvent = VkResult function (
3850         VkDevice                      device,
3851         const(VkEventCreateInfo)*     pCreateInfo,
3852         const(VkAllocationCallbacks)* pAllocator,
3853         VkEvent*                      pEvent,
3854     );
3855     alias PFN_vkDestroyEvent = void function (
3856         VkDevice                      device,
3857         VkEvent                       event,
3858         const(VkAllocationCallbacks)* pAllocator,
3859     );
3860     alias PFN_vkGetEventStatus = VkResult function (
3861         VkDevice device,
3862         VkEvent  event,
3863     );
3864     alias PFN_vkSetEvent = VkResult function (
3865         VkDevice device,
3866         VkEvent  event,
3867     );
3868     alias PFN_vkResetEvent = VkResult function (
3869         VkDevice device,
3870         VkEvent  event,
3871     );
3872     alias PFN_vkCreateQueryPool = VkResult function (
3873         VkDevice                      device,
3874         const(VkQueryPoolCreateInfo)* pCreateInfo,
3875         const(VkAllocationCallbacks)* pAllocator,
3876         VkQueryPool*                  pQueryPool,
3877     );
3878     alias PFN_vkDestroyQueryPool = void function (
3879         VkDevice                      device,
3880         VkQueryPool                   queryPool,
3881         const(VkAllocationCallbacks)* pAllocator,
3882     );
3883     alias PFN_vkGetQueryPoolResults = VkResult function (
3884         VkDevice           device,
3885         VkQueryPool        queryPool,
3886         uint32_t           firstQuery,
3887         uint32_t           queryCount,
3888         size_t             dataSize,
3889         void*              pData,
3890         VkDeviceSize       stride,
3891         VkQueryResultFlags flags,
3892     );
3893     alias PFN_vkCreateBuffer = VkResult function (
3894         VkDevice                      device,
3895         const(VkBufferCreateInfo)*    pCreateInfo,
3896         const(VkAllocationCallbacks)* pAllocator,
3897         VkBuffer*                     pBuffer,
3898     );
3899     alias PFN_vkDestroyBuffer = void function (
3900         VkDevice                      device,
3901         VkBuffer                      buffer,
3902         const(VkAllocationCallbacks)* pAllocator,
3903     );
3904     alias PFN_vkCreateBufferView = VkResult function (
3905         VkDevice                       device,
3906         const(VkBufferViewCreateInfo)* pCreateInfo,
3907         const(VkAllocationCallbacks)*  pAllocator,
3908         VkBufferView*                  pView,
3909     );
3910     alias PFN_vkDestroyBufferView = void function (
3911         VkDevice                      device,
3912         VkBufferView                  bufferView,
3913         const(VkAllocationCallbacks)* pAllocator,
3914     );
3915     alias PFN_vkCreateImage = VkResult function (
3916         VkDevice                      device,
3917         const(VkImageCreateInfo)*     pCreateInfo,
3918         const(VkAllocationCallbacks)* pAllocator,
3919         VkImage*                      pImage,
3920     );
3921     alias PFN_vkDestroyImage = void function (
3922         VkDevice                      device,
3923         VkImage                       image,
3924         const(VkAllocationCallbacks)* pAllocator,
3925     );
3926     alias PFN_vkGetImageSubresourceLayout = void function (
3927         VkDevice                   device,
3928         VkImage                    image,
3929         const(VkImageSubresource)* pSubresource,
3930         VkSubresourceLayout*       pLayout,
3931     );
3932     alias PFN_vkCreateImageView = VkResult function (
3933         VkDevice                      device,
3934         const(VkImageViewCreateInfo)* pCreateInfo,
3935         const(VkAllocationCallbacks)* pAllocator,
3936         VkImageView*                  pView,
3937     );
3938     alias PFN_vkDestroyImageView = void function (
3939         VkDevice                      device,
3940         VkImageView                   imageView,
3941         const(VkAllocationCallbacks)* pAllocator,
3942     );
3943     alias PFN_vkCreateShaderModule = VkResult function (
3944         VkDevice                         device,
3945         const(VkShaderModuleCreateInfo)* pCreateInfo,
3946         const(VkAllocationCallbacks)*    pAllocator,
3947         VkShaderModule*                  pShaderModule,
3948     );
3949     alias PFN_vkDestroyShaderModule = void function (
3950         VkDevice                      device,
3951         VkShaderModule                shaderModule,
3952         const(VkAllocationCallbacks)* pAllocator,
3953     );
3954     alias PFN_vkCreatePipelineCache = VkResult function (
3955         VkDevice                          device,
3956         const(VkPipelineCacheCreateInfo)* pCreateInfo,
3957         const(VkAllocationCallbacks)*     pAllocator,
3958         VkPipelineCache*                  pPipelineCache,
3959     );
3960     alias PFN_vkDestroyPipelineCache = void function (
3961         VkDevice                      device,
3962         VkPipelineCache               pipelineCache,
3963         const(VkAllocationCallbacks)* pAllocator,
3964     );
3965     alias PFN_vkGetPipelineCacheData = VkResult function (
3966         VkDevice        device,
3967         VkPipelineCache pipelineCache,
3968         size_t*         pDataSize,
3969         void*           pData,
3970     );
3971     alias PFN_vkMergePipelineCaches = VkResult function (
3972         VkDevice                device,
3973         VkPipelineCache         dstCache,
3974         uint32_t                srcCacheCount,
3975         const(VkPipelineCache)* pSrcCaches,
3976     );
3977     alias PFN_vkCreateGraphicsPipelines = VkResult function (
3978         VkDevice                             device,
3979         VkPipelineCache                      pipelineCache,
3980         uint32_t                             createInfoCount,
3981         const(VkGraphicsPipelineCreateInfo)* pCreateInfos,
3982         const(VkAllocationCallbacks)*        pAllocator,
3983         VkPipeline*                          pPipelines,
3984     );
3985     alias PFN_vkCreateComputePipelines = VkResult function (
3986         VkDevice                            device,
3987         VkPipelineCache                     pipelineCache,
3988         uint32_t                            createInfoCount,
3989         const(VkComputePipelineCreateInfo)* pCreateInfos,
3990         const(VkAllocationCallbacks)*       pAllocator,
3991         VkPipeline*                         pPipelines,
3992     );
3993     alias PFN_vkDestroyPipeline = void function (
3994         VkDevice                      device,
3995         VkPipeline                    pipeline,
3996         const(VkAllocationCallbacks)* pAllocator,
3997     );
3998     alias PFN_vkCreatePipelineLayout = VkResult function (
3999         VkDevice                           device,
4000         const(VkPipelineLayoutCreateInfo)* pCreateInfo,
4001         const(VkAllocationCallbacks)*      pAllocator,
4002         VkPipelineLayout*                  pPipelineLayout,
4003     );
4004     alias PFN_vkDestroyPipelineLayout = void function (
4005         VkDevice                      device,
4006         VkPipelineLayout              pipelineLayout,
4007         const(VkAllocationCallbacks)* pAllocator,
4008     );
4009     alias PFN_vkCreateSampler = VkResult function (
4010         VkDevice                      device,
4011         const(VkSamplerCreateInfo)*   pCreateInfo,
4012         const(VkAllocationCallbacks)* pAllocator,
4013         VkSampler*                    pSampler,
4014     );
4015     alias PFN_vkDestroySampler = void function (
4016         VkDevice                      device,
4017         VkSampler                     sampler,
4018         const(VkAllocationCallbacks)* pAllocator,
4019     );
4020     alias PFN_vkCreateDescriptorSetLayout = VkResult function (
4021         VkDevice                                device,
4022         const(VkDescriptorSetLayoutCreateInfo)* pCreateInfo,
4023         const(VkAllocationCallbacks)*           pAllocator,
4024         VkDescriptorSetLayout*                  pSetLayout,
4025     );
4026     alias PFN_vkDestroyDescriptorSetLayout = void function (
4027         VkDevice                      device,
4028         VkDescriptorSetLayout         descriptorSetLayout,
4029         const(VkAllocationCallbacks)* pAllocator,
4030     );
4031     alias PFN_vkCreateDescriptorPool = VkResult function (
4032         VkDevice                           device,
4033         const(VkDescriptorPoolCreateInfo)* pCreateInfo,
4034         const(VkAllocationCallbacks)*      pAllocator,
4035         VkDescriptorPool*                  pDescriptorPool,
4036     );
4037     alias PFN_vkDestroyDescriptorPool = void function (
4038         VkDevice                      device,
4039         VkDescriptorPool              descriptorPool,
4040         const(VkAllocationCallbacks)* pAllocator,
4041     );
4042     alias PFN_vkResetDescriptorPool = VkResult function (
4043         VkDevice                   device,
4044         VkDescriptorPool           descriptorPool,
4045         VkDescriptorPoolResetFlags flags,
4046     );
4047     alias PFN_vkAllocateDescriptorSets = VkResult function (
4048         VkDevice                            device,
4049         const(VkDescriptorSetAllocateInfo)* pAllocateInfo,
4050         VkDescriptorSet*                    pDescriptorSets,
4051     );
4052     alias PFN_vkFreeDescriptorSets = VkResult function (
4053         VkDevice                device,
4054         VkDescriptorPool        descriptorPool,
4055         uint32_t                descriptorSetCount,
4056         const(VkDescriptorSet)* pDescriptorSets,
4057     );
4058     alias PFN_vkUpdateDescriptorSets = void function (
4059         VkDevice                     device,
4060         uint32_t                     descriptorWriteCount,
4061         const(VkWriteDescriptorSet)* pDescriptorWrites,
4062         uint32_t                     descriptorCopyCount,
4063         const(VkCopyDescriptorSet)*  pDescriptorCopies,
4064     );
4065     alias PFN_vkCreateFramebuffer = VkResult function (
4066         VkDevice                        device,
4067         const(VkFramebufferCreateInfo)* pCreateInfo,
4068         const(VkAllocationCallbacks)*   pAllocator,
4069         VkFramebuffer*                  pFramebuffer,
4070     );
4071     alias PFN_vkDestroyFramebuffer = void function (
4072         VkDevice                      device,
4073         VkFramebuffer                 framebuffer,
4074         const(VkAllocationCallbacks)* pAllocator,
4075     );
4076     alias PFN_vkCreateRenderPass = VkResult function (
4077         VkDevice                       device,
4078         const(VkRenderPassCreateInfo)* pCreateInfo,
4079         const(VkAllocationCallbacks)*  pAllocator,
4080         VkRenderPass*                  pRenderPass,
4081     );
4082     alias PFN_vkDestroyRenderPass = void function (
4083         VkDevice                      device,
4084         VkRenderPass                  renderPass,
4085         const(VkAllocationCallbacks)* pAllocator,
4086     );
4087     alias PFN_vkGetRenderAreaGranularity = void function (
4088         VkDevice     device,
4089         VkRenderPass renderPass,
4090         VkExtent2D*  pGranularity,
4091     );
4092     alias PFN_vkCreateCommandPool = VkResult function (
4093         VkDevice                        device,
4094         const(VkCommandPoolCreateInfo)* pCreateInfo,
4095         const(VkAllocationCallbacks)*   pAllocator,
4096         VkCommandPool*                  pCommandPool,
4097     );
4098     alias PFN_vkDestroyCommandPool = void function (
4099         VkDevice                      device,
4100         VkCommandPool                 commandPool,
4101         const(VkAllocationCallbacks)* pAllocator,
4102     );
4103     alias PFN_vkResetCommandPool = VkResult function (
4104         VkDevice                device,
4105         VkCommandPool           commandPool,
4106         VkCommandPoolResetFlags flags,
4107     );
4108     alias PFN_vkAllocateCommandBuffers = VkResult function (
4109         VkDevice                            device,
4110         const(VkCommandBufferAllocateInfo)* pAllocateInfo,
4111         VkCommandBuffer*                    pCommandBuffers,
4112     );
4113     alias PFN_vkFreeCommandBuffers = void function (
4114         VkDevice                device,
4115         VkCommandPool           commandPool,
4116         uint32_t                commandBufferCount,
4117         const(VkCommandBuffer)* pCommandBuffers,
4118     );
4119     alias PFN_vkBeginCommandBuffer = VkResult function (
4120         VkCommandBuffer                  commandBuffer,
4121         const(VkCommandBufferBeginInfo)* pBeginInfo,
4122     );
4123     alias PFN_vkEndCommandBuffer = VkResult function (
4124         VkCommandBuffer commandBuffer,
4125     );
4126     alias PFN_vkResetCommandBuffer = VkResult function (
4127         VkCommandBuffer           commandBuffer,
4128         VkCommandBufferResetFlags flags,
4129     );
4130     alias PFN_vkCmdBindPipeline = void function (
4131         VkCommandBuffer     commandBuffer,
4132         VkPipelineBindPoint pipelineBindPoint,
4133         VkPipeline          pipeline,
4134     );
4135     alias PFN_vkCmdSetViewport = void function (
4136         VkCommandBuffer    commandBuffer,
4137         uint32_t           firstViewport,
4138         uint32_t           viewportCount,
4139         const(VkViewport)* pViewports,
4140     );
4141     alias PFN_vkCmdSetScissor = void function (
4142         VkCommandBuffer  commandBuffer,
4143         uint32_t         firstScissor,
4144         uint32_t         scissorCount,
4145         const(VkRect2D)* pScissors,
4146     );
4147     alias PFN_vkCmdSetLineWidth = void function (
4148         VkCommandBuffer commandBuffer,
4149         float           lineWidth,
4150     );
4151     alias PFN_vkCmdSetDepthBias = void function (
4152         VkCommandBuffer commandBuffer,
4153         float           depthBiasConstantFactor,
4154         float           depthBiasClamp,
4155         float           depthBiasSlopeFactor,
4156     );
4157     // TODO have ref generated by vkdgen.py
4158     alias PFN_vkCmdSetBlendConstants = void function (
4159         VkCommandBuffer commandBuffer,
4160         const ref float[4]  blendConstants,
4161     );
4162     alias PFN_vkCmdSetDepthBounds = void function (
4163         VkCommandBuffer commandBuffer,
4164         float           minDepthBounds,
4165         float           maxDepthBounds,
4166     );
4167     alias PFN_vkCmdSetStencilCompareMask = void function (
4168         VkCommandBuffer    commandBuffer,
4169         VkStencilFaceFlags faceMask,
4170         uint32_t           compareMask,
4171     );
4172     alias PFN_vkCmdSetStencilWriteMask = void function (
4173         VkCommandBuffer    commandBuffer,
4174         VkStencilFaceFlags faceMask,
4175         uint32_t           writeMask,
4176     );
4177     alias PFN_vkCmdSetStencilReference = void function (
4178         VkCommandBuffer    commandBuffer,
4179         VkStencilFaceFlags faceMask,
4180         uint32_t           reference,
4181     );
4182     alias PFN_vkCmdBindDescriptorSets = void function (
4183         VkCommandBuffer         commandBuffer,
4184         VkPipelineBindPoint     pipelineBindPoint,
4185         VkPipelineLayout        layout,
4186         uint32_t                firstSet,
4187         uint32_t                descriptorSetCount,
4188         const(VkDescriptorSet)* pDescriptorSets,
4189         uint32_t                dynamicOffsetCount,
4190         const(uint32_t)*        pDynamicOffsets,
4191     );
4192     alias PFN_vkCmdBindIndexBuffer = void function (
4193         VkCommandBuffer commandBuffer,
4194         VkBuffer        buffer,
4195         VkDeviceSize    offset,
4196         VkIndexType     indexType,
4197     );
4198     alias PFN_vkCmdBindVertexBuffers = void function (
4199         VkCommandBuffer      commandBuffer,
4200         uint32_t             firstBinding,
4201         uint32_t             bindingCount,
4202         const(VkBuffer)*     pBuffers,
4203         const(VkDeviceSize)* pOffsets,
4204     );
4205     alias PFN_vkCmdDraw = void function (
4206         VkCommandBuffer commandBuffer,
4207         uint32_t        vertexCount,
4208         uint32_t        instanceCount,
4209         uint32_t        firstVertex,
4210         uint32_t        firstInstance,
4211     );
4212     alias PFN_vkCmdDrawIndexed = void function (
4213         VkCommandBuffer commandBuffer,
4214         uint32_t        indexCount,
4215         uint32_t        instanceCount,
4216         uint32_t        firstIndex,
4217         int32_t         vertexOffset,
4218         uint32_t        firstInstance,
4219     );
4220     alias PFN_vkCmdDrawIndirect = void function (
4221         VkCommandBuffer commandBuffer,
4222         VkBuffer        buffer,
4223         VkDeviceSize    offset,
4224         uint32_t        drawCount,
4225         uint32_t        stride,
4226     );
4227     alias PFN_vkCmdDrawIndexedIndirect = void function (
4228         VkCommandBuffer commandBuffer,
4229         VkBuffer        buffer,
4230         VkDeviceSize    offset,
4231         uint32_t        drawCount,
4232         uint32_t        stride,
4233     );
4234     alias PFN_vkCmdDispatch = void function (
4235         VkCommandBuffer commandBuffer,
4236         uint32_t        groupCountX,
4237         uint32_t        groupCountY,
4238         uint32_t        groupCountZ,
4239     );
4240     alias PFN_vkCmdDispatchIndirect = void function (
4241         VkCommandBuffer commandBuffer,
4242         VkBuffer        buffer,
4243         VkDeviceSize    offset,
4244     );
4245     alias PFN_vkCmdCopyBuffer = void function (
4246         VkCommandBuffer      commandBuffer,
4247         VkBuffer             srcBuffer,
4248         VkBuffer             dstBuffer,
4249         uint32_t             regionCount,
4250         const(VkBufferCopy)* pRegions,
4251     );
4252     alias PFN_vkCmdCopyImage = void function (
4253         VkCommandBuffer     commandBuffer,
4254         VkImage             srcImage,
4255         VkImageLayout       srcImageLayout,
4256         VkImage             dstImage,
4257         VkImageLayout       dstImageLayout,
4258         uint32_t            regionCount,
4259         const(VkImageCopy)* pRegions,
4260     );
4261     alias PFN_vkCmdBlitImage = void function (
4262         VkCommandBuffer     commandBuffer,
4263         VkImage             srcImage,
4264         VkImageLayout       srcImageLayout,
4265         VkImage             dstImage,
4266         VkImageLayout       dstImageLayout,
4267         uint32_t            regionCount,
4268         const(VkImageBlit)* pRegions,
4269         VkFilter            filter,
4270     );
4271     alias PFN_vkCmdCopyBufferToImage = void function (
4272         VkCommandBuffer           commandBuffer,
4273         VkBuffer                  srcBuffer,
4274         VkImage                   dstImage,
4275         VkImageLayout             dstImageLayout,
4276         uint32_t                  regionCount,
4277         const(VkBufferImageCopy)* pRegions,
4278     );
4279     alias PFN_vkCmdCopyImageToBuffer = void function (
4280         VkCommandBuffer           commandBuffer,
4281         VkImage                   srcImage,
4282         VkImageLayout             srcImageLayout,
4283         VkBuffer                  dstBuffer,
4284         uint32_t                  regionCount,
4285         const(VkBufferImageCopy)* pRegions,
4286     );
4287     alias PFN_vkCmdUpdateBuffer = void function (
4288         VkCommandBuffer commandBuffer,
4289         VkBuffer        dstBuffer,
4290         VkDeviceSize    dstOffset,
4291         VkDeviceSize    dataSize,
4292         const(void)*    pData,
4293     );
4294     alias PFN_vkCmdFillBuffer = void function (
4295         VkCommandBuffer commandBuffer,
4296         VkBuffer        dstBuffer,
4297         VkDeviceSize    dstOffset,
4298         VkDeviceSize    size,
4299         uint32_t        data,
4300     );
4301     alias PFN_vkCmdClearColorImage = void function (
4302         VkCommandBuffer                 commandBuffer,
4303         VkImage                         image,
4304         VkImageLayout                   imageLayout,
4305         const(VkClearColorValue)*       pColor,
4306         uint32_t                        rangeCount,
4307         const(VkImageSubresourceRange)* pRanges,
4308     );
4309     alias PFN_vkCmdClearDepthStencilImage = void function (
4310         VkCommandBuffer                  commandBuffer,
4311         VkImage                          image,
4312         VkImageLayout                    imageLayout,
4313         const(VkClearDepthStencilValue)* pDepthStencil,
4314         uint32_t                         rangeCount,
4315         const(VkImageSubresourceRange)*  pRanges,
4316     );
4317     alias PFN_vkCmdClearAttachments = void function (
4318         VkCommandBuffer           commandBuffer,
4319         uint32_t                  attachmentCount,
4320         const(VkClearAttachment)* pAttachments,
4321         uint32_t                  rectCount,
4322         const(VkClearRect)*       pRects,
4323     );
4324     alias PFN_vkCmdResolveImage = void function (
4325         VkCommandBuffer        commandBuffer,
4326         VkImage                srcImage,
4327         VkImageLayout          srcImageLayout,
4328         VkImage                dstImage,
4329         VkImageLayout          dstImageLayout,
4330         uint32_t               regionCount,
4331         const(VkImageResolve)* pRegions,
4332     );
4333     alias PFN_vkCmdSetEvent = void function (
4334         VkCommandBuffer      commandBuffer,
4335         VkEvent              event,
4336         VkPipelineStageFlags stageMask,
4337     );
4338     alias PFN_vkCmdResetEvent = void function (
4339         VkCommandBuffer      commandBuffer,
4340         VkEvent              event,
4341         VkPipelineStageFlags stageMask,
4342     );
4343     alias PFN_vkCmdWaitEvents = void function (
4344         VkCommandBuffer               commandBuffer,
4345         uint32_t                      eventCount,
4346         const(VkEvent)*               pEvents,
4347         VkPipelineStageFlags          srcStageMask,
4348         VkPipelineStageFlags          dstStageMask,
4349         uint32_t                      memoryBarrierCount,
4350         const(VkMemoryBarrier)*       pMemoryBarriers,
4351         uint32_t                      bufferMemoryBarrierCount,
4352         const(VkBufferMemoryBarrier)* pBufferMemoryBarriers,
4353         uint32_t                      imageMemoryBarrierCount,
4354         const(VkImageMemoryBarrier)*  pImageMemoryBarriers,
4355     );
4356     alias PFN_vkCmdPipelineBarrier = void function (
4357         VkCommandBuffer               commandBuffer,
4358         VkPipelineStageFlags          srcStageMask,
4359         VkPipelineStageFlags          dstStageMask,
4360         VkDependencyFlags             dependencyFlags,
4361         uint32_t                      memoryBarrierCount,
4362         const(VkMemoryBarrier)*       pMemoryBarriers,
4363         uint32_t                      bufferMemoryBarrierCount,
4364         const(VkBufferMemoryBarrier)* pBufferMemoryBarriers,
4365         uint32_t                      imageMemoryBarrierCount,
4366         const(VkImageMemoryBarrier)*  pImageMemoryBarriers,
4367     );
4368     alias PFN_vkCmdBeginQuery = void function (
4369         VkCommandBuffer     commandBuffer,
4370         VkQueryPool         queryPool,
4371         uint32_t            query,
4372         VkQueryControlFlags flags,
4373     );
4374     alias PFN_vkCmdEndQuery = void function (
4375         VkCommandBuffer commandBuffer,
4376         VkQueryPool     queryPool,
4377         uint32_t        query,
4378     );
4379     alias PFN_vkCmdResetQueryPool = void function (
4380         VkCommandBuffer commandBuffer,
4381         VkQueryPool     queryPool,
4382         uint32_t        firstQuery,
4383         uint32_t        queryCount,
4384     );
4385     alias PFN_vkCmdWriteTimestamp = void function (
4386         VkCommandBuffer         commandBuffer,
4387         VkPipelineStageFlagBits pipelineStage,
4388         VkQueryPool             queryPool,
4389         uint32_t                query,
4390     );
4391     alias PFN_vkCmdCopyQueryPoolResults = void function (
4392         VkCommandBuffer    commandBuffer,
4393         VkQueryPool        queryPool,
4394         uint32_t           firstQuery,
4395         uint32_t           queryCount,
4396         VkBuffer           dstBuffer,
4397         VkDeviceSize       dstOffset,
4398         VkDeviceSize       stride,
4399         VkQueryResultFlags flags,
4400     );
4401     alias PFN_vkCmdPushConstants = void function (
4402         VkCommandBuffer    commandBuffer,
4403         VkPipelineLayout   layout,
4404         VkShaderStageFlags stageFlags,
4405         uint32_t           offset,
4406         uint32_t           size,
4407         const(void)*       pValues,
4408     );
4409     alias PFN_vkCmdBeginRenderPass = void function (
4410         VkCommandBuffer               commandBuffer,
4411         const(VkRenderPassBeginInfo)* pRenderPassBegin,
4412         VkSubpassContents             contents,
4413     );
4414     alias PFN_vkCmdNextSubpass = void function (
4415         VkCommandBuffer   commandBuffer,
4416         VkSubpassContents contents,
4417     );
4418     alias PFN_vkCmdEndRenderPass = void function (
4419         VkCommandBuffer commandBuffer,
4420     );
4421     alias PFN_vkCmdExecuteCommands = void function (
4422         VkCommandBuffer         commandBuffer,
4423         uint32_t                commandBufferCount,
4424         const(VkCommandBuffer)* pCommandBuffers,
4425     );
4426 
4427     // VK_KHR_surface
4428     alias PFN_vkDestroySurfaceKHR = void function (
4429         VkInstance                    instance,
4430         VkSurfaceKHR                  surface,
4431         const(VkAllocationCallbacks)* pAllocator,
4432     );
4433     alias PFN_vkGetPhysicalDeviceSurfaceSupportKHR = VkResult function (
4434         VkPhysicalDevice physicalDevice,
4435         uint32_t         queueFamilyIndex,
4436         VkSurfaceKHR     surface,
4437         VkBool32*        pSupported,
4438     );
4439     alias PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = VkResult function (
4440         VkPhysicalDevice          physicalDevice,
4441         VkSurfaceKHR              surface,
4442         VkSurfaceCapabilitiesKHR* pSurfaceCapabilities,
4443     );
4444     alias PFN_vkGetPhysicalDeviceSurfaceFormatsKHR = VkResult function (
4445         VkPhysicalDevice    physicalDevice,
4446         VkSurfaceKHR        surface,
4447         uint32_t*           pSurfaceFormatCount,
4448         VkSurfaceFormatKHR* pSurfaceFormats,
4449     );
4450     alias PFN_vkGetPhysicalDeviceSurfacePresentModesKHR = VkResult function (
4451         VkPhysicalDevice  physicalDevice,
4452         VkSurfaceKHR      surface,
4453         uint32_t*         pPresentModeCount,
4454         VkPresentModeKHR* pPresentModes,
4455     );
4456 
4457     // VK_KHR_swapchain
4458     alias PFN_vkCreateSwapchainKHR = VkResult function (
4459         VkDevice                         device,
4460         const(VkSwapchainCreateInfoKHR)* pCreateInfo,
4461         const(VkAllocationCallbacks)*    pAllocator,
4462         VkSwapchainKHR*                  pSwapchain,
4463     );
4464     alias PFN_vkDestroySwapchainKHR = void function (
4465         VkDevice                      device,
4466         VkSwapchainKHR                swapchain,
4467         const(VkAllocationCallbacks)* pAllocator,
4468     );
4469     alias PFN_vkGetSwapchainImagesKHR = VkResult function (
4470         VkDevice       device,
4471         VkSwapchainKHR swapchain,
4472         uint32_t*      pSwapchainImageCount,
4473         VkImage*       pSwapchainImages,
4474     );
4475     alias PFN_vkAcquireNextImageKHR = VkResult function (
4476         VkDevice       device,
4477         VkSwapchainKHR swapchain,
4478         uint64_t       timeout,
4479         VkSemaphore    semaphore,
4480         VkFence        fence,
4481         uint32_t*      pImageIndex,
4482     );
4483     alias PFN_vkQueuePresentKHR = VkResult function (
4484         VkQueue                  queue,
4485         const(VkPresentInfoKHR)* pPresentInfo,
4486     );
4487 
4488     // VK_KHR_display
4489     alias PFN_vkGetPhysicalDeviceDisplayPropertiesKHR = VkResult function (
4490         VkPhysicalDevice        physicalDevice,
4491         uint32_t*               pPropertyCount,
4492         VkDisplayPropertiesKHR* pProperties,
4493     );
4494     alias PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR = VkResult function (
4495         VkPhysicalDevice             physicalDevice,
4496         uint32_t*                    pPropertyCount,
4497         VkDisplayPlanePropertiesKHR* pProperties,
4498     );
4499     alias PFN_vkGetDisplayPlaneSupportedDisplaysKHR = VkResult function (
4500         VkPhysicalDevice physicalDevice,
4501         uint32_t         planeIndex,
4502         uint32_t*        pDisplayCount,
4503         VkDisplayKHR*    pDisplays,
4504     );
4505     alias PFN_vkGetDisplayModePropertiesKHR = VkResult function (
4506         VkPhysicalDevice            physicalDevice,
4507         VkDisplayKHR                display,
4508         uint32_t*                   pPropertyCount,
4509         VkDisplayModePropertiesKHR* pProperties,
4510     );
4511     alias PFN_vkCreateDisplayModeKHR = VkResult function (
4512         VkPhysicalDevice                   physicalDevice,
4513         VkDisplayKHR                       display,
4514         const(VkDisplayModeCreateInfoKHR)* pCreateInfo,
4515         const(VkAllocationCallbacks)*      pAllocator,
4516         VkDisplayModeKHR*                  pMode,
4517     );
4518     alias PFN_vkGetDisplayPlaneCapabilitiesKHR = VkResult function (
4519         VkPhysicalDevice               physicalDevice,
4520         VkDisplayModeKHR               mode,
4521         uint32_t                       planeIndex,
4522         VkDisplayPlaneCapabilitiesKHR* pCapabilities,
4523     );
4524     alias PFN_vkCreateDisplayPlaneSurfaceKHR = VkResult function (
4525         VkInstance                            instance,
4526         const(VkDisplaySurfaceCreateInfoKHR)* pCreateInfo,
4527         const(VkAllocationCallbacks)*         pAllocator,
4528         VkSurfaceKHR*                         pSurface,
4529     );
4530 
4531     // VK_KHR_xcb_surface
4532     version(linux) {
4533         alias PFN_vkCreateXcbSurfaceKHR = VkResult function (
4534             VkInstance                        instance,
4535             const(VkXcbSurfaceCreateInfoKHR)* pCreateInfo,
4536             const(VkAllocationCallbacks)*     pAllocator,
4537             VkSurfaceKHR*                     pSurface,
4538         );
4539         alias PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR = VkBool32 function (
4540             VkPhysicalDevice  physicalDevice,
4541             uint32_t          queueFamilyIndex,
4542             xcb_connection_t* connection,
4543             xcb_visualid_t    visual_id,
4544         );
4545     }
4546 
4547     // VK_KHR_wayland_surface
4548     version(linux) {
4549         alias PFN_vkCreateWaylandSurfaceKHR = VkResult function (
4550             VkInstance                            instance,
4551             const(VkWaylandSurfaceCreateInfoKHR)* pCreateInfo,
4552             const(VkAllocationCallbacks)*         pAllocator,
4553             VkSurfaceKHR*                         pSurface,
4554         );
4555         alias PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR = VkBool32 function (
4556             VkPhysicalDevice physicalDevice,
4557             uint32_t         queueFamilyIndex,
4558             wl_display*      display,
4559         );
4560     }
4561 
4562     // VK_KHR_win32_surface
4563     version(Windows) {
4564         alias PFN_vkCreateWin32SurfaceKHR = VkResult function (
4565             VkInstance                          instance,
4566             const(VkWin32SurfaceCreateInfoKHR)* pCreateInfo,
4567             const(VkAllocationCallbacks)*       pAllocator,
4568             VkSurfaceKHR*                       pSurface,
4569         );
4570         alias PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR = VkBool32 function (
4571             VkPhysicalDevice physicalDevice,
4572             uint32_t         queueFamilyIndex,
4573         );
4574     }
4575 
4576     // VK_EXT_debug_report
4577     alias PFN_vkCreateDebugReportCallbackEXT = VkResult function (
4578         VkInstance                                 instance,
4579         const(VkDebugReportCallbackCreateInfoEXT)* pCreateInfo,
4580         const(VkAllocationCallbacks)*              pAllocator,
4581         VkDebugReportCallbackEXT*                  pCallback,
4582     );
4583     alias PFN_vkDestroyDebugReportCallbackEXT = void function (
4584         VkInstance                    instance,
4585         VkDebugReportCallbackEXT      callback,
4586         const(VkAllocationCallbacks)* pAllocator,
4587     );
4588     alias PFN_vkDebugReportMessageEXT = void function (
4589         VkInstance                 instance,
4590         VkDebugReportFlagsEXT      flags,
4591         VkDebugReportObjectTypeEXT objectType,
4592         uint64_t                   object,
4593         size_t                     location,
4594         int32_t                    messageCode,
4595         const(char)*               pLayerPrefix,
4596         const(char)*               pMessage,
4597     );
4598 }
4599 
4600 
4601 // Global commands
4602 
4603 final class VkGlobalCmds {
4604 
4605     this (PFN_vkGetInstanceProcAddr loader) {
4606         _GetInstanceProcAddr = loader;
4607         _CreateInstance                       = cast(PFN_vkCreateInstance)                      loader(null, "vkCreateInstance");
4608         _EnumerateInstanceExtensionProperties = cast(PFN_vkEnumerateInstanceExtensionProperties)loader(null, "vkEnumerateInstanceExtensionProperties");
4609         _EnumerateInstanceLayerProperties     = cast(PFN_vkEnumerateInstanceLayerProperties)    loader(null, "vkEnumerateInstanceLayerProperties");
4610     }
4611 
4612     VkResult CreateInstance (const(VkInstanceCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkInstance* pInstance) {
4613         assert(_CreateInstance !is null, "vkCreateInstance was not loaded.");
4614         return _CreateInstance(pCreateInfo, pAllocator, pInstance);
4615     }
4616 
4617     PFN_vkVoidFunction GetInstanceProcAddr (VkInstance instance, const(char)* pName) {
4618         assert(_GetInstanceProcAddr !is null, "vkGetInstanceProcAddr was not loaded.");
4619         return _GetInstanceProcAddr(instance, pName);
4620     }
4621 
4622     VkResult EnumerateInstanceExtensionProperties (const(char)* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) {
4623         assert(_EnumerateInstanceExtensionProperties !is null, "vkEnumerateInstanceExtensionProperties was not loaded.");
4624         return _EnumerateInstanceExtensionProperties(pLayerName, pPropertyCount, pProperties);
4625     }
4626 
4627     VkResult EnumerateInstanceLayerProperties (uint32_t* pPropertyCount, VkLayerProperties* pProperties) {
4628         assert(_EnumerateInstanceLayerProperties !is null, "vkEnumerateInstanceLayerProperties was not loaded.");
4629         return _EnumerateInstanceLayerProperties(pPropertyCount, pProperties);
4630     }
4631 
4632     private PFN_vkCreateInstance                       _CreateInstance;
4633     private PFN_vkGetInstanceProcAddr                  _GetInstanceProcAddr;
4634     private PFN_vkEnumerateInstanceExtensionProperties _EnumerateInstanceExtensionProperties;
4635     private PFN_vkEnumerateInstanceLayerProperties     _EnumerateInstanceLayerProperties;
4636 }
4637 
4638 // Instance commands
4639 
4640 final class VkInstanceCmds {
4641 
4642     this (VkInstance instance, VkGlobalCmds globalCmds) {
4643         auto loader = globalCmds._GetInstanceProcAddr;
4644         // VK_VERSION_1_0
4645         _DestroyInstance                                = cast(PFN_vkDestroyInstance)                               loader(instance, "vkDestroyInstance");
4646         _EnumeratePhysicalDevices                       = cast(PFN_vkEnumeratePhysicalDevices)                      loader(instance, "vkEnumeratePhysicalDevices");
4647         _GetPhysicalDeviceFeatures                      = cast(PFN_vkGetPhysicalDeviceFeatures)                     loader(instance, "vkGetPhysicalDeviceFeatures");
4648         _GetPhysicalDeviceFormatProperties              = cast(PFN_vkGetPhysicalDeviceFormatProperties)             loader(instance, "vkGetPhysicalDeviceFormatProperties");
4649         _GetPhysicalDeviceImageFormatProperties         = cast(PFN_vkGetPhysicalDeviceImageFormatProperties)        loader(instance, "vkGetPhysicalDeviceImageFormatProperties");
4650         _GetPhysicalDeviceProperties                    = cast(PFN_vkGetPhysicalDeviceProperties)                   loader(instance, "vkGetPhysicalDeviceProperties");
4651         _GetPhysicalDeviceQueueFamilyProperties         = cast(PFN_vkGetPhysicalDeviceQueueFamilyProperties)        loader(instance, "vkGetPhysicalDeviceQueueFamilyProperties");
4652         _GetPhysicalDeviceMemoryProperties              = cast(PFN_vkGetPhysicalDeviceMemoryProperties)             loader(instance, "vkGetPhysicalDeviceMemoryProperties");
4653         _GetDeviceProcAddr                              = cast(PFN_vkGetDeviceProcAddr)                             loader(instance, "vkGetDeviceProcAddr");
4654         _CreateDevice                                   = cast(PFN_vkCreateDevice)                                  loader(instance, "vkCreateDevice");
4655         _EnumerateDeviceExtensionProperties             = cast(PFN_vkEnumerateDeviceExtensionProperties)            loader(instance, "vkEnumerateDeviceExtensionProperties");
4656         _EnumerateDeviceLayerProperties                 = cast(PFN_vkEnumerateDeviceLayerProperties)                loader(instance, "vkEnumerateDeviceLayerProperties");
4657         _GetPhysicalDeviceSparseImageFormatProperties   = cast(PFN_vkGetPhysicalDeviceSparseImageFormatProperties)  loader(instance, "vkGetPhysicalDeviceSparseImageFormatProperties");
4658 
4659         // VK_KHR_surface
4660         _DestroySurfaceKHR                              = cast(PFN_vkDestroySurfaceKHR)                             loader(instance, "vkDestroySurfaceKHR");
4661         _GetPhysicalDeviceSurfaceSupportKHR             = cast(PFN_vkGetPhysicalDeviceSurfaceSupportKHR)            loader(instance, "vkGetPhysicalDeviceSurfaceSupportKHR");
4662         _GetPhysicalDeviceSurfaceCapabilitiesKHR        = cast(PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)       loader(instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
4663         _GetPhysicalDeviceSurfaceFormatsKHR             = cast(PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)            loader(instance, "vkGetPhysicalDeviceSurfaceFormatsKHR");
4664         _GetPhysicalDeviceSurfacePresentModesKHR        = cast(PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)       loader(instance, "vkGetPhysicalDeviceSurfacePresentModesKHR");
4665 
4666         // VK_KHR_display
4667         _GetPhysicalDeviceDisplayPropertiesKHR          = cast(PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)         loader(instance, "vkGetPhysicalDeviceDisplayPropertiesKHR");
4668         _GetPhysicalDeviceDisplayPlanePropertiesKHR     = cast(PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)    loader(instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
4669         _GetDisplayPlaneSupportedDisplaysKHR            = cast(PFN_vkGetDisplayPlaneSupportedDisplaysKHR)           loader(instance, "vkGetDisplayPlaneSupportedDisplaysKHR");
4670         _GetDisplayModePropertiesKHR                    = cast(PFN_vkGetDisplayModePropertiesKHR)                   loader(instance, "vkGetDisplayModePropertiesKHR");
4671         _CreateDisplayModeKHR                           = cast(PFN_vkCreateDisplayModeKHR)                          loader(instance, "vkCreateDisplayModeKHR");
4672         _GetDisplayPlaneCapabilitiesKHR                 = cast(PFN_vkGetDisplayPlaneCapabilitiesKHR)                loader(instance, "vkGetDisplayPlaneCapabilitiesKHR");
4673         _CreateDisplayPlaneSurfaceKHR                   = cast(PFN_vkCreateDisplayPlaneSurfaceKHR)                  loader(instance, "vkCreateDisplayPlaneSurfaceKHR");
4674 
4675         // VK_KHR_xcb_surface
4676         version(linux) {
4677             _CreateXcbSurfaceKHR                            = cast(PFN_vkCreateXcbSurfaceKHR)                           loader(instance, "vkCreateXcbSurfaceKHR");
4678             _GetPhysicalDeviceXcbPresentationSupportKHR     = cast(PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)    loader(instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR");
4679         }
4680 
4681         // VK_KHR_wayland_surface
4682         version(linux) {
4683             _CreateWaylandSurfaceKHR                        = cast(PFN_vkCreateWaylandSurfaceKHR)                       loader(instance, "vkCreateWaylandSurfaceKHR");
4684             _GetPhysicalDeviceWaylandPresentationSupportKHR = cast(PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)loader(instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR");
4685         }
4686 
4687         // VK_KHR_win32_surface
4688         version(Windows) {
4689             _CreateWin32SurfaceKHR                          = cast(PFN_vkCreateWin32SurfaceKHR)                         loader(instance, "vkCreateWin32SurfaceKHR");
4690             _GetPhysicalDeviceWin32PresentationSupportKHR   = cast(PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)  loader(instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR");
4691         }
4692 
4693         // VK_EXT_debug_report
4694         _CreateDebugReportCallbackEXT                   = cast(PFN_vkCreateDebugReportCallbackEXT)                  loader(instance, "vkCreateDebugReportCallbackEXT");
4695         _DestroyDebugReportCallbackEXT                  = cast(PFN_vkDestroyDebugReportCallbackEXT)                 loader(instance, "vkDestroyDebugReportCallbackEXT");
4696         _DebugReportMessageEXT                          = cast(PFN_vkDebugReportMessageEXT)                         loader(instance, "vkDebugReportMessageEXT");
4697     }
4698 
4699     /// Commands for VK_VERSION_1_0
4700     void DestroyInstance (VkInstance instance, const(VkAllocationCallbacks)* pAllocator) {
4701         assert(_DestroyInstance !is null, "vkDestroyInstance was not loaded. Requested by VK_VERSION_1_0");
4702         return _DestroyInstance(instance, pAllocator);
4703     }
4704     /// ditto
4705     VkResult EnumeratePhysicalDevices (VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices) {
4706         assert(_EnumeratePhysicalDevices !is null, "vkEnumeratePhysicalDevices was not loaded. Requested by VK_VERSION_1_0");
4707         return _EnumeratePhysicalDevices(instance, pPhysicalDeviceCount, pPhysicalDevices);
4708     }
4709     /// ditto
4710     void GetPhysicalDeviceFeatures (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures) {
4711         assert(_GetPhysicalDeviceFeatures !is null, "vkGetPhysicalDeviceFeatures was not loaded. Requested by VK_VERSION_1_0");
4712         return _GetPhysicalDeviceFeatures(physicalDevice, pFeatures);
4713     }
4714     /// ditto
4715     void GetPhysicalDeviceFormatProperties (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties) {
4716         assert(_GetPhysicalDeviceFormatProperties !is null, "vkGetPhysicalDeviceFormatProperties was not loaded. Requested by VK_VERSION_1_0");
4717         return _GetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties);
4718     }
4719     /// ditto
4720     VkResult GetPhysicalDeviceImageFormatProperties (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties) {
4721         assert(_GetPhysicalDeviceImageFormatProperties !is null, "vkGetPhysicalDeviceImageFormatProperties was not loaded. Requested by VK_VERSION_1_0");
4722         return _GetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
4723     }
4724     /// ditto
4725     void GetPhysicalDeviceProperties (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties) {
4726         assert(_GetPhysicalDeviceProperties !is null, "vkGetPhysicalDeviceProperties was not loaded. Requested by VK_VERSION_1_0");
4727         return _GetPhysicalDeviceProperties(physicalDevice, pProperties);
4728     }
4729     /// ditto
4730     void GetPhysicalDeviceQueueFamilyProperties (VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) {
4731         assert(_GetPhysicalDeviceQueueFamilyProperties !is null, "vkGetPhysicalDeviceQueueFamilyProperties was not loaded. Requested by VK_VERSION_1_0");
4732         return _GetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
4733     }
4734     /// ditto
4735     void GetPhysicalDeviceMemoryProperties (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
4736         assert(_GetPhysicalDeviceMemoryProperties !is null, "vkGetPhysicalDeviceMemoryProperties was not loaded. Requested by VK_VERSION_1_0");
4737         return _GetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties);
4738     }
4739     /// ditto
4740     PFN_vkVoidFunction GetDeviceProcAddr (VkDevice device, const(char)* pName) {
4741         assert(_GetDeviceProcAddr !is null, "vkGetDeviceProcAddr was not loaded. Requested by VK_VERSION_1_0");
4742         return _GetDeviceProcAddr(device, pName);
4743     }
4744     /// ditto
4745     VkResult CreateDevice (VkPhysicalDevice physicalDevice, const(VkDeviceCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkDevice* pDevice) {
4746         assert(_CreateDevice !is null, "vkCreateDevice was not loaded. Requested by VK_VERSION_1_0");
4747         return _CreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice);
4748     }
4749     /// ditto
4750     VkResult EnumerateDeviceExtensionProperties (VkPhysicalDevice physicalDevice, const(char)* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) {
4751         assert(_EnumerateDeviceExtensionProperties !is null, "vkEnumerateDeviceExtensionProperties was not loaded. Requested by VK_VERSION_1_0");
4752         return _EnumerateDeviceExtensionProperties(physicalDevice, pLayerName, pPropertyCount, pProperties);
4753     }
4754     /// ditto
4755     VkResult EnumerateDeviceLayerProperties (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties) {
4756         assert(_EnumerateDeviceLayerProperties !is null, "vkEnumerateDeviceLayerProperties was not loaded. Requested by VK_VERSION_1_0");
4757         return _EnumerateDeviceLayerProperties(physicalDevice, pPropertyCount, pProperties);
4758     }
4759     /// ditto
4760     void GetPhysicalDeviceSparseImageFormatProperties (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) {
4761         assert(_GetPhysicalDeviceSparseImageFormatProperties !is null, "vkGetPhysicalDeviceSparseImageFormatProperties was not loaded. Requested by VK_VERSION_1_0");
4762         return _GetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
4763     }
4764 
4765     /// Commands for VK_KHR_surface
4766     void DestroySurfaceKHR (VkInstance instance, VkSurfaceKHR surface, const(VkAllocationCallbacks)* pAllocator) {
4767         assert(_DestroySurfaceKHR !is null, "vkDestroySurfaceKHR was not loaded. Requested by VK_KHR_surface");
4768         return _DestroySurfaceKHR(instance, surface, pAllocator);
4769     }
4770     /// ditto
4771     VkResult GetPhysicalDeviceSurfaceSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported) {
4772         assert(_GetPhysicalDeviceSurfaceSupportKHR !is null, "vkGetPhysicalDeviceSurfaceSupportKHR was not loaded. Requested by VK_KHR_surface");
4773         return _GetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
4774     }
4775     /// ditto
4776     VkResult GetPhysicalDeviceSurfaceCapabilitiesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
4777         assert(_GetPhysicalDeviceSurfaceCapabilitiesKHR !is null, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR was not loaded. Requested by VK_KHR_surface");
4778         return _GetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
4779     }
4780     /// ditto
4781     VkResult GetPhysicalDeviceSurfaceFormatsKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) {
4782         assert(_GetPhysicalDeviceSurfaceFormatsKHR !is null, "vkGetPhysicalDeviceSurfaceFormatsKHR was not loaded. Requested by VK_KHR_surface");
4783         return _GetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
4784     }
4785     /// ditto
4786     VkResult GetPhysicalDeviceSurfacePresentModesKHR (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) {
4787         assert(_GetPhysicalDeviceSurfacePresentModesKHR !is null, "vkGetPhysicalDeviceSurfacePresentModesKHR was not loaded. Requested by VK_KHR_surface");
4788         return _GetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
4789     }
4790 
4791     /// Commands for VK_KHR_display
4792     VkResult GetPhysicalDeviceDisplayPropertiesKHR (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties) {
4793         assert(_GetPhysicalDeviceDisplayPropertiesKHR !is null, "vkGetPhysicalDeviceDisplayPropertiesKHR was not loaded. Requested by VK_KHR_display");
4794         return _GetPhysicalDeviceDisplayPropertiesKHR(physicalDevice, pPropertyCount, pProperties);
4795     }
4796     /// ditto
4797     VkResult GetPhysicalDeviceDisplayPlanePropertiesKHR (VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties) {
4798         assert(_GetPhysicalDeviceDisplayPlanePropertiesKHR !is null, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR was not loaded. Requested by VK_KHR_display");
4799         return _GetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, pPropertyCount, pProperties);
4800     }
4801     /// ditto
4802     VkResult GetDisplayPlaneSupportedDisplaysKHR (VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays) {
4803         assert(_GetDisplayPlaneSupportedDisplaysKHR !is null, "vkGetDisplayPlaneSupportedDisplaysKHR was not loaded. Requested by VK_KHR_display");
4804         return _GetDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, pDisplayCount, pDisplays);
4805     }
4806     /// ditto
4807     VkResult GetDisplayModePropertiesKHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties) {
4808         assert(_GetDisplayModePropertiesKHR !is null, "vkGetDisplayModePropertiesKHR was not loaded. Requested by VK_KHR_display");
4809         return _GetDisplayModePropertiesKHR(physicalDevice, display, pPropertyCount, pProperties);
4810     }
4811     /// ditto
4812     VkResult CreateDisplayModeKHR (VkPhysicalDevice physicalDevice, VkDisplayKHR display, const(VkDisplayModeCreateInfoKHR)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkDisplayModeKHR* pMode) {
4813         assert(_CreateDisplayModeKHR !is null, "vkCreateDisplayModeKHR was not loaded. Requested by VK_KHR_display");
4814         return _CreateDisplayModeKHR(physicalDevice, display, pCreateInfo, pAllocator, pMode);
4815     }
4816     /// ditto
4817     VkResult GetDisplayPlaneCapabilitiesKHR (VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities) {
4818         assert(_GetDisplayPlaneCapabilitiesKHR !is null, "vkGetDisplayPlaneCapabilitiesKHR was not loaded. Requested by VK_KHR_display");
4819         return _GetDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, pCapabilities);
4820     }
4821     /// ditto
4822     VkResult CreateDisplayPlaneSurfaceKHR (VkInstance instance, const(VkDisplaySurfaceCreateInfoKHR)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkSurfaceKHR* pSurface) {
4823         assert(_CreateDisplayPlaneSurfaceKHR !is null, "vkCreateDisplayPlaneSurfaceKHR was not loaded. Requested by VK_KHR_display");
4824         return _CreateDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
4825     }
4826 
4827     version(linux) {
4828         /// Commands for VK_KHR_xcb_surface
4829         VkResult CreateXcbSurfaceKHR (VkInstance instance, const(VkXcbSurfaceCreateInfoKHR)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkSurfaceKHR* pSurface) {
4830             assert(_CreateXcbSurfaceKHR !is null, "vkCreateXcbSurfaceKHR was not loaded. Requested by VK_KHR_xcb_surface");
4831             return _CreateXcbSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
4832         }
4833         /// ditto
4834         VkBool32 GetPhysicalDeviceXcbPresentationSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id) {
4835             assert(_GetPhysicalDeviceXcbPresentationSupportKHR !is null, "vkGetPhysicalDeviceXcbPresentationSupportKHR was not loaded. Requested by VK_KHR_xcb_surface");
4836             return _GetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection, visual_id);
4837         }
4838     }
4839 
4840     version(linux) {
4841         /// Commands for VK_KHR_wayland_surface
4842         VkResult CreateWaylandSurfaceKHR (VkInstance instance, const(VkWaylandSurfaceCreateInfoKHR)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkSurfaceKHR* pSurface) {
4843             assert(_CreateWaylandSurfaceKHR !is null, "vkCreateWaylandSurfaceKHR was not loaded. Requested by VK_KHR_wayland_surface");
4844             return _CreateWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
4845         }
4846         /// ditto
4847         VkBool32 GetPhysicalDeviceWaylandPresentationSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, wl_display* display) {
4848             assert(_GetPhysicalDeviceWaylandPresentationSupportKHR !is null, "vkGetPhysicalDeviceWaylandPresentationSupportKHR was not loaded. Requested by VK_KHR_wayland_surface");
4849             return _GetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice, queueFamilyIndex, display);
4850         }
4851     }
4852 
4853     version(Windows) {
4854         /// Commands for VK_KHR_win32_surface
4855         VkResult CreateWin32SurfaceKHR (VkInstance instance, const(VkWin32SurfaceCreateInfoKHR)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkSurfaceKHR* pSurface) {
4856             assert(_CreateWin32SurfaceKHR !is null, "vkCreateWin32SurfaceKHR was not loaded. Requested by VK_KHR_win32_surface");
4857             return _CreateWin32SurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
4858         }
4859         /// ditto
4860         VkBool32 GetPhysicalDeviceWin32PresentationSupportKHR (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex) {
4861             assert(_GetPhysicalDeviceWin32PresentationSupportKHR !is null, "vkGetPhysicalDeviceWin32PresentationSupportKHR was not loaded. Requested by VK_KHR_win32_surface");
4862             return _GetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex);
4863         }
4864     }
4865 
4866     /// Commands for VK_EXT_debug_report
4867     VkResult CreateDebugReportCallbackEXT (VkInstance instance, const(VkDebugReportCallbackCreateInfoEXT)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkDebugReportCallbackEXT* pCallback) {
4868         assert(_CreateDebugReportCallbackEXT !is null, "vkCreateDebugReportCallbackEXT was not loaded. Requested by VK_EXT_debug_report");
4869         return _CreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback);
4870     }
4871     /// ditto
4872     void DestroyDebugReportCallbackEXT (VkInstance instance, VkDebugReportCallbackEXT callback, const(VkAllocationCallbacks)* pAllocator) {
4873         assert(_DestroyDebugReportCallbackEXT !is null, "vkDestroyDebugReportCallbackEXT was not loaded. Requested by VK_EXT_debug_report");
4874         return _DestroyDebugReportCallbackEXT(instance, callback, pAllocator);
4875     }
4876     /// ditto
4877     void DebugReportMessageEXT (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const(char)* pLayerPrefix, const(char)* pMessage) {
4878         assert(_DebugReportMessageEXT !is null, "vkDebugReportMessageEXT was not loaded. Requested by VK_EXT_debug_report");
4879         return _DebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage);
4880     }
4881 
4882     // fields for VK_VERSION_1_0
4883     private PFN_vkDestroyInstance                                _DestroyInstance;
4884     private PFN_vkEnumeratePhysicalDevices                       _EnumeratePhysicalDevices;
4885     private PFN_vkGetPhysicalDeviceFeatures                      _GetPhysicalDeviceFeatures;
4886     private PFN_vkGetPhysicalDeviceFormatProperties              _GetPhysicalDeviceFormatProperties;
4887     private PFN_vkGetPhysicalDeviceImageFormatProperties         _GetPhysicalDeviceImageFormatProperties;
4888     private PFN_vkGetPhysicalDeviceProperties                    _GetPhysicalDeviceProperties;
4889     private PFN_vkGetPhysicalDeviceQueueFamilyProperties         _GetPhysicalDeviceQueueFamilyProperties;
4890     private PFN_vkGetPhysicalDeviceMemoryProperties              _GetPhysicalDeviceMemoryProperties;
4891     private PFN_vkGetDeviceProcAddr                              _GetDeviceProcAddr;
4892     private PFN_vkCreateDevice                                   _CreateDevice;
4893     private PFN_vkEnumerateDeviceExtensionProperties             _EnumerateDeviceExtensionProperties;
4894     private PFN_vkEnumerateDeviceLayerProperties                 _EnumerateDeviceLayerProperties;
4895     private PFN_vkGetPhysicalDeviceSparseImageFormatProperties   _GetPhysicalDeviceSparseImageFormatProperties;
4896 
4897     // fields for VK_KHR_surface
4898     private PFN_vkDestroySurfaceKHR                              _DestroySurfaceKHR;
4899     private PFN_vkGetPhysicalDeviceSurfaceSupportKHR             _GetPhysicalDeviceSurfaceSupportKHR;
4900     private PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR        _GetPhysicalDeviceSurfaceCapabilitiesKHR;
4901     private PFN_vkGetPhysicalDeviceSurfaceFormatsKHR             _GetPhysicalDeviceSurfaceFormatsKHR;
4902     private PFN_vkGetPhysicalDeviceSurfacePresentModesKHR        _GetPhysicalDeviceSurfacePresentModesKHR;
4903 
4904     // fields for VK_KHR_display
4905     private PFN_vkGetPhysicalDeviceDisplayPropertiesKHR          _GetPhysicalDeviceDisplayPropertiesKHR;
4906     private PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR     _GetPhysicalDeviceDisplayPlanePropertiesKHR;
4907     private PFN_vkGetDisplayPlaneSupportedDisplaysKHR            _GetDisplayPlaneSupportedDisplaysKHR;
4908     private PFN_vkGetDisplayModePropertiesKHR                    _GetDisplayModePropertiesKHR;
4909     private PFN_vkCreateDisplayModeKHR                           _CreateDisplayModeKHR;
4910     private PFN_vkGetDisplayPlaneCapabilitiesKHR                 _GetDisplayPlaneCapabilitiesKHR;
4911     private PFN_vkCreateDisplayPlaneSurfaceKHR                   _CreateDisplayPlaneSurfaceKHR;
4912 
4913     // fields for VK_KHR_xcb_surface
4914     version(linux) {
4915         private PFN_vkCreateXcbSurfaceKHR                            _CreateXcbSurfaceKHR;
4916         private PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR     _GetPhysicalDeviceXcbPresentationSupportKHR;
4917     }
4918 
4919     // fields for VK_KHR_wayland_surface
4920     version(linux) {
4921         private PFN_vkCreateWaylandSurfaceKHR                        _CreateWaylandSurfaceKHR;
4922         private PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR _GetPhysicalDeviceWaylandPresentationSupportKHR;
4923     }
4924 
4925     // fields for VK_KHR_win32_surface
4926     version(Windows) {
4927         private PFN_vkCreateWin32SurfaceKHR                          _CreateWin32SurfaceKHR;
4928         private PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR   _GetPhysicalDeviceWin32PresentationSupportKHR;
4929     }
4930 
4931     // fields for VK_EXT_debug_report
4932     private PFN_vkCreateDebugReportCallbackEXT                   _CreateDebugReportCallbackEXT;
4933     private PFN_vkDestroyDebugReportCallbackEXT                  _DestroyDebugReportCallbackEXT;
4934     private PFN_vkDebugReportMessageEXT                          _DebugReportMessageEXT;
4935 }
4936 
4937 // Device commands
4938 
4939 final class VkDeviceCmds {
4940 
4941     this (VkDevice device, VkInstanceCmds instanceCmds) {
4942         auto loader = instanceCmds._GetDeviceProcAddr;
4943         // VK_VERSION_1_0
4944         _DestroyDevice                    = cast(PFN_vkDestroyDevice)                   loader(device, "vkDestroyDevice");
4945         _GetDeviceQueue                   = cast(PFN_vkGetDeviceQueue)                  loader(device, "vkGetDeviceQueue");
4946         _QueueSubmit                      = cast(PFN_vkQueueSubmit)                     loader(device, "vkQueueSubmit");
4947         _QueueWaitIdle                    = cast(PFN_vkQueueWaitIdle)                   loader(device, "vkQueueWaitIdle");
4948         _DeviceWaitIdle                   = cast(PFN_vkDeviceWaitIdle)                  loader(device, "vkDeviceWaitIdle");
4949         _AllocateMemory                   = cast(PFN_vkAllocateMemory)                  loader(device, "vkAllocateMemory");
4950         _FreeMemory                       = cast(PFN_vkFreeMemory)                      loader(device, "vkFreeMemory");
4951         _MapMemory                        = cast(PFN_vkMapMemory)                       loader(device, "vkMapMemory");
4952         _UnmapMemory                      = cast(PFN_vkUnmapMemory)                     loader(device, "vkUnmapMemory");
4953         _FlushMappedMemoryRanges          = cast(PFN_vkFlushMappedMemoryRanges)         loader(device, "vkFlushMappedMemoryRanges");
4954         _InvalidateMappedMemoryRanges     = cast(PFN_vkInvalidateMappedMemoryRanges)    loader(device, "vkInvalidateMappedMemoryRanges");
4955         _GetDeviceMemoryCommitment        = cast(PFN_vkGetDeviceMemoryCommitment)       loader(device, "vkGetDeviceMemoryCommitment");
4956         _BindBufferMemory                 = cast(PFN_vkBindBufferMemory)                loader(device, "vkBindBufferMemory");
4957         _BindImageMemory                  = cast(PFN_vkBindImageMemory)                 loader(device, "vkBindImageMemory");
4958         _GetBufferMemoryRequirements      = cast(PFN_vkGetBufferMemoryRequirements)     loader(device, "vkGetBufferMemoryRequirements");
4959         _GetImageMemoryRequirements       = cast(PFN_vkGetImageMemoryRequirements)      loader(device, "vkGetImageMemoryRequirements");
4960         _GetImageSparseMemoryRequirements = cast(PFN_vkGetImageSparseMemoryRequirements)loader(device, "vkGetImageSparseMemoryRequirements");
4961         _QueueBindSparse                  = cast(PFN_vkQueueBindSparse)                 loader(device, "vkQueueBindSparse");
4962         _CreateFence                      = cast(PFN_vkCreateFence)                     loader(device, "vkCreateFence");
4963         _DestroyFence                     = cast(PFN_vkDestroyFence)                    loader(device, "vkDestroyFence");
4964         _ResetFences                      = cast(PFN_vkResetFences)                     loader(device, "vkResetFences");
4965         _GetFenceStatus                   = cast(PFN_vkGetFenceStatus)                  loader(device, "vkGetFenceStatus");
4966         _WaitForFences                    = cast(PFN_vkWaitForFences)                   loader(device, "vkWaitForFences");
4967         _CreateSemaphore                  = cast(PFN_vkCreateSemaphore)                 loader(device, "vkCreateSemaphore");
4968         _DestroySemaphore                 = cast(PFN_vkDestroySemaphore)                loader(device, "vkDestroySemaphore");
4969         _CreateEvent                      = cast(PFN_vkCreateEvent)                     loader(device, "vkCreateEvent");
4970         _DestroyEvent                     = cast(PFN_vkDestroyEvent)                    loader(device, "vkDestroyEvent");
4971         _GetEventStatus                   = cast(PFN_vkGetEventStatus)                  loader(device, "vkGetEventStatus");
4972         _SetEvent                         = cast(PFN_vkSetEvent)                        loader(device, "vkSetEvent");
4973         _ResetEvent                       = cast(PFN_vkResetEvent)                      loader(device, "vkResetEvent");
4974         _CreateQueryPool                  = cast(PFN_vkCreateQueryPool)                 loader(device, "vkCreateQueryPool");
4975         _DestroyQueryPool                 = cast(PFN_vkDestroyQueryPool)                loader(device, "vkDestroyQueryPool");
4976         _GetQueryPoolResults              = cast(PFN_vkGetQueryPoolResults)             loader(device, "vkGetQueryPoolResults");
4977         _CreateBuffer                     = cast(PFN_vkCreateBuffer)                    loader(device, "vkCreateBuffer");
4978         _DestroyBuffer                    = cast(PFN_vkDestroyBuffer)                   loader(device, "vkDestroyBuffer");
4979         _CreateBufferView                 = cast(PFN_vkCreateBufferView)                loader(device, "vkCreateBufferView");
4980         _DestroyBufferView                = cast(PFN_vkDestroyBufferView)               loader(device, "vkDestroyBufferView");
4981         _CreateImage                      = cast(PFN_vkCreateImage)                     loader(device, "vkCreateImage");
4982         _DestroyImage                     = cast(PFN_vkDestroyImage)                    loader(device, "vkDestroyImage");
4983         _GetImageSubresourceLayout        = cast(PFN_vkGetImageSubresourceLayout)       loader(device, "vkGetImageSubresourceLayout");
4984         _CreateImageView                  = cast(PFN_vkCreateImageView)                 loader(device, "vkCreateImageView");
4985         _DestroyImageView                 = cast(PFN_vkDestroyImageView)                loader(device, "vkDestroyImageView");
4986         _CreateShaderModule               = cast(PFN_vkCreateShaderModule)              loader(device, "vkCreateShaderModule");
4987         _DestroyShaderModule              = cast(PFN_vkDestroyShaderModule)             loader(device, "vkDestroyShaderModule");
4988         _CreatePipelineCache              = cast(PFN_vkCreatePipelineCache)             loader(device, "vkCreatePipelineCache");
4989         _DestroyPipelineCache             = cast(PFN_vkDestroyPipelineCache)            loader(device, "vkDestroyPipelineCache");
4990         _GetPipelineCacheData             = cast(PFN_vkGetPipelineCacheData)            loader(device, "vkGetPipelineCacheData");
4991         _MergePipelineCaches              = cast(PFN_vkMergePipelineCaches)             loader(device, "vkMergePipelineCaches");
4992         _CreateGraphicsPipelines          = cast(PFN_vkCreateGraphicsPipelines)         loader(device, "vkCreateGraphicsPipelines");
4993         _CreateComputePipelines           = cast(PFN_vkCreateComputePipelines)          loader(device, "vkCreateComputePipelines");
4994         _DestroyPipeline                  = cast(PFN_vkDestroyPipeline)                 loader(device, "vkDestroyPipeline");
4995         _CreatePipelineLayout             = cast(PFN_vkCreatePipelineLayout)            loader(device, "vkCreatePipelineLayout");
4996         _DestroyPipelineLayout            = cast(PFN_vkDestroyPipelineLayout)           loader(device, "vkDestroyPipelineLayout");
4997         _CreateSampler                    = cast(PFN_vkCreateSampler)                   loader(device, "vkCreateSampler");
4998         _DestroySampler                   = cast(PFN_vkDestroySampler)                  loader(device, "vkDestroySampler");
4999         _CreateDescriptorSetLayout        = cast(PFN_vkCreateDescriptorSetLayout)       loader(device, "vkCreateDescriptorSetLayout");
5000         _DestroyDescriptorSetLayout       = cast(PFN_vkDestroyDescriptorSetLayout)      loader(device, "vkDestroyDescriptorSetLayout");
5001         _CreateDescriptorPool             = cast(PFN_vkCreateDescriptorPool)            loader(device, "vkCreateDescriptorPool");
5002         _DestroyDescriptorPool            = cast(PFN_vkDestroyDescriptorPool)           loader(device, "vkDestroyDescriptorPool");
5003         _ResetDescriptorPool              = cast(PFN_vkResetDescriptorPool)             loader(device, "vkResetDescriptorPool");
5004         _AllocateDescriptorSets           = cast(PFN_vkAllocateDescriptorSets)          loader(device, "vkAllocateDescriptorSets");
5005         _FreeDescriptorSets               = cast(PFN_vkFreeDescriptorSets)              loader(device, "vkFreeDescriptorSets");
5006         _UpdateDescriptorSets             = cast(PFN_vkUpdateDescriptorSets)            loader(device, "vkUpdateDescriptorSets");
5007         _CreateFramebuffer                = cast(PFN_vkCreateFramebuffer)               loader(device, "vkCreateFramebuffer");
5008         _DestroyFramebuffer               = cast(PFN_vkDestroyFramebuffer)              loader(device, "vkDestroyFramebuffer");
5009         _CreateRenderPass                 = cast(PFN_vkCreateRenderPass)                loader(device, "vkCreateRenderPass");
5010         _DestroyRenderPass                = cast(PFN_vkDestroyRenderPass)               loader(device, "vkDestroyRenderPass");
5011         _GetRenderAreaGranularity         = cast(PFN_vkGetRenderAreaGranularity)        loader(device, "vkGetRenderAreaGranularity");
5012         _CreateCommandPool                = cast(PFN_vkCreateCommandPool)               loader(device, "vkCreateCommandPool");
5013         _DestroyCommandPool               = cast(PFN_vkDestroyCommandPool)              loader(device, "vkDestroyCommandPool");
5014         _ResetCommandPool                 = cast(PFN_vkResetCommandPool)                loader(device, "vkResetCommandPool");
5015         _AllocateCommandBuffers           = cast(PFN_vkAllocateCommandBuffers)          loader(device, "vkAllocateCommandBuffers");
5016         _FreeCommandBuffers               = cast(PFN_vkFreeCommandBuffers)              loader(device, "vkFreeCommandBuffers");
5017         _BeginCommandBuffer               = cast(PFN_vkBeginCommandBuffer)              loader(device, "vkBeginCommandBuffer");
5018         _EndCommandBuffer                 = cast(PFN_vkEndCommandBuffer)                loader(device, "vkEndCommandBuffer");
5019         _ResetCommandBuffer               = cast(PFN_vkResetCommandBuffer)              loader(device, "vkResetCommandBuffer");
5020         _CmdBindPipeline                  = cast(PFN_vkCmdBindPipeline)                 loader(device, "vkCmdBindPipeline");
5021         _CmdSetViewport                   = cast(PFN_vkCmdSetViewport)                  loader(device, "vkCmdSetViewport");
5022         _CmdSetScissor                    = cast(PFN_vkCmdSetScissor)                   loader(device, "vkCmdSetScissor");
5023         _CmdSetLineWidth                  = cast(PFN_vkCmdSetLineWidth)                 loader(device, "vkCmdSetLineWidth");
5024         _CmdSetDepthBias                  = cast(PFN_vkCmdSetDepthBias)                 loader(device, "vkCmdSetDepthBias");
5025         _CmdSetBlendConstants             = cast(PFN_vkCmdSetBlendConstants)            loader(device, "vkCmdSetBlendConstants");
5026         _CmdSetDepthBounds                = cast(PFN_vkCmdSetDepthBounds)               loader(device, "vkCmdSetDepthBounds");
5027         _CmdSetStencilCompareMask         = cast(PFN_vkCmdSetStencilCompareMask)        loader(device, "vkCmdSetStencilCompareMask");
5028         _CmdSetStencilWriteMask           = cast(PFN_vkCmdSetStencilWriteMask)          loader(device, "vkCmdSetStencilWriteMask");
5029         _CmdSetStencilReference           = cast(PFN_vkCmdSetStencilReference)          loader(device, "vkCmdSetStencilReference");
5030         _CmdBindDescriptorSets            = cast(PFN_vkCmdBindDescriptorSets)           loader(device, "vkCmdBindDescriptorSets");
5031         _CmdBindIndexBuffer               = cast(PFN_vkCmdBindIndexBuffer)              loader(device, "vkCmdBindIndexBuffer");
5032         _CmdBindVertexBuffers             = cast(PFN_vkCmdBindVertexBuffers)            loader(device, "vkCmdBindVertexBuffers");
5033         _CmdDraw                          = cast(PFN_vkCmdDraw)                         loader(device, "vkCmdDraw");
5034         _CmdDrawIndexed                   = cast(PFN_vkCmdDrawIndexed)                  loader(device, "vkCmdDrawIndexed");
5035         _CmdDrawIndirect                  = cast(PFN_vkCmdDrawIndirect)                 loader(device, "vkCmdDrawIndirect");
5036         _CmdDrawIndexedIndirect           = cast(PFN_vkCmdDrawIndexedIndirect)          loader(device, "vkCmdDrawIndexedIndirect");
5037         _CmdDispatch                      = cast(PFN_vkCmdDispatch)                     loader(device, "vkCmdDispatch");
5038         _CmdDispatchIndirect              = cast(PFN_vkCmdDispatchIndirect)             loader(device, "vkCmdDispatchIndirect");
5039         _CmdCopyBuffer                    = cast(PFN_vkCmdCopyBuffer)                   loader(device, "vkCmdCopyBuffer");
5040         _CmdCopyImage                     = cast(PFN_vkCmdCopyImage)                    loader(device, "vkCmdCopyImage");
5041         _CmdBlitImage                     = cast(PFN_vkCmdBlitImage)                    loader(device, "vkCmdBlitImage");
5042         _CmdCopyBufferToImage             = cast(PFN_vkCmdCopyBufferToImage)            loader(device, "vkCmdCopyBufferToImage");
5043         _CmdCopyImageToBuffer             = cast(PFN_vkCmdCopyImageToBuffer)            loader(device, "vkCmdCopyImageToBuffer");
5044         _CmdUpdateBuffer                  = cast(PFN_vkCmdUpdateBuffer)                 loader(device, "vkCmdUpdateBuffer");
5045         _CmdFillBuffer                    = cast(PFN_vkCmdFillBuffer)                   loader(device, "vkCmdFillBuffer");
5046         _CmdClearColorImage               = cast(PFN_vkCmdClearColorImage)              loader(device, "vkCmdClearColorImage");
5047         _CmdClearDepthStencilImage        = cast(PFN_vkCmdClearDepthStencilImage)       loader(device, "vkCmdClearDepthStencilImage");
5048         _CmdClearAttachments              = cast(PFN_vkCmdClearAttachments)             loader(device, "vkCmdClearAttachments");
5049         _CmdResolveImage                  = cast(PFN_vkCmdResolveImage)                 loader(device, "vkCmdResolveImage");
5050         _CmdSetEvent                      = cast(PFN_vkCmdSetEvent)                     loader(device, "vkCmdSetEvent");
5051         _CmdResetEvent                    = cast(PFN_vkCmdResetEvent)                   loader(device, "vkCmdResetEvent");
5052         _CmdWaitEvents                    = cast(PFN_vkCmdWaitEvents)                   loader(device, "vkCmdWaitEvents");
5053         _CmdPipelineBarrier               = cast(PFN_vkCmdPipelineBarrier)              loader(device, "vkCmdPipelineBarrier");
5054         _CmdBeginQuery                    = cast(PFN_vkCmdBeginQuery)                   loader(device, "vkCmdBeginQuery");
5055         _CmdEndQuery                      = cast(PFN_vkCmdEndQuery)                     loader(device, "vkCmdEndQuery");
5056         _CmdResetQueryPool                = cast(PFN_vkCmdResetQueryPool)               loader(device, "vkCmdResetQueryPool");
5057         _CmdWriteTimestamp                = cast(PFN_vkCmdWriteTimestamp)               loader(device, "vkCmdWriteTimestamp");
5058         _CmdCopyQueryPoolResults          = cast(PFN_vkCmdCopyQueryPoolResults)         loader(device, "vkCmdCopyQueryPoolResults");
5059         _CmdPushConstants                 = cast(PFN_vkCmdPushConstants)                loader(device, "vkCmdPushConstants");
5060         _CmdBeginRenderPass               = cast(PFN_vkCmdBeginRenderPass)              loader(device, "vkCmdBeginRenderPass");
5061         _CmdNextSubpass                   = cast(PFN_vkCmdNextSubpass)                  loader(device, "vkCmdNextSubpass");
5062         _CmdEndRenderPass                 = cast(PFN_vkCmdEndRenderPass)                loader(device, "vkCmdEndRenderPass");
5063         _CmdExecuteCommands               = cast(PFN_vkCmdExecuteCommands)              loader(device, "vkCmdExecuteCommands");
5064 
5065         // VK_KHR_swapchain
5066         _CreateSwapchainKHR               = cast(PFN_vkCreateSwapchainKHR)              loader(device, "vkCreateSwapchainKHR");
5067         _DestroySwapchainKHR              = cast(PFN_vkDestroySwapchainKHR)             loader(device, "vkDestroySwapchainKHR");
5068         _GetSwapchainImagesKHR            = cast(PFN_vkGetSwapchainImagesKHR)           loader(device, "vkGetSwapchainImagesKHR");
5069         _AcquireNextImageKHR              = cast(PFN_vkAcquireNextImageKHR)             loader(device, "vkAcquireNextImageKHR");
5070         _QueuePresentKHR                  = cast(PFN_vkQueuePresentKHR)                 loader(device, "vkQueuePresentKHR");
5071     }
5072 
5073     /// Commands for VK_VERSION_1_0
5074     void DestroyDevice (VkDevice device, const(VkAllocationCallbacks)* pAllocator) {
5075         assert(_DestroyDevice !is null, "vkDestroyDevice was not loaded. Requested by VK_VERSION_1_0");
5076         return _DestroyDevice(device, pAllocator);
5077     }
5078     /// ditto
5079     void GetDeviceQueue (VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue) {
5080         assert(_GetDeviceQueue !is null, "vkGetDeviceQueue was not loaded. Requested by VK_VERSION_1_0");
5081         return _GetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue);
5082     }
5083     /// ditto
5084     VkResult QueueSubmit (VkQueue queue, uint32_t submitCount, const(VkSubmitInfo)* pSubmits, VkFence fence) {
5085         assert(_QueueSubmit !is null, "vkQueueSubmit was not loaded. Requested by VK_VERSION_1_0");
5086         return _QueueSubmit(queue, submitCount, pSubmits, fence);
5087     }
5088     /// ditto
5089     VkResult QueueWaitIdle (VkQueue queue) {
5090         assert(_QueueWaitIdle !is null, "vkQueueWaitIdle was not loaded. Requested by VK_VERSION_1_0");
5091         return _QueueWaitIdle(queue);
5092     }
5093     /// ditto
5094     VkResult DeviceWaitIdle (VkDevice device) {
5095         assert(_DeviceWaitIdle !is null, "vkDeviceWaitIdle was not loaded. Requested by VK_VERSION_1_0");
5096         return _DeviceWaitIdle(device);
5097     }
5098     /// ditto
5099     VkResult AllocateMemory (VkDevice device, const(VkMemoryAllocateInfo)* pAllocateInfo, const(VkAllocationCallbacks)* pAllocator, VkDeviceMemory* pMemory) {
5100         assert(_AllocateMemory !is null, "vkAllocateMemory was not loaded. Requested by VK_VERSION_1_0");
5101         return _AllocateMemory(device, pAllocateInfo, pAllocator, pMemory);
5102     }
5103     /// ditto
5104     void FreeMemory (VkDevice device, VkDeviceMemory memory, const(VkAllocationCallbacks)* pAllocator) {
5105         assert(_FreeMemory !is null, "vkFreeMemory was not loaded. Requested by VK_VERSION_1_0");
5106         return _FreeMemory(device, memory, pAllocator);
5107     }
5108     /// ditto
5109     VkResult MapMemory (VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) {
5110         assert(_MapMemory !is null, "vkMapMemory was not loaded. Requested by VK_VERSION_1_0");
5111         return _MapMemory(device, memory, offset, size, flags, ppData);
5112     }
5113     /// ditto
5114     void UnmapMemory (VkDevice device, VkDeviceMemory memory) {
5115         assert(_UnmapMemory !is null, "vkUnmapMemory was not loaded. Requested by VK_VERSION_1_0");
5116         return _UnmapMemory(device, memory);
5117     }
5118     /// ditto
5119     VkResult FlushMappedMemoryRanges (VkDevice device, uint32_t memoryRangeCount, const(VkMappedMemoryRange)* pMemoryRanges) {
5120         assert(_FlushMappedMemoryRanges !is null, "vkFlushMappedMemoryRanges was not loaded. Requested by VK_VERSION_1_0");
5121         return _FlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
5122     }
5123     /// ditto
5124     VkResult InvalidateMappedMemoryRanges (VkDevice device, uint32_t memoryRangeCount, const(VkMappedMemoryRange)* pMemoryRanges) {
5125         assert(_InvalidateMappedMemoryRanges !is null, "vkInvalidateMappedMemoryRanges was not loaded. Requested by VK_VERSION_1_0");
5126         return _InvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
5127     }
5128     /// ditto
5129     void GetDeviceMemoryCommitment (VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) {
5130         assert(_GetDeviceMemoryCommitment !is null, "vkGetDeviceMemoryCommitment was not loaded. Requested by VK_VERSION_1_0");
5131         return _GetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes);
5132     }
5133     /// ditto
5134     VkResult BindBufferMemory (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) {
5135         assert(_BindBufferMemory !is null, "vkBindBufferMemory was not loaded. Requested by VK_VERSION_1_0");
5136         return _BindBufferMemory(device, buffer, memory, memoryOffset);
5137     }
5138     /// ditto
5139     VkResult BindImageMemory (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) {
5140         assert(_BindImageMemory !is null, "vkBindImageMemory was not loaded. Requested by VK_VERSION_1_0");
5141         return _BindImageMemory(device, image, memory, memoryOffset);
5142     }
5143     /// ditto
5144     void GetBufferMemoryRequirements (VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) {
5145         assert(_GetBufferMemoryRequirements !is null, "vkGetBufferMemoryRequirements was not loaded. Requested by VK_VERSION_1_0");
5146         return _GetBufferMemoryRequirements(device, buffer, pMemoryRequirements);
5147     }
5148     /// ditto
5149     void GetImageMemoryRequirements (VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) {
5150         assert(_GetImageMemoryRequirements !is null, "vkGetImageMemoryRequirements was not loaded. Requested by VK_VERSION_1_0");
5151         return _GetImageMemoryRequirements(device, image, pMemoryRequirements);
5152     }
5153     /// ditto
5154     void GetImageSparseMemoryRequirements (VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
5155         assert(_GetImageSparseMemoryRequirements !is null, "vkGetImageSparseMemoryRequirements was not loaded. Requested by VK_VERSION_1_0");
5156         return _GetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
5157     }
5158     /// ditto
5159     VkResult QueueBindSparse (VkQueue queue, uint32_t bindInfoCount, const(VkBindSparseInfo)* pBindInfo, VkFence fence) {
5160         assert(_QueueBindSparse !is null, "vkQueueBindSparse was not loaded. Requested by VK_VERSION_1_0");
5161         return _QueueBindSparse(queue, bindInfoCount, pBindInfo, fence);
5162     }
5163     /// ditto
5164     VkResult CreateFence (VkDevice device, const(VkFenceCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkFence* pFence) {
5165         assert(_CreateFence !is null, "vkCreateFence was not loaded. Requested by VK_VERSION_1_0");
5166         return _CreateFence(device, pCreateInfo, pAllocator, pFence);
5167     }
5168     /// ditto
5169     void DestroyFence (VkDevice device, VkFence fence, const(VkAllocationCallbacks)* pAllocator) {
5170         assert(_DestroyFence !is null, "vkDestroyFence was not loaded. Requested by VK_VERSION_1_0");
5171         return _DestroyFence(device, fence, pAllocator);
5172     }
5173     /// ditto
5174     VkResult ResetFences (VkDevice device, uint32_t fenceCount, const(VkFence)* pFences) {
5175         assert(_ResetFences !is null, "vkResetFences was not loaded. Requested by VK_VERSION_1_0");
5176         return _ResetFences(device, fenceCount, pFences);
5177     }
5178     /// ditto
5179     VkResult GetFenceStatus (VkDevice device, VkFence fence) {
5180         assert(_GetFenceStatus !is null, "vkGetFenceStatus was not loaded. Requested by VK_VERSION_1_0");
5181         return _GetFenceStatus(device, fence);
5182     }
5183     /// ditto
5184     VkResult WaitForFences (VkDevice device, uint32_t fenceCount, const(VkFence)* pFences, VkBool32 waitAll, uint64_t timeout) {
5185         assert(_WaitForFences !is null, "vkWaitForFences was not loaded. Requested by VK_VERSION_1_0");
5186         return _WaitForFences(device, fenceCount, pFences, waitAll, timeout);
5187     }
5188     /// ditto
5189     VkResult CreateSemaphore (VkDevice device, const(VkSemaphoreCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkSemaphore* pSemaphore) {
5190         assert(_CreateSemaphore !is null, "vkCreateSemaphore was not loaded. Requested by VK_VERSION_1_0");
5191         return _CreateSemaphore(device, pCreateInfo, pAllocator, pSemaphore);
5192     }
5193     /// ditto
5194     void DestroySemaphore (VkDevice device, VkSemaphore semaphore, const(VkAllocationCallbacks)* pAllocator) {
5195         assert(_DestroySemaphore !is null, "vkDestroySemaphore was not loaded. Requested by VK_VERSION_1_0");
5196         return _DestroySemaphore(device, semaphore, pAllocator);
5197     }
5198     /// ditto
5199     VkResult CreateEvent (VkDevice device, const(VkEventCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkEvent* pEvent) {
5200         assert(_CreateEvent !is null, "vkCreateEvent was not loaded. Requested by VK_VERSION_1_0");
5201         return _CreateEvent(device, pCreateInfo, pAllocator, pEvent);
5202     }
5203     /// ditto
5204     void DestroyEvent (VkDevice device, VkEvent event, const(VkAllocationCallbacks)* pAllocator) {
5205         assert(_DestroyEvent !is null, "vkDestroyEvent was not loaded. Requested by VK_VERSION_1_0");
5206         return _DestroyEvent(device, event, pAllocator);
5207     }
5208     /// ditto
5209     VkResult GetEventStatus (VkDevice device, VkEvent event) {
5210         assert(_GetEventStatus !is null, "vkGetEventStatus was not loaded. Requested by VK_VERSION_1_0");
5211         return _GetEventStatus(device, event);
5212     }
5213     /// ditto
5214     VkResult SetEvent (VkDevice device, VkEvent event) {
5215         assert(_SetEvent !is null, "vkSetEvent was not loaded. Requested by VK_VERSION_1_0");
5216         return _SetEvent(device, event);
5217     }
5218     /// ditto
5219     VkResult ResetEvent (VkDevice device, VkEvent event) {
5220         assert(_ResetEvent !is null, "vkResetEvent was not loaded. Requested by VK_VERSION_1_0");
5221         return _ResetEvent(device, event);
5222     }
5223     /// ditto
5224     VkResult CreateQueryPool (VkDevice device, const(VkQueryPoolCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkQueryPool* pQueryPool) {
5225         assert(_CreateQueryPool !is null, "vkCreateQueryPool was not loaded. Requested by VK_VERSION_1_0");
5226         return _CreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool);
5227     }
5228     /// ditto
5229     void DestroyQueryPool (VkDevice device, VkQueryPool queryPool, const(VkAllocationCallbacks)* pAllocator) {
5230         assert(_DestroyQueryPool !is null, "vkDestroyQueryPool was not loaded. Requested by VK_VERSION_1_0");
5231         return _DestroyQueryPool(device, queryPool, pAllocator);
5232     }
5233     /// ditto
5234     VkResult GetQueryPoolResults (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) {
5235         assert(_GetQueryPoolResults !is null, "vkGetQueryPoolResults was not loaded. Requested by VK_VERSION_1_0");
5236         return _GetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags);
5237     }
5238     /// ditto
5239     VkResult CreateBuffer (VkDevice device, const(VkBufferCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkBuffer* pBuffer) {
5240         assert(_CreateBuffer !is null, "vkCreateBuffer was not loaded. Requested by VK_VERSION_1_0");
5241         return _CreateBuffer(device, pCreateInfo, pAllocator, pBuffer);
5242     }
5243     /// ditto
5244     void DestroyBuffer (VkDevice device, VkBuffer buffer, const(VkAllocationCallbacks)* pAllocator) {
5245         assert(_DestroyBuffer !is null, "vkDestroyBuffer was not loaded. Requested by VK_VERSION_1_0");
5246         return _DestroyBuffer(device, buffer, pAllocator);
5247     }
5248     /// ditto
5249     VkResult CreateBufferView (VkDevice device, const(VkBufferViewCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkBufferView* pView) {
5250         assert(_CreateBufferView !is null, "vkCreateBufferView was not loaded. Requested by VK_VERSION_1_0");
5251         return _CreateBufferView(device, pCreateInfo, pAllocator, pView);
5252     }
5253     /// ditto
5254     void DestroyBufferView (VkDevice device, VkBufferView bufferView, const(VkAllocationCallbacks)* pAllocator) {
5255         assert(_DestroyBufferView !is null, "vkDestroyBufferView was not loaded. Requested by VK_VERSION_1_0");
5256         return _DestroyBufferView(device, bufferView, pAllocator);
5257     }
5258     /// ditto
5259     VkResult CreateImage (VkDevice device, const(VkImageCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkImage* pImage) {
5260         assert(_CreateImage !is null, "vkCreateImage was not loaded. Requested by VK_VERSION_1_0");
5261         return _CreateImage(device, pCreateInfo, pAllocator, pImage);
5262     }
5263     /// ditto
5264     void DestroyImage (VkDevice device, VkImage image, const(VkAllocationCallbacks)* pAllocator) {
5265         assert(_DestroyImage !is null, "vkDestroyImage was not loaded. Requested by VK_VERSION_1_0");
5266         return _DestroyImage(device, image, pAllocator);
5267     }
5268     /// ditto
5269     void GetImageSubresourceLayout (VkDevice device, VkImage image, const(VkImageSubresource)* pSubresource, VkSubresourceLayout* pLayout) {
5270         assert(_GetImageSubresourceLayout !is null, "vkGetImageSubresourceLayout was not loaded. Requested by VK_VERSION_1_0");
5271         return _GetImageSubresourceLayout(device, image, pSubresource, pLayout);
5272     }
5273     /// ditto
5274     VkResult CreateImageView (VkDevice device, const(VkImageViewCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkImageView* pView) {
5275         assert(_CreateImageView !is null, "vkCreateImageView was not loaded. Requested by VK_VERSION_1_0");
5276         return _CreateImageView(device, pCreateInfo, pAllocator, pView);
5277     }
5278     /// ditto
5279     void DestroyImageView (VkDevice device, VkImageView imageView, const(VkAllocationCallbacks)* pAllocator) {
5280         assert(_DestroyImageView !is null, "vkDestroyImageView was not loaded. Requested by VK_VERSION_1_0");
5281         return _DestroyImageView(device, imageView, pAllocator);
5282     }
5283     /// ditto
5284     VkResult CreateShaderModule (VkDevice device, const(VkShaderModuleCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkShaderModule* pShaderModule) {
5285         assert(_CreateShaderModule !is null, "vkCreateShaderModule was not loaded. Requested by VK_VERSION_1_0");
5286         return _CreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule);
5287     }
5288     /// ditto
5289     void DestroyShaderModule (VkDevice device, VkShaderModule shaderModule, const(VkAllocationCallbacks)* pAllocator) {
5290         assert(_DestroyShaderModule !is null, "vkDestroyShaderModule was not loaded. Requested by VK_VERSION_1_0");
5291         return _DestroyShaderModule(device, shaderModule, pAllocator);
5292     }
5293     /// ditto
5294     VkResult CreatePipelineCache (VkDevice device, const(VkPipelineCacheCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkPipelineCache* pPipelineCache) {
5295         assert(_CreatePipelineCache !is null, "vkCreatePipelineCache was not loaded. Requested by VK_VERSION_1_0");
5296         return _CreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache);
5297     }
5298     /// ditto
5299     void DestroyPipelineCache (VkDevice device, VkPipelineCache pipelineCache, const(VkAllocationCallbacks)* pAllocator) {
5300         assert(_DestroyPipelineCache !is null, "vkDestroyPipelineCache was not loaded. Requested by VK_VERSION_1_0");
5301         return _DestroyPipelineCache(device, pipelineCache, pAllocator);
5302     }
5303     /// ditto
5304     VkResult GetPipelineCacheData (VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData) {
5305         assert(_GetPipelineCacheData !is null, "vkGetPipelineCacheData was not loaded. Requested by VK_VERSION_1_0");
5306         return _GetPipelineCacheData(device, pipelineCache, pDataSize, pData);
5307     }
5308     /// ditto
5309     VkResult MergePipelineCaches (VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const(VkPipelineCache)* pSrcCaches) {
5310         assert(_MergePipelineCaches !is null, "vkMergePipelineCaches was not loaded. Requested by VK_VERSION_1_0");
5311         return _MergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches);
5312     }
5313     /// ditto
5314     VkResult CreateGraphicsPipelines (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const(VkGraphicsPipelineCreateInfo)* pCreateInfos, const(VkAllocationCallbacks)* pAllocator, VkPipeline* pPipelines) {
5315         assert(_CreateGraphicsPipelines !is null, "vkCreateGraphicsPipelines was not loaded. Requested by VK_VERSION_1_0");
5316         return _CreateGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
5317     }
5318     /// ditto
5319     VkResult CreateComputePipelines (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const(VkComputePipelineCreateInfo)* pCreateInfos, const(VkAllocationCallbacks)* pAllocator, VkPipeline* pPipelines) {
5320         assert(_CreateComputePipelines !is null, "vkCreateComputePipelines was not loaded. Requested by VK_VERSION_1_0");
5321         return _CreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
5322     }
5323     /// ditto
5324     void DestroyPipeline (VkDevice device, VkPipeline pipeline, const(VkAllocationCallbacks)* pAllocator) {
5325         assert(_DestroyPipeline !is null, "vkDestroyPipeline was not loaded. Requested by VK_VERSION_1_0");
5326         return _DestroyPipeline(device, pipeline, pAllocator);
5327     }
5328     /// ditto
5329     VkResult CreatePipelineLayout (VkDevice device, const(VkPipelineLayoutCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkPipelineLayout* pPipelineLayout) {
5330         assert(_CreatePipelineLayout !is null, "vkCreatePipelineLayout was not loaded. Requested by VK_VERSION_1_0");
5331         return _CreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout);
5332     }
5333     /// ditto
5334     void DestroyPipelineLayout (VkDevice device, VkPipelineLayout pipelineLayout, const(VkAllocationCallbacks)* pAllocator) {
5335         assert(_DestroyPipelineLayout !is null, "vkDestroyPipelineLayout was not loaded. Requested by VK_VERSION_1_0");
5336         return _DestroyPipelineLayout(device, pipelineLayout, pAllocator);
5337     }
5338     /// ditto
5339     VkResult CreateSampler (VkDevice device, const(VkSamplerCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkSampler* pSampler) {
5340         assert(_CreateSampler !is null, "vkCreateSampler was not loaded. Requested by VK_VERSION_1_0");
5341         return _CreateSampler(device, pCreateInfo, pAllocator, pSampler);
5342     }
5343     /// ditto
5344     void DestroySampler (VkDevice device, VkSampler sampler, const(VkAllocationCallbacks)* pAllocator) {
5345         assert(_DestroySampler !is null, "vkDestroySampler was not loaded. Requested by VK_VERSION_1_0");
5346         return _DestroySampler(device, sampler, pAllocator);
5347     }
5348     /// ditto
5349     VkResult CreateDescriptorSetLayout (VkDevice device, const(VkDescriptorSetLayoutCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkDescriptorSetLayout* pSetLayout) {
5350         assert(_CreateDescriptorSetLayout !is null, "vkCreateDescriptorSetLayout was not loaded. Requested by VK_VERSION_1_0");
5351         return _CreateDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout);
5352     }
5353     /// ditto
5354     void DestroyDescriptorSetLayout (VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const(VkAllocationCallbacks)* pAllocator) {
5355         assert(_DestroyDescriptorSetLayout !is null, "vkDestroyDescriptorSetLayout was not loaded. Requested by VK_VERSION_1_0");
5356         return _DestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator);
5357     }
5358     /// ditto
5359     VkResult CreateDescriptorPool (VkDevice device, const(VkDescriptorPoolCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkDescriptorPool* pDescriptorPool) {
5360         assert(_CreateDescriptorPool !is null, "vkCreateDescriptorPool was not loaded. Requested by VK_VERSION_1_0");
5361         return _CreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool);
5362     }
5363     /// ditto
5364     void DestroyDescriptorPool (VkDevice device, VkDescriptorPool descriptorPool, const(VkAllocationCallbacks)* pAllocator) {
5365         assert(_DestroyDescriptorPool !is null, "vkDestroyDescriptorPool was not loaded. Requested by VK_VERSION_1_0");
5366         return _DestroyDescriptorPool(device, descriptorPool, pAllocator);
5367     }
5368     /// ditto
5369     VkResult ResetDescriptorPool (VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) {
5370         assert(_ResetDescriptorPool !is null, "vkResetDescriptorPool was not loaded. Requested by VK_VERSION_1_0");
5371         return _ResetDescriptorPool(device, descriptorPool, flags);
5372     }
5373     /// ditto
5374     VkResult AllocateDescriptorSets (VkDevice device, const(VkDescriptorSetAllocateInfo)* pAllocateInfo, VkDescriptorSet* pDescriptorSets) {
5375         assert(_AllocateDescriptorSets !is null, "vkAllocateDescriptorSets was not loaded. Requested by VK_VERSION_1_0");
5376         return _AllocateDescriptorSets(device, pAllocateInfo, pDescriptorSets);
5377     }
5378     /// ditto
5379     VkResult FreeDescriptorSets (VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const(VkDescriptorSet)* pDescriptorSets) {
5380         assert(_FreeDescriptorSets !is null, "vkFreeDescriptorSets was not loaded. Requested by VK_VERSION_1_0");
5381         return _FreeDescriptorSets(device, descriptorPool, descriptorSetCount, pDescriptorSets);
5382     }
5383     /// ditto
5384     void UpdateDescriptorSets (VkDevice device, uint32_t descriptorWriteCount, const(VkWriteDescriptorSet)* pDescriptorWrites, uint32_t descriptorCopyCount, const(VkCopyDescriptorSet)* pDescriptorCopies) {
5385         assert(_UpdateDescriptorSets !is null, "vkUpdateDescriptorSets was not loaded. Requested by VK_VERSION_1_0");
5386         return _UpdateDescriptorSets(device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies);
5387     }
5388     /// ditto
5389     VkResult CreateFramebuffer (VkDevice device, const(VkFramebufferCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkFramebuffer* pFramebuffer) {
5390         assert(_CreateFramebuffer !is null, "vkCreateFramebuffer was not loaded. Requested by VK_VERSION_1_0");
5391         return _CreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer);
5392     }
5393     /// ditto
5394     void DestroyFramebuffer (VkDevice device, VkFramebuffer framebuffer, const(VkAllocationCallbacks)* pAllocator) {
5395         assert(_DestroyFramebuffer !is null, "vkDestroyFramebuffer was not loaded. Requested by VK_VERSION_1_0");
5396         return _DestroyFramebuffer(device, framebuffer, pAllocator);
5397     }
5398     /// ditto
5399     VkResult CreateRenderPass (VkDevice device, const(VkRenderPassCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkRenderPass* pRenderPass) {
5400         assert(_CreateRenderPass !is null, "vkCreateRenderPass was not loaded. Requested by VK_VERSION_1_0");
5401         return _CreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass);
5402     }
5403     /// ditto
5404     void DestroyRenderPass (VkDevice device, VkRenderPass renderPass, const(VkAllocationCallbacks)* pAllocator) {
5405         assert(_DestroyRenderPass !is null, "vkDestroyRenderPass was not loaded. Requested by VK_VERSION_1_0");
5406         return _DestroyRenderPass(device, renderPass, pAllocator);
5407     }
5408     /// ditto
5409     void GetRenderAreaGranularity (VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) {
5410         assert(_GetRenderAreaGranularity !is null, "vkGetRenderAreaGranularity was not loaded. Requested by VK_VERSION_1_0");
5411         return _GetRenderAreaGranularity(device, renderPass, pGranularity);
5412     }
5413     /// ditto
5414     VkResult CreateCommandPool (VkDevice device, const(VkCommandPoolCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkCommandPool* pCommandPool) {
5415         assert(_CreateCommandPool !is null, "vkCreateCommandPool was not loaded. Requested by VK_VERSION_1_0");
5416         return _CreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool);
5417     }
5418     /// ditto
5419     void DestroyCommandPool (VkDevice device, VkCommandPool commandPool, const(VkAllocationCallbacks)* pAllocator) {
5420         assert(_DestroyCommandPool !is null, "vkDestroyCommandPool was not loaded. Requested by VK_VERSION_1_0");
5421         return _DestroyCommandPool(device, commandPool, pAllocator);
5422     }
5423     /// ditto
5424     VkResult ResetCommandPool (VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) {
5425         assert(_ResetCommandPool !is null, "vkResetCommandPool was not loaded. Requested by VK_VERSION_1_0");
5426         return _ResetCommandPool(device, commandPool, flags);
5427     }
5428     /// ditto
5429     VkResult AllocateCommandBuffers (VkDevice device, const(VkCommandBufferAllocateInfo)* pAllocateInfo, VkCommandBuffer* pCommandBuffers) {
5430         assert(_AllocateCommandBuffers !is null, "vkAllocateCommandBuffers was not loaded. Requested by VK_VERSION_1_0");
5431         return _AllocateCommandBuffers(device, pAllocateInfo, pCommandBuffers);
5432     }
5433     /// ditto
5434     void FreeCommandBuffers (VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const(VkCommandBuffer)* pCommandBuffers) {
5435         assert(_FreeCommandBuffers !is null, "vkFreeCommandBuffers was not loaded. Requested by VK_VERSION_1_0");
5436         return _FreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers);
5437     }
5438     /// ditto
5439     VkResult BeginCommandBuffer (VkCommandBuffer commandBuffer, const(VkCommandBufferBeginInfo)* pBeginInfo) {
5440         assert(_BeginCommandBuffer !is null, "vkBeginCommandBuffer was not loaded. Requested by VK_VERSION_1_0");
5441         return _BeginCommandBuffer(commandBuffer, pBeginInfo);
5442     }
5443     /// ditto
5444     VkResult EndCommandBuffer (VkCommandBuffer commandBuffer) {
5445         assert(_EndCommandBuffer !is null, "vkEndCommandBuffer was not loaded. Requested by VK_VERSION_1_0");
5446         return _EndCommandBuffer(commandBuffer);
5447     }
5448     /// ditto
5449     VkResult ResetCommandBuffer (VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) {
5450         assert(_ResetCommandBuffer !is null, "vkResetCommandBuffer was not loaded. Requested by VK_VERSION_1_0");
5451         return _ResetCommandBuffer(commandBuffer, flags);
5452     }
5453     /// ditto
5454     void CmdBindPipeline (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) {
5455         assert(_CmdBindPipeline !is null, "vkCmdBindPipeline was not loaded. Requested by VK_VERSION_1_0");
5456         return _CmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline);
5457     }
5458     /// ditto
5459     void CmdSetViewport (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const(VkViewport)* pViewports) {
5460         assert(_CmdSetViewport !is null, "vkCmdSetViewport was not loaded. Requested by VK_VERSION_1_0");
5461         return _CmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports);
5462     }
5463     /// ditto
5464     void CmdSetScissor (VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const(VkRect2D)* pScissors) {
5465         assert(_CmdSetScissor !is null, "vkCmdSetScissor was not loaded. Requested by VK_VERSION_1_0");
5466         return _CmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors);
5467     }
5468     /// ditto
5469     void CmdSetLineWidth (VkCommandBuffer commandBuffer, float lineWidth) {
5470         assert(_CmdSetLineWidth !is null, "vkCmdSetLineWidth was not loaded. Requested by VK_VERSION_1_0");
5471         return _CmdSetLineWidth(commandBuffer, lineWidth);
5472     }
5473     /// ditto
5474     void CmdSetDepthBias (VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) {
5475         assert(_CmdSetDepthBias !is null, "vkCmdSetDepthBias was not loaded. Requested by VK_VERSION_1_0");
5476         return _CmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
5477     }
5478     /// ditto
5479     void CmdSetBlendConstants (VkCommandBuffer commandBuffer, const ref float[4] blendConstants) {
5480         assert(_CmdSetBlendConstants !is null, "vkCmdSetBlendConstants was not loaded. Requested by VK_VERSION_1_0");
5481         return _CmdSetBlendConstants(commandBuffer, blendConstants);
5482     }
5483     /// ditto
5484     void CmdSetDepthBounds (VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) {
5485         assert(_CmdSetDepthBounds !is null, "vkCmdSetDepthBounds was not loaded. Requested by VK_VERSION_1_0");
5486         return _CmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds);
5487     }
5488     /// ditto
5489     void CmdSetStencilCompareMask (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask) {
5490         assert(_CmdSetStencilCompareMask !is null, "vkCmdSetStencilCompareMask was not loaded. Requested by VK_VERSION_1_0");
5491         return _CmdSetStencilCompareMask(commandBuffer, faceMask, compareMask);
5492     }
5493     /// ditto
5494     void CmdSetStencilWriteMask (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask) {
5495         assert(_CmdSetStencilWriteMask !is null, "vkCmdSetStencilWriteMask was not loaded. Requested by VK_VERSION_1_0");
5496         return _CmdSetStencilWriteMask(commandBuffer, faceMask, writeMask);
5497     }
5498     /// ditto
5499     void CmdSetStencilReference (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference) {
5500         assert(_CmdSetStencilReference !is null, "vkCmdSetStencilReference was not loaded. Requested by VK_VERSION_1_0");
5501         return _CmdSetStencilReference(commandBuffer, faceMask, reference);
5502     }
5503     /// ditto
5504     void CmdBindDescriptorSets (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const(VkDescriptorSet)* pDescriptorSets, uint32_t dynamicOffsetCount, const(uint32_t)* pDynamicOffsets) {
5505         assert(_CmdBindDescriptorSets !is null, "vkCmdBindDescriptorSets was not loaded. Requested by VK_VERSION_1_0");
5506         return _CmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
5507     }
5508     /// ditto
5509     void CmdBindIndexBuffer (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) {
5510         assert(_CmdBindIndexBuffer !is null, "vkCmdBindIndexBuffer was not loaded. Requested by VK_VERSION_1_0");
5511         return _CmdBindIndexBuffer(commandBuffer, buffer, offset, indexType);
5512     }
5513     /// ditto
5514     void CmdBindVertexBuffers (VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const(VkBuffer)* pBuffers, const(VkDeviceSize)* pOffsets) {
5515         assert(_CmdBindVertexBuffers !is null, "vkCmdBindVertexBuffers was not loaded. Requested by VK_VERSION_1_0");
5516         return _CmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets);
5517     }
5518     /// ditto
5519     void CmdDraw (VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) {
5520         assert(_CmdDraw !is null, "vkCmdDraw was not loaded. Requested by VK_VERSION_1_0");
5521         return _CmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance);
5522     }
5523     /// ditto
5524     void CmdDrawIndexed (VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) {
5525         assert(_CmdDrawIndexed !is null, "vkCmdDrawIndexed was not loaded. Requested by VK_VERSION_1_0");
5526         return _CmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
5527     }
5528     /// ditto
5529     void CmdDrawIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) {
5530         assert(_CmdDrawIndirect !is null, "vkCmdDrawIndirect was not loaded. Requested by VK_VERSION_1_0");
5531         return _CmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride);
5532     }
5533     /// ditto
5534     void CmdDrawIndexedIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) {
5535         assert(_CmdDrawIndexedIndirect !is null, "vkCmdDrawIndexedIndirect was not loaded. Requested by VK_VERSION_1_0");
5536         return _CmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride);
5537     }
5538     /// ditto
5539     void CmdDispatch (VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) {
5540         assert(_CmdDispatch !is null, "vkCmdDispatch was not loaded. Requested by VK_VERSION_1_0");
5541         return _CmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ);
5542     }
5543     /// ditto
5544     void CmdDispatchIndirect (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) {
5545         assert(_CmdDispatchIndirect !is null, "vkCmdDispatchIndirect was not loaded. Requested by VK_VERSION_1_0");
5546         return _CmdDispatchIndirect(commandBuffer, buffer, offset);
5547     }
5548     /// ditto
5549     void CmdCopyBuffer (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const(VkBufferCopy)* pRegions) {
5550         assert(_CmdCopyBuffer !is null, "vkCmdCopyBuffer was not loaded. Requested by VK_VERSION_1_0");
5551         return _CmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions);
5552     }
5553     /// ditto
5554     void CmdCopyImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const(VkImageCopy)* pRegions) {
5555         assert(_CmdCopyImage !is null, "vkCmdCopyImage was not loaded. Requested by VK_VERSION_1_0");
5556         return _CmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
5557     }
5558     /// ditto
5559     void CmdBlitImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const(VkImageBlit)* pRegions, VkFilter filter) {
5560         assert(_CmdBlitImage !is null, "vkCmdBlitImage was not loaded. Requested by VK_VERSION_1_0");
5561         return _CmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter);
5562     }
5563     /// ditto
5564     void CmdCopyBufferToImage (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const(VkBufferImageCopy)* pRegions) {
5565         assert(_CmdCopyBufferToImage !is null, "vkCmdCopyBufferToImage was not loaded. Requested by VK_VERSION_1_0");
5566         return _CmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions);
5567     }
5568     /// ditto
5569     void CmdCopyImageToBuffer (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const(VkBufferImageCopy)* pRegions) {
5570         assert(_CmdCopyImageToBuffer !is null, "vkCmdCopyImageToBuffer was not loaded. Requested by VK_VERSION_1_0");
5571         return _CmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions);
5572     }
5573     /// ditto
5574     void CmdUpdateBuffer (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const(void)* pData) {
5575         assert(_CmdUpdateBuffer !is null, "vkCmdUpdateBuffer was not loaded. Requested by VK_VERSION_1_0");
5576         return _CmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData);
5577     }
5578     /// ditto
5579     void CmdFillBuffer (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) {
5580         assert(_CmdFillBuffer !is null, "vkCmdFillBuffer was not loaded. Requested by VK_VERSION_1_0");
5581         return _CmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data);
5582     }
5583     /// ditto
5584     void CmdClearColorImage (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const(VkClearColorValue)* pColor, uint32_t rangeCount, const(VkImageSubresourceRange)* pRanges) {
5585         assert(_CmdClearColorImage !is null, "vkCmdClearColorImage was not loaded. Requested by VK_VERSION_1_0");
5586         return _CmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges);
5587     }
5588     /// ditto
5589     void CmdClearDepthStencilImage (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const(VkClearDepthStencilValue)* pDepthStencil, uint32_t rangeCount, const(VkImageSubresourceRange)* pRanges) {
5590         assert(_CmdClearDepthStencilImage !is null, "vkCmdClearDepthStencilImage was not loaded. Requested by VK_VERSION_1_0");
5591         return _CmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges);
5592     }
5593     /// ditto
5594     void CmdClearAttachments (VkCommandBuffer commandBuffer, uint32_t attachmentCount, const(VkClearAttachment)* pAttachments, uint32_t rectCount, const(VkClearRect)* pRects) {
5595         assert(_CmdClearAttachments !is null, "vkCmdClearAttachments was not loaded. Requested by VK_VERSION_1_0");
5596         return _CmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects);
5597     }
5598     /// ditto
5599     void CmdResolveImage (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const(VkImageResolve)* pRegions) {
5600         assert(_CmdResolveImage !is null, "vkCmdResolveImage was not loaded. Requested by VK_VERSION_1_0");
5601         return _CmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
5602     }
5603     /// ditto
5604     void CmdSetEvent (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) {
5605         assert(_CmdSetEvent !is null, "vkCmdSetEvent was not loaded. Requested by VK_VERSION_1_0");
5606         return _CmdSetEvent(commandBuffer, event, stageMask);
5607     }
5608     /// ditto
5609     void CmdResetEvent (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) {
5610         assert(_CmdResetEvent !is null, "vkCmdResetEvent was not loaded. Requested by VK_VERSION_1_0");
5611         return _CmdResetEvent(commandBuffer, event, stageMask);
5612     }
5613     /// ditto
5614     void CmdWaitEvents (VkCommandBuffer commandBuffer, uint32_t eventCount, const(VkEvent)* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const(VkMemoryBarrier)* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const(VkBufferMemoryBarrier)* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const(VkImageMemoryBarrier)* pImageMemoryBarriers) {
5615         assert(_CmdWaitEvents !is null, "vkCmdWaitEvents was not loaded. Requested by VK_VERSION_1_0");
5616         return _CmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
5617     }
5618     /// ditto
5619     void CmdPipelineBarrier (VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const(VkMemoryBarrier)* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const(VkBufferMemoryBarrier)* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const(VkImageMemoryBarrier)* pImageMemoryBarriers) {
5620         assert(_CmdPipelineBarrier !is null, "vkCmdPipelineBarrier was not loaded. Requested by VK_VERSION_1_0");
5621         return _CmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
5622     }
5623     /// ditto
5624     void CmdBeginQuery (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) {
5625         assert(_CmdBeginQuery !is null, "vkCmdBeginQuery was not loaded. Requested by VK_VERSION_1_0");
5626         return _CmdBeginQuery(commandBuffer, queryPool, query, flags);
5627     }
5628     /// ditto
5629     void CmdEndQuery (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query) {
5630         assert(_CmdEndQuery !is null, "vkCmdEndQuery was not loaded. Requested by VK_VERSION_1_0");
5631         return _CmdEndQuery(commandBuffer, queryPool, query);
5632     }
5633     /// ditto
5634     void CmdResetQueryPool (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) {
5635         assert(_CmdResetQueryPool !is null, "vkCmdResetQueryPool was not loaded. Requested by VK_VERSION_1_0");
5636         return _CmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount);
5637     }
5638     /// ditto
5639     void CmdWriteTimestamp (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query) {
5640         assert(_CmdWriteTimestamp !is null, "vkCmdWriteTimestamp was not loaded. Requested by VK_VERSION_1_0");
5641         return _CmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query);
5642     }
5643     /// ditto
5644     void CmdCopyQueryPoolResults (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) {
5645         assert(_CmdCopyQueryPoolResults !is null, "vkCmdCopyQueryPoolResults was not loaded. Requested by VK_VERSION_1_0");
5646         return _CmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags);
5647     }
5648     /// ditto
5649     void CmdPushConstants (VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const(void)* pValues) {
5650         assert(_CmdPushConstants !is null, "vkCmdPushConstants was not loaded. Requested by VK_VERSION_1_0");
5651         return _CmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues);
5652     }
5653     /// ditto
5654     void CmdBeginRenderPass (VkCommandBuffer commandBuffer, const(VkRenderPassBeginInfo)* pRenderPassBegin, VkSubpassContents contents) {
5655         assert(_CmdBeginRenderPass !is null, "vkCmdBeginRenderPass was not loaded. Requested by VK_VERSION_1_0");
5656         return _CmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents);
5657     }
5658     /// ditto
5659     void CmdNextSubpass (VkCommandBuffer commandBuffer, VkSubpassContents contents) {
5660         assert(_CmdNextSubpass !is null, "vkCmdNextSubpass was not loaded. Requested by VK_VERSION_1_0");
5661         return _CmdNextSubpass(commandBuffer, contents);
5662     }
5663     /// ditto
5664     void CmdEndRenderPass (VkCommandBuffer commandBuffer) {
5665         assert(_CmdEndRenderPass !is null, "vkCmdEndRenderPass was not loaded. Requested by VK_VERSION_1_0");
5666         return _CmdEndRenderPass(commandBuffer);
5667     }
5668     /// ditto
5669     void CmdExecuteCommands (VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const(VkCommandBuffer)* pCommandBuffers) {
5670         assert(_CmdExecuteCommands !is null, "vkCmdExecuteCommands was not loaded. Requested by VK_VERSION_1_0");
5671         return _CmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
5672     }
5673 
5674     /// Commands for VK_KHR_swapchain
5675     VkResult CreateSwapchainKHR (VkDevice device, const(VkSwapchainCreateInfoKHR)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkSwapchainKHR* pSwapchain) {
5676         assert(_CreateSwapchainKHR !is null, "vkCreateSwapchainKHR was not loaded. Requested by VK_KHR_swapchain");
5677         return _CreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
5678     }
5679     /// ditto
5680     void DestroySwapchainKHR (VkDevice device, VkSwapchainKHR swapchain, const(VkAllocationCallbacks)* pAllocator) {
5681         assert(_DestroySwapchainKHR !is null, "vkDestroySwapchainKHR was not loaded. Requested by VK_KHR_swapchain");
5682         return _DestroySwapchainKHR(device, swapchain, pAllocator);
5683     }
5684     /// ditto
5685     VkResult GetSwapchainImagesKHR (VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) {
5686         assert(_GetSwapchainImagesKHR !is null, "vkGetSwapchainImagesKHR was not loaded. Requested by VK_KHR_swapchain");
5687         return _GetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
5688     }
5689     /// ditto
5690     VkResult AcquireNextImageKHR (VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex) {
5691         assert(_AcquireNextImageKHR !is null, "vkAcquireNextImageKHR was not loaded. Requested by VK_KHR_swapchain");
5692         return _AcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
5693     }
5694     /// ditto
5695     VkResult QueuePresentKHR (VkQueue queue, const(VkPresentInfoKHR)* pPresentInfo) {
5696         assert(_QueuePresentKHR !is null, "vkQueuePresentKHR was not loaded. Requested by VK_KHR_swapchain");
5697         return _QueuePresentKHR(queue, pPresentInfo);
5698     }
5699 
5700     // fields for VK_VERSION_1_0
5701     private PFN_vkDestroyDevice                    _DestroyDevice;
5702     private PFN_vkGetDeviceQueue                   _GetDeviceQueue;
5703     private PFN_vkQueueSubmit                      _QueueSubmit;
5704     private PFN_vkQueueWaitIdle                    _QueueWaitIdle;
5705     private PFN_vkDeviceWaitIdle                   _DeviceWaitIdle;
5706     private PFN_vkAllocateMemory                   _AllocateMemory;
5707     private PFN_vkFreeMemory                       _FreeMemory;
5708     private PFN_vkMapMemory                        _MapMemory;
5709     private PFN_vkUnmapMemory                      _UnmapMemory;
5710     private PFN_vkFlushMappedMemoryRanges          _FlushMappedMemoryRanges;
5711     private PFN_vkInvalidateMappedMemoryRanges     _InvalidateMappedMemoryRanges;
5712     private PFN_vkGetDeviceMemoryCommitment        _GetDeviceMemoryCommitment;
5713     private PFN_vkBindBufferMemory                 _BindBufferMemory;
5714     private PFN_vkBindImageMemory                  _BindImageMemory;
5715     private PFN_vkGetBufferMemoryRequirements      _GetBufferMemoryRequirements;
5716     private PFN_vkGetImageMemoryRequirements       _GetImageMemoryRequirements;
5717     private PFN_vkGetImageSparseMemoryRequirements _GetImageSparseMemoryRequirements;
5718     private PFN_vkQueueBindSparse                  _QueueBindSparse;
5719     private PFN_vkCreateFence                      _CreateFence;
5720     private PFN_vkDestroyFence                     _DestroyFence;
5721     private PFN_vkResetFences                      _ResetFences;
5722     private PFN_vkGetFenceStatus                   _GetFenceStatus;
5723     private PFN_vkWaitForFences                    _WaitForFences;
5724     private PFN_vkCreateSemaphore                  _CreateSemaphore;
5725     private PFN_vkDestroySemaphore                 _DestroySemaphore;
5726     private PFN_vkCreateEvent                      _CreateEvent;
5727     private PFN_vkDestroyEvent                     _DestroyEvent;
5728     private PFN_vkGetEventStatus                   _GetEventStatus;
5729     private PFN_vkSetEvent                         _SetEvent;
5730     private PFN_vkResetEvent                       _ResetEvent;
5731     private PFN_vkCreateQueryPool                  _CreateQueryPool;
5732     private PFN_vkDestroyQueryPool                 _DestroyQueryPool;
5733     private PFN_vkGetQueryPoolResults              _GetQueryPoolResults;
5734     private PFN_vkCreateBuffer                     _CreateBuffer;
5735     private PFN_vkDestroyBuffer                    _DestroyBuffer;
5736     private PFN_vkCreateBufferView                 _CreateBufferView;
5737     private PFN_vkDestroyBufferView                _DestroyBufferView;
5738     private PFN_vkCreateImage                      _CreateImage;
5739     private PFN_vkDestroyImage                     _DestroyImage;
5740     private PFN_vkGetImageSubresourceLayout        _GetImageSubresourceLayout;
5741     private PFN_vkCreateImageView                  _CreateImageView;
5742     private PFN_vkDestroyImageView                 _DestroyImageView;
5743     private PFN_vkCreateShaderModule               _CreateShaderModule;
5744     private PFN_vkDestroyShaderModule              _DestroyShaderModule;
5745     private PFN_vkCreatePipelineCache              _CreatePipelineCache;
5746     private PFN_vkDestroyPipelineCache             _DestroyPipelineCache;
5747     private PFN_vkGetPipelineCacheData             _GetPipelineCacheData;
5748     private PFN_vkMergePipelineCaches              _MergePipelineCaches;
5749     private PFN_vkCreateGraphicsPipelines          _CreateGraphicsPipelines;
5750     private PFN_vkCreateComputePipelines           _CreateComputePipelines;
5751     private PFN_vkDestroyPipeline                  _DestroyPipeline;
5752     private PFN_vkCreatePipelineLayout             _CreatePipelineLayout;
5753     private PFN_vkDestroyPipelineLayout            _DestroyPipelineLayout;
5754     private PFN_vkCreateSampler                    _CreateSampler;
5755     private PFN_vkDestroySampler                   _DestroySampler;
5756     private PFN_vkCreateDescriptorSetLayout        _CreateDescriptorSetLayout;
5757     private PFN_vkDestroyDescriptorSetLayout       _DestroyDescriptorSetLayout;
5758     private PFN_vkCreateDescriptorPool             _CreateDescriptorPool;
5759     private PFN_vkDestroyDescriptorPool            _DestroyDescriptorPool;
5760     private PFN_vkResetDescriptorPool              _ResetDescriptorPool;
5761     private PFN_vkAllocateDescriptorSets           _AllocateDescriptorSets;
5762     private PFN_vkFreeDescriptorSets               _FreeDescriptorSets;
5763     private PFN_vkUpdateDescriptorSets             _UpdateDescriptorSets;
5764     private PFN_vkCreateFramebuffer                _CreateFramebuffer;
5765     private PFN_vkDestroyFramebuffer               _DestroyFramebuffer;
5766     private PFN_vkCreateRenderPass                 _CreateRenderPass;
5767     private PFN_vkDestroyRenderPass                _DestroyRenderPass;
5768     private PFN_vkGetRenderAreaGranularity         _GetRenderAreaGranularity;
5769     private PFN_vkCreateCommandPool                _CreateCommandPool;
5770     private PFN_vkDestroyCommandPool               _DestroyCommandPool;
5771     private PFN_vkResetCommandPool                 _ResetCommandPool;
5772     private PFN_vkAllocateCommandBuffers           _AllocateCommandBuffers;
5773     private PFN_vkFreeCommandBuffers               _FreeCommandBuffers;
5774     private PFN_vkBeginCommandBuffer               _BeginCommandBuffer;
5775     private PFN_vkEndCommandBuffer                 _EndCommandBuffer;
5776     private PFN_vkResetCommandBuffer               _ResetCommandBuffer;
5777     private PFN_vkCmdBindPipeline                  _CmdBindPipeline;
5778     private PFN_vkCmdSetViewport                   _CmdSetViewport;
5779     private PFN_vkCmdSetScissor                    _CmdSetScissor;
5780     private PFN_vkCmdSetLineWidth                  _CmdSetLineWidth;
5781     private PFN_vkCmdSetDepthBias                  _CmdSetDepthBias;
5782     private PFN_vkCmdSetBlendConstants             _CmdSetBlendConstants;
5783     private PFN_vkCmdSetDepthBounds                _CmdSetDepthBounds;
5784     private PFN_vkCmdSetStencilCompareMask         _CmdSetStencilCompareMask;
5785     private PFN_vkCmdSetStencilWriteMask           _CmdSetStencilWriteMask;
5786     private PFN_vkCmdSetStencilReference           _CmdSetStencilReference;
5787     private PFN_vkCmdBindDescriptorSets            _CmdBindDescriptorSets;
5788     private PFN_vkCmdBindIndexBuffer               _CmdBindIndexBuffer;
5789     private PFN_vkCmdBindVertexBuffers             _CmdBindVertexBuffers;
5790     private PFN_vkCmdDraw                          _CmdDraw;
5791     private PFN_vkCmdDrawIndexed                   _CmdDrawIndexed;
5792     private PFN_vkCmdDrawIndirect                  _CmdDrawIndirect;
5793     private PFN_vkCmdDrawIndexedIndirect           _CmdDrawIndexedIndirect;
5794     private PFN_vkCmdDispatch                      _CmdDispatch;
5795     private PFN_vkCmdDispatchIndirect              _CmdDispatchIndirect;
5796     private PFN_vkCmdCopyBuffer                    _CmdCopyBuffer;
5797     private PFN_vkCmdCopyImage                     _CmdCopyImage;
5798     private PFN_vkCmdBlitImage                     _CmdBlitImage;
5799     private PFN_vkCmdCopyBufferToImage             _CmdCopyBufferToImage;
5800     private PFN_vkCmdCopyImageToBuffer             _CmdCopyImageToBuffer;
5801     private PFN_vkCmdUpdateBuffer                  _CmdUpdateBuffer;
5802     private PFN_vkCmdFillBuffer                    _CmdFillBuffer;
5803     private PFN_vkCmdClearColorImage               _CmdClearColorImage;
5804     private PFN_vkCmdClearDepthStencilImage        _CmdClearDepthStencilImage;
5805     private PFN_vkCmdClearAttachments              _CmdClearAttachments;
5806     private PFN_vkCmdResolveImage                  _CmdResolveImage;
5807     private PFN_vkCmdSetEvent                      _CmdSetEvent;
5808     private PFN_vkCmdResetEvent                    _CmdResetEvent;
5809     private PFN_vkCmdWaitEvents                    _CmdWaitEvents;
5810     private PFN_vkCmdPipelineBarrier               _CmdPipelineBarrier;
5811     private PFN_vkCmdBeginQuery                    _CmdBeginQuery;
5812     private PFN_vkCmdEndQuery                      _CmdEndQuery;
5813     private PFN_vkCmdResetQueryPool                _CmdResetQueryPool;
5814     private PFN_vkCmdWriteTimestamp                _CmdWriteTimestamp;
5815     private PFN_vkCmdCopyQueryPoolResults          _CmdCopyQueryPoolResults;
5816     private PFN_vkCmdPushConstants                 _CmdPushConstants;
5817     private PFN_vkCmdBeginRenderPass               _CmdBeginRenderPass;
5818     private PFN_vkCmdNextSubpass                   _CmdNextSubpass;
5819     private PFN_vkCmdEndRenderPass                 _CmdEndRenderPass;
5820     private PFN_vkCmdExecuteCommands               _CmdExecuteCommands;
5821 
5822     // fields for VK_KHR_swapchain
5823     private PFN_vkCreateSwapchainKHR               _CreateSwapchainKHR;
5824     private PFN_vkDestroySwapchainKHR              _DestroySwapchainKHR;
5825     private PFN_vkGetSwapchainImagesKHR            _GetSwapchainImagesKHR;
5826     private PFN_vkAcquireNextImageKHR              _AcquireNextImageKHR;
5827     private PFN_vkQueuePresentKHR                  _QueuePresentKHR;
5828 }