1 /// Vulkan D bindings generated by vkdgen.py for Gfx-d
2 module gfx.bindings.vulkan.vk;
3 
4 version(linux) {
5     import wayland.native.client;
6     alias wl_surface = wl_proxy;
7 }
8 
9 // Global definitions
10 
11 enum VK_DEFINE_HANDLE(string name) =
12     "struct "~name~"_handle; alias "~name~" = "~name~"_handle*;";
13 
14 version(X86_64) {
15     enum VK_DEFINE_NON_DISPATCHABLE_HANDLE(string name) = VK_DEFINE_HANDLE!name;
16     enum VK_NULL_ND_HANDLE = null;
17 } else {
18     enum VK_DEFINE_NON_DISPATCHABLE_HANDLE(string name) = "alias "~name~" = ulong;";
19     enum VK_NULL_ND_HANDLE = 0;
20 }
21 
22 // Basic types definition
23 
24 alias uint8_t = ubyte;
25 alias uint16_t = ushort;
26 alias uint32_t = uint;
27 alias uint64_t = ulong;
28 alias int8_t = byte;
29 alias int16_t = short;
30 alias int32_t = int;
31 alias int64_t = long;
32 alias VkFlags = uint32_t;
33 alias VkInstanceCreateFlags = VkFlags;
34 alias VkBool32 = uint32_t;
35 alias VkFormatFeatureFlags = VkFlags;
36 alias VkImageUsageFlags = VkFlags;
37 alias VkImageCreateFlags = VkFlags;
38 alias VkSampleCountFlags = VkFlags;
39 alias VkDeviceSize = uint64_t;
40 alias VkQueueFlags = VkFlags;
41 alias VkMemoryPropertyFlags = VkFlags;
42 alias VkMemoryHeapFlags = VkFlags;
43 alias VkDeviceCreateFlags = VkFlags;
44 alias VkDeviceQueueCreateFlags = VkFlags;
45 alias VkPipelineStageFlags = VkFlags;
46 alias VkMemoryMapFlags = VkFlags;
47 alias VkImageAspectFlags = VkFlags;
48 alias VkSparseImageFormatFlags = VkFlags;
49 alias VkSparseMemoryBindFlags = VkFlags;
50 alias VkFenceCreateFlags = VkFlags;
51 alias VkSemaphoreCreateFlags = VkFlags;
52 alias VkEventCreateFlags = VkFlags;
53 alias VkQueryPoolCreateFlags = VkFlags;
54 alias VkQueryPipelineStatisticFlags = VkFlags;
55 alias VkQueryResultFlags = VkFlags;
56 alias VkBufferCreateFlags = VkFlags;
57 alias VkBufferUsageFlags = VkFlags;
58 alias VkBufferViewCreateFlags = VkFlags;
59 alias VkImageViewCreateFlags = VkFlags;
60 alias VkShaderModuleCreateFlags = VkFlags;
61 alias VkPipelineCacheCreateFlags = VkFlags;
62 alias VkPipelineCreateFlags = VkFlags;
63 alias VkPipelineShaderStageCreateFlags = VkFlags;
64 alias VkPipelineVertexInputStateCreateFlags = VkFlags;
65 alias VkPipelineInputAssemblyStateCreateFlags = VkFlags;
66 alias VkPipelineTessellationStateCreateFlags = VkFlags;
67 alias VkPipelineViewportStateCreateFlags = VkFlags;
68 alias VkPipelineRasterizationStateCreateFlags = VkFlags;
69 alias VkCullModeFlags = VkFlags;
70 alias VkPipelineMultisampleStateCreateFlags = VkFlags;
71 alias VkSampleMask = uint32_t;
72 alias VkPipelineDepthStencilStateCreateFlags = VkFlags;
73 alias VkPipelineColorBlendStateCreateFlags = VkFlags;
74 alias VkColorComponentFlags = VkFlags;
75 alias VkPipelineDynamicStateCreateFlags = VkFlags;
76 alias VkPipelineLayoutCreateFlags = VkFlags;
77 alias VkShaderStageFlags = VkFlags;
78 alias VkSamplerCreateFlags = VkFlags;
79 alias VkDescriptorSetLayoutCreateFlags = VkFlags;
80 alias VkDescriptorPoolCreateFlags = VkFlags;
81 alias VkDescriptorPoolResetFlags = VkFlags;
82 alias VkFramebufferCreateFlags = VkFlags;
83 alias VkRenderPassCreateFlags = VkFlags;
84 alias VkAttachmentDescriptionFlags = VkFlags;
85 alias VkSubpassDescriptionFlags = VkFlags;
86 alias VkAccessFlags = VkFlags;
87 alias VkDependencyFlags = VkFlags;
88 alias VkCommandPoolCreateFlags = VkFlags;
89 alias VkCommandPoolResetFlags = VkFlags;
90 alias VkCommandBufferUsageFlags = VkFlags;
91 alias VkQueryControlFlags = VkFlags;
92 alias VkCommandBufferResetFlags = VkFlags;
93 alias VkStencilFaceFlags = VkFlags;
94 alias VkSurfaceTransformFlagsKHR = VkFlags;
95 alias VkCompositeAlphaFlagsKHR = VkFlags;
96 alias VkSwapchainCreateFlagsKHR = VkFlags;
97 alias VkDisplayPlaneAlphaFlagsKHR = VkFlags;
98 alias VkDisplayModeCreateFlagsKHR = VkFlags;
99 alias VkDisplaySurfaceCreateFlagsKHR = VkFlags;
100 alias VkWaylandSurfaceCreateFlagsKHR = VkFlags;
101 
102 // Constants
103 
104 enum VK_LOD_CLAMP_NONE = 1000.0f;
105 enum VK_REMAINING_MIP_LEVELS = (~0u);
106 enum VK_REMAINING_ARRAY_LAYERS = (~0u);
107 enum VK_WHOLE_SIZE = (~0uL);
108 enum VK_ATTACHMENT_UNUSED = (~0u);
109 enum VK_TRUE = 1;
110 enum VK_FALSE = 0;
111 enum VK_QUEUE_FAMILY_IGNORED = (~0u);
112 enum VK_SUBPASS_EXTERNAL = (~0u);
113 enum VK_MAX_PHYSICAL_DEVICE_NAME_SIZE = 256;
114 enum VK_UUID_SIZE = 16;
115 enum VK_MAX_MEMORY_TYPES = 32;
116 enum VK_MAX_MEMORY_HEAPS = 16;
117 enum VK_MAX_EXTENSION_NAME_SIZE = 256;
118 enum VK_MAX_DESCRIPTION_SIZE = 256;
119 enum VK_KHR_SURFACE_SPEC_VERSION = 25;
120 enum VK_KHR_SURFACE_EXTENSION_NAME = "VK_KHR_surface";
121 enum VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR;
122 enum VK_KHR_SWAPCHAIN_SPEC_VERSION = 68;
123 enum VK_KHR_SWAPCHAIN_EXTENSION_NAME = "VK_KHR_swapchain";
124 enum VK_KHR_DISPLAY_SPEC_VERSION = 21;
125 enum VK_KHR_DISPLAY_EXTENSION_NAME = "VK_KHR_display";
126 enum VK_KHR_WAYLAND_SURFACE_SPEC_VERSION = 6;
127 enum VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME = "VK_KHR_wayland_surface";
128 
129 // Handles
130 
131 mixin(VK_DEFINE_HANDLE!"VkInstance");
132 mixin(VK_DEFINE_HANDLE!"VkPhysicalDevice");
133 mixin(VK_DEFINE_HANDLE!"VkDevice");
134 mixin(VK_DEFINE_HANDLE!"VkQueue");
135 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkSemaphore");
136 mixin(VK_DEFINE_HANDLE!"VkCommandBuffer");
137 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkFence");
138 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkDeviceMemory");
139 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkBuffer");
140 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkImage");
141 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkEvent");
142 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkQueryPool");
143 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkBufferView");
144 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkImageView");
145 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkShaderModule");
146 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkPipelineCache");
147 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkPipelineLayout");
148 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkRenderPass");
149 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkPipeline");
150 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkDescriptorSetLayout");
151 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkSampler");
152 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkDescriptorPool");
153 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkDescriptorSet");
154 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkFramebuffer");
155 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkCommandPool");
156 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkSurfaceKHR");
157 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkSwapchainKHR");
158 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkDisplayKHR");
159 mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkDisplayModeKHR");
160 
161 // Fonction pointers
162 
163 extern(C) {
164     alias PFN_vkAllocationFunction = void* function(void* pUserData, size_t size, size_t alignment, VkSystemAllocationScope allocationScope);
165     alias PFN_vkReallocationFunction = void* function(void* pUserData, void* pOriginal, size_t size, size_t alignment, VkSystemAllocationScope allocationScope);
166     alias PFN_vkFreeFunction = void function(void* pUserData, void* pMemory);
167     alias PFN_vkInternalAllocationNotification = void function(void* pUserData, size_t size, VkInternalAllocationType allocationType, VkSystemAllocationScope allocationScope);
168     alias PFN_vkInternalFreeNotification = void function(void* pUserData, size_t size, VkInternalAllocationType allocationType, VkSystemAllocationScope allocationScope);
169     alias PFN_vkVoidFunction = void function();
170 }
171 
172 // Enumerations
173 
174 enum VkPipelineCacheHeaderVersion {
175     VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
176 }
177 enum VK_PIPELINE_CACHE_HEADER_VERSION_ONE = VkPipelineCacheHeaderVersion.VK_PIPELINE_CACHE_HEADER_VERSION_ONE;
178 
179 enum VkResult {
180     VK_SUCCESS                           = 0,
181     VK_NOT_READY                         = 1,
182     VK_TIMEOUT                           = 2,
183     VK_EVENT_SET                         = 3,
184     VK_EVENT_RESET                       = 4,
185     VK_INCOMPLETE                        = 5,
186     VK_ERROR_OUT_OF_HOST_MEMORY          = -1,
187     VK_ERROR_OUT_OF_DEVICE_MEMORY        = -2,
188     VK_ERROR_INITIALIZATION_FAILED       = -3,
189     VK_ERROR_DEVICE_LOST                 = -4,
190     VK_ERROR_MEMORY_MAP_FAILED           = -5,
191     VK_ERROR_LAYER_NOT_PRESENT           = -6,
192     VK_ERROR_EXTENSION_NOT_PRESENT       = -7,
193     VK_ERROR_FEATURE_NOT_PRESENT         = -8,
194     VK_ERROR_INCOMPATIBLE_DRIVER         = -9,
195     VK_ERROR_TOO_MANY_OBJECTS            = -10,
196     VK_ERROR_FORMAT_NOT_SUPPORTED        = -11,
197     VK_ERROR_FRAGMENTED_POOL             = -12,
198     VK_ERROR_SURFACE_LOST_KHR            = -1000000000,
199     VK_ERROR_NATIVE_WINDOW_IN_USE_KHR    = -1000000001,
200     VK_SUBOPTIMAL_KHR                    = 1000001003,
201     VK_ERROR_OUT_OF_DATE_KHR             = -1000001004,
202     VK_ERROR_INCOMPATIBLE_DISPLAY_KHR    = -1000003001,
203     VK_ERROR_VALIDATION_FAILED_EXT       = -1000011001,
204     VK_ERROR_INVALID_SHADER_NV           = -1000012000,
205     VK_ERROR_OUT_OF_POOL_MEMORY_KHR      = -1000069000,
206     VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003,
207     VK_ERROR_NOT_PERMITTED_EXT           = -1000174001,
208 }
209 enum VK_SUCCESS                           = VkResult.VK_SUCCESS;
210 enum VK_NOT_READY                         = VkResult.VK_NOT_READY;
211 enum VK_TIMEOUT                           = VkResult.VK_TIMEOUT;
212 enum VK_EVENT_SET                         = VkResult.VK_EVENT_SET;
213 enum VK_EVENT_RESET                       = VkResult.VK_EVENT_RESET;
214 enum VK_INCOMPLETE                        = VkResult.VK_INCOMPLETE;
215 enum VK_ERROR_OUT_OF_HOST_MEMORY          = VkResult.VK_ERROR_OUT_OF_HOST_MEMORY;
216 enum VK_ERROR_OUT_OF_DEVICE_MEMORY        = VkResult.VK_ERROR_OUT_OF_DEVICE_MEMORY;
217 enum VK_ERROR_INITIALIZATION_FAILED       = VkResult.VK_ERROR_INITIALIZATION_FAILED;
218 enum VK_ERROR_DEVICE_LOST                 = VkResult.VK_ERROR_DEVICE_LOST;
219 enum VK_ERROR_MEMORY_MAP_FAILED           = VkResult.VK_ERROR_MEMORY_MAP_FAILED;
220 enum VK_ERROR_LAYER_NOT_PRESENT           = VkResult.VK_ERROR_LAYER_NOT_PRESENT;
221 enum VK_ERROR_EXTENSION_NOT_PRESENT       = VkResult.VK_ERROR_EXTENSION_NOT_PRESENT;
222 enum VK_ERROR_FEATURE_NOT_PRESENT         = VkResult.VK_ERROR_FEATURE_NOT_PRESENT;
223 enum VK_ERROR_INCOMPATIBLE_DRIVER         = VkResult.VK_ERROR_INCOMPATIBLE_DRIVER;
224 enum VK_ERROR_TOO_MANY_OBJECTS            = VkResult.VK_ERROR_TOO_MANY_OBJECTS;
225 enum VK_ERROR_FORMAT_NOT_SUPPORTED        = VkResult.VK_ERROR_FORMAT_NOT_SUPPORTED;
226 enum VK_ERROR_FRAGMENTED_POOL             = VkResult.VK_ERROR_FRAGMENTED_POOL;
227 enum VK_ERROR_SURFACE_LOST_KHR            = VkResult.VK_ERROR_SURFACE_LOST_KHR;
228 enum VK_ERROR_NATIVE_WINDOW_IN_USE_KHR    = VkResult.VK_ERROR_NATIVE_WINDOW_IN_USE_KHR;
229 enum VK_SUBOPTIMAL_KHR                    = VkResult.VK_SUBOPTIMAL_KHR;
230 enum VK_ERROR_OUT_OF_DATE_KHR             = VkResult.VK_ERROR_OUT_OF_DATE_KHR;
231 enum VK_ERROR_INCOMPATIBLE_DISPLAY_KHR    = VkResult.VK_ERROR_INCOMPATIBLE_DISPLAY_KHR;
232 enum VK_ERROR_VALIDATION_FAILED_EXT       = VkResult.VK_ERROR_VALIDATION_FAILED_EXT;
233 enum VK_ERROR_INVALID_SHADER_NV           = VkResult.VK_ERROR_INVALID_SHADER_NV;
234 enum VK_ERROR_OUT_OF_POOL_MEMORY_KHR      = VkResult.VK_ERROR_OUT_OF_POOL_MEMORY_KHR;
235 enum VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VkResult.VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR;
236 enum VK_ERROR_NOT_PERMITTED_EXT           = VkResult.VK_ERROR_NOT_PERMITTED_EXT;
237 
238 enum VkStructureType {
239     VK_STRUCTURE_TYPE_APPLICATION_INFO                                             = 0,
240     VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO                                         = 1,
241     VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO                                     = 2,
242     VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO                                           = 3,
243     VK_STRUCTURE_TYPE_SUBMIT_INFO                                                  = 4,
244     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO                                         = 5,
245     VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE                                          = 6,
246     VK_STRUCTURE_TYPE_BIND_SPARSE_INFO                                             = 7,
247     VK_STRUCTURE_TYPE_FENCE_CREATE_INFO                                            = 8,
248     VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO                                        = 9,
249     VK_STRUCTURE_TYPE_EVENT_CREATE_INFO                                            = 10,
250     VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO                                       = 11,
251     VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO                                           = 12,
252     VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO                                      = 13,
253     VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO                                            = 14,
254     VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO                                       = 15,
255     VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO                                    = 16,
256     VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO                                   = 17,
257     VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO                            = 18,
258     VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO                      = 19,
259     VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO                    = 20,
260     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO                      = 21,
261     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO                          = 22,
262     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO                     = 23,
263     VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO                       = 24,
264     VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO                     = 25,
265     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO                       = 26,
266     VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO                           = 27,
267     VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO                                = 28,
268     VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO                                 = 29,
269     VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO                                  = 30,
270     VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO                                          = 31,
271     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO                            = 32,
272     VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO                                  = 33,
273     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO                                 = 34,
274     VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET                                         = 35,
275     VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET                                          = 36,
276     VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO                                      = 37,
277     VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO                                      = 38,
278     VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO                                     = 39,
279     VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO                                 = 40,
280     VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO                              = 41,
281     VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO                                    = 42,
282     VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO                                       = 43,
283     VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER                                        = 44,
284     VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER                                         = 45,
285     VK_STRUCTURE_TYPE_MEMORY_BARRIER                                               = 46,
286     VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO                                  = 47,
287     VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO                                    = 48,
288     VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR                                    = 1000001000,
289     VK_STRUCTURE_TYPE_PRESENT_INFO_KHR                                             = 1000001001,
290     VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR                                 = 1000002000,
291     VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR                              = 1000002001,
292     VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR                                     = 1000003000,
293     VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR                                 = 1000004000,
294     VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR                                  = 1000005000,
295     VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR                              = 1000006000,
296     VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR                                  = 1000007000,
297     VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR                              = 1000008000,
298     VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR                                = 1000009000,
299     VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID                                        = 1000010000,
300     VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT                        = 1000011000,
301     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD         = 1000018000,
302     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT                            = 1000022000,
303     VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT                             = 1000022001,
304     VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT                                 = 1000022002,
305     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV                    = 1000026000,
306     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV                   = 1000026001,
307     VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV                 = 1000026002,
308     VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD                     = 1000041000,
309     VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHX                        = 1000053000,
310     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX                       = 1000053001,
311     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX                     = 1000053002,
312     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV                         = 1000056000,
313     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV                               = 1000056001,
314     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV                           = 1000057000,
315     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV                           = 1000057001,
316     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV                    = 1000058000,
317     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR                               = 1000059000,
318     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR                             = 1000059001,
319     VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR                                      = 1000059002,
320     VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR                                = 1000059003,
321     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR                      = 1000059004,
322     VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR                                = 1000059005,
323     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR                      = 1000059006,
324     VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR                         = 1000059007,
325     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR               = 1000059008,
326     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHX                               = 1000060000,
327     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHX                      = 1000060003,
328     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHX                   = 1000060004,
329     VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHX                                 = 1000060005,
330     VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHX                            = 1000060006,
331     VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX                                  = 1000060010,
332     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHX                     = 1000060013,
333     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHX                      = 1000060014,
334     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX                        = 1000060007,
335     VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHX                              = 1000060008,
336     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHX                         = 1000060009,
337     VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHX                                = 1000060011,
338     VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHX                       = 1000060012,
339     VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT                                         = 1000061000,
340     VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN                                    = 1000062000,
341     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX                         = 1000070000,
342     VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX                          = 1000070001,
343     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR               = 1000071000,
344     VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR                         = 1000071001,
345     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR                     = 1000071002,
346     VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR                               = 1000071003,
347     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR                            = 1000071004,
348     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR                       = 1000072000,
349     VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR                        = 1000072001,
350     VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR                              = 1000072002,
351     VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR                          = 1000073000,
352     VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR                          = 1000073001,
353     VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR                           = 1000073002,
354     VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR                             = 1000073003,
355     VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR                                    = 1000074000,
356     VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR                                     = 1000074001,
357     VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR                                       = 1000074002,
358     VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR                   = 1000075000,
359     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR                  = 1000076000,
360     VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR                            = 1000076001,
361     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR                             = 1000077000,
362     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR                       = 1000078000,
363     VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR                       = 1000078001,
364     VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR                                  = 1000078002,
365     VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR                          = 1000078003,
366     VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR                                 = 1000079000,
367     VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR                                    = 1000079001,
368     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR               = 1000080000,
369     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR                   = 1000083000,
370     VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR                                          = 1000084000,
371     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR                   = 1000085000,
372     VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX                                 = 1000086000,
373     VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX                     = 1000086001,
374     VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX                                = 1000086002,
375     VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX                      = 1000086003,
376     VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX                         = 1000086004,
377     VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX                       = 1000086005,
378     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV             = 1000087000,
379     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT                                   = 1000090000,
380     VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT                                       = 1000091000,
381     VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT                                        = 1000091001,
382     VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT                                       = 1000091002,
383     VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT                            = 1000091003,
384     VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE                                    = 1000092000,
385     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
386     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV               = 1000098000,
387     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT             = 1000099000,
388     VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT             = 1000099001,
389     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT    = 1000101000,
390     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT    = 1000101001,
391     VK_STRUCTURE_TYPE_HDR_METADATA_EXT                                             = 1000105000,
392     VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR                      = 1000111000,
393     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR                      = 1000112000,
394     VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR                                = 1000112001,
395     VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR                                 = 1000113000,
396     VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR                           = 1000114000,
397     VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR                           = 1000114001,
398     VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR                              = 1000114002,
399     VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR                                     = 1000115000,
400     VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR                                        = 1000115001,
401     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR                = 1000117000,
402     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR          = 1000117001,
403     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR                             = 1000117002,
404     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR    = 1000117003,
405     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR                           = 1000119000,
406     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR                                   = 1000119001,
407     VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR                                         = 1000119002,
408     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR                = 1000120000,
409     VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK                                  = 1000122000,
410     VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK                                = 1000123000,
411     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR                            = 1000127000,
412     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR                           = 1000127001,
413     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT         = 1000130000,
414     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT                       = 1000130001,
415     VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT                                    = 1000143000,
416     VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT                  = 1000143001,
417     VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT              = 1000143002,
418     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT              = 1000143003,
419     VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT                                   = 1000143004,
420     VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR                        = 1000146000,
421     VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR                         = 1000146001,
422     VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR                  = 1000146002,
423     VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR                                    = 1000146003,
424     VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR                       = 1000146004,
425     VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR                            = 1000147000,
426     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT        = 1000148000,
427     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT      = 1000148001,
428     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT          = 1000148002,
429     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV              = 1000149000,
430     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV            = 1000152000,
431     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR                     = 1000156000,
432     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR                            = 1000156001,
433     VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR                             = 1000156002,
434     VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR                     = 1000156003,
435     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR        = 1000156004,
436     VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR         = 1000156005,
437     VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR                                  = 1000157000,
438     VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR                                   = 1000157001,
439     VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT                             = 1000160000,
440     VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT               = 1000160001,
441     VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT                 = 1000174000,
442     VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT                          = 1000178000,
443     VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT                           = 1000178001,
444     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT          = 1000178002,
445 }
446 enum VK_STRUCTURE_TYPE_APPLICATION_INFO                                             = VkStructureType.VK_STRUCTURE_TYPE_APPLICATION_INFO;
447 enum VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO                                         = VkStructureType.VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
448 enum VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO                                     = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
449 enum VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO                                           = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
450 enum VK_STRUCTURE_TYPE_SUBMIT_INFO                                                  = VkStructureType.VK_STRUCTURE_TYPE_SUBMIT_INFO;
451 enum VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO                                         = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
452 enum VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE                                          = VkStructureType.VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE;
453 enum VK_STRUCTURE_TYPE_BIND_SPARSE_INFO                                             = VkStructureType.VK_STRUCTURE_TYPE_BIND_SPARSE_INFO;
454 enum VK_STRUCTURE_TYPE_FENCE_CREATE_INFO                                            = VkStructureType.VK_STRUCTURE_TYPE_FENCE_CREATE_INFO;
455 enum VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO                                        = VkStructureType.VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO;
456 enum VK_STRUCTURE_TYPE_EVENT_CREATE_INFO                                            = VkStructureType.VK_STRUCTURE_TYPE_EVENT_CREATE_INFO;
457 enum VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO                                       = VkStructureType.VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO;
458 enum VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO                                           = VkStructureType.VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
459 enum VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO                                      = VkStructureType.VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO;
460 enum VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO                                            = VkStructureType.VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
461 enum VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO                                       = VkStructureType.VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
462 enum VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO                                    = VkStructureType.VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
463 enum VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO                                   = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO;
464 enum VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO                            = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
465 enum VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO                      = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO;
466 enum VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO                    = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO;
467 enum VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO                      = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO;
468 enum VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO                          = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO;
469 enum VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO                     = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO;
470 enum VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO                       = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO;
471 enum VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO                     = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO;
472 enum VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO                       = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO;
473 enum VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO                           = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO;
474 enum VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO                                = VkStructureType.VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;
475 enum VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO                                 = VkStructureType.VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO;
476 enum VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO                                  = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
477 enum VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO                                          = VkStructureType.VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
478 enum VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO                            = VkStructureType.VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
479 enum VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO                                  = VkStructureType.VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
480 enum VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO                                 = VkStructureType.VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
481 enum VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET                                         = VkStructureType.VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
482 enum VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET                                          = VkStructureType.VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET;
483 enum VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO                                      = VkStructureType.VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO;
484 enum VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO                                      = VkStructureType.VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO;
485 enum VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO                                     = VkStructureType.VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO;
486 enum VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO                                 = VkStructureType.VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
487 enum VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO                              = VkStructureType.VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO;
488 enum VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO                                    = VkStructureType.VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
489 enum VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO                                       = VkStructureType.VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
490 enum VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER                                        = VkStructureType.VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER;
491 enum VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER                                         = VkStructureType.VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
492 enum VK_STRUCTURE_TYPE_MEMORY_BARRIER                                               = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_BARRIER;
493 enum VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO                                  = VkStructureType.VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO;
494 enum VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO                                    = VkStructureType.VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO;
495 enum VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR                                    = VkStructureType.VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR;
496 enum VK_STRUCTURE_TYPE_PRESENT_INFO_KHR                                             = VkStructureType.VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
497 enum VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR                                 = VkStructureType.VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR;
498 enum VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR                              = VkStructureType.VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR;
499 enum VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR                                     = VkStructureType.VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR;
500 enum VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR                                 = VkStructureType.VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR;
501 enum VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR                                  = VkStructureType.VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR;
502 enum VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR                              = VkStructureType.VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR;
503 enum VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR                                  = VkStructureType.VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR;
504 enum VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR                              = VkStructureType.VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR;
505 enum VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR                                = VkStructureType.VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR;
506 enum VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID                                        = VkStructureType.VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID;
507 enum VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT                        = VkStructureType.VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
508 enum VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD         = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD;
509 enum VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT                            = VkStructureType.VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT;
510 enum VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT                             = VkStructureType.VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT;
511 enum VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT                                 = VkStructureType.VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT;
512 enum VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV                    = VkStructureType.VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV;
513 enum VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV                   = VkStructureType.VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV;
514 enum VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV                 = VkStructureType.VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV;
515 enum VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD                     = VkStructureType.VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD;
516 enum VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHX                        = VkStructureType.VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHX;
517 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX                       = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX;
518 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX                     = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX;
519 enum VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV                         = VkStructureType.VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV;
520 enum VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV                               = VkStructureType.VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV;
521 enum VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV                           = VkStructureType.VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV;
522 enum VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV                           = VkStructureType.VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV;
523 enum VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV                    = VkStructureType.VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV;
524 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR                               = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR;
525 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR                             = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR;
526 enum VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR                                      = VkStructureType.VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR;
527 enum VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR                                = VkStructureType.VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR;
528 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR                      = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR;
529 enum VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR                                = VkStructureType.VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR;
530 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR                      = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR;
531 enum VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR                         = VkStructureType.VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR;
532 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR               = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR;
533 enum VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHX                               = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHX;
534 enum VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHX                      = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHX;
535 enum VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHX                   = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHX;
536 enum VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHX                                 = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHX;
537 enum VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHX                            = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHX;
538 enum VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX                                  = VkStructureType.VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX;
539 enum VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHX                     = VkStructureType.VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHX;
540 enum VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHX                      = VkStructureType.VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHX;
541 enum VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX                        = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX;
542 enum VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHX                              = VkStructureType.VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHX;
543 enum VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHX                         = VkStructureType.VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHX;
544 enum VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHX                                = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHX;
545 enum VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHX                       = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHX;
546 enum VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT                                         = VkStructureType.VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT;
547 enum VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN                                    = VkStructureType.VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN;
548 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX                         = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX;
549 enum VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX                          = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX;
550 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR               = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR;
551 enum VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR                         = VkStructureType.VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR;
552 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR                     = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR;
553 enum VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR                               = VkStructureType.VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR;
554 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR                            = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR;
555 enum VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR                       = VkStructureType.VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR;
556 enum VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR                        = VkStructureType.VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR;
557 enum VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR                              = VkStructureType.VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR;
558 enum VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR                          = VkStructureType.VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
559 enum VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR                          = VkStructureType.VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR;
560 enum VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR                           = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR;
561 enum VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR                             = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR;
562 enum VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR                                    = VkStructureType.VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR;
563 enum VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR                                     = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR;
564 enum VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR                                       = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR;
565 enum VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR                   = VkStructureType.VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR;
566 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR                  = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR;
567 enum VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR                            = VkStructureType.VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR;
568 enum VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR                             = VkStructureType.VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR;
569 enum VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR                       = VkStructureType.VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
570 enum VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR                       = VkStructureType.VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR;
571 enum VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR                                  = VkStructureType.VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR;
572 enum VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR                          = VkStructureType.VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR;
573 enum VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR                                 = VkStructureType.VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR;
574 enum VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR                                    = VkStructureType.VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR;
575 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR               = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR;
576 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR                   = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR;
577 enum VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR                                          = VkStructureType.VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR;
578 enum VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR                   = VkStructureType.VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR;
579 enum VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX                                 = VkStructureType.VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX;
580 enum VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX                     = VkStructureType.VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX;
581 enum VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX                                = VkStructureType.VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX;
582 enum VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX                      = VkStructureType.VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX;
583 enum VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX                         = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX;
584 enum VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX                       = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX;
585 enum VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV             = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV;
586 enum VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT                                   = VkStructureType.VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT;
587 enum VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT                                       = VkStructureType.VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT;
588 enum VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT                                        = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT;
589 enum VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT                                       = VkStructureType.VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT;
590 enum VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT                            = VkStructureType.VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT;
591 enum VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE                                    = VkStructureType.VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE;
592 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX;
593 enum VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV               = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV;
594 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT             = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT;
595 enum VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT             = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT;
596 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT    = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT;
597 enum VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT    = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT;
598 enum VK_STRUCTURE_TYPE_HDR_METADATA_EXT                                             = VkStructureType.VK_STRUCTURE_TYPE_HDR_METADATA_EXT;
599 enum VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR                      = VkStructureType.VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR;
600 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR                      = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR;
601 enum VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR                                = VkStructureType.VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR;
602 enum VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR                                 = VkStructureType.VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR;
603 enum VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR                           = VkStructureType.VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR;
604 enum VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR                           = VkStructureType.VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR;
605 enum VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR                              = VkStructureType.VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR;
606 enum VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR                                     = VkStructureType.VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR;
607 enum VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR                                        = VkStructureType.VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR;
608 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR                = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR;
609 enum VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR          = VkStructureType.VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR;
610 enum VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR                             = VkStructureType.VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR;
611 enum VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR    = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR;
612 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR                           = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR;
613 enum VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR                                   = VkStructureType.VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR;
614 enum VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR                                         = VkStructureType.VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR;
615 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR                = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR;
616 enum VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK                                  = VkStructureType.VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK;
617 enum VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK                                = VkStructureType.VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK;
618 enum VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR                            = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR;
619 enum VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR                           = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR;
620 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT         = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT;
621 enum VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT                       = VkStructureType.VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT;
622 enum VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT                                    = VkStructureType.VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT;
623 enum VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT                  = VkStructureType.VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT;
624 enum VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT              = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT;
625 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT              = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT;
626 enum VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT                                   = VkStructureType.VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT;
627 enum VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR                        = VkStructureType.VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR;
628 enum VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR                         = VkStructureType.VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR;
629 enum VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR                  = VkStructureType.VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR;
630 enum VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR                                    = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR;
631 enum VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR                       = VkStructureType.VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR;
632 enum VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR                            = VkStructureType.VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR;
633 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT        = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT;
634 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT      = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT;
635 enum VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT          = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT;
636 enum VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV              = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV;
637 enum VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV            = VkStructureType.VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV;
638 enum VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR                     = VkStructureType.VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR;
639 enum VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR                            = VkStructureType.VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR;
640 enum VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR                             = VkStructureType.VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR;
641 enum VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR                     = VkStructureType.VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR;
642 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR        = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR;
643 enum VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR         = VkStructureType.VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR;
644 enum VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR                                  = VkStructureType.VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR;
645 enum VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR                                   = VkStructureType.VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR;
646 enum VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT                             = VkStructureType.VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT;
647 enum VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT               = VkStructureType.VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT;
648 enum VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT                 = VkStructureType.VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT;
649 enum VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT                          = VkStructureType.VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT;
650 enum VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT                           = VkStructureType.VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT;
651 enum VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT          = VkStructureType.VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT;
652 
653 enum VkSystemAllocationScope {
654     VK_SYSTEM_ALLOCATION_SCOPE_COMMAND  = 0,
655     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT   = 1,
656     VK_SYSTEM_ALLOCATION_SCOPE_CACHE    = 2,
657     VK_SYSTEM_ALLOCATION_SCOPE_DEVICE   = 3,
658     VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
659 }
660 enum VK_SYSTEM_ALLOCATION_SCOPE_COMMAND  = VkSystemAllocationScope.VK_SYSTEM_ALLOCATION_SCOPE_COMMAND;
661 enum VK_SYSTEM_ALLOCATION_SCOPE_OBJECT   = VkSystemAllocationScope.VK_SYSTEM_ALLOCATION_SCOPE_OBJECT;
662 enum VK_SYSTEM_ALLOCATION_SCOPE_CACHE    = VkSystemAllocationScope.VK_SYSTEM_ALLOCATION_SCOPE_CACHE;
663 enum VK_SYSTEM_ALLOCATION_SCOPE_DEVICE   = VkSystemAllocationScope.VK_SYSTEM_ALLOCATION_SCOPE_DEVICE;
664 enum VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = VkSystemAllocationScope.VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE;
665 
666 enum VkInternalAllocationType {
667     VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
668 }
669 enum VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = VkInternalAllocationType.VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE;
670 
671 enum VkFormat {
672     VK_FORMAT_UNDEFINED                                      = 0,
673     VK_FORMAT_R4G4_UNORM_PACK8                               = 1,
674     VK_FORMAT_R4G4B4A4_UNORM_PACK16                          = 2,
675     VK_FORMAT_B4G4R4A4_UNORM_PACK16                          = 3,
676     VK_FORMAT_R5G6B5_UNORM_PACK16                            = 4,
677     VK_FORMAT_B5G6R5_UNORM_PACK16                            = 5,
678     VK_FORMAT_R5G5B5A1_UNORM_PACK16                          = 6,
679     VK_FORMAT_B5G5R5A1_UNORM_PACK16                          = 7,
680     VK_FORMAT_A1R5G5B5_UNORM_PACK16                          = 8,
681     VK_FORMAT_R8_UNORM                                       = 9,
682     VK_FORMAT_R8_SNORM                                       = 10,
683     VK_FORMAT_R8_USCALED                                     = 11,
684     VK_FORMAT_R8_SSCALED                                     = 12,
685     VK_FORMAT_R8_UINT                                        = 13,
686     VK_FORMAT_R8_SINT                                        = 14,
687     VK_FORMAT_R8_SRGB                                        = 15,
688     VK_FORMAT_R8G8_UNORM                                     = 16,
689     VK_FORMAT_R8G8_SNORM                                     = 17,
690     VK_FORMAT_R8G8_USCALED                                   = 18,
691     VK_FORMAT_R8G8_SSCALED                                   = 19,
692     VK_FORMAT_R8G8_UINT                                      = 20,
693     VK_FORMAT_R8G8_SINT                                      = 21,
694     VK_FORMAT_R8G8_SRGB                                      = 22,
695     VK_FORMAT_R8G8B8_UNORM                                   = 23,
696     VK_FORMAT_R8G8B8_SNORM                                   = 24,
697     VK_FORMAT_R8G8B8_USCALED                                 = 25,
698     VK_FORMAT_R8G8B8_SSCALED                                 = 26,
699     VK_FORMAT_R8G8B8_UINT                                    = 27,
700     VK_FORMAT_R8G8B8_SINT                                    = 28,
701     VK_FORMAT_R8G8B8_SRGB                                    = 29,
702     VK_FORMAT_B8G8R8_UNORM                                   = 30,
703     VK_FORMAT_B8G8R8_SNORM                                   = 31,
704     VK_FORMAT_B8G8R8_USCALED                                 = 32,
705     VK_FORMAT_B8G8R8_SSCALED                                 = 33,
706     VK_FORMAT_B8G8R8_UINT                                    = 34,
707     VK_FORMAT_B8G8R8_SINT                                    = 35,
708     VK_FORMAT_B8G8R8_SRGB                                    = 36,
709     VK_FORMAT_R8G8B8A8_UNORM                                 = 37,
710     VK_FORMAT_R8G8B8A8_SNORM                                 = 38,
711     VK_FORMAT_R8G8B8A8_USCALED                               = 39,
712     VK_FORMAT_R8G8B8A8_SSCALED                               = 40,
713     VK_FORMAT_R8G8B8A8_UINT                                  = 41,
714     VK_FORMAT_R8G8B8A8_SINT                                  = 42,
715     VK_FORMAT_R8G8B8A8_SRGB                                  = 43,
716     VK_FORMAT_B8G8R8A8_UNORM                                 = 44,
717     VK_FORMAT_B8G8R8A8_SNORM                                 = 45,
718     VK_FORMAT_B8G8R8A8_USCALED                               = 46,
719     VK_FORMAT_B8G8R8A8_SSCALED                               = 47,
720     VK_FORMAT_B8G8R8A8_UINT                                  = 48,
721     VK_FORMAT_B8G8R8A8_SINT                                  = 49,
722     VK_FORMAT_B8G8R8A8_SRGB                                  = 50,
723     VK_FORMAT_A8B8G8R8_UNORM_PACK32                          = 51,
724     VK_FORMAT_A8B8G8R8_SNORM_PACK32                          = 52,
725     VK_FORMAT_A8B8G8R8_USCALED_PACK32                        = 53,
726     VK_FORMAT_A8B8G8R8_SSCALED_PACK32                        = 54,
727     VK_FORMAT_A8B8G8R8_UINT_PACK32                           = 55,
728     VK_FORMAT_A8B8G8R8_SINT_PACK32                           = 56,
729     VK_FORMAT_A8B8G8R8_SRGB_PACK32                           = 57,
730     VK_FORMAT_A2R10G10B10_UNORM_PACK32                       = 58,
731     VK_FORMAT_A2R10G10B10_SNORM_PACK32                       = 59,
732     VK_FORMAT_A2R10G10B10_USCALED_PACK32                     = 60,
733     VK_FORMAT_A2R10G10B10_SSCALED_PACK32                     = 61,
734     VK_FORMAT_A2R10G10B10_UINT_PACK32                        = 62,
735     VK_FORMAT_A2R10G10B10_SINT_PACK32                        = 63,
736     VK_FORMAT_A2B10G10R10_UNORM_PACK32                       = 64,
737     VK_FORMAT_A2B10G10R10_SNORM_PACK32                       = 65,
738     VK_FORMAT_A2B10G10R10_USCALED_PACK32                     = 66,
739     VK_FORMAT_A2B10G10R10_SSCALED_PACK32                     = 67,
740     VK_FORMAT_A2B10G10R10_UINT_PACK32                        = 68,
741     VK_FORMAT_A2B10G10R10_SINT_PACK32                        = 69,
742     VK_FORMAT_R16_UNORM                                      = 70,
743     VK_FORMAT_R16_SNORM                                      = 71,
744     VK_FORMAT_R16_USCALED                                    = 72,
745     VK_FORMAT_R16_SSCALED                                    = 73,
746     VK_FORMAT_R16_UINT                                       = 74,
747     VK_FORMAT_R16_SINT                                       = 75,
748     VK_FORMAT_R16_SFLOAT                                     = 76,
749     VK_FORMAT_R16G16_UNORM                                   = 77,
750     VK_FORMAT_R16G16_SNORM                                   = 78,
751     VK_FORMAT_R16G16_USCALED                                 = 79,
752     VK_FORMAT_R16G16_SSCALED                                 = 80,
753     VK_FORMAT_R16G16_UINT                                    = 81,
754     VK_FORMAT_R16G16_SINT                                    = 82,
755     VK_FORMAT_R16G16_SFLOAT                                  = 83,
756     VK_FORMAT_R16G16B16_UNORM                                = 84,
757     VK_FORMAT_R16G16B16_SNORM                                = 85,
758     VK_FORMAT_R16G16B16_USCALED                              = 86,
759     VK_FORMAT_R16G16B16_SSCALED                              = 87,
760     VK_FORMAT_R16G16B16_UINT                                 = 88,
761     VK_FORMAT_R16G16B16_SINT                                 = 89,
762     VK_FORMAT_R16G16B16_SFLOAT                               = 90,
763     VK_FORMAT_R16G16B16A16_UNORM                             = 91,
764     VK_FORMAT_R16G16B16A16_SNORM                             = 92,
765     VK_FORMAT_R16G16B16A16_USCALED                           = 93,
766     VK_FORMAT_R16G16B16A16_SSCALED                           = 94,
767     VK_FORMAT_R16G16B16A16_UINT                              = 95,
768     VK_FORMAT_R16G16B16A16_SINT                              = 96,
769     VK_FORMAT_R16G16B16A16_SFLOAT                            = 97,
770     VK_FORMAT_R32_UINT                                       = 98,
771     VK_FORMAT_R32_SINT                                       = 99,
772     VK_FORMAT_R32_SFLOAT                                     = 100,
773     VK_FORMAT_R32G32_UINT                                    = 101,
774     VK_FORMAT_R32G32_SINT                                    = 102,
775     VK_FORMAT_R32G32_SFLOAT                                  = 103,
776     VK_FORMAT_R32G32B32_UINT                                 = 104,
777     VK_FORMAT_R32G32B32_SINT                                 = 105,
778     VK_FORMAT_R32G32B32_SFLOAT                               = 106,
779     VK_FORMAT_R32G32B32A32_UINT                              = 107,
780     VK_FORMAT_R32G32B32A32_SINT                              = 108,
781     VK_FORMAT_R32G32B32A32_SFLOAT                            = 109,
782     VK_FORMAT_R64_UINT                                       = 110,
783     VK_FORMAT_R64_SINT                                       = 111,
784     VK_FORMAT_R64_SFLOAT                                     = 112,
785     VK_FORMAT_R64G64_UINT                                    = 113,
786     VK_FORMAT_R64G64_SINT                                    = 114,
787     VK_FORMAT_R64G64_SFLOAT                                  = 115,
788     VK_FORMAT_R64G64B64_UINT                                 = 116,
789     VK_FORMAT_R64G64B64_SINT                                 = 117,
790     VK_FORMAT_R64G64B64_SFLOAT                               = 118,
791     VK_FORMAT_R64G64B64A64_UINT                              = 119,
792     VK_FORMAT_R64G64B64A64_SINT                              = 120,
793     VK_FORMAT_R64G64B64A64_SFLOAT                            = 121,
794     VK_FORMAT_B10G11R11_UFLOAT_PACK32                        = 122,
795     VK_FORMAT_E5B9G9R9_UFLOAT_PACK32                         = 123,
796     VK_FORMAT_D16_UNORM                                      = 124,
797     VK_FORMAT_X8_D24_UNORM_PACK32                            = 125,
798     VK_FORMAT_D32_SFLOAT                                     = 126,
799     VK_FORMAT_S8_UINT                                        = 127,
800     VK_FORMAT_D16_UNORM_S8_UINT                              = 128,
801     VK_FORMAT_D24_UNORM_S8_UINT                              = 129,
802     VK_FORMAT_D32_SFLOAT_S8_UINT                             = 130,
803     VK_FORMAT_BC1_RGB_UNORM_BLOCK                            = 131,
804     VK_FORMAT_BC1_RGB_SRGB_BLOCK                             = 132,
805     VK_FORMAT_BC1_RGBA_UNORM_BLOCK                           = 133,
806     VK_FORMAT_BC1_RGBA_SRGB_BLOCK                            = 134,
807     VK_FORMAT_BC2_UNORM_BLOCK                                = 135,
808     VK_FORMAT_BC2_SRGB_BLOCK                                 = 136,
809     VK_FORMAT_BC3_UNORM_BLOCK                                = 137,
810     VK_FORMAT_BC3_SRGB_BLOCK                                 = 138,
811     VK_FORMAT_BC4_UNORM_BLOCK                                = 139,
812     VK_FORMAT_BC4_SNORM_BLOCK                                = 140,
813     VK_FORMAT_BC5_UNORM_BLOCK                                = 141,
814     VK_FORMAT_BC5_SNORM_BLOCK                                = 142,
815     VK_FORMAT_BC6H_UFLOAT_BLOCK                              = 143,
816     VK_FORMAT_BC6H_SFLOAT_BLOCK                              = 144,
817     VK_FORMAT_BC7_UNORM_BLOCK                                = 145,
818     VK_FORMAT_BC7_SRGB_BLOCK                                 = 146,
819     VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK                        = 147,
820     VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK                         = 148,
821     VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK                      = 149,
822     VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK                       = 150,
823     VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK                      = 151,
824     VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK                       = 152,
825     VK_FORMAT_EAC_R11_UNORM_BLOCK                            = 153,
826     VK_FORMAT_EAC_R11_SNORM_BLOCK                            = 154,
827     VK_FORMAT_EAC_R11G11_UNORM_BLOCK                         = 155,
828     VK_FORMAT_EAC_R11G11_SNORM_BLOCK                         = 156,
829     VK_FORMAT_ASTC_4x4_UNORM_BLOCK                           = 157,
830     VK_FORMAT_ASTC_4x4_SRGB_BLOCK                            = 158,
831     VK_FORMAT_ASTC_5x4_UNORM_BLOCK                           = 159,
832     VK_FORMAT_ASTC_5x4_SRGB_BLOCK                            = 160,
833     VK_FORMAT_ASTC_5x5_UNORM_BLOCK                           = 161,
834     VK_FORMAT_ASTC_5x5_SRGB_BLOCK                            = 162,
835     VK_FORMAT_ASTC_6x5_UNORM_BLOCK                           = 163,
836     VK_FORMAT_ASTC_6x5_SRGB_BLOCK                            = 164,
837     VK_FORMAT_ASTC_6x6_UNORM_BLOCK                           = 165,
838     VK_FORMAT_ASTC_6x6_SRGB_BLOCK                            = 166,
839     VK_FORMAT_ASTC_8x5_UNORM_BLOCK                           = 167,
840     VK_FORMAT_ASTC_8x5_SRGB_BLOCK                            = 168,
841     VK_FORMAT_ASTC_8x6_UNORM_BLOCK                           = 169,
842     VK_FORMAT_ASTC_8x6_SRGB_BLOCK                            = 170,
843     VK_FORMAT_ASTC_8x8_UNORM_BLOCK                           = 171,
844     VK_FORMAT_ASTC_8x8_SRGB_BLOCK                            = 172,
845     VK_FORMAT_ASTC_10x5_UNORM_BLOCK                          = 173,
846     VK_FORMAT_ASTC_10x5_SRGB_BLOCK                           = 174,
847     VK_FORMAT_ASTC_10x6_UNORM_BLOCK                          = 175,
848     VK_FORMAT_ASTC_10x6_SRGB_BLOCK                           = 176,
849     VK_FORMAT_ASTC_10x8_UNORM_BLOCK                          = 177,
850     VK_FORMAT_ASTC_10x8_SRGB_BLOCK                           = 178,
851     VK_FORMAT_ASTC_10x10_UNORM_BLOCK                         = 179,
852     VK_FORMAT_ASTC_10x10_SRGB_BLOCK                          = 180,
853     VK_FORMAT_ASTC_12x10_UNORM_BLOCK                         = 181,
854     VK_FORMAT_ASTC_12x10_SRGB_BLOCK                          = 182,
855     VK_FORMAT_ASTC_12x12_UNORM_BLOCK                         = 183,
856     VK_FORMAT_ASTC_12x12_SRGB_BLOCK                          = 184,
857     VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG                    = 1000054000,
858     VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG                    = 1000054001,
859     VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG                    = 1000054002,
860     VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG                    = 1000054003,
861     VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG                     = 1000054004,
862     VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG                     = 1000054005,
863     VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG                     = 1000054006,
864     VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG                     = 1000054007,
865     VK_FORMAT_G8B8G8R8_422_UNORM_KHR                         = 1000156000,
866     VK_FORMAT_B8G8R8G8_422_UNORM_KHR                         = 1000156001,
867     VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR                  = 1000156002,
868     VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR                   = 1000156003,
869     VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR                  = 1000156004,
870     VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR                   = 1000156005,
871     VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR                  = 1000156006,
872     VK_FORMAT_R10X6_UNORM_PACK16_KHR                         = 1000156007,
873     VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR                   = 1000156008,
874     VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR         = 1000156009,
875     VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR     = 1000156010,
876     VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR     = 1000156011,
877     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012,
878     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR  = 1000156013,
879     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014,
880     VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR  = 1000156015,
881     VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016,
882     VK_FORMAT_R12X4_UNORM_PACK16_KHR                         = 1000156017,
883     VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR                   = 1000156018,
884     VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR         = 1000156019,
885     VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR     = 1000156020,
886     VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR     = 1000156021,
887     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022,
888     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR  = 1000156023,
889     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024,
890     VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR  = 1000156025,
891     VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026,
892     VK_FORMAT_G16B16G16R16_422_UNORM_KHR                     = 1000156027,
893     VK_FORMAT_B16G16R16G16_422_UNORM_KHR                     = 1000156028,
894     VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR               = 1000156029,
895     VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR                = 1000156030,
896     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR               = 1000156031,
897     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR                = 1000156032,
898     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR               = 1000156033,
899 }
900 enum VK_FORMAT_UNDEFINED                                      = VkFormat.VK_FORMAT_UNDEFINED;
901 enum VK_FORMAT_R4G4_UNORM_PACK8                               = VkFormat.VK_FORMAT_R4G4_UNORM_PACK8;
902 enum VK_FORMAT_R4G4B4A4_UNORM_PACK16                          = VkFormat.VK_FORMAT_R4G4B4A4_UNORM_PACK16;
903 enum VK_FORMAT_B4G4R4A4_UNORM_PACK16                          = VkFormat.VK_FORMAT_B4G4R4A4_UNORM_PACK16;
904 enum VK_FORMAT_R5G6B5_UNORM_PACK16                            = VkFormat.VK_FORMAT_R5G6B5_UNORM_PACK16;
905 enum VK_FORMAT_B5G6R5_UNORM_PACK16                            = VkFormat.VK_FORMAT_B5G6R5_UNORM_PACK16;
906 enum VK_FORMAT_R5G5B5A1_UNORM_PACK16                          = VkFormat.VK_FORMAT_R5G5B5A1_UNORM_PACK16;
907 enum VK_FORMAT_B5G5R5A1_UNORM_PACK16                          = VkFormat.VK_FORMAT_B5G5R5A1_UNORM_PACK16;
908 enum VK_FORMAT_A1R5G5B5_UNORM_PACK16                          = VkFormat.VK_FORMAT_A1R5G5B5_UNORM_PACK16;
909 enum VK_FORMAT_R8_UNORM                                       = VkFormat.VK_FORMAT_R8_UNORM;
910 enum VK_FORMAT_R8_SNORM                                       = VkFormat.VK_FORMAT_R8_SNORM;
911 enum VK_FORMAT_R8_USCALED                                     = VkFormat.VK_FORMAT_R8_USCALED;
912 enum VK_FORMAT_R8_SSCALED                                     = VkFormat.VK_FORMAT_R8_SSCALED;
913 enum VK_FORMAT_R8_UINT                                        = VkFormat.VK_FORMAT_R8_UINT;
914 enum VK_FORMAT_R8_SINT                                        = VkFormat.VK_FORMAT_R8_SINT;
915 enum VK_FORMAT_R8_SRGB                                        = VkFormat.VK_FORMAT_R8_SRGB;
916 enum VK_FORMAT_R8G8_UNORM                                     = VkFormat.VK_FORMAT_R8G8_UNORM;
917 enum VK_FORMAT_R8G8_SNORM                                     = VkFormat.VK_FORMAT_R8G8_SNORM;
918 enum VK_FORMAT_R8G8_USCALED                                   = VkFormat.VK_FORMAT_R8G8_USCALED;
919 enum VK_FORMAT_R8G8_SSCALED                                   = VkFormat.VK_FORMAT_R8G8_SSCALED;
920 enum VK_FORMAT_R8G8_UINT                                      = VkFormat.VK_FORMAT_R8G8_UINT;
921 enum VK_FORMAT_R8G8_SINT                                      = VkFormat.VK_FORMAT_R8G8_SINT;
922 enum VK_FORMAT_R8G8_SRGB                                      = VkFormat.VK_FORMAT_R8G8_SRGB;
923 enum VK_FORMAT_R8G8B8_UNORM                                   = VkFormat.VK_FORMAT_R8G8B8_UNORM;
924 enum VK_FORMAT_R8G8B8_SNORM                                   = VkFormat.VK_FORMAT_R8G8B8_SNORM;
925 enum VK_FORMAT_R8G8B8_USCALED                                 = VkFormat.VK_FORMAT_R8G8B8_USCALED;
926 enum VK_FORMAT_R8G8B8_SSCALED                                 = VkFormat.VK_FORMAT_R8G8B8_SSCALED;
927 enum VK_FORMAT_R8G8B8_UINT                                    = VkFormat.VK_FORMAT_R8G8B8_UINT;
928 enum VK_FORMAT_R8G8B8_SINT                                    = VkFormat.VK_FORMAT_R8G8B8_SINT;
929 enum VK_FORMAT_R8G8B8_SRGB                                    = VkFormat.VK_FORMAT_R8G8B8_SRGB;
930 enum VK_FORMAT_B8G8R8_UNORM                                   = VkFormat.VK_FORMAT_B8G8R8_UNORM;
931 enum VK_FORMAT_B8G8R8_SNORM                                   = VkFormat.VK_FORMAT_B8G8R8_SNORM;
932 enum VK_FORMAT_B8G8R8_USCALED                                 = VkFormat.VK_FORMAT_B8G8R8_USCALED;
933 enum VK_FORMAT_B8G8R8_SSCALED                                 = VkFormat.VK_FORMAT_B8G8R8_SSCALED;
934 enum VK_FORMAT_B8G8R8_UINT                                    = VkFormat.VK_FORMAT_B8G8R8_UINT;
935 enum VK_FORMAT_B8G8R8_SINT                                    = VkFormat.VK_FORMAT_B8G8R8_SINT;
936 enum VK_FORMAT_B8G8R8_SRGB                                    = VkFormat.VK_FORMAT_B8G8R8_SRGB;
937 enum VK_FORMAT_R8G8B8A8_UNORM                                 = VkFormat.VK_FORMAT_R8G8B8A8_UNORM;
938 enum VK_FORMAT_R8G8B8A8_SNORM                                 = VkFormat.VK_FORMAT_R8G8B8A8_SNORM;
939 enum VK_FORMAT_R8G8B8A8_USCALED                               = VkFormat.VK_FORMAT_R8G8B8A8_USCALED;
940 enum VK_FORMAT_R8G8B8A8_SSCALED                               = VkFormat.VK_FORMAT_R8G8B8A8_SSCALED;
941 enum VK_FORMAT_R8G8B8A8_UINT                                  = VkFormat.VK_FORMAT_R8G8B8A8_UINT;
942 enum VK_FORMAT_R8G8B8A8_SINT                                  = VkFormat.VK_FORMAT_R8G8B8A8_SINT;
943 enum VK_FORMAT_R8G8B8A8_SRGB                                  = VkFormat.VK_FORMAT_R8G8B8A8_SRGB;
944 enum VK_FORMAT_B8G8R8A8_UNORM                                 = VkFormat.VK_FORMAT_B8G8R8A8_UNORM;
945 enum VK_FORMAT_B8G8R8A8_SNORM                                 = VkFormat.VK_FORMAT_B8G8R8A8_SNORM;
946 enum VK_FORMAT_B8G8R8A8_USCALED                               = VkFormat.VK_FORMAT_B8G8R8A8_USCALED;
947 enum VK_FORMAT_B8G8R8A8_SSCALED                               = VkFormat.VK_FORMAT_B8G8R8A8_SSCALED;
948 enum VK_FORMAT_B8G8R8A8_UINT                                  = VkFormat.VK_FORMAT_B8G8R8A8_UINT;
949 enum VK_FORMAT_B8G8R8A8_SINT                                  = VkFormat.VK_FORMAT_B8G8R8A8_SINT;
950 enum VK_FORMAT_B8G8R8A8_SRGB                                  = VkFormat.VK_FORMAT_B8G8R8A8_SRGB;
951 enum VK_FORMAT_A8B8G8R8_UNORM_PACK32                          = VkFormat.VK_FORMAT_A8B8G8R8_UNORM_PACK32;
952 enum VK_FORMAT_A8B8G8R8_SNORM_PACK32                          = VkFormat.VK_FORMAT_A8B8G8R8_SNORM_PACK32;
953 enum VK_FORMAT_A8B8G8R8_USCALED_PACK32                        = VkFormat.VK_FORMAT_A8B8G8R8_USCALED_PACK32;
954 enum VK_FORMAT_A8B8G8R8_SSCALED_PACK32                        = VkFormat.VK_FORMAT_A8B8G8R8_SSCALED_PACK32;
955 enum VK_FORMAT_A8B8G8R8_UINT_PACK32                           = VkFormat.VK_FORMAT_A8B8G8R8_UINT_PACK32;
956 enum VK_FORMAT_A8B8G8R8_SINT_PACK32                           = VkFormat.VK_FORMAT_A8B8G8R8_SINT_PACK32;
957 enum VK_FORMAT_A8B8G8R8_SRGB_PACK32                           = VkFormat.VK_FORMAT_A8B8G8R8_SRGB_PACK32;
958 enum VK_FORMAT_A2R10G10B10_UNORM_PACK32                       = VkFormat.VK_FORMAT_A2R10G10B10_UNORM_PACK32;
959 enum VK_FORMAT_A2R10G10B10_SNORM_PACK32                       = VkFormat.VK_FORMAT_A2R10G10B10_SNORM_PACK32;
960 enum VK_FORMAT_A2R10G10B10_USCALED_PACK32                     = VkFormat.VK_FORMAT_A2R10G10B10_USCALED_PACK32;
961 enum VK_FORMAT_A2R10G10B10_SSCALED_PACK32                     = VkFormat.VK_FORMAT_A2R10G10B10_SSCALED_PACK32;
962 enum VK_FORMAT_A2R10G10B10_UINT_PACK32                        = VkFormat.VK_FORMAT_A2R10G10B10_UINT_PACK32;
963 enum VK_FORMAT_A2R10G10B10_SINT_PACK32                        = VkFormat.VK_FORMAT_A2R10G10B10_SINT_PACK32;
964 enum VK_FORMAT_A2B10G10R10_UNORM_PACK32                       = VkFormat.VK_FORMAT_A2B10G10R10_UNORM_PACK32;
965 enum VK_FORMAT_A2B10G10R10_SNORM_PACK32                       = VkFormat.VK_FORMAT_A2B10G10R10_SNORM_PACK32;
966 enum VK_FORMAT_A2B10G10R10_USCALED_PACK32                     = VkFormat.VK_FORMAT_A2B10G10R10_USCALED_PACK32;
967 enum VK_FORMAT_A2B10G10R10_SSCALED_PACK32                     = VkFormat.VK_FORMAT_A2B10G10R10_SSCALED_PACK32;
968 enum VK_FORMAT_A2B10G10R10_UINT_PACK32                        = VkFormat.VK_FORMAT_A2B10G10R10_UINT_PACK32;
969 enum VK_FORMAT_A2B10G10R10_SINT_PACK32                        = VkFormat.VK_FORMAT_A2B10G10R10_SINT_PACK32;
970 enum VK_FORMAT_R16_UNORM                                      = VkFormat.VK_FORMAT_R16_UNORM;
971 enum VK_FORMAT_R16_SNORM                                      = VkFormat.VK_FORMAT_R16_SNORM;
972 enum VK_FORMAT_R16_USCALED                                    = VkFormat.VK_FORMAT_R16_USCALED;
973 enum VK_FORMAT_R16_SSCALED                                    = VkFormat.VK_FORMAT_R16_SSCALED;
974 enum VK_FORMAT_R16_UINT                                       = VkFormat.VK_FORMAT_R16_UINT;
975 enum VK_FORMAT_R16_SINT                                       = VkFormat.VK_FORMAT_R16_SINT;
976 enum VK_FORMAT_R16_SFLOAT                                     = VkFormat.VK_FORMAT_R16_SFLOAT;
977 enum VK_FORMAT_R16G16_UNORM                                   = VkFormat.VK_FORMAT_R16G16_UNORM;
978 enum VK_FORMAT_R16G16_SNORM                                   = VkFormat.VK_FORMAT_R16G16_SNORM;
979 enum VK_FORMAT_R16G16_USCALED                                 = VkFormat.VK_FORMAT_R16G16_USCALED;
980 enum VK_FORMAT_R16G16_SSCALED                                 = VkFormat.VK_FORMAT_R16G16_SSCALED;
981 enum VK_FORMAT_R16G16_UINT                                    = VkFormat.VK_FORMAT_R16G16_UINT;
982 enum VK_FORMAT_R16G16_SINT                                    = VkFormat.VK_FORMAT_R16G16_SINT;
983 enum VK_FORMAT_R16G16_SFLOAT                                  = VkFormat.VK_FORMAT_R16G16_SFLOAT;
984 enum VK_FORMAT_R16G16B16_UNORM                                = VkFormat.VK_FORMAT_R16G16B16_UNORM;
985 enum VK_FORMAT_R16G16B16_SNORM                                = VkFormat.VK_FORMAT_R16G16B16_SNORM;
986 enum VK_FORMAT_R16G16B16_USCALED                              = VkFormat.VK_FORMAT_R16G16B16_USCALED;
987 enum VK_FORMAT_R16G16B16_SSCALED                              = VkFormat.VK_FORMAT_R16G16B16_SSCALED;
988 enum VK_FORMAT_R16G16B16_UINT                                 = VkFormat.VK_FORMAT_R16G16B16_UINT;
989 enum VK_FORMAT_R16G16B16_SINT                                 = VkFormat.VK_FORMAT_R16G16B16_SINT;
990 enum VK_FORMAT_R16G16B16_SFLOAT                               = VkFormat.VK_FORMAT_R16G16B16_SFLOAT;
991 enum VK_FORMAT_R16G16B16A16_UNORM                             = VkFormat.VK_FORMAT_R16G16B16A16_UNORM;
992 enum VK_FORMAT_R16G16B16A16_SNORM                             = VkFormat.VK_FORMAT_R16G16B16A16_SNORM;
993 enum VK_FORMAT_R16G16B16A16_USCALED                           = VkFormat.VK_FORMAT_R16G16B16A16_USCALED;
994 enum VK_FORMAT_R16G16B16A16_SSCALED                           = VkFormat.VK_FORMAT_R16G16B16A16_SSCALED;
995 enum VK_FORMAT_R16G16B16A16_UINT                              = VkFormat.VK_FORMAT_R16G16B16A16_UINT;
996 enum VK_FORMAT_R16G16B16A16_SINT                              = VkFormat.VK_FORMAT_R16G16B16A16_SINT;
997 enum VK_FORMAT_R16G16B16A16_SFLOAT                            = VkFormat.VK_FORMAT_R16G16B16A16_SFLOAT;
998 enum VK_FORMAT_R32_UINT                                       = VkFormat.VK_FORMAT_R32_UINT;
999 enum VK_FORMAT_R32_SINT                                       = VkFormat.VK_FORMAT_R32_SINT;
1000 enum VK_FORMAT_R32_SFLOAT                                     = VkFormat.VK_FORMAT_R32_SFLOAT;
1001 enum VK_FORMAT_R32G32_UINT                                    = VkFormat.VK_FORMAT_R32G32_UINT;
1002 enum VK_FORMAT_R32G32_SINT                                    = VkFormat.VK_FORMAT_R32G32_SINT;
1003 enum VK_FORMAT_R32G32_SFLOAT                                  = VkFormat.VK_FORMAT_R32G32_SFLOAT;
1004 enum VK_FORMAT_R32G32B32_UINT                                 = VkFormat.VK_FORMAT_R32G32B32_UINT;
1005 enum VK_FORMAT_R32G32B32_SINT                                 = VkFormat.VK_FORMAT_R32G32B32_SINT;
1006 enum VK_FORMAT_R32G32B32_SFLOAT                               = VkFormat.VK_FORMAT_R32G32B32_SFLOAT;
1007 enum VK_FORMAT_R32G32B32A32_UINT                              = VkFormat.VK_FORMAT_R32G32B32A32_UINT;
1008 enum VK_FORMAT_R32G32B32A32_SINT                              = VkFormat.VK_FORMAT_R32G32B32A32_SINT;
1009 enum VK_FORMAT_R32G32B32A32_SFLOAT                            = VkFormat.VK_FORMAT_R32G32B32A32_SFLOAT;
1010 enum VK_FORMAT_R64_UINT                                       = VkFormat.VK_FORMAT_R64_UINT;
1011 enum VK_FORMAT_R64_SINT                                       = VkFormat.VK_FORMAT_R64_SINT;
1012 enum VK_FORMAT_R64_SFLOAT                                     = VkFormat.VK_FORMAT_R64_SFLOAT;
1013 enum VK_FORMAT_R64G64_UINT                                    = VkFormat.VK_FORMAT_R64G64_UINT;
1014 enum VK_FORMAT_R64G64_SINT                                    = VkFormat.VK_FORMAT_R64G64_SINT;
1015 enum VK_FORMAT_R64G64_SFLOAT                                  = VkFormat.VK_FORMAT_R64G64_SFLOAT;
1016 enum VK_FORMAT_R64G64B64_UINT                                 = VkFormat.VK_FORMAT_R64G64B64_UINT;
1017 enum VK_FORMAT_R64G64B64_SINT                                 = VkFormat.VK_FORMAT_R64G64B64_SINT;
1018 enum VK_FORMAT_R64G64B64_SFLOAT                               = VkFormat.VK_FORMAT_R64G64B64_SFLOAT;
1019 enum VK_FORMAT_R64G64B64A64_UINT                              = VkFormat.VK_FORMAT_R64G64B64A64_UINT;
1020 enum VK_FORMAT_R64G64B64A64_SINT                              = VkFormat.VK_FORMAT_R64G64B64A64_SINT;
1021 enum VK_FORMAT_R64G64B64A64_SFLOAT                            = VkFormat.VK_FORMAT_R64G64B64A64_SFLOAT;
1022 enum VK_FORMAT_B10G11R11_UFLOAT_PACK32                        = VkFormat.VK_FORMAT_B10G11R11_UFLOAT_PACK32;
1023 enum VK_FORMAT_E5B9G9R9_UFLOAT_PACK32                         = VkFormat.VK_FORMAT_E5B9G9R9_UFLOAT_PACK32;
1024 enum VK_FORMAT_D16_UNORM                                      = VkFormat.VK_FORMAT_D16_UNORM;
1025 enum VK_FORMAT_X8_D24_UNORM_PACK32                            = VkFormat.VK_FORMAT_X8_D24_UNORM_PACK32;
1026 enum VK_FORMAT_D32_SFLOAT                                     = VkFormat.VK_FORMAT_D32_SFLOAT;
1027 enum VK_FORMAT_S8_UINT                                        = VkFormat.VK_FORMAT_S8_UINT;
1028 enum VK_FORMAT_D16_UNORM_S8_UINT                              = VkFormat.VK_FORMAT_D16_UNORM_S8_UINT;
1029 enum VK_FORMAT_D24_UNORM_S8_UINT                              = VkFormat.VK_FORMAT_D24_UNORM_S8_UINT;
1030 enum VK_FORMAT_D32_SFLOAT_S8_UINT                             = VkFormat.VK_FORMAT_D32_SFLOAT_S8_UINT;
1031 enum VK_FORMAT_BC1_RGB_UNORM_BLOCK                            = VkFormat.VK_FORMAT_BC1_RGB_UNORM_BLOCK;
1032 enum VK_FORMAT_BC1_RGB_SRGB_BLOCK                             = VkFormat.VK_FORMAT_BC1_RGB_SRGB_BLOCK;
1033 enum VK_FORMAT_BC1_RGBA_UNORM_BLOCK                           = VkFormat.VK_FORMAT_BC1_RGBA_UNORM_BLOCK;
1034 enum VK_FORMAT_BC1_RGBA_SRGB_BLOCK                            = VkFormat.VK_FORMAT_BC1_RGBA_SRGB_BLOCK;
1035 enum VK_FORMAT_BC2_UNORM_BLOCK                                = VkFormat.VK_FORMAT_BC2_UNORM_BLOCK;
1036 enum VK_FORMAT_BC2_SRGB_BLOCK                                 = VkFormat.VK_FORMAT_BC2_SRGB_BLOCK;
1037 enum VK_FORMAT_BC3_UNORM_BLOCK                                = VkFormat.VK_FORMAT_BC3_UNORM_BLOCK;
1038 enum VK_FORMAT_BC3_SRGB_BLOCK                                 = VkFormat.VK_FORMAT_BC3_SRGB_BLOCK;
1039 enum VK_FORMAT_BC4_UNORM_BLOCK                                = VkFormat.VK_FORMAT_BC4_UNORM_BLOCK;
1040 enum VK_FORMAT_BC4_SNORM_BLOCK                                = VkFormat.VK_FORMAT_BC4_SNORM_BLOCK;
1041 enum VK_FORMAT_BC5_UNORM_BLOCK                                = VkFormat.VK_FORMAT_BC5_UNORM_BLOCK;
1042 enum VK_FORMAT_BC5_SNORM_BLOCK                                = VkFormat.VK_FORMAT_BC5_SNORM_BLOCK;
1043 enum VK_FORMAT_BC6H_UFLOAT_BLOCK                              = VkFormat.VK_FORMAT_BC6H_UFLOAT_BLOCK;
1044 enum VK_FORMAT_BC6H_SFLOAT_BLOCK                              = VkFormat.VK_FORMAT_BC6H_SFLOAT_BLOCK;
1045 enum VK_FORMAT_BC7_UNORM_BLOCK                                = VkFormat.VK_FORMAT_BC7_UNORM_BLOCK;
1046 enum VK_FORMAT_BC7_SRGB_BLOCK                                 = VkFormat.VK_FORMAT_BC7_SRGB_BLOCK;
1047 enum VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK                        = VkFormat.VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK;
1048 enum VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK                         = VkFormat.VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK;
1049 enum VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK                      = VkFormat.VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK;
1050 enum VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK                       = VkFormat.VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK;
1051 enum VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK                      = VkFormat.VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK;
1052 enum VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK                       = VkFormat.VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK;
1053 enum VK_FORMAT_EAC_R11_UNORM_BLOCK                            = VkFormat.VK_FORMAT_EAC_R11_UNORM_BLOCK;
1054 enum VK_FORMAT_EAC_R11_SNORM_BLOCK                            = VkFormat.VK_FORMAT_EAC_R11_SNORM_BLOCK;
1055 enum VK_FORMAT_EAC_R11G11_UNORM_BLOCK                         = VkFormat.VK_FORMAT_EAC_R11G11_UNORM_BLOCK;
1056 enum VK_FORMAT_EAC_R11G11_SNORM_BLOCK                         = VkFormat.VK_FORMAT_EAC_R11G11_SNORM_BLOCK;
1057 enum VK_FORMAT_ASTC_4x4_UNORM_BLOCK                           = VkFormat.VK_FORMAT_ASTC_4x4_UNORM_BLOCK;
1058 enum VK_FORMAT_ASTC_4x4_SRGB_BLOCK                            = VkFormat.VK_FORMAT_ASTC_4x4_SRGB_BLOCK;
1059 enum VK_FORMAT_ASTC_5x4_UNORM_BLOCK                           = VkFormat.VK_FORMAT_ASTC_5x4_UNORM_BLOCK;
1060 enum VK_FORMAT_ASTC_5x4_SRGB_BLOCK                            = VkFormat.VK_FORMAT_ASTC_5x4_SRGB_BLOCK;
1061 enum VK_FORMAT_ASTC_5x5_UNORM_BLOCK                           = VkFormat.VK_FORMAT_ASTC_5x5_UNORM_BLOCK;
1062 enum VK_FORMAT_ASTC_5x5_SRGB_BLOCK                            = VkFormat.VK_FORMAT_ASTC_5x5_SRGB_BLOCK;
1063 enum VK_FORMAT_ASTC_6x5_UNORM_BLOCK                           = VkFormat.VK_FORMAT_ASTC_6x5_UNORM_BLOCK;
1064 enum VK_FORMAT_ASTC_6x5_SRGB_BLOCK                            = VkFormat.VK_FORMAT_ASTC_6x5_SRGB_BLOCK;
1065 enum VK_FORMAT_ASTC_6x6_UNORM_BLOCK                           = VkFormat.VK_FORMAT_ASTC_6x6_UNORM_BLOCK;
1066 enum VK_FORMAT_ASTC_6x6_SRGB_BLOCK                            = VkFormat.VK_FORMAT_ASTC_6x6_SRGB_BLOCK;
1067 enum VK_FORMAT_ASTC_8x5_UNORM_BLOCK                           = VkFormat.VK_FORMAT_ASTC_8x5_UNORM_BLOCK;
1068 enum VK_FORMAT_ASTC_8x5_SRGB_BLOCK                            = VkFormat.VK_FORMAT_ASTC_8x5_SRGB_BLOCK;
1069 enum VK_FORMAT_ASTC_8x6_UNORM_BLOCK                           = VkFormat.VK_FORMAT_ASTC_8x6_UNORM_BLOCK;
1070 enum VK_FORMAT_ASTC_8x6_SRGB_BLOCK                            = VkFormat.VK_FORMAT_ASTC_8x6_SRGB_BLOCK;
1071 enum VK_FORMAT_ASTC_8x8_UNORM_BLOCK                           = VkFormat.VK_FORMAT_ASTC_8x8_UNORM_BLOCK;
1072 enum VK_FORMAT_ASTC_8x8_SRGB_BLOCK                            = VkFormat.VK_FORMAT_ASTC_8x8_SRGB_BLOCK;
1073 enum VK_FORMAT_ASTC_10x5_UNORM_BLOCK                          = VkFormat.VK_FORMAT_ASTC_10x5_UNORM_BLOCK;
1074 enum VK_FORMAT_ASTC_10x5_SRGB_BLOCK                           = VkFormat.VK_FORMAT_ASTC_10x5_SRGB_BLOCK;
1075 enum VK_FORMAT_ASTC_10x6_UNORM_BLOCK                          = VkFormat.VK_FORMAT_ASTC_10x6_UNORM_BLOCK;
1076 enum VK_FORMAT_ASTC_10x6_SRGB_BLOCK                           = VkFormat.VK_FORMAT_ASTC_10x6_SRGB_BLOCK;
1077 enum VK_FORMAT_ASTC_10x8_UNORM_BLOCK                          = VkFormat.VK_FORMAT_ASTC_10x8_UNORM_BLOCK;
1078 enum VK_FORMAT_ASTC_10x8_SRGB_BLOCK                           = VkFormat.VK_FORMAT_ASTC_10x8_SRGB_BLOCK;
1079 enum VK_FORMAT_ASTC_10x10_UNORM_BLOCK                         = VkFormat.VK_FORMAT_ASTC_10x10_UNORM_BLOCK;
1080 enum VK_FORMAT_ASTC_10x10_SRGB_BLOCK                          = VkFormat.VK_FORMAT_ASTC_10x10_SRGB_BLOCK;
1081 enum VK_FORMAT_ASTC_12x10_UNORM_BLOCK                         = VkFormat.VK_FORMAT_ASTC_12x10_UNORM_BLOCK;
1082 enum VK_FORMAT_ASTC_12x10_SRGB_BLOCK                          = VkFormat.VK_FORMAT_ASTC_12x10_SRGB_BLOCK;
1083 enum VK_FORMAT_ASTC_12x12_UNORM_BLOCK                         = VkFormat.VK_FORMAT_ASTC_12x12_UNORM_BLOCK;
1084 enum VK_FORMAT_ASTC_12x12_SRGB_BLOCK                          = VkFormat.VK_FORMAT_ASTC_12x12_SRGB_BLOCK;
1085 enum VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG                    = VkFormat.VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG;
1086 enum VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG                    = VkFormat.VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG;
1087 enum VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG                    = VkFormat.VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG;
1088 enum VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG                    = VkFormat.VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG;
1089 enum VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG                     = VkFormat.VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG;
1090 enum VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG                     = VkFormat.VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG;
1091 enum VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG                     = VkFormat.VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG;
1092 enum VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG                     = VkFormat.VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG;
1093 enum VK_FORMAT_G8B8G8R8_422_UNORM_KHR                         = VkFormat.VK_FORMAT_G8B8G8R8_422_UNORM_KHR;
1094 enum VK_FORMAT_B8G8R8G8_422_UNORM_KHR                         = VkFormat.VK_FORMAT_B8G8R8G8_422_UNORM_KHR;
1095 enum VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR                  = VkFormat.VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR;
1096 enum VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR                   = VkFormat.VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR;
1097 enum VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR                  = VkFormat.VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR;
1098 enum VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR                   = VkFormat.VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR;
1099 enum VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR                  = VkFormat.VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR;
1100 enum VK_FORMAT_R10X6_UNORM_PACK16_KHR                         = VkFormat.VK_FORMAT_R10X6_UNORM_PACK16_KHR;
1101 enum VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR                   = VkFormat.VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR;
1102 enum VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR         = VkFormat.VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR;
1103 enum VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR     = VkFormat.VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR;
1104 enum VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR     = VkFormat.VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR;
1105 enum VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VkFormat.VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR;
1106 enum VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR  = VkFormat.VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR;
1107 enum VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VkFormat.VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR;
1108 enum VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR  = VkFormat.VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR;
1109 enum VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VkFormat.VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR;
1110 enum VK_FORMAT_R12X4_UNORM_PACK16_KHR                         = VkFormat.VK_FORMAT_R12X4_UNORM_PACK16_KHR;
1111 enum VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR                   = VkFormat.VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR;
1112 enum VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR         = VkFormat.VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR;
1113 enum VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR     = VkFormat.VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR;
1114 enum VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR     = VkFormat.VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR;
1115 enum VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VkFormat.VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR;
1116 enum VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR  = VkFormat.VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR;
1117 enum VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VkFormat.VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR;
1118 enum VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR  = VkFormat.VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR;
1119 enum VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VkFormat.VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR;
1120 enum VK_FORMAT_G16B16G16R16_422_UNORM_KHR                     = VkFormat.VK_FORMAT_G16B16G16R16_422_UNORM_KHR;
1121 enum VK_FORMAT_B16G16R16G16_422_UNORM_KHR                     = VkFormat.VK_FORMAT_B16G16R16G16_422_UNORM_KHR;
1122 enum VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR               = VkFormat.VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR;
1123 enum VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR                = VkFormat.VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR;
1124 enum VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR               = VkFormat.VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR;
1125 enum VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR                = VkFormat.VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR;
1126 enum VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR               = VkFormat.VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR;
1127 
1128 enum VkFormatFeatureFlagBits : VkFlags {
1129     VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT                                                               = 0x00000001,
1130     VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT                                                               = 0x00000002,
1131     VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT                                                        = 0x00000004,
1132     VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT                                                        = 0x00000008,
1133     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT                                                        = 0x00000010,
1134     VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT                                                 = 0x00000020,
1135     VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT                                                               = 0x00000040,
1136     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT                                                            = 0x00000080,
1137     VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT                                                      = 0x00000100,
1138     VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT                                                    = 0x00000200,
1139     VK_FORMAT_FEATURE_BLIT_SRC_BIT                                                                    = 0x00000400,
1140     VK_FORMAT_FEATURE_BLIT_DST_BIT                                                                    = 0x00000800,
1141     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT                                                 = 0x00001000,
1142     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG                                              = 0x00002000,
1143     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR                                                            = 0x00004000,
1144     VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR                                                            = 0x00008000,
1145     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT                                             = 0x00010000,
1146     VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR                                                 = 0x00020000,
1147     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR                            = 0x00040000,
1148     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR           = 0x00080000,
1149     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR           = 0x00100000,
1150     VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000,
1151     VK_FORMAT_FEATURE_DISJOINT_BIT_KHR                                                                = 0x00400000,
1152     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR                                                  = 0x00800000,
1153 }
1154 enum VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT                                                               = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT;
1155 enum VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT                                                               = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT;
1156 enum VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT                                                        = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT;
1157 enum VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT                                                        = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT;
1158 enum VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT                                                        = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT;
1159 enum VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT                                                 = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT;
1160 enum VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT                                                               = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT;
1161 enum VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT                                                            = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT;
1162 enum VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT                                                      = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT;
1163 enum VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT                                                    = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT;
1164 enum VK_FORMAT_FEATURE_BLIT_SRC_BIT                                                                    = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_BLIT_SRC_BIT;
1165 enum VK_FORMAT_FEATURE_BLIT_DST_BIT                                                                    = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_BLIT_DST_BIT;
1166 enum VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT                                                 = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT;
1167 enum VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG                                              = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG;
1168 enum VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR                                                            = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR;
1169 enum VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR                                                            = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR;
1170 enum VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT                                             = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT;
1171 enum VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR                                                 = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR;
1172 enum VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR                            = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR;
1173 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;
1174 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;
1175 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;
1176 enum VK_FORMAT_FEATURE_DISJOINT_BIT_KHR                                                                = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_DISJOINT_BIT_KHR;
1177 enum VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR                                                  = VkFormatFeatureFlagBits.VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR;
1178 
1179 enum VkImageType {
1180     VK_IMAGE_TYPE_1D = 0,
1181     VK_IMAGE_TYPE_2D = 1,
1182     VK_IMAGE_TYPE_3D = 2,
1183 }
1184 enum VK_IMAGE_TYPE_1D = VkImageType.VK_IMAGE_TYPE_1D;
1185 enum VK_IMAGE_TYPE_2D = VkImageType.VK_IMAGE_TYPE_2D;
1186 enum VK_IMAGE_TYPE_3D = VkImageType.VK_IMAGE_TYPE_3D;
1187 
1188 enum VkImageTiling {
1189     VK_IMAGE_TILING_OPTIMAL = 0,
1190     VK_IMAGE_TILING_LINEAR  = 1,
1191 }
1192 enum VK_IMAGE_TILING_OPTIMAL = VkImageTiling.VK_IMAGE_TILING_OPTIMAL;
1193 enum VK_IMAGE_TILING_LINEAR  = VkImageTiling.VK_IMAGE_TILING_LINEAR;
1194 
1195 enum VkImageUsageFlagBits : VkFlags {
1196     VK_IMAGE_USAGE_TRANSFER_SRC_BIT             = 0x00000001,
1197     VK_IMAGE_USAGE_TRANSFER_DST_BIT             = 0x00000002,
1198     VK_IMAGE_USAGE_SAMPLED_BIT                  = 0x00000004,
1199     VK_IMAGE_USAGE_STORAGE_BIT                  = 0x00000008,
1200     VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT         = 0x00000010,
1201     VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
1202     VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT     = 0x00000040,
1203     VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT         = 0x00000080,
1204 }
1205 enum VK_IMAGE_USAGE_TRANSFER_SRC_BIT             = VkImageUsageFlagBits.VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
1206 enum VK_IMAGE_USAGE_TRANSFER_DST_BIT             = VkImageUsageFlagBits.VK_IMAGE_USAGE_TRANSFER_DST_BIT;
1207 enum VK_IMAGE_USAGE_SAMPLED_BIT                  = VkImageUsageFlagBits.VK_IMAGE_USAGE_SAMPLED_BIT;
1208 enum VK_IMAGE_USAGE_STORAGE_BIT                  = VkImageUsageFlagBits.VK_IMAGE_USAGE_STORAGE_BIT;
1209 enum VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT         = VkImageUsageFlagBits.VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
1210 enum VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = VkImageUsageFlagBits.VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT;
1211 enum VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT     = VkImageUsageFlagBits.VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT;
1212 enum VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT         = VkImageUsageFlagBits.VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
1213 
1214 enum VkImageCreateFlagBits : VkFlags {
1215     VK_IMAGE_CREATE_SPARSE_BINDING_BIT                        = 0x00000001,
1216     VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT                      = 0x00000002,
1217     VK_IMAGE_CREATE_SPARSE_ALIASED_BIT                        = 0x00000004,
1218     VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT                        = 0x00000008,
1219     VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT                       = 0x00000010,
1220     VK_IMAGE_CREATE_BIND_SFR_BIT_KHX                          = 0x00000040,
1221     VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR               = 0x00000020,
1222     VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR       = 0x00000080,
1223     VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR                    = 0x00000100,
1224     VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
1225     VK_IMAGE_CREATE_DISJOINT_BIT_KHR                          = 0x00000200,
1226     VK_IMAGE_CREATE_ALIAS_BIT_KHR                             = 0x00000400,
1227 }
1228 enum VK_IMAGE_CREATE_SPARSE_BINDING_BIT                        = VkImageCreateFlagBits.VK_IMAGE_CREATE_SPARSE_BINDING_BIT;
1229 enum VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT                      = VkImageCreateFlagBits.VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT;
1230 enum VK_IMAGE_CREATE_SPARSE_ALIASED_BIT                        = VkImageCreateFlagBits.VK_IMAGE_CREATE_SPARSE_ALIASED_BIT;
1231 enum VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT                        = VkImageCreateFlagBits.VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT;
1232 enum VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT                       = VkImageCreateFlagBits.VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT;
1233 enum VK_IMAGE_CREATE_BIND_SFR_BIT_KHX                          = VkImageCreateFlagBits.VK_IMAGE_CREATE_BIND_SFR_BIT_KHX;
1234 enum VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR               = VkImageCreateFlagBits.VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR;
1235 enum VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR       = VkImageCreateFlagBits.VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR;
1236 enum VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR                    = VkImageCreateFlagBits.VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR;
1237 enum VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = VkImageCreateFlagBits.VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT;
1238 enum VK_IMAGE_CREATE_DISJOINT_BIT_KHR                          = VkImageCreateFlagBits.VK_IMAGE_CREATE_DISJOINT_BIT_KHR;
1239 enum VK_IMAGE_CREATE_ALIAS_BIT_KHR                             = VkImageCreateFlagBits.VK_IMAGE_CREATE_ALIAS_BIT_KHR;
1240 
1241 enum VkSampleCountFlagBits : VkFlags {
1242     VK_SAMPLE_COUNT_1_BIT  = 0x00000001,
1243     VK_SAMPLE_COUNT_2_BIT  = 0x00000002,
1244     VK_SAMPLE_COUNT_4_BIT  = 0x00000004,
1245     VK_SAMPLE_COUNT_8_BIT  = 0x00000008,
1246     VK_SAMPLE_COUNT_16_BIT = 0x00000010,
1247     VK_SAMPLE_COUNT_32_BIT = 0x00000020,
1248     VK_SAMPLE_COUNT_64_BIT = 0x00000040,
1249 }
1250 enum VK_SAMPLE_COUNT_1_BIT  = VkSampleCountFlagBits.VK_SAMPLE_COUNT_1_BIT;
1251 enum VK_SAMPLE_COUNT_2_BIT  = VkSampleCountFlagBits.VK_SAMPLE_COUNT_2_BIT;
1252 enum VK_SAMPLE_COUNT_4_BIT  = VkSampleCountFlagBits.VK_SAMPLE_COUNT_4_BIT;
1253 enum VK_SAMPLE_COUNT_8_BIT  = VkSampleCountFlagBits.VK_SAMPLE_COUNT_8_BIT;
1254 enum VK_SAMPLE_COUNT_16_BIT = VkSampleCountFlagBits.VK_SAMPLE_COUNT_16_BIT;
1255 enum VK_SAMPLE_COUNT_32_BIT = VkSampleCountFlagBits.VK_SAMPLE_COUNT_32_BIT;
1256 enum VK_SAMPLE_COUNT_64_BIT = VkSampleCountFlagBits.VK_SAMPLE_COUNT_64_BIT;
1257 
1258 enum VkPhysicalDeviceType {
1259     VK_PHYSICAL_DEVICE_TYPE_OTHER          = 0,
1260     VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
1261     VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU   = 2,
1262     VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU    = 3,
1263     VK_PHYSICAL_DEVICE_TYPE_CPU            = 4,
1264 }
1265 enum VK_PHYSICAL_DEVICE_TYPE_OTHER          = VkPhysicalDeviceType.VK_PHYSICAL_DEVICE_TYPE_OTHER;
1266 enum VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = VkPhysicalDeviceType.VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU;
1267 enum VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU   = VkPhysicalDeviceType.VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU;
1268 enum VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU    = VkPhysicalDeviceType.VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU;
1269 enum VK_PHYSICAL_DEVICE_TYPE_CPU            = VkPhysicalDeviceType.VK_PHYSICAL_DEVICE_TYPE_CPU;
1270 
1271 enum VkQueueFlagBits : VkFlags {
1272     VK_QUEUE_GRAPHICS_BIT       = 0x00000001,
1273     VK_QUEUE_COMPUTE_BIT        = 0x00000002,
1274     VK_QUEUE_TRANSFER_BIT       = 0x00000004,
1275     VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
1276 }
1277 enum VK_QUEUE_GRAPHICS_BIT       = VkQueueFlagBits.VK_QUEUE_GRAPHICS_BIT;
1278 enum VK_QUEUE_COMPUTE_BIT        = VkQueueFlagBits.VK_QUEUE_COMPUTE_BIT;
1279 enum VK_QUEUE_TRANSFER_BIT       = VkQueueFlagBits.VK_QUEUE_TRANSFER_BIT;
1280 enum VK_QUEUE_SPARSE_BINDING_BIT = VkQueueFlagBits.VK_QUEUE_SPARSE_BINDING_BIT;
1281 
1282 enum VkMemoryPropertyFlagBits : VkFlags {
1283     VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT     = 0x00000001,
1284     VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT     = 0x00000002,
1285     VK_MEMORY_PROPERTY_HOST_COHERENT_BIT    = 0x00000004,
1286     VK_MEMORY_PROPERTY_HOST_CACHED_BIT      = 0x00000008,
1287     VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
1288 }
1289 enum VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT     = VkMemoryPropertyFlagBits.VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT;
1290 enum VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT     = VkMemoryPropertyFlagBits.VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT;
1291 enum VK_MEMORY_PROPERTY_HOST_COHERENT_BIT    = VkMemoryPropertyFlagBits.VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;
1292 enum VK_MEMORY_PROPERTY_HOST_CACHED_BIT      = VkMemoryPropertyFlagBits.VK_MEMORY_PROPERTY_HOST_CACHED_BIT;
1293 enum VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = VkMemoryPropertyFlagBits.VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT;
1294 
1295 enum VkMemoryHeapFlagBits : VkFlags {
1296     VK_MEMORY_HEAP_DEVICE_LOCAL_BIT       = 0x00000001,
1297     VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHX = 0x00000002,
1298 }
1299 enum VK_MEMORY_HEAP_DEVICE_LOCAL_BIT       = VkMemoryHeapFlagBits.VK_MEMORY_HEAP_DEVICE_LOCAL_BIT;
1300 enum VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHX = VkMemoryHeapFlagBits.VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHX;
1301 
1302 enum VkPipelineStageFlagBits : VkFlags {
1303     VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT                    = 0x00000001,
1304     VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT                  = 0x00000002,
1305     VK_PIPELINE_STAGE_VERTEX_INPUT_BIT                   = 0x00000004,
1306     VK_PIPELINE_STAGE_VERTEX_SHADER_BIT                  = 0x00000008,
1307     VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT    = 0x00000010,
1308     VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
1309     VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT                = 0x00000040,
1310     VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT                = 0x00000080,
1311     VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT           = 0x00000100,
1312     VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT            = 0x00000200,
1313     VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT        = 0x00000400,
1314     VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT                 = 0x00000800,
1315     VK_PIPELINE_STAGE_TRANSFER_BIT                       = 0x00001000,
1316     VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT                 = 0x00002000,
1317     VK_PIPELINE_STAGE_HOST_BIT                           = 0x00004000,
1318     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT                   = 0x00008000,
1319     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT                   = 0x00010000,
1320     VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX            = 0x00020000,
1321 }
1322 enum VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT                    = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
1323 enum VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT                  = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT;
1324 enum VK_PIPELINE_STAGE_VERTEX_INPUT_BIT                   = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_VERTEX_INPUT_BIT;
1325 enum VK_PIPELINE_STAGE_VERTEX_SHADER_BIT                  = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_VERTEX_SHADER_BIT;
1326 enum VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT    = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT;
1327 enum VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT;
1328 enum VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT                = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT;
1329 enum VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT                = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
1330 enum VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT           = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT;
1331 enum VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT            = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT;
1332 enum VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT        = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
1333 enum VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT                 = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT;
1334 enum VK_PIPELINE_STAGE_TRANSFER_BIT                       = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_TRANSFER_BIT;
1335 enum VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT                 = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT;
1336 enum VK_PIPELINE_STAGE_HOST_BIT                           = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_HOST_BIT;
1337 enum VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT                   = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT;
1338 enum VK_PIPELINE_STAGE_ALL_COMMANDS_BIT                   = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_ALL_COMMANDS_BIT;
1339 enum VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX            = VkPipelineStageFlagBits.VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX;
1340 
1341 enum VkImageAspectFlagBits : VkFlags {
1342     VK_IMAGE_ASPECT_COLOR_BIT       = 0x00000001,
1343     VK_IMAGE_ASPECT_DEPTH_BIT       = 0x00000002,
1344     VK_IMAGE_ASPECT_STENCIL_BIT     = 0x00000004,
1345     VK_IMAGE_ASPECT_METADATA_BIT    = 0x00000008,
1346     VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010,
1347     VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020,
1348     VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040,
1349 }
1350 enum VK_IMAGE_ASPECT_COLOR_BIT       = VkImageAspectFlagBits.VK_IMAGE_ASPECT_COLOR_BIT;
1351 enum VK_IMAGE_ASPECT_DEPTH_BIT       = VkImageAspectFlagBits.VK_IMAGE_ASPECT_DEPTH_BIT;
1352 enum VK_IMAGE_ASPECT_STENCIL_BIT     = VkImageAspectFlagBits.VK_IMAGE_ASPECT_STENCIL_BIT;
1353 enum VK_IMAGE_ASPECT_METADATA_BIT    = VkImageAspectFlagBits.VK_IMAGE_ASPECT_METADATA_BIT;
1354 enum VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VkImageAspectFlagBits.VK_IMAGE_ASPECT_PLANE_0_BIT_KHR;
1355 enum VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VkImageAspectFlagBits.VK_IMAGE_ASPECT_PLANE_1_BIT_KHR;
1356 enum VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VkImageAspectFlagBits.VK_IMAGE_ASPECT_PLANE_2_BIT_KHR;
1357 
1358 enum VkSparseImageFormatFlagBits : VkFlags {
1359     VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT         = 0x00000001,
1360     VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT       = 0x00000002,
1361     VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
1362 }
1363 enum VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT         = VkSparseImageFormatFlagBits.VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT;
1364 enum VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT       = VkSparseImageFormatFlagBits.VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT;
1365 enum VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = VkSparseImageFormatFlagBits.VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT;
1366 
1367 enum VkSparseMemoryBindFlagBits : VkFlags {
1368     VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
1369 }
1370 enum VK_SPARSE_MEMORY_BIND_METADATA_BIT = VkSparseMemoryBindFlagBits.VK_SPARSE_MEMORY_BIND_METADATA_BIT;
1371 
1372 enum VkFenceCreateFlagBits : VkFlags {
1373     VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
1374 }
1375 enum VK_FENCE_CREATE_SIGNALED_BIT = VkFenceCreateFlagBits.VK_FENCE_CREATE_SIGNALED_BIT;
1376 
1377 enum VkQueryType {
1378     VK_QUERY_TYPE_OCCLUSION           = 0,
1379     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
1380     VK_QUERY_TYPE_TIMESTAMP           = 2,
1381 }
1382 enum VK_QUERY_TYPE_OCCLUSION           = VkQueryType.VK_QUERY_TYPE_OCCLUSION;
1383 enum VK_QUERY_TYPE_PIPELINE_STATISTICS = VkQueryType.VK_QUERY_TYPE_PIPELINE_STATISTICS;
1384 enum VK_QUERY_TYPE_TIMESTAMP           = VkQueryType.VK_QUERY_TYPE_TIMESTAMP;
1385 
1386 enum VkQueryPipelineStatisticFlagBits : VkFlags {
1387     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT                    = 0x00000001,
1388     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT                  = 0x00000002,
1389     VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT                  = 0x00000004,
1390     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT                = 0x00000008,
1391     VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT                 = 0x00000010,
1392     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT                       = 0x00000020,
1393     VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT                        = 0x00000040,
1394     VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT                = 0x00000080,
1395     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT        = 0x00000100,
1396     VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
1397     VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT                 = 0x00000400,
1398 }
1399 enum VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT                    = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT;
1400 enum VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT                  = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT;
1401 enum VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT                  = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT;
1402 enum VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT                = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT;
1403 enum VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT                 = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT;
1404 enum VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT                       = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT;
1405 enum VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT                        = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT;
1406 enum VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT                = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT;
1407 enum VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT        = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT;
1408 enum VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT;
1409 enum VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT                 = VkQueryPipelineStatisticFlagBits.VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT;
1410 
1411 enum VkQueryResultFlagBits : VkFlags {
1412     VK_QUERY_RESULT_64_BIT                = 0x00000001,
1413     VK_QUERY_RESULT_WAIT_BIT              = 0x00000002,
1414     VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
1415     VK_QUERY_RESULT_PARTIAL_BIT           = 0x00000008,
1416 }
1417 enum VK_QUERY_RESULT_64_BIT                = VkQueryResultFlagBits.VK_QUERY_RESULT_64_BIT;
1418 enum VK_QUERY_RESULT_WAIT_BIT              = VkQueryResultFlagBits.VK_QUERY_RESULT_WAIT_BIT;
1419 enum VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = VkQueryResultFlagBits.VK_QUERY_RESULT_WITH_AVAILABILITY_BIT;
1420 enum VK_QUERY_RESULT_PARTIAL_BIT           = VkQueryResultFlagBits.VK_QUERY_RESULT_PARTIAL_BIT;
1421 
1422 enum VkBufferCreateFlagBits : VkFlags {
1423     VK_BUFFER_CREATE_SPARSE_BINDING_BIT   = 0x00000001,
1424     VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
1425     VK_BUFFER_CREATE_SPARSE_ALIASED_BIT   = 0x00000004,
1426 }
1427 enum VK_BUFFER_CREATE_SPARSE_BINDING_BIT   = VkBufferCreateFlagBits.VK_BUFFER_CREATE_SPARSE_BINDING_BIT;
1428 enum VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = VkBufferCreateFlagBits.VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT;
1429 enum VK_BUFFER_CREATE_SPARSE_ALIASED_BIT   = VkBufferCreateFlagBits.VK_BUFFER_CREATE_SPARSE_ALIASED_BIT;
1430 
1431 enum VkBufferUsageFlagBits : VkFlags {
1432     VK_BUFFER_USAGE_TRANSFER_SRC_BIT         = 0x00000001,
1433     VK_BUFFER_USAGE_TRANSFER_DST_BIT         = 0x00000002,
1434     VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
1435     VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
1436     VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT       = 0x00000010,
1437     VK_BUFFER_USAGE_STORAGE_BUFFER_BIT       = 0x00000020,
1438     VK_BUFFER_USAGE_INDEX_BUFFER_BIT         = 0x00000040,
1439     VK_BUFFER_USAGE_VERTEX_BUFFER_BIT        = 0x00000080,
1440     VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT      = 0x00000100,
1441 }
1442 enum VK_BUFFER_USAGE_TRANSFER_SRC_BIT         = VkBufferUsageFlagBits.VK_BUFFER_USAGE_TRANSFER_SRC_BIT;
1443 enum VK_BUFFER_USAGE_TRANSFER_DST_BIT         = VkBufferUsageFlagBits.VK_BUFFER_USAGE_TRANSFER_DST_BIT;
1444 enum VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = VkBufferUsageFlagBits.VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT;
1445 enum VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = VkBufferUsageFlagBits.VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT;
1446 enum VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT       = VkBufferUsageFlagBits.VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT;
1447 enum VK_BUFFER_USAGE_STORAGE_BUFFER_BIT       = VkBufferUsageFlagBits.VK_BUFFER_USAGE_STORAGE_BUFFER_BIT;
1448 enum VK_BUFFER_USAGE_INDEX_BUFFER_BIT         = VkBufferUsageFlagBits.VK_BUFFER_USAGE_INDEX_BUFFER_BIT;
1449 enum VK_BUFFER_USAGE_VERTEX_BUFFER_BIT        = VkBufferUsageFlagBits.VK_BUFFER_USAGE_VERTEX_BUFFER_BIT;
1450 enum VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT      = VkBufferUsageFlagBits.VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT;
1451 
1452 enum VkSharingMode {
1453     VK_SHARING_MODE_EXCLUSIVE  = 0,
1454     VK_SHARING_MODE_CONCURRENT = 1,
1455 }
1456 enum VK_SHARING_MODE_EXCLUSIVE  = VkSharingMode.VK_SHARING_MODE_EXCLUSIVE;
1457 enum VK_SHARING_MODE_CONCURRENT = VkSharingMode.VK_SHARING_MODE_CONCURRENT;
1458 
1459 enum VkImageLayout {
1460     VK_IMAGE_LAYOUT_UNDEFINED                                      = 0,
1461     VK_IMAGE_LAYOUT_GENERAL                                        = 1,
1462     VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL                       = 2,
1463     VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL               = 3,
1464     VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL                = 4,
1465     VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL                       = 5,
1466     VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL                           = 6,
1467     VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL                           = 7,
1468     VK_IMAGE_LAYOUT_PREINITIALIZED                                 = 8,
1469     VK_IMAGE_LAYOUT_PRESENT_SRC_KHR                                = 1000001002,
1470     VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR                             = 1000111000,
1471     VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000,
1472     VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001,
1473 }
1474 enum VK_IMAGE_LAYOUT_UNDEFINED                                      = VkImageLayout.VK_IMAGE_LAYOUT_UNDEFINED;
1475 enum VK_IMAGE_LAYOUT_GENERAL                                        = VkImageLayout.VK_IMAGE_LAYOUT_GENERAL;
1476 enum VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL                       = VkImageLayout.VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
1477 enum VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL               = VkImageLayout.VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
1478 enum VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL                = VkImageLayout.VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL;
1479 enum VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL                       = VkImageLayout.VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
1480 enum VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL                           = VkImageLayout.VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
1481 enum VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL                           = VkImageLayout.VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
1482 enum VK_IMAGE_LAYOUT_PREINITIALIZED                                 = VkImageLayout.VK_IMAGE_LAYOUT_PREINITIALIZED;
1483 enum VK_IMAGE_LAYOUT_PRESENT_SRC_KHR                                = VkImageLayout.VK_IMAGE_LAYOUT_PRESENT_SRC_KHR;
1484 enum VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR                             = VkImageLayout.VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR;
1485 enum VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VkImageLayout.VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR;
1486 enum VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VkImageLayout.VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR;
1487 
1488 enum VkImageViewType {
1489     VK_IMAGE_VIEW_TYPE_1D         = 0,
1490     VK_IMAGE_VIEW_TYPE_2D         = 1,
1491     VK_IMAGE_VIEW_TYPE_3D         = 2,
1492     VK_IMAGE_VIEW_TYPE_CUBE       = 3,
1493     VK_IMAGE_VIEW_TYPE_1D_ARRAY   = 4,
1494     VK_IMAGE_VIEW_TYPE_2D_ARRAY   = 5,
1495     VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
1496 }
1497 enum VK_IMAGE_VIEW_TYPE_1D         = VkImageViewType.VK_IMAGE_VIEW_TYPE_1D;
1498 enum VK_IMAGE_VIEW_TYPE_2D         = VkImageViewType.VK_IMAGE_VIEW_TYPE_2D;
1499 enum VK_IMAGE_VIEW_TYPE_3D         = VkImageViewType.VK_IMAGE_VIEW_TYPE_3D;
1500 enum VK_IMAGE_VIEW_TYPE_CUBE       = VkImageViewType.VK_IMAGE_VIEW_TYPE_CUBE;
1501 enum VK_IMAGE_VIEW_TYPE_1D_ARRAY   = VkImageViewType.VK_IMAGE_VIEW_TYPE_1D_ARRAY;
1502 enum VK_IMAGE_VIEW_TYPE_2D_ARRAY   = VkImageViewType.VK_IMAGE_VIEW_TYPE_2D_ARRAY;
1503 enum VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = VkImageViewType.VK_IMAGE_VIEW_TYPE_CUBE_ARRAY;
1504 
1505 enum VkComponentSwizzle {
1506     VK_COMPONENT_SWIZZLE_IDENTITY = 0,
1507     VK_COMPONENT_SWIZZLE_ZERO     = 1,
1508     VK_COMPONENT_SWIZZLE_ONE      = 2,
1509     VK_COMPONENT_SWIZZLE_R        = 3,
1510     VK_COMPONENT_SWIZZLE_G        = 4,
1511     VK_COMPONENT_SWIZZLE_B        = 5,
1512     VK_COMPONENT_SWIZZLE_A        = 6,
1513 }
1514 enum VK_COMPONENT_SWIZZLE_IDENTITY = VkComponentSwizzle.VK_COMPONENT_SWIZZLE_IDENTITY;
1515 enum VK_COMPONENT_SWIZZLE_ZERO     = VkComponentSwizzle.VK_COMPONENT_SWIZZLE_ZERO;
1516 enum VK_COMPONENT_SWIZZLE_ONE      = VkComponentSwizzle.VK_COMPONENT_SWIZZLE_ONE;
1517 enum VK_COMPONENT_SWIZZLE_R        = VkComponentSwizzle.VK_COMPONENT_SWIZZLE_R;
1518 enum VK_COMPONENT_SWIZZLE_G        = VkComponentSwizzle.VK_COMPONENT_SWIZZLE_G;
1519 enum VK_COMPONENT_SWIZZLE_B        = VkComponentSwizzle.VK_COMPONENT_SWIZZLE_B;
1520 enum VK_COMPONENT_SWIZZLE_A        = VkComponentSwizzle.VK_COMPONENT_SWIZZLE_A;
1521 
1522 enum VkPipelineCreateFlagBits : VkFlags {
1523     VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT             = 0x00000001,
1524     VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT                = 0x00000002,
1525     VK_PIPELINE_CREATE_DERIVATIVE_BIT                       = 0x00000004,
1526     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHX = 0x00000008,
1527     VK_PIPELINE_CREATE_DISPATCH_BASE_KHX                    = 0x00000010,
1528 }
1529 enum VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT             = VkPipelineCreateFlagBits.VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT;
1530 enum VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT                = VkPipelineCreateFlagBits.VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT;
1531 enum VK_PIPELINE_CREATE_DERIVATIVE_BIT                       = VkPipelineCreateFlagBits.VK_PIPELINE_CREATE_DERIVATIVE_BIT;
1532 enum VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHX = VkPipelineCreateFlagBits.VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHX;
1533 enum VK_PIPELINE_CREATE_DISPATCH_BASE_KHX                    = VkPipelineCreateFlagBits.VK_PIPELINE_CREATE_DISPATCH_BASE_KHX;
1534 
1535 enum VkShaderStageFlagBits : VkFlags {
1536     VK_SHADER_STAGE_VERTEX_BIT                  = 0x00000001,
1537     VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT    = 0x00000002,
1538     VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
1539     VK_SHADER_STAGE_GEOMETRY_BIT                = 0x00000008,
1540     VK_SHADER_STAGE_FRAGMENT_BIT                = 0x00000010,
1541     VK_SHADER_STAGE_COMPUTE_BIT                 = 0x00000020,
1542     VK_SHADER_STAGE_ALL_GRAPHICS                = 0x0000001F,
1543     VK_SHADER_STAGE_ALL                         = 0x7FFFFFFF,
1544 }
1545 enum VK_SHADER_STAGE_VERTEX_BIT                  = VkShaderStageFlagBits.VK_SHADER_STAGE_VERTEX_BIT;
1546 enum VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT    = VkShaderStageFlagBits.VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT;
1547 enum VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = VkShaderStageFlagBits.VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT;
1548 enum VK_SHADER_STAGE_GEOMETRY_BIT                = VkShaderStageFlagBits.VK_SHADER_STAGE_GEOMETRY_BIT;
1549 enum VK_SHADER_STAGE_FRAGMENT_BIT                = VkShaderStageFlagBits.VK_SHADER_STAGE_FRAGMENT_BIT;
1550 enum VK_SHADER_STAGE_COMPUTE_BIT                 = VkShaderStageFlagBits.VK_SHADER_STAGE_COMPUTE_BIT;
1551 enum VK_SHADER_STAGE_ALL_GRAPHICS                = VkShaderStageFlagBits.VK_SHADER_STAGE_ALL_GRAPHICS;
1552 enum VK_SHADER_STAGE_ALL                         = VkShaderStageFlagBits.VK_SHADER_STAGE_ALL;
1553 
1554 enum VkVertexInputRate {
1555     VK_VERTEX_INPUT_RATE_VERTEX   = 0,
1556     VK_VERTEX_INPUT_RATE_INSTANCE = 1,
1557 }
1558 enum VK_VERTEX_INPUT_RATE_VERTEX   = VkVertexInputRate.VK_VERTEX_INPUT_RATE_VERTEX;
1559 enum VK_VERTEX_INPUT_RATE_INSTANCE = VkVertexInputRate.VK_VERTEX_INPUT_RATE_INSTANCE;
1560 
1561 enum VkPrimitiveTopology {
1562     VK_PRIMITIVE_TOPOLOGY_POINT_LIST                    = 0,
1563     VK_PRIMITIVE_TOPOLOGY_LINE_LIST                     = 1,
1564     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP                    = 2,
1565     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST                 = 3,
1566     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP                = 4,
1567     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN                  = 5,
1568     VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY      = 6,
1569     VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY     = 7,
1570     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY  = 8,
1571     VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
1572     VK_PRIMITIVE_TOPOLOGY_PATCH_LIST                    = 10,
1573 }
1574 enum VK_PRIMITIVE_TOPOLOGY_POINT_LIST                    = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_POINT_LIST;
1575 enum VK_PRIMITIVE_TOPOLOGY_LINE_LIST                     = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_LINE_LIST;
1576 enum VK_PRIMITIVE_TOPOLOGY_LINE_STRIP                    = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_LINE_STRIP;
1577 enum VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST                 = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
1578 enum VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP                = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
1579 enum VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN                  = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN;
1580 enum VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY      = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY;
1581 enum VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY     = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY;
1582 enum VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY  = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY;
1583 enum VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY;
1584 enum VK_PRIMITIVE_TOPOLOGY_PATCH_LIST                    = VkPrimitiveTopology.VK_PRIMITIVE_TOPOLOGY_PATCH_LIST;
1585 
1586 enum VkPolygonMode {
1587     VK_POLYGON_MODE_FILL              = 0,
1588     VK_POLYGON_MODE_LINE              = 1,
1589     VK_POLYGON_MODE_POINT             = 2,
1590     VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
1591 }
1592 enum VK_POLYGON_MODE_FILL              = VkPolygonMode.VK_POLYGON_MODE_FILL;
1593 enum VK_POLYGON_MODE_LINE              = VkPolygonMode.VK_POLYGON_MODE_LINE;
1594 enum VK_POLYGON_MODE_POINT             = VkPolygonMode.VK_POLYGON_MODE_POINT;
1595 enum VK_POLYGON_MODE_FILL_RECTANGLE_NV = VkPolygonMode.VK_POLYGON_MODE_FILL_RECTANGLE_NV;
1596 
1597 enum VkCullModeFlagBits : VkFlags {
1598     VK_CULL_MODE_NONE           = 0,
1599     VK_CULL_MODE_FRONT_BIT      = 0x00000001,
1600     VK_CULL_MODE_BACK_BIT       = 0x00000002,
1601     VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
1602 }
1603 enum VK_CULL_MODE_NONE           = VkCullModeFlagBits.VK_CULL_MODE_NONE;
1604 enum VK_CULL_MODE_FRONT_BIT      = VkCullModeFlagBits.VK_CULL_MODE_FRONT_BIT;
1605 enum VK_CULL_MODE_BACK_BIT       = VkCullModeFlagBits.VK_CULL_MODE_BACK_BIT;
1606 enum VK_CULL_MODE_FRONT_AND_BACK = VkCullModeFlagBits.VK_CULL_MODE_FRONT_AND_BACK;
1607 
1608 enum VkFrontFace {
1609     VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
1610     VK_FRONT_FACE_CLOCKWISE         = 1,
1611 }
1612 enum VK_FRONT_FACE_COUNTER_CLOCKWISE = VkFrontFace.VK_FRONT_FACE_COUNTER_CLOCKWISE;
1613 enum VK_FRONT_FACE_CLOCKWISE         = VkFrontFace.VK_FRONT_FACE_CLOCKWISE;
1614 
1615 enum VkCompareOp {
1616     VK_COMPARE_OP_NEVER            = 0,
1617     VK_COMPARE_OP_LESS             = 1,
1618     VK_COMPARE_OP_EQUAL            = 2,
1619     VK_COMPARE_OP_LESS_OR_EQUAL    = 3,
1620     VK_COMPARE_OP_GREATER          = 4,
1621     VK_COMPARE_OP_NOT_EQUAL        = 5,
1622     VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
1623     VK_COMPARE_OP_ALWAYS           = 7,
1624 }
1625 enum VK_COMPARE_OP_NEVER            = VkCompareOp.VK_COMPARE_OP_NEVER;
1626 enum VK_COMPARE_OP_LESS             = VkCompareOp.VK_COMPARE_OP_LESS;
1627 enum VK_COMPARE_OP_EQUAL            = VkCompareOp.VK_COMPARE_OP_EQUAL;
1628 enum VK_COMPARE_OP_LESS_OR_EQUAL    = VkCompareOp.VK_COMPARE_OP_LESS_OR_EQUAL;
1629 enum VK_COMPARE_OP_GREATER          = VkCompareOp.VK_COMPARE_OP_GREATER;
1630 enum VK_COMPARE_OP_NOT_EQUAL        = VkCompareOp.VK_COMPARE_OP_NOT_EQUAL;
1631 enum VK_COMPARE_OP_GREATER_OR_EQUAL = VkCompareOp.VK_COMPARE_OP_GREATER_OR_EQUAL;
1632 enum VK_COMPARE_OP_ALWAYS           = VkCompareOp.VK_COMPARE_OP_ALWAYS;
1633 
1634 enum VkStencilOp {
1635     VK_STENCIL_OP_KEEP                = 0,
1636     VK_STENCIL_OP_ZERO                = 1,
1637     VK_STENCIL_OP_REPLACE             = 2,
1638     VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
1639     VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
1640     VK_STENCIL_OP_INVERT              = 5,
1641     VK_STENCIL_OP_INCREMENT_AND_WRAP  = 6,
1642     VK_STENCIL_OP_DECREMENT_AND_WRAP  = 7,
1643 }
1644 enum VK_STENCIL_OP_KEEP                = VkStencilOp.VK_STENCIL_OP_KEEP;
1645 enum VK_STENCIL_OP_ZERO                = VkStencilOp.VK_STENCIL_OP_ZERO;
1646 enum VK_STENCIL_OP_REPLACE             = VkStencilOp.VK_STENCIL_OP_REPLACE;
1647 enum VK_STENCIL_OP_INCREMENT_AND_CLAMP = VkStencilOp.VK_STENCIL_OP_INCREMENT_AND_CLAMP;
1648 enum VK_STENCIL_OP_DECREMENT_AND_CLAMP = VkStencilOp.VK_STENCIL_OP_DECREMENT_AND_CLAMP;
1649 enum VK_STENCIL_OP_INVERT              = VkStencilOp.VK_STENCIL_OP_INVERT;
1650 enum VK_STENCIL_OP_INCREMENT_AND_WRAP  = VkStencilOp.VK_STENCIL_OP_INCREMENT_AND_WRAP;
1651 enum VK_STENCIL_OP_DECREMENT_AND_WRAP  = VkStencilOp.VK_STENCIL_OP_DECREMENT_AND_WRAP;
1652 
1653 enum VkLogicOp {
1654     VK_LOGIC_OP_CLEAR         = 0,
1655     VK_LOGIC_OP_AND           = 1,
1656     VK_LOGIC_OP_AND_REVERSE   = 2,
1657     VK_LOGIC_OP_COPY          = 3,
1658     VK_LOGIC_OP_AND_INVERTED  = 4,
1659     VK_LOGIC_OP_NO_OP         = 5,
1660     VK_LOGIC_OP_XOR           = 6,
1661     VK_LOGIC_OP_OR            = 7,
1662     VK_LOGIC_OP_NOR           = 8,
1663     VK_LOGIC_OP_EQUIVALENT    = 9,
1664     VK_LOGIC_OP_INVERT        = 10,
1665     VK_LOGIC_OP_OR_REVERSE    = 11,
1666     VK_LOGIC_OP_COPY_INVERTED = 12,
1667     VK_LOGIC_OP_OR_INVERTED   = 13,
1668     VK_LOGIC_OP_NAND          = 14,
1669     VK_LOGIC_OP_SET           = 15,
1670 }
1671 enum VK_LOGIC_OP_CLEAR         = VkLogicOp.VK_LOGIC_OP_CLEAR;
1672 enum VK_LOGIC_OP_AND           = VkLogicOp.VK_LOGIC_OP_AND;
1673 enum VK_LOGIC_OP_AND_REVERSE   = VkLogicOp.VK_LOGIC_OP_AND_REVERSE;
1674 enum VK_LOGIC_OP_COPY          = VkLogicOp.VK_LOGIC_OP_COPY;
1675 enum VK_LOGIC_OP_AND_INVERTED  = VkLogicOp.VK_LOGIC_OP_AND_INVERTED;
1676 enum VK_LOGIC_OP_NO_OP         = VkLogicOp.VK_LOGIC_OP_NO_OP;
1677 enum VK_LOGIC_OP_XOR           = VkLogicOp.VK_LOGIC_OP_XOR;
1678 enum VK_LOGIC_OP_OR            = VkLogicOp.VK_LOGIC_OP_OR;
1679 enum VK_LOGIC_OP_NOR           = VkLogicOp.VK_LOGIC_OP_NOR;
1680 enum VK_LOGIC_OP_EQUIVALENT    = VkLogicOp.VK_LOGIC_OP_EQUIVALENT;
1681 enum VK_LOGIC_OP_INVERT        = VkLogicOp.VK_LOGIC_OP_INVERT;
1682 enum VK_LOGIC_OP_OR_REVERSE    = VkLogicOp.VK_LOGIC_OP_OR_REVERSE;
1683 enum VK_LOGIC_OP_COPY_INVERTED = VkLogicOp.VK_LOGIC_OP_COPY_INVERTED;
1684 enum VK_LOGIC_OP_OR_INVERTED   = VkLogicOp.VK_LOGIC_OP_OR_INVERTED;
1685 enum VK_LOGIC_OP_NAND          = VkLogicOp.VK_LOGIC_OP_NAND;
1686 enum VK_LOGIC_OP_SET           = VkLogicOp.VK_LOGIC_OP_SET;
1687 
1688 enum VkBlendFactor {
1689     VK_BLEND_FACTOR_ZERO                     = 0,
1690     VK_BLEND_FACTOR_ONE                      = 1,
1691     VK_BLEND_FACTOR_SRC_COLOR                = 2,
1692     VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR      = 3,
1693     VK_BLEND_FACTOR_DST_COLOR                = 4,
1694     VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR      = 5,
1695     VK_BLEND_FACTOR_SRC_ALPHA                = 6,
1696     VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA      = 7,
1697     VK_BLEND_FACTOR_DST_ALPHA                = 8,
1698     VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA      = 9,
1699     VK_BLEND_FACTOR_CONSTANT_COLOR           = 10,
1700     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
1701     VK_BLEND_FACTOR_CONSTANT_ALPHA           = 12,
1702     VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
1703     VK_BLEND_FACTOR_SRC_ALPHA_SATURATE       = 14,
1704     VK_BLEND_FACTOR_SRC1_COLOR               = 15,
1705     VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR     = 16,
1706     VK_BLEND_FACTOR_SRC1_ALPHA               = 17,
1707     VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA     = 18,
1708 }
1709 enum VK_BLEND_FACTOR_ZERO                     = VkBlendFactor.VK_BLEND_FACTOR_ZERO;
1710 enum VK_BLEND_FACTOR_ONE                      = VkBlendFactor.VK_BLEND_FACTOR_ONE;
1711 enum VK_BLEND_FACTOR_SRC_COLOR                = VkBlendFactor.VK_BLEND_FACTOR_SRC_COLOR;
1712 enum VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR      = VkBlendFactor.VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR;
1713 enum VK_BLEND_FACTOR_DST_COLOR                = VkBlendFactor.VK_BLEND_FACTOR_DST_COLOR;
1714 enum VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR      = VkBlendFactor.VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR;
1715 enum VK_BLEND_FACTOR_SRC_ALPHA                = VkBlendFactor.VK_BLEND_FACTOR_SRC_ALPHA;
1716 enum VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA      = VkBlendFactor.VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA;
1717 enum VK_BLEND_FACTOR_DST_ALPHA                = VkBlendFactor.VK_BLEND_FACTOR_DST_ALPHA;
1718 enum VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA      = VkBlendFactor.VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA;
1719 enum VK_BLEND_FACTOR_CONSTANT_COLOR           = VkBlendFactor.VK_BLEND_FACTOR_CONSTANT_COLOR;
1720 enum VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = VkBlendFactor.VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR;
1721 enum VK_BLEND_FACTOR_CONSTANT_ALPHA           = VkBlendFactor.VK_BLEND_FACTOR_CONSTANT_ALPHA;
1722 enum VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = VkBlendFactor.VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA;
1723 enum VK_BLEND_FACTOR_SRC_ALPHA_SATURATE       = VkBlendFactor.VK_BLEND_FACTOR_SRC_ALPHA_SATURATE;
1724 enum VK_BLEND_FACTOR_SRC1_COLOR               = VkBlendFactor.VK_BLEND_FACTOR_SRC1_COLOR;
1725 enum VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR     = VkBlendFactor.VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR;
1726 enum VK_BLEND_FACTOR_SRC1_ALPHA               = VkBlendFactor.VK_BLEND_FACTOR_SRC1_ALPHA;
1727 enum VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA     = VkBlendFactor.VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA;
1728 
1729 enum VkBlendOp {
1730     VK_BLEND_OP_ADD                    = 0,
1731     VK_BLEND_OP_SUBTRACT               = 1,
1732     VK_BLEND_OP_REVERSE_SUBTRACT       = 2,
1733     VK_BLEND_OP_MIN                    = 3,
1734     VK_BLEND_OP_MAX                    = 4,
1735     VK_BLEND_OP_ZERO_EXT               = 1000148000,
1736     VK_BLEND_OP_SRC_EXT                = 1000148001,
1737     VK_BLEND_OP_DST_EXT                = 1000148002,
1738     VK_BLEND_OP_SRC_OVER_EXT           = 1000148003,
1739     VK_BLEND_OP_DST_OVER_EXT           = 1000148004,
1740     VK_BLEND_OP_SRC_IN_EXT             = 1000148005,
1741     VK_BLEND_OP_DST_IN_EXT             = 1000148006,
1742     VK_BLEND_OP_SRC_OUT_EXT            = 1000148007,
1743     VK_BLEND_OP_DST_OUT_EXT            = 1000148008,
1744     VK_BLEND_OP_SRC_ATOP_EXT           = 1000148009,
1745     VK_BLEND_OP_DST_ATOP_EXT           = 1000148010,
1746     VK_BLEND_OP_XOR_EXT                = 1000148011,
1747     VK_BLEND_OP_MULTIPLY_EXT           = 1000148012,
1748     VK_BLEND_OP_SCREEN_EXT             = 1000148013,
1749     VK_BLEND_OP_OVERLAY_EXT            = 1000148014,
1750     VK_BLEND_OP_DARKEN_EXT             = 1000148015,
1751     VK_BLEND_OP_LIGHTEN_EXT            = 1000148016,
1752     VK_BLEND_OP_COLORDODGE_EXT         = 1000148017,
1753     VK_BLEND_OP_COLORBURN_EXT          = 1000148018,
1754     VK_BLEND_OP_HARDLIGHT_EXT          = 1000148019,
1755     VK_BLEND_OP_SOFTLIGHT_EXT          = 1000148020,
1756     VK_BLEND_OP_DIFFERENCE_EXT         = 1000148021,
1757     VK_BLEND_OP_EXCLUSION_EXT          = 1000148022,
1758     VK_BLEND_OP_INVERT_EXT             = 1000148023,
1759     VK_BLEND_OP_INVERT_RGB_EXT         = 1000148024,
1760     VK_BLEND_OP_LINEARDODGE_EXT        = 1000148025,
1761     VK_BLEND_OP_LINEARBURN_EXT         = 1000148026,
1762     VK_BLEND_OP_VIVIDLIGHT_EXT         = 1000148027,
1763     VK_BLEND_OP_LINEARLIGHT_EXT        = 1000148028,
1764     VK_BLEND_OP_PINLIGHT_EXT           = 1000148029,
1765     VK_BLEND_OP_HARDMIX_EXT            = 1000148030,
1766     VK_BLEND_OP_HSL_HUE_EXT            = 1000148031,
1767     VK_BLEND_OP_HSL_SATURATION_EXT     = 1000148032,
1768     VK_BLEND_OP_HSL_COLOR_EXT          = 1000148033,
1769     VK_BLEND_OP_HSL_LUMINOSITY_EXT     = 1000148034,
1770     VK_BLEND_OP_PLUS_EXT               = 1000148035,
1771     VK_BLEND_OP_PLUS_CLAMPED_EXT       = 1000148036,
1772     VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
1773     VK_BLEND_OP_PLUS_DARKER_EXT        = 1000148038,
1774     VK_BLEND_OP_MINUS_EXT              = 1000148039,
1775     VK_BLEND_OP_MINUS_CLAMPED_EXT      = 1000148040,
1776     VK_BLEND_OP_CONTRAST_EXT           = 1000148041,
1777     VK_BLEND_OP_INVERT_OVG_EXT         = 1000148042,
1778     VK_BLEND_OP_RED_EXT                = 1000148043,
1779     VK_BLEND_OP_GREEN_EXT              = 1000148044,
1780     VK_BLEND_OP_BLUE_EXT               = 1000148045,
1781 }
1782 enum VK_BLEND_OP_ADD                    = VkBlendOp.VK_BLEND_OP_ADD;
1783 enum VK_BLEND_OP_SUBTRACT               = VkBlendOp.VK_BLEND_OP_SUBTRACT;
1784 enum VK_BLEND_OP_REVERSE_SUBTRACT       = VkBlendOp.VK_BLEND_OP_REVERSE_SUBTRACT;
1785 enum VK_BLEND_OP_MIN                    = VkBlendOp.VK_BLEND_OP_MIN;
1786 enum VK_BLEND_OP_MAX                    = VkBlendOp.VK_BLEND_OP_MAX;
1787 enum VK_BLEND_OP_ZERO_EXT               = VkBlendOp.VK_BLEND_OP_ZERO_EXT;
1788 enum VK_BLEND_OP_SRC_EXT                = VkBlendOp.VK_BLEND_OP_SRC_EXT;
1789 enum VK_BLEND_OP_DST_EXT                = VkBlendOp.VK_BLEND_OP_DST_EXT;
1790 enum VK_BLEND_OP_SRC_OVER_EXT           = VkBlendOp.VK_BLEND_OP_SRC_OVER_EXT;
1791 enum VK_BLEND_OP_DST_OVER_EXT           = VkBlendOp.VK_BLEND_OP_DST_OVER_EXT;
1792 enum VK_BLEND_OP_SRC_IN_EXT             = VkBlendOp.VK_BLEND_OP_SRC_IN_EXT;
1793 enum VK_BLEND_OP_DST_IN_EXT             = VkBlendOp.VK_BLEND_OP_DST_IN_EXT;
1794 enum VK_BLEND_OP_SRC_OUT_EXT            = VkBlendOp.VK_BLEND_OP_SRC_OUT_EXT;
1795 enum VK_BLEND_OP_DST_OUT_EXT            = VkBlendOp.VK_BLEND_OP_DST_OUT_EXT;
1796 enum VK_BLEND_OP_SRC_ATOP_EXT           = VkBlendOp.VK_BLEND_OP_SRC_ATOP_EXT;
1797 enum VK_BLEND_OP_DST_ATOP_EXT           = VkBlendOp.VK_BLEND_OP_DST_ATOP_EXT;
1798 enum VK_BLEND_OP_XOR_EXT                = VkBlendOp.VK_BLEND_OP_XOR_EXT;
1799 enum VK_BLEND_OP_MULTIPLY_EXT           = VkBlendOp.VK_BLEND_OP_MULTIPLY_EXT;
1800 enum VK_BLEND_OP_SCREEN_EXT             = VkBlendOp.VK_BLEND_OP_SCREEN_EXT;
1801 enum VK_BLEND_OP_OVERLAY_EXT            = VkBlendOp.VK_BLEND_OP_OVERLAY_EXT;
1802 enum VK_BLEND_OP_DARKEN_EXT             = VkBlendOp.VK_BLEND_OP_DARKEN_EXT;
1803 enum VK_BLEND_OP_LIGHTEN_EXT            = VkBlendOp.VK_BLEND_OP_LIGHTEN_EXT;
1804 enum VK_BLEND_OP_COLORDODGE_EXT         = VkBlendOp.VK_BLEND_OP_COLORDODGE_EXT;
1805 enum VK_BLEND_OP_COLORBURN_EXT          = VkBlendOp.VK_BLEND_OP_COLORBURN_EXT;
1806 enum VK_BLEND_OP_HARDLIGHT_EXT          = VkBlendOp.VK_BLEND_OP_HARDLIGHT_EXT;
1807 enum VK_BLEND_OP_SOFTLIGHT_EXT          = VkBlendOp.VK_BLEND_OP_SOFTLIGHT_EXT;
1808 enum VK_BLEND_OP_DIFFERENCE_EXT         = VkBlendOp.VK_BLEND_OP_DIFFERENCE_EXT;
1809 enum VK_BLEND_OP_EXCLUSION_EXT          = VkBlendOp.VK_BLEND_OP_EXCLUSION_EXT;
1810 enum VK_BLEND_OP_INVERT_EXT             = VkBlendOp.VK_BLEND_OP_INVERT_EXT;
1811 enum VK_BLEND_OP_INVERT_RGB_EXT         = VkBlendOp.VK_BLEND_OP_INVERT_RGB_EXT;
1812 enum VK_BLEND_OP_LINEARDODGE_EXT        = VkBlendOp.VK_BLEND_OP_LINEARDODGE_EXT;
1813 enum VK_BLEND_OP_LINEARBURN_EXT         = VkBlendOp.VK_BLEND_OP_LINEARBURN_EXT;
1814 enum VK_BLEND_OP_VIVIDLIGHT_EXT         = VkBlendOp.VK_BLEND_OP_VIVIDLIGHT_EXT;
1815 enum VK_BLEND_OP_LINEARLIGHT_EXT        = VkBlendOp.VK_BLEND_OP_LINEARLIGHT_EXT;
1816 enum VK_BLEND_OP_PINLIGHT_EXT           = VkBlendOp.VK_BLEND_OP_PINLIGHT_EXT;
1817 enum VK_BLEND_OP_HARDMIX_EXT            = VkBlendOp.VK_BLEND_OP_HARDMIX_EXT;
1818 enum VK_BLEND_OP_HSL_HUE_EXT            = VkBlendOp.VK_BLEND_OP_HSL_HUE_EXT;
1819 enum VK_BLEND_OP_HSL_SATURATION_EXT     = VkBlendOp.VK_BLEND_OP_HSL_SATURATION_EXT;
1820 enum VK_BLEND_OP_HSL_COLOR_EXT          = VkBlendOp.VK_BLEND_OP_HSL_COLOR_EXT;
1821 enum VK_BLEND_OP_HSL_LUMINOSITY_EXT     = VkBlendOp.VK_BLEND_OP_HSL_LUMINOSITY_EXT;
1822 enum VK_BLEND_OP_PLUS_EXT               = VkBlendOp.VK_BLEND_OP_PLUS_EXT;
1823 enum VK_BLEND_OP_PLUS_CLAMPED_EXT       = VkBlendOp.VK_BLEND_OP_PLUS_CLAMPED_EXT;
1824 enum VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = VkBlendOp.VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT;
1825 enum VK_BLEND_OP_PLUS_DARKER_EXT        = VkBlendOp.VK_BLEND_OP_PLUS_DARKER_EXT;
1826 enum VK_BLEND_OP_MINUS_EXT              = VkBlendOp.VK_BLEND_OP_MINUS_EXT;
1827 enum VK_BLEND_OP_MINUS_CLAMPED_EXT      = VkBlendOp.VK_BLEND_OP_MINUS_CLAMPED_EXT;
1828 enum VK_BLEND_OP_CONTRAST_EXT           = VkBlendOp.VK_BLEND_OP_CONTRAST_EXT;
1829 enum VK_BLEND_OP_INVERT_OVG_EXT         = VkBlendOp.VK_BLEND_OP_INVERT_OVG_EXT;
1830 enum VK_BLEND_OP_RED_EXT                = VkBlendOp.VK_BLEND_OP_RED_EXT;
1831 enum VK_BLEND_OP_GREEN_EXT              = VkBlendOp.VK_BLEND_OP_GREEN_EXT;
1832 enum VK_BLEND_OP_BLUE_EXT               = VkBlendOp.VK_BLEND_OP_BLUE_EXT;
1833 
1834 enum VkColorComponentFlagBits : VkFlags {
1835     VK_COLOR_COMPONENT_R_BIT = 0x00000001,
1836     VK_COLOR_COMPONENT_G_BIT = 0x00000002,
1837     VK_COLOR_COMPONENT_B_BIT = 0x00000004,
1838     VK_COLOR_COMPONENT_A_BIT = 0x00000008,
1839 }
1840 enum VK_COLOR_COMPONENT_R_BIT = VkColorComponentFlagBits.VK_COLOR_COMPONENT_R_BIT;
1841 enum VK_COLOR_COMPONENT_G_BIT = VkColorComponentFlagBits.VK_COLOR_COMPONENT_G_BIT;
1842 enum VK_COLOR_COMPONENT_B_BIT = VkColorComponentFlagBits.VK_COLOR_COMPONENT_B_BIT;
1843 enum VK_COLOR_COMPONENT_A_BIT = VkColorComponentFlagBits.VK_COLOR_COMPONENT_A_BIT;
1844 
1845 enum VkDynamicState {
1846     VK_DYNAMIC_STATE_VIEWPORT              = 0,
1847     VK_DYNAMIC_STATE_SCISSOR               = 1,
1848     VK_DYNAMIC_STATE_LINE_WIDTH            = 2,
1849     VK_DYNAMIC_STATE_DEPTH_BIAS            = 3,
1850     VK_DYNAMIC_STATE_BLEND_CONSTANTS       = 4,
1851     VK_DYNAMIC_STATE_DEPTH_BOUNDS          = 5,
1852     VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK  = 6,
1853     VK_DYNAMIC_STATE_STENCIL_WRITE_MASK    = 7,
1854     VK_DYNAMIC_STATE_STENCIL_REFERENCE     = 8,
1855     VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1856     VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
1857     VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT  = 1000143000,
1858 }
1859 enum VK_DYNAMIC_STATE_VIEWPORT              = VkDynamicState.VK_DYNAMIC_STATE_VIEWPORT;
1860 enum VK_DYNAMIC_STATE_SCISSOR               = VkDynamicState.VK_DYNAMIC_STATE_SCISSOR;
1861 enum VK_DYNAMIC_STATE_LINE_WIDTH            = VkDynamicState.VK_DYNAMIC_STATE_LINE_WIDTH;
1862 enum VK_DYNAMIC_STATE_DEPTH_BIAS            = VkDynamicState.VK_DYNAMIC_STATE_DEPTH_BIAS;
1863 enum VK_DYNAMIC_STATE_BLEND_CONSTANTS       = VkDynamicState.VK_DYNAMIC_STATE_BLEND_CONSTANTS;
1864 enum VK_DYNAMIC_STATE_DEPTH_BOUNDS          = VkDynamicState.VK_DYNAMIC_STATE_DEPTH_BOUNDS;
1865 enum VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK  = VkDynamicState.VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK;
1866 enum VK_DYNAMIC_STATE_STENCIL_WRITE_MASK    = VkDynamicState.VK_DYNAMIC_STATE_STENCIL_WRITE_MASK;
1867 enum VK_DYNAMIC_STATE_STENCIL_REFERENCE     = VkDynamicState.VK_DYNAMIC_STATE_STENCIL_REFERENCE;
1868 enum VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = VkDynamicState.VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV;
1869 enum VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = VkDynamicState.VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT;
1870 enum VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT  = VkDynamicState.VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT;
1871 
1872 enum VkFilter {
1873     VK_FILTER_NEAREST   = 0,
1874     VK_FILTER_LINEAR    = 1,
1875     VK_FILTER_CUBIC_IMG = 1000015000,
1876 }
1877 enum VK_FILTER_NEAREST   = VkFilter.VK_FILTER_NEAREST;
1878 enum VK_FILTER_LINEAR    = VkFilter.VK_FILTER_LINEAR;
1879 enum VK_FILTER_CUBIC_IMG = VkFilter.VK_FILTER_CUBIC_IMG;
1880 
1881 enum VkSamplerMipmapMode {
1882     VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
1883     VK_SAMPLER_MIPMAP_MODE_LINEAR  = 1,
1884 }
1885 enum VK_SAMPLER_MIPMAP_MODE_NEAREST = VkSamplerMipmapMode.VK_SAMPLER_MIPMAP_MODE_NEAREST;
1886 enum VK_SAMPLER_MIPMAP_MODE_LINEAR  = VkSamplerMipmapMode.VK_SAMPLER_MIPMAP_MODE_LINEAR;
1887 
1888 enum VkSamplerAddressMode {
1889     VK_SAMPLER_ADDRESS_MODE_REPEAT               = 0,
1890     VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT      = 1,
1891     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE        = 2,
1892     VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER      = 3,
1893     VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
1894 }
1895 enum VK_SAMPLER_ADDRESS_MODE_REPEAT               = VkSamplerAddressMode.VK_SAMPLER_ADDRESS_MODE_REPEAT;
1896 enum VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT      = VkSamplerAddressMode.VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT;
1897 enum VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE        = VkSamplerAddressMode.VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
1898 enum VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER      = VkSamplerAddressMode.VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER;
1899 enum VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = VkSamplerAddressMode.VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE;
1900 
1901 enum VkBorderColor {
1902     VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
1903     VK_BORDER_COLOR_INT_TRANSPARENT_BLACK   = 1,
1904     VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK      = 2,
1905     VK_BORDER_COLOR_INT_OPAQUE_BLACK        = 3,
1906     VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE      = 4,
1907     VK_BORDER_COLOR_INT_OPAQUE_WHITE        = 5,
1908 }
1909 enum VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = VkBorderColor.VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK;
1910 enum VK_BORDER_COLOR_INT_TRANSPARENT_BLACK   = VkBorderColor.VK_BORDER_COLOR_INT_TRANSPARENT_BLACK;
1911 enum VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK      = VkBorderColor.VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK;
1912 enum VK_BORDER_COLOR_INT_OPAQUE_BLACK        = VkBorderColor.VK_BORDER_COLOR_INT_OPAQUE_BLACK;
1913 enum VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE      = VkBorderColor.VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE;
1914 enum VK_BORDER_COLOR_INT_OPAQUE_WHITE        = VkBorderColor.VK_BORDER_COLOR_INT_OPAQUE_WHITE;
1915 
1916 enum VkDescriptorSetLayoutCreateFlagBits : VkFlags {
1917     VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
1918 }
1919 enum VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = VkDescriptorSetLayoutCreateFlagBits.VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR;
1920 
1921 enum VkDescriptorType {
1922     VK_DESCRIPTOR_TYPE_SAMPLER                = 0,
1923     VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
1924     VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE          = 2,
1925     VK_DESCRIPTOR_TYPE_STORAGE_IMAGE          = 3,
1926     VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER   = 4,
1927     VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER   = 5,
1928     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER         = 6,
1929     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER         = 7,
1930     VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
1931     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
1932     VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT       = 10,
1933 }
1934 enum VK_DESCRIPTOR_TYPE_SAMPLER                = VkDescriptorType.VK_DESCRIPTOR_TYPE_SAMPLER;
1935 enum VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = VkDescriptorType.VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
1936 enum VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE          = VkDescriptorType.VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE;
1937 enum VK_DESCRIPTOR_TYPE_STORAGE_IMAGE          = VkDescriptorType.VK_DESCRIPTOR_TYPE_STORAGE_IMAGE;
1938 enum VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER   = VkDescriptorType.VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER;
1939 enum VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER   = VkDescriptorType.VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER;
1940 enum VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER         = VkDescriptorType.VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
1941 enum VK_DESCRIPTOR_TYPE_STORAGE_BUFFER         = VkDescriptorType.VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
1942 enum VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = VkDescriptorType.VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC;
1943 enum VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = VkDescriptorType.VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC;
1944 enum VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT       = VkDescriptorType.VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT;
1945 
1946 enum VkDescriptorPoolCreateFlagBits : VkFlags {
1947     VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
1948 }
1949 enum VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = VkDescriptorPoolCreateFlagBits.VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT;
1950 
1951 enum VkAttachmentDescriptionFlagBits : VkFlags {
1952     VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
1953 }
1954 enum VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = VkAttachmentDescriptionFlagBits.VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT;
1955 
1956 enum VkAttachmentLoadOp {
1957     VK_ATTACHMENT_LOAD_OP_LOAD      = 0,
1958     VK_ATTACHMENT_LOAD_OP_CLEAR     = 1,
1959     VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
1960 }
1961 enum VK_ATTACHMENT_LOAD_OP_LOAD      = VkAttachmentLoadOp.VK_ATTACHMENT_LOAD_OP_LOAD;
1962 enum VK_ATTACHMENT_LOAD_OP_CLEAR     = VkAttachmentLoadOp.VK_ATTACHMENT_LOAD_OP_CLEAR;
1963 enum VK_ATTACHMENT_LOAD_OP_DONT_CARE = VkAttachmentLoadOp.VK_ATTACHMENT_LOAD_OP_DONT_CARE;
1964 
1965 enum VkAttachmentStoreOp {
1966     VK_ATTACHMENT_STORE_OP_STORE     = 0,
1967     VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
1968 }
1969 enum VK_ATTACHMENT_STORE_OP_STORE     = VkAttachmentStoreOp.VK_ATTACHMENT_STORE_OP_STORE;
1970 enum VK_ATTACHMENT_STORE_OP_DONT_CARE = VkAttachmentStoreOp.VK_ATTACHMENT_STORE_OP_DONT_CARE;
1971 
1972 enum VkSubpassDescriptionFlagBits : VkFlags {
1973     VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX      = 0x00000001,
1974     VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
1975 }
1976 enum VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX      = VkSubpassDescriptionFlagBits.VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX;
1977 enum VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = VkSubpassDescriptionFlagBits.VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX;
1978 
1979 enum VkPipelineBindPoint {
1980     VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
1981     VK_PIPELINE_BIND_POINT_COMPUTE  = 1,
1982 }
1983 enum VK_PIPELINE_BIND_POINT_GRAPHICS = VkPipelineBindPoint.VK_PIPELINE_BIND_POINT_GRAPHICS;
1984 enum VK_PIPELINE_BIND_POINT_COMPUTE  = VkPipelineBindPoint.VK_PIPELINE_BIND_POINT_COMPUTE;
1985 
1986 enum VkAccessFlagBits : VkFlags {
1987     VK_ACCESS_INDIRECT_COMMAND_READ_BIT                 = 0x00000001,
1988     VK_ACCESS_INDEX_READ_BIT                            = 0x00000002,
1989     VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT                 = 0x00000004,
1990     VK_ACCESS_UNIFORM_READ_BIT                          = 0x00000008,
1991     VK_ACCESS_INPUT_ATTACHMENT_READ_BIT                 = 0x00000010,
1992     VK_ACCESS_SHADER_READ_BIT                           = 0x00000020,
1993     VK_ACCESS_SHADER_WRITE_BIT                          = 0x00000040,
1994     VK_ACCESS_COLOR_ATTACHMENT_READ_BIT                 = 0x00000080,
1995     VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT                = 0x00000100,
1996     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT         = 0x00000200,
1997     VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT        = 0x00000400,
1998     VK_ACCESS_TRANSFER_READ_BIT                         = 0x00000800,
1999     VK_ACCESS_TRANSFER_WRITE_BIT                        = 0x00001000,
2000     VK_ACCESS_HOST_READ_BIT                             = 0x00002000,
2001     VK_ACCESS_HOST_WRITE_BIT                            = 0x00004000,
2002     VK_ACCESS_MEMORY_READ_BIT                           = 0x00008000,
2003     VK_ACCESS_MEMORY_WRITE_BIT                          = 0x00010000,
2004     VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX              = 0x00020000,
2005     VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX             = 0x00040000,
2006     VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
2007 }
2008 enum VK_ACCESS_INDIRECT_COMMAND_READ_BIT                 = VkAccessFlagBits.VK_ACCESS_INDIRECT_COMMAND_READ_BIT;
2009 enum VK_ACCESS_INDEX_READ_BIT                            = VkAccessFlagBits.VK_ACCESS_INDEX_READ_BIT;
2010 enum VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT                 = VkAccessFlagBits.VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT;
2011 enum VK_ACCESS_UNIFORM_READ_BIT                          = VkAccessFlagBits.VK_ACCESS_UNIFORM_READ_BIT;
2012 enum VK_ACCESS_INPUT_ATTACHMENT_READ_BIT                 = VkAccessFlagBits.VK_ACCESS_INPUT_ATTACHMENT_READ_BIT;
2013 enum VK_ACCESS_SHADER_READ_BIT                           = VkAccessFlagBits.VK_ACCESS_SHADER_READ_BIT;
2014 enum VK_ACCESS_SHADER_WRITE_BIT                          = VkAccessFlagBits.VK_ACCESS_SHADER_WRITE_BIT;
2015 enum VK_ACCESS_COLOR_ATTACHMENT_READ_BIT                 = VkAccessFlagBits.VK_ACCESS_COLOR_ATTACHMENT_READ_BIT;
2016 enum VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT                = VkAccessFlagBits.VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
2017 enum VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT         = VkAccessFlagBits.VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT;
2018 enum VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT        = VkAccessFlagBits.VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT;
2019 enum VK_ACCESS_TRANSFER_READ_BIT                         = VkAccessFlagBits.VK_ACCESS_TRANSFER_READ_BIT;
2020 enum VK_ACCESS_TRANSFER_WRITE_BIT                        = VkAccessFlagBits.VK_ACCESS_TRANSFER_WRITE_BIT;
2021 enum VK_ACCESS_HOST_READ_BIT                             = VkAccessFlagBits.VK_ACCESS_HOST_READ_BIT;
2022 enum VK_ACCESS_HOST_WRITE_BIT                            = VkAccessFlagBits.VK_ACCESS_HOST_WRITE_BIT;
2023 enum VK_ACCESS_MEMORY_READ_BIT                           = VkAccessFlagBits.VK_ACCESS_MEMORY_READ_BIT;
2024 enum VK_ACCESS_MEMORY_WRITE_BIT                          = VkAccessFlagBits.VK_ACCESS_MEMORY_WRITE_BIT;
2025 enum VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX              = VkAccessFlagBits.VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX;
2026 enum VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX             = VkAccessFlagBits.VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX;
2027 enum VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = VkAccessFlagBits.VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT;
2028 
2029 enum VkDependencyFlagBits : VkFlags {
2030     VK_DEPENDENCY_BY_REGION_BIT        = 0x00000001,
2031     VK_DEPENDENCY_VIEW_LOCAL_BIT_KHX   = 0x00000002,
2032     VK_DEPENDENCY_DEVICE_GROUP_BIT_KHX = 0x00000004,
2033 }
2034 enum VK_DEPENDENCY_BY_REGION_BIT        = VkDependencyFlagBits.VK_DEPENDENCY_BY_REGION_BIT;
2035 enum VK_DEPENDENCY_VIEW_LOCAL_BIT_KHX   = VkDependencyFlagBits.VK_DEPENDENCY_VIEW_LOCAL_BIT_KHX;
2036 enum VK_DEPENDENCY_DEVICE_GROUP_BIT_KHX = VkDependencyFlagBits.VK_DEPENDENCY_DEVICE_GROUP_BIT_KHX;
2037 
2038 enum VkCommandPoolCreateFlagBits : VkFlags {
2039     VK_COMMAND_POOL_CREATE_TRANSIENT_BIT            = 0x00000001,
2040     VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
2041 }
2042 enum VK_COMMAND_POOL_CREATE_TRANSIENT_BIT            = VkCommandPoolCreateFlagBits.VK_COMMAND_POOL_CREATE_TRANSIENT_BIT;
2043 enum VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = VkCommandPoolCreateFlagBits.VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT;
2044 
2045 enum VkCommandPoolResetFlagBits : VkFlags {
2046     VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
2047 }
2048 enum VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = VkCommandPoolResetFlagBits.VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT;
2049 
2050 enum VkCommandBufferLevel {
2051     VK_COMMAND_BUFFER_LEVEL_PRIMARY   = 0,
2052     VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
2053 }
2054 enum VK_COMMAND_BUFFER_LEVEL_PRIMARY   = VkCommandBufferLevel.VK_COMMAND_BUFFER_LEVEL_PRIMARY;
2055 enum VK_COMMAND_BUFFER_LEVEL_SECONDARY = VkCommandBufferLevel.VK_COMMAND_BUFFER_LEVEL_SECONDARY;
2056 
2057 enum VkCommandBufferUsageFlagBits : VkFlags {
2058     VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT      = 0x00000001,
2059     VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2060     VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT     = 0x00000004,
2061 }
2062 enum VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT      = VkCommandBufferUsageFlagBits.VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
2063 enum VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = VkCommandBufferUsageFlagBits.VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT;
2064 enum VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT     = VkCommandBufferUsageFlagBits.VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT;
2065 
2066 enum VkQueryControlFlagBits : VkFlags {
2067     VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
2068 }
2069 enum VK_QUERY_CONTROL_PRECISE_BIT = VkQueryControlFlagBits.VK_QUERY_CONTROL_PRECISE_BIT;
2070 
2071 enum VkCommandBufferResetFlagBits : VkFlags {
2072     VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
2073 }
2074 enum VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = VkCommandBufferResetFlagBits.VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT;
2075 
2076 enum VkStencilFaceFlagBits : VkFlags {
2077     VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
2078     VK_STENCIL_FACE_BACK_BIT  = 0x00000002,
2079     VK_STENCIL_FRONT_AND_BACK = 0x00000003,
2080 }
2081 enum VK_STENCIL_FACE_FRONT_BIT = VkStencilFaceFlagBits.VK_STENCIL_FACE_FRONT_BIT;
2082 enum VK_STENCIL_FACE_BACK_BIT  = VkStencilFaceFlagBits.VK_STENCIL_FACE_BACK_BIT;
2083 enum VK_STENCIL_FRONT_AND_BACK = VkStencilFaceFlagBits.VK_STENCIL_FRONT_AND_BACK;
2084 
2085 enum VkIndexType {
2086     VK_INDEX_TYPE_UINT16 = 0,
2087     VK_INDEX_TYPE_UINT32 = 1,
2088 }
2089 enum VK_INDEX_TYPE_UINT16 = VkIndexType.VK_INDEX_TYPE_UINT16;
2090 enum VK_INDEX_TYPE_UINT32 = VkIndexType.VK_INDEX_TYPE_UINT32;
2091 
2092 enum VkSubpassContents {
2093     VK_SUBPASS_CONTENTS_INLINE                    = 0,
2094     VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
2095 }
2096 enum VK_SUBPASS_CONTENTS_INLINE                    = VkSubpassContents.VK_SUBPASS_CONTENTS_INLINE;
2097 enum VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = VkSubpassContents.VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS;
2098 
2099 enum VkObjectType {
2100     VK_OBJECT_TYPE_UNKNOWN                        = 0,
2101     VK_OBJECT_TYPE_INSTANCE                       = 1,
2102     VK_OBJECT_TYPE_PHYSICAL_DEVICE                = 2,
2103     VK_OBJECT_TYPE_DEVICE                         = 3,
2104     VK_OBJECT_TYPE_QUEUE                          = 4,
2105     VK_OBJECT_TYPE_SEMAPHORE                      = 5,
2106     VK_OBJECT_TYPE_COMMAND_BUFFER                 = 6,
2107     VK_OBJECT_TYPE_FENCE                          = 7,
2108     VK_OBJECT_TYPE_DEVICE_MEMORY                  = 8,
2109     VK_OBJECT_TYPE_BUFFER                         = 9,
2110     VK_OBJECT_TYPE_IMAGE                          = 10,
2111     VK_OBJECT_TYPE_EVENT                          = 11,
2112     VK_OBJECT_TYPE_QUERY_POOL                     = 12,
2113     VK_OBJECT_TYPE_BUFFER_VIEW                    = 13,
2114     VK_OBJECT_TYPE_IMAGE_VIEW                     = 14,
2115     VK_OBJECT_TYPE_SHADER_MODULE                  = 15,
2116     VK_OBJECT_TYPE_PIPELINE_CACHE                 = 16,
2117     VK_OBJECT_TYPE_PIPELINE_LAYOUT                = 17,
2118     VK_OBJECT_TYPE_RENDER_PASS                    = 18,
2119     VK_OBJECT_TYPE_PIPELINE                       = 19,
2120     VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT          = 20,
2121     VK_OBJECT_TYPE_SAMPLER                        = 21,
2122     VK_OBJECT_TYPE_DESCRIPTOR_POOL                = 22,
2123     VK_OBJECT_TYPE_DESCRIPTOR_SET                 = 23,
2124     VK_OBJECT_TYPE_FRAMEBUFFER                    = 24,
2125     VK_OBJECT_TYPE_COMMAND_POOL                   = 25,
2126     VK_OBJECT_TYPE_SURFACE_KHR                    = 1000000000,
2127     VK_OBJECT_TYPE_SWAPCHAIN_KHR                  = 1000001000,
2128     VK_OBJECT_TYPE_DISPLAY_KHR                    = 1000002000,
2129     VK_OBJECT_TYPE_DISPLAY_MODE_KHR               = 1000002001,
2130     VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT      = 1000011000,
2131     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000,
2132     VK_OBJECT_TYPE_OBJECT_TABLE_NVX               = 1000086000,
2133     VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX   = 1000086001,
2134     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR   = 1000156000,
2135     VK_OBJECT_TYPE_VALIDATION_CACHE_EXT           = 1000160000,
2136 }
2137 enum VK_OBJECT_TYPE_UNKNOWN                        = VkObjectType.VK_OBJECT_TYPE_UNKNOWN;
2138 enum VK_OBJECT_TYPE_INSTANCE                       = VkObjectType.VK_OBJECT_TYPE_INSTANCE;
2139 enum VK_OBJECT_TYPE_PHYSICAL_DEVICE                = VkObjectType.VK_OBJECT_TYPE_PHYSICAL_DEVICE;
2140 enum VK_OBJECT_TYPE_DEVICE                         = VkObjectType.VK_OBJECT_TYPE_DEVICE;
2141 enum VK_OBJECT_TYPE_QUEUE                          = VkObjectType.VK_OBJECT_TYPE_QUEUE;
2142 enum VK_OBJECT_TYPE_SEMAPHORE                      = VkObjectType.VK_OBJECT_TYPE_SEMAPHORE;
2143 enum VK_OBJECT_TYPE_COMMAND_BUFFER                 = VkObjectType.VK_OBJECT_TYPE_COMMAND_BUFFER;
2144 enum VK_OBJECT_TYPE_FENCE                          = VkObjectType.VK_OBJECT_TYPE_FENCE;
2145 enum VK_OBJECT_TYPE_DEVICE_MEMORY                  = VkObjectType.VK_OBJECT_TYPE_DEVICE_MEMORY;
2146 enum VK_OBJECT_TYPE_BUFFER                         = VkObjectType.VK_OBJECT_TYPE_BUFFER;
2147 enum VK_OBJECT_TYPE_IMAGE                          = VkObjectType.VK_OBJECT_TYPE_IMAGE;
2148 enum VK_OBJECT_TYPE_EVENT                          = VkObjectType.VK_OBJECT_TYPE_EVENT;
2149 enum VK_OBJECT_TYPE_QUERY_POOL                     = VkObjectType.VK_OBJECT_TYPE_QUERY_POOL;
2150 enum VK_OBJECT_TYPE_BUFFER_VIEW                    = VkObjectType.VK_OBJECT_TYPE_BUFFER_VIEW;
2151 enum VK_OBJECT_TYPE_IMAGE_VIEW                     = VkObjectType.VK_OBJECT_TYPE_IMAGE_VIEW;
2152 enum VK_OBJECT_TYPE_SHADER_MODULE                  = VkObjectType.VK_OBJECT_TYPE_SHADER_MODULE;
2153 enum VK_OBJECT_TYPE_PIPELINE_CACHE                 = VkObjectType.VK_OBJECT_TYPE_PIPELINE_CACHE;
2154 enum VK_OBJECT_TYPE_PIPELINE_LAYOUT                = VkObjectType.VK_OBJECT_TYPE_PIPELINE_LAYOUT;
2155 enum VK_OBJECT_TYPE_RENDER_PASS                    = VkObjectType.VK_OBJECT_TYPE_RENDER_PASS;
2156 enum VK_OBJECT_TYPE_PIPELINE                       = VkObjectType.VK_OBJECT_TYPE_PIPELINE;
2157 enum VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT          = VkObjectType.VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT;
2158 enum VK_OBJECT_TYPE_SAMPLER                        = VkObjectType.VK_OBJECT_TYPE_SAMPLER;
2159 enum VK_OBJECT_TYPE_DESCRIPTOR_POOL                = VkObjectType.VK_OBJECT_TYPE_DESCRIPTOR_POOL;
2160 enum VK_OBJECT_TYPE_DESCRIPTOR_SET                 = VkObjectType.VK_OBJECT_TYPE_DESCRIPTOR_SET;
2161 enum VK_OBJECT_TYPE_FRAMEBUFFER                    = VkObjectType.VK_OBJECT_TYPE_FRAMEBUFFER;
2162 enum VK_OBJECT_TYPE_COMMAND_POOL                   = VkObjectType.VK_OBJECT_TYPE_COMMAND_POOL;
2163 enum VK_OBJECT_TYPE_SURFACE_KHR                    = VkObjectType.VK_OBJECT_TYPE_SURFACE_KHR;
2164 enum VK_OBJECT_TYPE_SWAPCHAIN_KHR                  = VkObjectType.VK_OBJECT_TYPE_SWAPCHAIN_KHR;
2165 enum VK_OBJECT_TYPE_DISPLAY_KHR                    = VkObjectType.VK_OBJECT_TYPE_DISPLAY_KHR;
2166 enum VK_OBJECT_TYPE_DISPLAY_MODE_KHR               = VkObjectType.VK_OBJECT_TYPE_DISPLAY_MODE_KHR;
2167 enum VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT      = VkObjectType.VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT;
2168 enum VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VkObjectType.VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR;
2169 enum VK_OBJECT_TYPE_OBJECT_TABLE_NVX               = VkObjectType.VK_OBJECT_TYPE_OBJECT_TABLE_NVX;
2170 enum VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX   = VkObjectType.VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX;
2171 enum VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR   = VkObjectType.VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR;
2172 enum VK_OBJECT_TYPE_VALIDATION_CACHE_EXT           = VkObjectType.VK_OBJECT_TYPE_VALIDATION_CACHE_EXT;
2173 
2174 enum VkSurfaceTransformFlagBitsKHR {
2175     VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR                     = 0x00000001,
2176     VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR                    = 0x00000002,
2177     VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR                   = 0x00000004,
2178     VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR                   = 0x00000008,
2179     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR            = 0x00000010,
2180     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR  = 0x00000020,
2181     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
2182     VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
2183     VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR                      = 0x00000100,
2184 }
2185 enum VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR                     = VkSurfaceTransformFlagBitsKHR.VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR;
2186 enum VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR                    = VkSurfaceTransformFlagBitsKHR.VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR;
2187 enum VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR                   = VkSurfaceTransformFlagBitsKHR.VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR;
2188 enum VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR                   = VkSurfaceTransformFlagBitsKHR.VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR;
2189 enum VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR            = VkSurfaceTransformFlagBitsKHR.VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR;
2190 enum VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR  = VkSurfaceTransformFlagBitsKHR.VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR;
2191 enum VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = VkSurfaceTransformFlagBitsKHR.VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR;
2192 enum VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = VkSurfaceTransformFlagBitsKHR.VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR;
2193 enum VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR                      = VkSurfaceTransformFlagBitsKHR.VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR;
2194 
2195 enum VkCompositeAlphaFlagBitsKHR {
2196     VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR          = 0x00000001,
2197     VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR  = 0x00000002,
2198     VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
2199     VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR         = 0x00000008,
2200 }
2201 enum VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR          = VkCompositeAlphaFlagBitsKHR.VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR;
2202 enum VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR  = VkCompositeAlphaFlagBitsKHR.VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR;
2203 enum VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = VkCompositeAlphaFlagBitsKHR.VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR;
2204 enum VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR         = VkCompositeAlphaFlagBitsKHR.VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR;
2205 
2206 enum VkColorSpaceKHR {
2207     VK_COLOR_SPACE_SRGB_NONLINEAR_KHR          = 0,
2208     VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT    = 1000104001,
2209     VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT    = 1000104002,
2210     VK_COLOR_SPACE_DCI_P3_LINEAR_EXT           = 1000104003,
2211     VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT        = 1000104004,
2212     VK_COLOR_SPACE_BT709_LINEAR_EXT            = 1000104005,
2213     VK_COLOR_SPACE_BT709_NONLINEAR_EXT         = 1000104006,
2214     VK_COLOR_SPACE_BT2020_LINEAR_EXT           = 1000104007,
2215     VK_COLOR_SPACE_HDR10_ST2084_EXT            = 1000104008,
2216     VK_COLOR_SPACE_DOLBYVISION_EXT             = 1000104009,
2217     VK_COLOR_SPACE_HDR10_HLG_EXT               = 1000104010,
2218     VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT         = 1000104011,
2219     VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT      = 1000104012,
2220     VK_COLOR_SPACE_PASS_THROUGH_EXT            = 1000104013,
2221     VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
2222 }
2223 enum VK_COLOR_SPACE_SRGB_NONLINEAR_KHR          = VkColorSpaceKHR.VK_COLOR_SPACE_SRGB_NONLINEAR_KHR;
2224 enum VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT    = VkColorSpaceKHR.VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT;
2225 enum VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT    = VkColorSpaceKHR.VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT;
2226 enum VK_COLOR_SPACE_DCI_P3_LINEAR_EXT           = VkColorSpaceKHR.VK_COLOR_SPACE_DCI_P3_LINEAR_EXT;
2227 enum VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT        = VkColorSpaceKHR.VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT;
2228 enum VK_COLOR_SPACE_BT709_LINEAR_EXT            = VkColorSpaceKHR.VK_COLOR_SPACE_BT709_LINEAR_EXT;
2229 enum VK_COLOR_SPACE_BT709_NONLINEAR_EXT         = VkColorSpaceKHR.VK_COLOR_SPACE_BT709_NONLINEAR_EXT;
2230 enum VK_COLOR_SPACE_BT2020_LINEAR_EXT           = VkColorSpaceKHR.VK_COLOR_SPACE_BT2020_LINEAR_EXT;
2231 enum VK_COLOR_SPACE_HDR10_ST2084_EXT            = VkColorSpaceKHR.VK_COLOR_SPACE_HDR10_ST2084_EXT;
2232 enum VK_COLOR_SPACE_DOLBYVISION_EXT             = VkColorSpaceKHR.VK_COLOR_SPACE_DOLBYVISION_EXT;
2233 enum VK_COLOR_SPACE_HDR10_HLG_EXT               = VkColorSpaceKHR.VK_COLOR_SPACE_HDR10_HLG_EXT;
2234 enum VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT         = VkColorSpaceKHR.VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT;
2235 enum VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT      = VkColorSpaceKHR.VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT;
2236 enum VK_COLOR_SPACE_PASS_THROUGH_EXT            = VkColorSpaceKHR.VK_COLOR_SPACE_PASS_THROUGH_EXT;
2237 enum VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = VkColorSpaceKHR.VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT;
2238 
2239 enum VkPresentModeKHR {
2240     VK_PRESENT_MODE_IMMEDIATE_KHR                 = 0,
2241     VK_PRESENT_MODE_MAILBOX_KHR                   = 1,
2242     VK_PRESENT_MODE_FIFO_KHR                      = 2,
2243     VK_PRESENT_MODE_FIFO_RELAXED_KHR              = 3,
2244     VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR     = 1000111000,
2245     VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
2246 }
2247 enum VK_PRESENT_MODE_IMMEDIATE_KHR                 = VkPresentModeKHR.VK_PRESENT_MODE_IMMEDIATE_KHR;
2248 enum VK_PRESENT_MODE_MAILBOX_KHR                   = VkPresentModeKHR.VK_PRESENT_MODE_MAILBOX_KHR;
2249 enum VK_PRESENT_MODE_FIFO_KHR                      = VkPresentModeKHR.VK_PRESENT_MODE_FIFO_KHR;
2250 enum VK_PRESENT_MODE_FIFO_RELAXED_KHR              = VkPresentModeKHR.VK_PRESENT_MODE_FIFO_RELAXED_KHR;
2251 enum VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR     = VkPresentModeKHR.VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR;
2252 enum VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = VkPresentModeKHR.VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR;
2253 
2254 enum VkSwapchainCreateFlagBitsKHR {
2255     VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHX = 0x00000001,
2256 }
2257 enum VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHX = VkSwapchainCreateFlagBitsKHR.VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHX;
2258 
2259 enum VkDisplayPlaneAlphaFlagBitsKHR {
2260     VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR                  = 0x00000001,
2261     VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR                  = 0x00000002,
2262     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR               = 0x00000004,
2263     VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
2264 }
2265 enum VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR                  = VkDisplayPlaneAlphaFlagBitsKHR.VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR;
2266 enum VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR                  = VkDisplayPlaneAlphaFlagBitsKHR.VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR;
2267 enum VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR               = VkDisplayPlaneAlphaFlagBitsKHR.VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR;
2268 enum VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = VkDisplayPlaneAlphaFlagBitsKHR.VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR;
2269 
2270 
2271 // Structures
2272 
2273 struct VkApplicationInfo {
2274     VkStructureType sType;
2275     const(void)*    pNext;
2276     const(char)*    pApplicationName;
2277     uint32_t        applicationVersion;
2278     const(char)*    pEngineName;
2279     uint32_t        engineVersion;
2280     uint32_t        apiVersion;
2281 }
2282 struct VkInstanceCreateInfo {
2283     VkStructureType           sType;
2284     const(void)*              pNext;
2285     VkInstanceCreateFlags     flags;
2286     const(VkApplicationInfo)* pApplicationInfo;
2287     uint32_t                  enabledLayerCount;
2288     const(char*)*             ppEnabledLayerNames;
2289     uint32_t                  enabledExtensionCount;
2290     const(char*)*             ppEnabledExtensionNames;
2291 }
2292 struct VkAllocationCallbacks {
2293     void*                                pUserData;
2294     PFN_vkAllocationFunction             pfnAllocation;
2295     PFN_vkReallocationFunction           pfnReallocation;
2296     PFN_vkFreeFunction                   pfnFree;
2297     PFN_vkInternalAllocationNotification pfnInternalAllocation;
2298     PFN_vkInternalFreeNotification       pfnInternalFree;
2299 }
2300 struct VkPhysicalDeviceFeatures {
2301     VkBool32 robustBufferAccess;
2302     VkBool32 fullDrawIndexUint32;
2303     VkBool32 imageCubeArray;
2304     VkBool32 independentBlend;
2305     VkBool32 geometryShader;
2306     VkBool32 tessellationShader;
2307     VkBool32 sampleRateShading;
2308     VkBool32 dualSrcBlend;
2309     VkBool32 logicOp;
2310     VkBool32 multiDrawIndirect;
2311     VkBool32 drawIndirectFirstInstance;
2312     VkBool32 depthClamp;
2313     VkBool32 depthBiasClamp;
2314     VkBool32 fillModeNonSolid;
2315     VkBool32 depthBounds;
2316     VkBool32 wideLines;
2317     VkBool32 largePoints;
2318     VkBool32 alphaToOne;
2319     VkBool32 multiViewport;
2320     VkBool32 samplerAnisotropy;
2321     VkBool32 textureCompressionETC2;
2322     VkBool32 textureCompressionASTC_LDR;
2323     VkBool32 textureCompressionBC;
2324     VkBool32 occlusionQueryPrecise;
2325     VkBool32 pipelineStatisticsQuery;
2326     VkBool32 vertexPipelineStoresAndAtomics;
2327     VkBool32 fragmentStoresAndAtomics;
2328     VkBool32 shaderTessellationAndGeometryPointSize;
2329     VkBool32 shaderImageGatherExtended;
2330     VkBool32 shaderStorageImageExtendedFormats;
2331     VkBool32 shaderStorageImageMultisample;
2332     VkBool32 shaderStorageImageReadWithoutFormat;
2333     VkBool32 shaderStorageImageWriteWithoutFormat;
2334     VkBool32 shaderUniformBufferArrayDynamicIndexing;
2335     VkBool32 shaderSampledImageArrayDynamicIndexing;
2336     VkBool32 shaderStorageBufferArrayDynamicIndexing;
2337     VkBool32 shaderStorageImageArrayDynamicIndexing;
2338     VkBool32 shaderClipDistance;
2339     VkBool32 shaderCullDistance;
2340     VkBool32 shaderFloat64;
2341     VkBool32 shaderInt64;
2342     VkBool32 shaderInt16;
2343     VkBool32 shaderResourceResidency;
2344     VkBool32 shaderResourceMinLod;
2345     VkBool32 sparseBinding;
2346     VkBool32 sparseResidencyBuffer;
2347     VkBool32 sparseResidencyImage2D;
2348     VkBool32 sparseResidencyImage3D;
2349     VkBool32 sparseResidency2Samples;
2350     VkBool32 sparseResidency4Samples;
2351     VkBool32 sparseResidency8Samples;
2352     VkBool32 sparseResidency16Samples;
2353     VkBool32 sparseResidencyAliased;
2354     VkBool32 variableMultisampleRate;
2355     VkBool32 inheritedQueries;
2356 }
2357 struct VkFormatProperties {
2358     VkFormatFeatureFlags linearTilingFeatures;
2359     VkFormatFeatureFlags optimalTilingFeatures;
2360     VkFormatFeatureFlags bufferFeatures;
2361 }
2362 struct VkExtent3D {
2363     uint32_t width;
2364     uint32_t height;
2365     uint32_t depth;
2366 }
2367 struct VkImageFormatProperties {
2368     VkExtent3D         maxExtent;
2369     uint32_t           maxMipLevels;
2370     uint32_t           maxArrayLayers;
2371     VkSampleCountFlags sampleCounts;
2372     VkDeviceSize       maxResourceSize;
2373 }
2374 struct VkPhysicalDeviceLimits {
2375     uint32_t           maxImageDimension1D;
2376     uint32_t           maxImageDimension2D;
2377     uint32_t           maxImageDimension3D;
2378     uint32_t           maxImageDimensionCube;
2379     uint32_t           maxImageArrayLayers;
2380     uint32_t           maxTexelBufferElements;
2381     uint32_t           maxUniformBufferRange;
2382     uint32_t           maxStorageBufferRange;
2383     uint32_t           maxPushConstantsSize;
2384     uint32_t           maxMemoryAllocationCount;
2385     uint32_t           maxSamplerAllocationCount;
2386     VkDeviceSize       bufferImageGranularity;
2387     VkDeviceSize       sparseAddressSpaceSize;
2388     uint32_t           maxBoundDescriptorSets;
2389     uint32_t           maxPerStageDescriptorSamplers;
2390     uint32_t           maxPerStageDescriptorUniformBuffers;
2391     uint32_t           maxPerStageDescriptorStorageBuffers;
2392     uint32_t           maxPerStageDescriptorSampledImages;
2393     uint32_t           maxPerStageDescriptorStorageImages;
2394     uint32_t           maxPerStageDescriptorInputAttachments;
2395     uint32_t           maxPerStageResources;
2396     uint32_t           maxDescriptorSetSamplers;
2397     uint32_t           maxDescriptorSetUniformBuffers;
2398     uint32_t           maxDescriptorSetUniformBuffersDynamic;
2399     uint32_t           maxDescriptorSetStorageBuffers;
2400     uint32_t           maxDescriptorSetStorageBuffersDynamic;
2401     uint32_t           maxDescriptorSetSampledImages;
2402     uint32_t           maxDescriptorSetStorageImages;
2403     uint32_t           maxDescriptorSetInputAttachments;
2404     uint32_t           maxVertexInputAttributes;
2405     uint32_t           maxVertexInputBindings;
2406     uint32_t           maxVertexInputAttributeOffset;
2407     uint32_t           maxVertexInputBindingStride;
2408     uint32_t           maxVertexOutputComponents;
2409     uint32_t           maxTessellationGenerationLevel;
2410     uint32_t           maxTessellationPatchSize;
2411     uint32_t           maxTessellationControlPerVertexInputComponents;
2412     uint32_t           maxTessellationControlPerVertexOutputComponents;
2413     uint32_t           maxTessellationControlPerPatchOutputComponents;
2414     uint32_t           maxTessellationControlTotalOutputComponents;
2415     uint32_t           maxTessellationEvaluationInputComponents;
2416     uint32_t           maxTessellationEvaluationOutputComponents;
2417     uint32_t           maxGeometryShaderInvocations;
2418     uint32_t           maxGeometryInputComponents;
2419     uint32_t           maxGeometryOutputComponents;
2420     uint32_t           maxGeometryOutputVertices;
2421     uint32_t           maxGeometryTotalOutputComponents;
2422     uint32_t           maxFragmentInputComponents;
2423     uint32_t           maxFragmentOutputAttachments;
2424     uint32_t           maxFragmentDualSrcAttachments;
2425     uint32_t           maxFragmentCombinedOutputResources;
2426     uint32_t           maxComputeSharedMemorySize;
2427     uint32_t[3]        maxComputeWorkGroupCount;
2428     uint32_t           maxComputeWorkGroupInvocations;
2429     uint32_t[3]        maxComputeWorkGroupSize;
2430     uint32_t           subPixelPrecisionBits;
2431     uint32_t           subTexelPrecisionBits;
2432     uint32_t           mipmapPrecisionBits;
2433     uint32_t           maxDrawIndexedIndexValue;
2434     uint32_t           maxDrawIndirectCount;
2435     float              maxSamplerLodBias;
2436     float              maxSamplerAnisotropy;
2437     uint32_t           maxViewports;
2438     uint32_t[2]        maxViewportDimensions;
2439     float[2]           viewportBoundsRange;
2440     uint32_t           viewportSubPixelBits;
2441     size_t             minMemoryMapAlignment;
2442     VkDeviceSize       minTexelBufferOffsetAlignment;
2443     VkDeviceSize       minUniformBufferOffsetAlignment;
2444     VkDeviceSize       minStorageBufferOffsetAlignment;
2445     int32_t            minTexelOffset;
2446     uint32_t           maxTexelOffset;
2447     int32_t            minTexelGatherOffset;
2448     uint32_t           maxTexelGatherOffset;
2449     float              minInterpolationOffset;
2450     float              maxInterpolationOffset;
2451     uint32_t           subPixelInterpolationOffsetBits;
2452     uint32_t           maxFramebufferWidth;
2453     uint32_t           maxFramebufferHeight;
2454     uint32_t           maxFramebufferLayers;
2455     VkSampleCountFlags framebufferColorSampleCounts;
2456     VkSampleCountFlags framebufferDepthSampleCounts;
2457     VkSampleCountFlags framebufferStencilSampleCounts;
2458     VkSampleCountFlags framebufferNoAttachmentsSampleCounts;
2459     uint32_t           maxColorAttachments;
2460     VkSampleCountFlags sampledImageColorSampleCounts;
2461     VkSampleCountFlags sampledImageIntegerSampleCounts;
2462     VkSampleCountFlags sampledImageDepthSampleCounts;
2463     VkSampleCountFlags sampledImageStencilSampleCounts;
2464     VkSampleCountFlags storageImageSampleCounts;
2465     uint32_t           maxSampleMaskWords;
2466     VkBool32           timestampComputeAndGraphics;
2467     float              timestampPeriod;
2468     uint32_t           maxClipDistances;
2469     uint32_t           maxCullDistances;
2470     uint32_t           maxCombinedClipAndCullDistances;
2471     uint32_t           discreteQueuePriorities;
2472     float[2]           pointSizeRange;
2473     float[2]           lineWidthRange;
2474     float              pointSizeGranularity;
2475     float              lineWidthGranularity;
2476     VkBool32           strictLines;
2477     VkBool32           standardSampleLocations;
2478     VkDeviceSize       optimalBufferCopyOffsetAlignment;
2479     VkDeviceSize       optimalBufferCopyRowPitchAlignment;
2480     VkDeviceSize       nonCoherentAtomSize;
2481 }
2482 struct VkPhysicalDeviceSparseProperties {
2483     VkBool32 residencyStandard2DBlockShape;
2484     VkBool32 residencyStandard2DMultisampleBlockShape;
2485     VkBool32 residencyStandard3DBlockShape;
2486     VkBool32 residencyAlignedMipSize;
2487     VkBool32 residencyNonResidentStrict;
2488 }
2489 struct VkPhysicalDeviceProperties {
2490     uint32_t                               apiVersion;
2491     uint32_t                               driverVersion;
2492     uint32_t                               vendorID;
2493     uint32_t                               deviceID;
2494     VkPhysicalDeviceType                   deviceType;
2495     char[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] deviceName;
2496     uint8_t[VK_UUID_SIZE]                  pipelineCacheUUID;
2497     VkPhysicalDeviceLimits                 limits;
2498     VkPhysicalDeviceSparseProperties       sparseProperties;
2499 }
2500 struct VkQueueFamilyProperties {
2501     VkQueueFlags queueFlags;
2502     uint32_t     queueCount;
2503     uint32_t     timestampValidBits;
2504     VkExtent3D   minImageTransferGranularity;
2505 }
2506 struct VkMemoryType {
2507     VkMemoryPropertyFlags propertyFlags;
2508     uint32_t              heapIndex;
2509 }
2510 struct VkMemoryHeap {
2511     VkDeviceSize      size;
2512     VkMemoryHeapFlags flags;
2513 }
2514 struct VkPhysicalDeviceMemoryProperties {
2515     uint32_t                          memoryTypeCount;
2516     VkMemoryType[VK_MAX_MEMORY_TYPES] memoryTypes;
2517     uint32_t                          memoryHeapCount;
2518     VkMemoryHeap[VK_MAX_MEMORY_HEAPS] memoryHeaps;
2519 }
2520 struct VkDeviceQueueCreateInfo {
2521     VkStructureType          sType;
2522     const(void)*             pNext;
2523     VkDeviceQueueCreateFlags flags;
2524     uint32_t                 queueFamilyIndex;
2525     uint32_t                 queueCount;
2526     const(float)*            pQueuePriorities;
2527 }
2528 struct VkDeviceCreateInfo {
2529     VkStructureType                  sType;
2530     const(void)*                     pNext;
2531     VkDeviceCreateFlags              flags;
2532     uint32_t                         queueCreateInfoCount;
2533     const(VkDeviceQueueCreateInfo)*  pQueueCreateInfos;
2534     uint32_t                         enabledLayerCount;
2535     const(char*)*                    ppEnabledLayerNames;
2536     uint32_t                         enabledExtensionCount;
2537     const(char*)*                    ppEnabledExtensionNames;
2538     const(VkPhysicalDeviceFeatures)* pEnabledFeatures;
2539 }
2540 struct VkExtensionProperties {
2541     char[VK_MAX_EXTENSION_NAME_SIZE] extensionName;
2542     uint32_t                         specVersion;
2543 }
2544 struct VkLayerProperties {
2545     char[VK_MAX_EXTENSION_NAME_SIZE] layerName;
2546     uint32_t                         specVersion;
2547     uint32_t                         implementationVersion;
2548     char[VK_MAX_DESCRIPTION_SIZE]    description;
2549 }
2550 struct VkSubmitInfo {
2551     VkStructureType              sType;
2552     const(void)*                 pNext;
2553     uint32_t                     waitSemaphoreCount;
2554     const(VkSemaphore)*          pWaitSemaphores;
2555     const(VkPipelineStageFlags)* pWaitDstStageMask;
2556     uint32_t                     commandBufferCount;
2557     const(VkCommandBuffer)*      pCommandBuffers;
2558     uint32_t                     signalSemaphoreCount;
2559     const(VkSemaphore)*          pSignalSemaphores;
2560 }
2561 struct VkMemoryAllocateInfo {
2562     VkStructureType sType;
2563     const(void)*    pNext;
2564     VkDeviceSize    allocationSize;
2565     uint32_t        memoryTypeIndex;
2566 }
2567 struct VkMappedMemoryRange {
2568     VkStructureType sType;
2569     const(void)*    pNext;
2570     VkDeviceMemory  memory;
2571     VkDeviceSize    offset;
2572     VkDeviceSize    size;
2573 }
2574 struct VkMemoryRequirements {
2575     VkDeviceSize size;
2576     VkDeviceSize alignment;
2577     uint32_t     memoryTypeBits;
2578 }
2579 struct VkSparseImageFormatProperties {
2580     VkImageAspectFlags       aspectMask;
2581     VkExtent3D               imageGranularity;
2582     VkSparseImageFormatFlags flags;
2583 }
2584 struct VkSparseImageMemoryRequirements {
2585     VkSparseImageFormatProperties formatProperties;
2586     uint32_t                      imageMipTailFirstLod;
2587     VkDeviceSize                  imageMipTailSize;
2588     VkDeviceSize                  imageMipTailOffset;
2589     VkDeviceSize                  imageMipTailStride;
2590 }
2591 struct VkSparseMemoryBind {
2592     VkDeviceSize            resourceOffset;
2593     VkDeviceSize            size;
2594     VkDeviceMemory          memory;
2595     VkDeviceSize            memoryOffset;
2596     VkSparseMemoryBindFlags flags;
2597 }
2598 struct VkSparseBufferMemoryBindInfo {
2599     VkBuffer                   buffer;
2600     uint32_t                   bindCount;
2601     const(VkSparseMemoryBind)* pBinds;
2602 }
2603 struct VkSparseImageOpaqueMemoryBindInfo {
2604     VkImage                    image;
2605     uint32_t                   bindCount;
2606     const(VkSparseMemoryBind)* pBinds;
2607 }
2608 struct VkImageSubresource {
2609     VkImageAspectFlags aspectMask;
2610     uint32_t           mipLevel;
2611     uint32_t           arrayLayer;
2612 }
2613 struct VkOffset3D {
2614     int32_t x;
2615     int32_t y;
2616     int32_t z;
2617 }
2618 struct VkSparseImageMemoryBind {
2619     VkImageSubresource      subresource;
2620     VkOffset3D              offset;
2621     VkExtent3D              extent;
2622     VkDeviceMemory          memory;
2623     VkDeviceSize            memoryOffset;
2624     VkSparseMemoryBindFlags flags;
2625 }
2626 struct VkSparseImageMemoryBindInfo {
2627     VkImage                         image;
2628     uint32_t                        bindCount;
2629     const(VkSparseImageMemoryBind)* pBinds;
2630 }
2631 struct VkBindSparseInfo {
2632     VkStructureType                           sType;
2633     const(void)*                              pNext;
2634     uint32_t                                  waitSemaphoreCount;
2635     const(VkSemaphore)*                       pWaitSemaphores;
2636     uint32_t                                  bufferBindCount;
2637     const(VkSparseBufferMemoryBindInfo)*      pBufferBinds;
2638     uint32_t                                  imageOpaqueBindCount;
2639     const(VkSparseImageOpaqueMemoryBindInfo)* pImageOpaqueBinds;
2640     uint32_t                                  imageBindCount;
2641     const(VkSparseImageMemoryBindInfo)*       pImageBinds;
2642     uint32_t                                  signalSemaphoreCount;
2643     const(VkSemaphore)*                       pSignalSemaphores;
2644 }
2645 struct VkFenceCreateInfo {
2646     VkStructureType    sType;
2647     const(void)*       pNext;
2648     VkFenceCreateFlags flags;
2649 }
2650 struct VkSemaphoreCreateInfo {
2651     VkStructureType        sType;
2652     const(void)*           pNext;
2653     VkSemaphoreCreateFlags flags;
2654 }
2655 struct VkEventCreateInfo {
2656     VkStructureType    sType;
2657     const(void)*       pNext;
2658     VkEventCreateFlags flags;
2659 }
2660 struct VkQueryPoolCreateInfo {
2661     VkStructureType               sType;
2662     const(void)*                  pNext;
2663     VkQueryPoolCreateFlags        flags;
2664     VkQueryType                   queryType;
2665     uint32_t                      queryCount;
2666     VkQueryPipelineStatisticFlags pipelineStatistics;
2667 }
2668 struct VkBufferCreateInfo {
2669     VkStructureType     sType;
2670     const(void)*        pNext;
2671     VkBufferCreateFlags flags;
2672     VkDeviceSize        size;
2673     VkBufferUsageFlags  usage;
2674     VkSharingMode       sharingMode;
2675     uint32_t            queueFamilyIndexCount;
2676     const(uint32_t)*    pQueueFamilyIndices;
2677 }
2678 struct VkBufferViewCreateInfo {
2679     VkStructureType         sType;
2680     const(void)*            pNext;
2681     VkBufferViewCreateFlags flags;
2682     VkBuffer                buffer;
2683     VkFormat                format;
2684     VkDeviceSize            offset;
2685     VkDeviceSize            range;
2686 }
2687 struct VkImageCreateInfo {
2688     VkStructureType       sType;
2689     const(void)*          pNext;
2690     VkImageCreateFlags    flags;
2691     VkImageType           imageType;
2692     VkFormat              format;
2693     VkExtent3D            extent;
2694     uint32_t              mipLevels;
2695     uint32_t              arrayLayers;
2696     VkSampleCountFlagBits samples;
2697     VkImageTiling         tiling;
2698     VkImageUsageFlags     usage;
2699     VkSharingMode         sharingMode;
2700     uint32_t              queueFamilyIndexCount;
2701     const(uint32_t)*      pQueueFamilyIndices;
2702     VkImageLayout         initialLayout;
2703 }
2704 struct VkSubresourceLayout {
2705     VkDeviceSize offset;
2706     VkDeviceSize size;
2707     VkDeviceSize rowPitch;
2708     VkDeviceSize arrayPitch;
2709     VkDeviceSize depthPitch;
2710 }
2711 struct VkComponentMapping {
2712     VkComponentSwizzle r;
2713     VkComponentSwizzle g;
2714     VkComponentSwizzle b;
2715     VkComponentSwizzle a;
2716 }
2717 struct VkImageSubresourceRange {
2718     VkImageAspectFlags aspectMask;
2719     uint32_t           baseMipLevel;
2720     uint32_t           levelCount;
2721     uint32_t           baseArrayLayer;
2722     uint32_t           layerCount;
2723 }
2724 struct VkImageViewCreateInfo {
2725     VkStructureType         sType;
2726     const(void)*            pNext;
2727     VkImageViewCreateFlags  flags;
2728     VkImage                 image;
2729     VkImageViewType         viewType;
2730     VkFormat                format;
2731     VkComponentMapping      components;
2732     VkImageSubresourceRange subresourceRange;
2733 }
2734 struct VkShaderModuleCreateInfo {
2735     VkStructureType           sType;
2736     const(void)*              pNext;
2737     VkShaderModuleCreateFlags flags;
2738     size_t                    codeSize;
2739     const(uint32_t)*          pCode;
2740 }
2741 struct VkPipelineCacheCreateInfo {
2742     VkStructureType            sType;
2743     const(void)*               pNext;
2744     VkPipelineCacheCreateFlags flags;
2745     size_t                     initialDataSize;
2746     const(void)*               pInitialData;
2747 }
2748 struct VkSpecializationMapEntry {
2749     uint32_t constantID;
2750     uint32_t offset;
2751     size_t   size;
2752 }
2753 struct VkSpecializationInfo {
2754     uint32_t                         mapEntryCount;
2755     const(VkSpecializationMapEntry)* pMapEntries;
2756     size_t                           dataSize;
2757     const(void)*                     pData;
2758 }
2759 struct VkPipelineShaderStageCreateInfo {
2760     VkStructureType                  sType;
2761     const(void)*                     pNext;
2762     VkPipelineShaderStageCreateFlags flags;
2763     VkShaderStageFlagBits            stage;
2764     VkShaderModule                   module_;
2765     const(char)*                     pName;
2766     const(VkSpecializationInfo)*     pSpecializationInfo;
2767 }
2768 struct VkVertexInputBindingDescription {
2769     uint32_t          binding;
2770     uint32_t          stride;
2771     VkVertexInputRate inputRate;
2772 }
2773 struct VkVertexInputAttributeDescription {
2774     uint32_t location;
2775     uint32_t binding;
2776     VkFormat format;
2777     uint32_t offset;
2778 }
2779 struct VkPipelineVertexInputStateCreateInfo {
2780     VkStructureType                           sType;
2781     const(void)*                              pNext;
2782     VkPipelineVertexInputStateCreateFlags     flags;
2783     uint32_t                                  vertexBindingDescriptionCount;
2784     const(VkVertexInputBindingDescription)*   pVertexBindingDescriptions;
2785     uint32_t                                  vertexAttributeDescriptionCount;
2786     const(VkVertexInputAttributeDescription)* pVertexAttributeDescriptions;
2787 }
2788 struct VkPipelineInputAssemblyStateCreateInfo {
2789     VkStructureType                         sType;
2790     const(void)*                            pNext;
2791     VkPipelineInputAssemblyStateCreateFlags flags;
2792     VkPrimitiveTopology                     topology;
2793     VkBool32                                primitiveRestartEnable;
2794 }
2795 struct VkPipelineTessellationStateCreateInfo {
2796     VkStructureType                        sType;
2797     const(void)*                           pNext;
2798     VkPipelineTessellationStateCreateFlags flags;
2799     uint32_t                               patchControlPoints;
2800 }
2801 struct VkViewport {
2802     float x;
2803     float y;
2804     float width;
2805     float height;
2806     float minDepth;
2807     float maxDepth;
2808 }
2809 struct VkOffset2D {
2810     int32_t x;
2811     int32_t y;
2812 }
2813 struct VkExtent2D {
2814     uint32_t width;
2815     uint32_t height;
2816 }
2817 struct VkRect2D {
2818     VkOffset2D offset;
2819     VkExtent2D extent;
2820 }
2821 struct VkPipelineViewportStateCreateInfo {
2822     VkStructureType                    sType;
2823     const(void)*                       pNext;
2824     VkPipelineViewportStateCreateFlags flags;
2825     uint32_t                           viewportCount;
2826     const(VkViewport)*                 pViewports;
2827     uint32_t                           scissorCount;
2828     const(VkRect2D)*                   pScissors;
2829 }
2830 struct VkPipelineRasterizationStateCreateInfo {
2831     VkStructureType                         sType;
2832     const(void)*                            pNext;
2833     VkPipelineRasterizationStateCreateFlags flags;
2834     VkBool32                                depthClampEnable;
2835     VkBool32                                rasterizerDiscardEnable;
2836     VkPolygonMode                           polygonMode;
2837     VkCullModeFlags                         cullMode;
2838     VkFrontFace                             frontFace;
2839     VkBool32                                depthBiasEnable;
2840     float                                   depthBiasConstantFactor;
2841     float                                   depthBiasClamp;
2842     float                                   depthBiasSlopeFactor;
2843     float                                   lineWidth;
2844 }
2845 struct VkPipelineMultisampleStateCreateInfo {
2846     VkStructureType                       sType;
2847     const(void)*                          pNext;
2848     VkPipelineMultisampleStateCreateFlags flags;
2849     VkSampleCountFlagBits                 rasterizationSamples;
2850     VkBool32                              sampleShadingEnable;
2851     float                                 minSampleShading;
2852     const(VkSampleMask)*                  pSampleMask;
2853     VkBool32                              alphaToCoverageEnable;
2854     VkBool32                              alphaToOneEnable;
2855 }
2856 struct VkStencilOpState {
2857     VkStencilOp failOp;
2858     VkStencilOp passOp;
2859     VkStencilOp depthFailOp;
2860     VkCompareOp compareOp;
2861     uint32_t    compareMask;
2862     uint32_t    writeMask;
2863     uint32_t    reference;
2864 }
2865 struct VkPipelineDepthStencilStateCreateInfo {
2866     VkStructureType                        sType;
2867     const(void)*                           pNext;
2868     VkPipelineDepthStencilStateCreateFlags flags;
2869     VkBool32                               depthTestEnable;
2870     VkBool32                               depthWriteEnable;
2871     VkCompareOp                            depthCompareOp;
2872     VkBool32                               depthBoundsTestEnable;
2873     VkBool32                               stencilTestEnable;
2874     VkStencilOpState                       front;
2875     VkStencilOpState                       back;
2876     float                                  minDepthBounds;
2877     float                                  maxDepthBounds;
2878 }
2879 struct VkPipelineColorBlendAttachmentState {
2880     VkBool32              blendEnable;
2881     VkBlendFactor         srcColorBlendFactor;
2882     VkBlendFactor         dstColorBlendFactor;
2883     VkBlendOp             colorBlendOp;
2884     VkBlendFactor         srcAlphaBlendFactor;
2885     VkBlendFactor         dstAlphaBlendFactor;
2886     VkBlendOp             alphaBlendOp;
2887     VkColorComponentFlags colorWriteMask;
2888 }
2889 struct VkPipelineColorBlendStateCreateInfo {
2890     VkStructureType                             sType;
2891     const(void)*                                pNext;
2892     VkPipelineColorBlendStateCreateFlags        flags;
2893     VkBool32                                    logicOpEnable;
2894     VkLogicOp                                   logicOp;
2895     uint32_t                                    attachmentCount;
2896     const(VkPipelineColorBlendAttachmentState)* pAttachments;
2897     float[4]                                    blendConstants;
2898 }
2899 struct VkPipelineDynamicStateCreateInfo {
2900     VkStructureType                   sType;
2901     const(void)*                      pNext;
2902     VkPipelineDynamicStateCreateFlags flags;
2903     uint32_t                          dynamicStateCount;
2904     const(VkDynamicState)*            pDynamicStates;
2905 }
2906 struct VkGraphicsPipelineCreateInfo {
2907     VkStructureType                                sType;
2908     const(void)*                                   pNext;
2909     VkPipelineCreateFlags                          flags;
2910     uint32_t                                       stageCount;
2911     const(VkPipelineShaderStageCreateInfo)*        pStages;
2912     const(VkPipelineVertexInputStateCreateInfo)*   pVertexInputState;
2913     const(VkPipelineInputAssemblyStateCreateInfo)* pInputAssemblyState;
2914     const(VkPipelineTessellationStateCreateInfo)*  pTessellationState;
2915     const(VkPipelineViewportStateCreateInfo)*      pViewportState;
2916     const(VkPipelineRasterizationStateCreateInfo)* pRasterizationState;
2917     const(VkPipelineMultisampleStateCreateInfo)*   pMultisampleState;
2918     const(VkPipelineDepthStencilStateCreateInfo)*  pDepthStencilState;
2919     const(VkPipelineColorBlendStateCreateInfo)*    pColorBlendState;
2920     const(VkPipelineDynamicStateCreateInfo)*       pDynamicState;
2921     VkPipelineLayout                               layout;
2922     VkRenderPass                                   renderPass;
2923     uint32_t                                       subpass;
2924     VkPipeline                                     basePipelineHandle;
2925     int32_t                                        basePipelineIndex;
2926 }
2927 struct VkComputePipelineCreateInfo {
2928     VkStructureType                 sType;
2929     const(void)*                    pNext;
2930     VkPipelineCreateFlags           flags;
2931     VkPipelineShaderStageCreateInfo stage;
2932     VkPipelineLayout                layout;
2933     VkPipeline                      basePipelineHandle;
2934     int32_t                         basePipelineIndex;
2935 }
2936 struct VkPushConstantRange {
2937     VkShaderStageFlags stageFlags;
2938     uint32_t           offset;
2939     uint32_t           size;
2940 }
2941 struct VkPipelineLayoutCreateInfo {
2942     VkStructureType               sType;
2943     const(void)*                  pNext;
2944     VkPipelineLayoutCreateFlags   flags;
2945     uint32_t                      setLayoutCount;
2946     const(VkDescriptorSetLayout)* pSetLayouts;
2947     uint32_t                      pushConstantRangeCount;
2948     const(VkPushConstantRange)*   pPushConstantRanges;
2949 }
2950 struct VkSamplerCreateInfo {
2951     VkStructureType      sType;
2952     const(void)*         pNext;
2953     VkSamplerCreateFlags flags;
2954     VkFilter             magFilter;
2955     VkFilter             minFilter;
2956     VkSamplerMipmapMode  mipmapMode;
2957     VkSamplerAddressMode addressModeU;
2958     VkSamplerAddressMode addressModeV;
2959     VkSamplerAddressMode addressModeW;
2960     float                mipLodBias;
2961     VkBool32             anisotropyEnable;
2962     float                maxAnisotropy;
2963     VkBool32             compareEnable;
2964     VkCompareOp          compareOp;
2965     float                minLod;
2966     float                maxLod;
2967     VkBorderColor        borderColor;
2968     VkBool32             unnormalizedCoordinates;
2969 }
2970 struct VkDescriptorSetLayoutBinding {
2971     uint32_t           binding;
2972     VkDescriptorType   descriptorType;
2973     uint32_t           descriptorCount;
2974     VkShaderStageFlags stageFlags;
2975     const(VkSampler)*  pImmutableSamplers;
2976 }
2977 struct VkDescriptorSetLayoutCreateInfo {
2978     VkStructureType                      sType;
2979     const(void)*                         pNext;
2980     VkDescriptorSetLayoutCreateFlags     flags;
2981     uint32_t                             bindingCount;
2982     const(VkDescriptorSetLayoutBinding)* pBindings;
2983 }
2984 struct VkDescriptorPoolSize {
2985     VkDescriptorType type;
2986     uint32_t         descriptorCount;
2987 }
2988 struct VkDescriptorPoolCreateInfo {
2989     VkStructureType              sType;
2990     const(void)*                 pNext;
2991     VkDescriptorPoolCreateFlags  flags;
2992     uint32_t                     maxSets;
2993     uint32_t                     poolSizeCount;
2994     const(VkDescriptorPoolSize)* pPoolSizes;
2995 }
2996 struct VkDescriptorSetAllocateInfo {
2997     VkStructureType               sType;
2998     const(void)*                  pNext;
2999     VkDescriptorPool              descriptorPool;
3000     uint32_t                      descriptorSetCount;
3001     const(VkDescriptorSetLayout)* pSetLayouts;
3002 }
3003 struct VkDescriptorImageInfo {
3004     VkSampler     sampler;
3005     VkImageView   imageView;
3006     VkImageLayout imageLayout;
3007 }
3008 struct VkDescriptorBufferInfo {
3009     VkBuffer     buffer;
3010     VkDeviceSize offset;
3011     VkDeviceSize range;
3012 }
3013 struct VkWriteDescriptorSet {
3014     VkStructureType                sType;
3015     const(void)*                   pNext;
3016     VkDescriptorSet                dstSet;
3017     uint32_t                       dstBinding;
3018     uint32_t                       dstArrayElement;
3019     uint32_t                       descriptorCount;
3020     VkDescriptorType               descriptorType;
3021     const(VkDescriptorImageInfo)*  pImageInfo;
3022     const(VkDescriptorBufferInfo)* pBufferInfo;
3023     const(VkBufferView)*           pTexelBufferView;
3024 }
3025 struct VkCopyDescriptorSet {
3026     VkStructureType sType;
3027     const(void)*    pNext;
3028     VkDescriptorSet srcSet;
3029     uint32_t        srcBinding;
3030     uint32_t        srcArrayElement;
3031     VkDescriptorSet dstSet;
3032     uint32_t        dstBinding;
3033     uint32_t        dstArrayElement;
3034     uint32_t        descriptorCount;
3035 }
3036 struct VkFramebufferCreateInfo {
3037     VkStructureType          sType;
3038     const(void)*             pNext;
3039     VkFramebufferCreateFlags flags;
3040     VkRenderPass             renderPass;
3041     uint32_t                 attachmentCount;
3042     const(VkImageView)*      pAttachments;
3043     uint32_t                 width;
3044     uint32_t                 height;
3045     uint32_t                 layers;
3046 }
3047 struct VkAttachmentDescription {
3048     VkAttachmentDescriptionFlags flags;
3049     VkFormat                     format;
3050     VkSampleCountFlagBits        samples;
3051     VkAttachmentLoadOp           loadOp;
3052     VkAttachmentStoreOp          storeOp;
3053     VkAttachmentLoadOp           stencilLoadOp;
3054     VkAttachmentStoreOp          stencilStoreOp;
3055     VkImageLayout                initialLayout;
3056     VkImageLayout                finalLayout;
3057 }
3058 struct VkAttachmentReference {
3059     uint32_t      attachment;
3060     VkImageLayout layout;
3061 }
3062 struct VkSubpassDescription {
3063     VkSubpassDescriptionFlags     flags;
3064     VkPipelineBindPoint           pipelineBindPoint;
3065     uint32_t                      inputAttachmentCount;
3066     const(VkAttachmentReference)* pInputAttachments;
3067     uint32_t                      colorAttachmentCount;
3068     const(VkAttachmentReference)* pColorAttachments;
3069     const(VkAttachmentReference)* pResolveAttachments;
3070     const(VkAttachmentReference)* pDepthStencilAttachment;
3071     uint32_t                      preserveAttachmentCount;
3072     const(uint32_t)*              pPreserveAttachments;
3073 }
3074 struct VkSubpassDependency {
3075     uint32_t             srcSubpass;
3076     uint32_t             dstSubpass;
3077     VkPipelineStageFlags srcStageMask;
3078     VkPipelineStageFlags dstStageMask;
3079     VkAccessFlags        srcAccessMask;
3080     VkAccessFlags        dstAccessMask;
3081     VkDependencyFlags    dependencyFlags;
3082 }
3083 struct VkRenderPassCreateInfo {
3084     VkStructureType                 sType;
3085     const(void)*                    pNext;
3086     VkRenderPassCreateFlags         flags;
3087     uint32_t                        attachmentCount;
3088     const(VkAttachmentDescription)* pAttachments;
3089     uint32_t                        subpassCount;
3090     const(VkSubpassDescription)*    pSubpasses;
3091     uint32_t                        dependencyCount;
3092     const(VkSubpassDependency)*     pDependencies;
3093 }
3094 struct VkCommandPoolCreateInfo {
3095     VkStructureType          sType;
3096     const(void)*             pNext;
3097     VkCommandPoolCreateFlags flags;
3098     uint32_t                 queueFamilyIndex;
3099 }
3100 struct VkCommandBufferAllocateInfo {
3101     VkStructureType      sType;
3102     const(void)*         pNext;
3103     VkCommandPool        commandPool;
3104     VkCommandBufferLevel level;
3105     uint32_t             commandBufferCount;
3106 }
3107 struct VkCommandBufferInheritanceInfo {
3108     VkStructureType               sType;
3109     const(void)*                  pNext;
3110     VkRenderPass                  renderPass;
3111     uint32_t                      subpass;
3112     VkFramebuffer                 framebuffer;
3113     VkBool32                      occlusionQueryEnable;
3114     VkQueryControlFlags           queryFlags;
3115     VkQueryPipelineStatisticFlags pipelineStatistics;
3116 }
3117 struct VkCommandBufferBeginInfo {
3118     VkStructureType                        sType;
3119     const(void)*                           pNext;
3120     VkCommandBufferUsageFlags              flags;
3121     const(VkCommandBufferInheritanceInfo)* pInheritanceInfo;
3122 }
3123 struct VkBufferCopy {
3124     VkDeviceSize srcOffset;
3125     VkDeviceSize dstOffset;
3126     VkDeviceSize size;
3127 }
3128 struct VkImageSubresourceLayers {
3129     VkImageAspectFlags aspectMask;
3130     uint32_t           mipLevel;
3131     uint32_t           baseArrayLayer;
3132     uint32_t           layerCount;
3133 }
3134 struct VkImageCopy {
3135     VkImageSubresourceLayers srcSubresource;
3136     VkOffset3D               srcOffset;
3137     VkImageSubresourceLayers dstSubresource;
3138     VkOffset3D               dstOffset;
3139     VkExtent3D               extent;
3140 }
3141 struct VkImageBlit {
3142     VkImageSubresourceLayers srcSubresource;
3143     VkOffset3D[2]            srcOffsets;
3144     VkImageSubresourceLayers dstSubresource;
3145     VkOffset3D[2]            dstOffsets;
3146 }
3147 struct VkBufferImageCopy {
3148     VkDeviceSize             bufferOffset;
3149     uint32_t                 bufferRowLength;
3150     uint32_t                 bufferImageHeight;
3151     VkImageSubresourceLayers imageSubresource;
3152     VkOffset3D               imageOffset;
3153     VkExtent3D               imageExtent;
3154 }
3155 union VkClearColorValue {
3156     float[4]    float32;
3157     int32_t[4]  int32;
3158     uint32_t[4] uint32;
3159 }
3160 struct VkClearDepthStencilValue {
3161     float    depth;
3162     uint32_t stencil;
3163 }
3164 union VkClearValue {
3165     VkClearColorValue        color;
3166     VkClearDepthStencilValue depthStencil;
3167 }
3168 struct VkClearAttachment {
3169     VkImageAspectFlags aspectMask;
3170     uint32_t           colorAttachment;
3171     VkClearValue       clearValue;
3172 }
3173 struct VkClearRect {
3174     VkRect2D rect;
3175     uint32_t baseArrayLayer;
3176     uint32_t layerCount;
3177 }
3178 struct VkImageResolve {
3179     VkImageSubresourceLayers srcSubresource;
3180     VkOffset3D               srcOffset;
3181     VkImageSubresourceLayers dstSubresource;
3182     VkOffset3D               dstOffset;
3183     VkExtent3D               extent;
3184 }
3185 struct VkMemoryBarrier {
3186     VkStructureType sType;
3187     const(void)*    pNext;
3188     VkAccessFlags   srcAccessMask;
3189     VkAccessFlags   dstAccessMask;
3190 }
3191 struct VkBufferMemoryBarrier {
3192     VkStructureType sType;
3193     const(void)*    pNext;
3194     VkAccessFlags   srcAccessMask;
3195     VkAccessFlags   dstAccessMask;
3196     uint32_t        srcQueueFamilyIndex;
3197     uint32_t        dstQueueFamilyIndex;
3198     VkBuffer        buffer;
3199     VkDeviceSize    offset;
3200     VkDeviceSize    size;
3201 }
3202 struct VkImageMemoryBarrier {
3203     VkStructureType         sType;
3204     const(void)*            pNext;
3205     VkAccessFlags           srcAccessMask;
3206     VkAccessFlags           dstAccessMask;
3207     VkImageLayout           oldLayout;
3208     VkImageLayout           newLayout;
3209     uint32_t                srcQueueFamilyIndex;
3210     uint32_t                dstQueueFamilyIndex;
3211     VkImage                 image;
3212     VkImageSubresourceRange subresourceRange;
3213 }
3214 struct VkRenderPassBeginInfo {
3215     VkStructureType      sType;
3216     const(void)*         pNext;
3217     VkRenderPass         renderPass;
3218     VkFramebuffer        framebuffer;
3219     VkRect2D             renderArea;
3220     uint32_t             clearValueCount;
3221     const(VkClearValue)* pClearValues;
3222 }
3223 struct VkDispatchIndirectCommand {
3224     uint32_t x;
3225     uint32_t y;
3226     uint32_t z;
3227 }
3228 struct VkDrawIndexedIndirectCommand {
3229     uint32_t indexCount;
3230     uint32_t instanceCount;
3231     uint32_t firstIndex;
3232     int32_t  vertexOffset;
3233     uint32_t firstInstance;
3234 }
3235 struct VkDrawIndirectCommand {
3236     uint32_t vertexCount;
3237     uint32_t instanceCount;
3238     uint32_t firstVertex;
3239     uint32_t firstInstance;
3240 }
3241 struct VkSurfaceCapabilitiesKHR {
3242     uint32_t                      minImageCount;
3243     uint32_t                      maxImageCount;
3244     VkExtent2D                    currentExtent;
3245     VkExtent2D                    minImageExtent;
3246     VkExtent2D                    maxImageExtent;
3247     uint32_t                      maxImageArrayLayers;
3248     VkSurfaceTransformFlagsKHR    supportedTransforms;
3249     VkSurfaceTransformFlagBitsKHR currentTransform;
3250     VkCompositeAlphaFlagsKHR      supportedCompositeAlpha;
3251     VkImageUsageFlags             supportedUsageFlags;
3252 }
3253 struct VkSurfaceFormatKHR {
3254     VkFormat        format;
3255     VkColorSpaceKHR colorSpace;
3256 }
3257 struct VkSwapchainCreateInfoKHR {
3258     VkStructureType               sType;
3259     const(void)*                  pNext;
3260     VkSwapchainCreateFlagsKHR     flags;
3261     VkSurfaceKHR                  surface;
3262     uint32_t                      minImageCount;
3263     VkFormat                      imageFormat;
3264     VkColorSpaceKHR               imageColorSpace;
3265     VkExtent2D                    imageExtent;
3266     uint32_t                      imageArrayLayers;
3267     VkImageUsageFlags             imageUsage;
3268     VkSharingMode                 imageSharingMode;
3269     uint32_t                      queueFamilyIndexCount;
3270     const(uint32_t)*              pQueueFamilyIndices;
3271     VkSurfaceTransformFlagBitsKHR preTransform;
3272     VkCompositeAlphaFlagBitsKHR   compositeAlpha;
3273     VkPresentModeKHR              presentMode;
3274     VkBool32                      clipped;
3275     VkSwapchainKHR                oldSwapchain;
3276 }
3277 struct VkPresentInfoKHR {
3278     VkStructureType        sType;
3279     const(void)*           pNext;
3280     uint32_t               waitSemaphoreCount;
3281     const(VkSemaphore)*    pWaitSemaphores;
3282     uint32_t               swapchainCount;
3283     const(VkSwapchainKHR)* pSwapchains;
3284     const(uint32_t)*       pImageIndices;
3285     VkResult*              pResults;
3286 }
3287 struct VkDisplayPropertiesKHR {
3288     VkDisplayKHR               display;
3289     const(char)*               displayName;
3290     VkExtent2D                 physicalDimensions;
3291     VkExtent2D                 physicalResolution;
3292     VkSurfaceTransformFlagsKHR supportedTransforms;
3293     VkBool32                   planeReorderPossible;
3294     VkBool32                   persistentContent;
3295 }
3296 struct VkDisplayModeParametersKHR {
3297     VkExtent2D visibleRegion;
3298     uint32_t   refreshRate;
3299 }
3300 struct VkDisplayModePropertiesKHR {
3301     VkDisplayModeKHR           displayMode;
3302     VkDisplayModeParametersKHR parameters;
3303 }
3304 struct VkDisplayModeCreateInfoKHR {
3305     VkStructureType             sType;
3306     const(void)*                pNext;
3307     VkDisplayModeCreateFlagsKHR flags;
3308     VkDisplayModeParametersKHR  parameters;
3309 }
3310 struct VkDisplayPlaneCapabilitiesKHR {
3311     VkDisplayPlaneAlphaFlagsKHR supportedAlpha;
3312     VkOffset2D                  minSrcPosition;
3313     VkOffset2D                  maxSrcPosition;
3314     VkExtent2D                  minSrcExtent;
3315     VkExtent2D                  maxSrcExtent;
3316     VkOffset2D                  minDstPosition;
3317     VkOffset2D                  maxDstPosition;
3318     VkExtent2D                  minDstExtent;
3319     VkExtent2D                  maxDstExtent;
3320 }
3321 struct VkDisplayPlanePropertiesKHR {
3322     VkDisplayKHR currentDisplay;
3323     uint32_t     currentStackIndex;
3324 }
3325 struct VkDisplaySurfaceCreateInfoKHR {
3326     VkStructureType                sType;
3327     const(void)*                   pNext;
3328     VkDisplaySurfaceCreateFlagsKHR flags;
3329     VkDisplayModeKHR               displayMode;
3330     uint32_t                       planeIndex;
3331     uint32_t                       planeStackIndex;
3332     VkSurfaceTransformFlagBitsKHR  transform;
3333     float                          globalAlpha;
3334     VkDisplayPlaneAlphaFlagBitsKHR alphaMode;
3335     VkExtent2D                     imageExtent;
3336 }
3337 version(linux) {
3338     struct VkWaylandSurfaceCreateInfoKHR {
3339         VkStructureType                sType;
3340         const(void)*                   pNext;
3341         VkWaylandSurfaceCreateFlagsKHR flags;
3342         wl_display*                    display;
3343         wl_surface*                    surface;
3344     }
3345 }
3346 
3347 // Commands
3348 
3349 enum VK_HEADER_VERSION =  67;
3350 extern(C) nothrow @nogc {
3351 
3352     // VK_VERSION_1_0
3353 
3354     alias PFN_vkCreateInstance = VkResult function (
3355         const(VkInstanceCreateInfo)*  pCreateInfo,
3356         const(VkAllocationCallbacks)* pAllocator,
3357         VkInstance*                   pInstance,
3358     );
3359     alias PFN_vkDestroyInstance = void function (
3360         VkInstance                    instance,
3361         const(VkAllocationCallbacks)* pAllocator,
3362     );
3363     alias PFN_vkEnumeratePhysicalDevices = VkResult function (
3364         VkInstance        instance,
3365         uint32_t*         pPhysicalDeviceCount,
3366         VkPhysicalDevice* pPhysicalDevices,
3367     );
3368     alias PFN_vkGetPhysicalDeviceFeatures = void function (
3369         VkPhysicalDevice          physicalDevice,
3370         VkPhysicalDeviceFeatures* pFeatures,
3371     );
3372     alias PFN_vkGetPhysicalDeviceFormatProperties = void function (
3373         VkPhysicalDevice    physicalDevice,
3374         VkFormat            format,
3375         VkFormatProperties* pFormatProperties,
3376     );
3377     alias PFN_vkGetPhysicalDeviceImageFormatProperties = VkResult function (
3378         VkPhysicalDevice         physicalDevice,
3379         VkFormat                 format,
3380         VkImageType              type,
3381         VkImageTiling            tiling,
3382         VkImageUsageFlags        usage,
3383         VkImageCreateFlags       flags,
3384         VkImageFormatProperties* pImageFormatProperties,
3385     );
3386     alias PFN_vkGetPhysicalDeviceProperties = void function (
3387         VkPhysicalDevice            physicalDevice,
3388         VkPhysicalDeviceProperties* pProperties,
3389     );
3390     alias PFN_vkGetPhysicalDeviceQueueFamilyProperties = void function (
3391         VkPhysicalDevice         physicalDevice,
3392         uint32_t*                pQueueFamilyPropertyCount,
3393         VkQueueFamilyProperties* pQueueFamilyProperties,
3394     );
3395     alias PFN_vkGetPhysicalDeviceMemoryProperties = void function (
3396         VkPhysicalDevice                  physicalDevice,
3397         VkPhysicalDeviceMemoryProperties* pMemoryProperties,
3398     );
3399     alias PFN_vkGetInstanceProcAddr = PFN_vkVoidFunction function (
3400         VkInstance   instance,
3401         const(char)* pName,
3402     );
3403     alias PFN_vkGetDeviceProcAddr = PFN_vkVoidFunction function (
3404         VkDevice     device,
3405         const(char)* pName,
3406     );
3407     alias PFN_vkCreateDevice = VkResult function (
3408         VkPhysicalDevice              physicalDevice,
3409         const(VkDeviceCreateInfo)*    pCreateInfo,
3410         const(VkAllocationCallbacks)* pAllocator,
3411         VkDevice*                     pDevice,
3412     );
3413     alias PFN_vkDestroyDevice = void function (
3414         VkDevice                      device,
3415         const(VkAllocationCallbacks)* pAllocator,
3416     );
3417     alias PFN_vkEnumerateInstanceExtensionProperties = VkResult function (
3418         const(char)*           pLayerName,
3419         uint32_t*              pPropertyCount,
3420         VkExtensionProperties* pProperties,
3421     );
3422     alias PFN_vkEnumerateDeviceExtensionProperties = VkResult function (
3423         VkPhysicalDevice       physicalDevice,
3424         const(char)*           pLayerName,
3425         uint32_t*              pPropertyCount,
3426         VkExtensionProperties* pProperties,
3427     );
3428     alias PFN_vkEnumerateInstanceLayerProperties = VkResult function (
3429         uint32_t*          pPropertyCount,
3430         VkLayerProperties* pProperties,
3431     );
3432     alias PFN_vkEnumerateDeviceLayerProperties = VkResult function (
3433         VkPhysicalDevice   physicalDevice,
3434         uint32_t*          pPropertyCount,
3435         VkLayerProperties* pProperties,
3436     );
3437     alias PFN_vkGetDeviceQueue = void function (
3438         VkDevice device,
3439         uint32_t queueFamilyIndex,
3440         uint32_t queueIndex,
3441         VkQueue* pQueue,
3442     );
3443     alias PFN_vkQueueSubmit = VkResult function (
3444         VkQueue              queue,
3445         uint32_t             submitCount,
3446         const(VkSubmitInfo)* pSubmits,
3447         VkFence              fence,
3448     );
3449     alias PFN_vkQueueWaitIdle = VkResult function (VkQueue queue);
3450     alias PFN_vkDeviceWaitIdle = VkResult function (VkDevice device);
3451     alias PFN_vkAllocateMemory = VkResult function (
3452         VkDevice                      device,
3453         const(VkMemoryAllocateInfo)*  pAllocateInfo,
3454         const(VkAllocationCallbacks)* pAllocator,
3455         VkDeviceMemory*               pMemory,
3456     );
3457     alias PFN_vkFreeMemory = void function (
3458         VkDevice                      device,
3459         VkDeviceMemory                memory,
3460         const(VkAllocationCallbacks)* pAllocator,
3461     );
3462     alias PFN_vkMapMemory = VkResult function (
3463         VkDevice         device,
3464         VkDeviceMemory   memory,
3465         VkDeviceSize     offset,
3466         VkDeviceSize     size,
3467         VkMemoryMapFlags flags,
3468         void**           ppData,
3469     );
3470     alias PFN_vkUnmapMemory = void function (
3471         VkDevice       device,
3472         VkDeviceMemory memory,
3473     );
3474     alias PFN_vkFlushMappedMemoryRanges = VkResult function (
3475         VkDevice                    device,
3476         uint32_t                    memoryRangeCount,
3477         const(VkMappedMemoryRange)* pMemoryRanges,
3478     );
3479     alias PFN_vkInvalidateMappedMemoryRanges = VkResult function (
3480         VkDevice                    device,
3481         uint32_t                    memoryRangeCount,
3482         const(VkMappedMemoryRange)* pMemoryRanges,
3483     );
3484     alias PFN_vkGetDeviceMemoryCommitment = void function (
3485         VkDevice       device,
3486         VkDeviceMemory memory,
3487         VkDeviceSize*  pCommittedMemoryInBytes,
3488     );
3489     alias PFN_vkBindBufferMemory = VkResult function (
3490         VkDevice       device,
3491         VkBuffer       buffer,
3492         VkDeviceMemory memory,
3493         VkDeviceSize   memoryOffset,
3494     );
3495     alias PFN_vkBindImageMemory = VkResult function (
3496         VkDevice       device,
3497         VkImage        image,
3498         VkDeviceMemory memory,
3499         VkDeviceSize   memoryOffset,
3500     );
3501     alias PFN_vkGetBufferMemoryRequirements = void function (
3502         VkDevice              device,
3503         VkBuffer              buffer,
3504         VkMemoryRequirements* pMemoryRequirements,
3505     );
3506     alias PFN_vkGetImageMemoryRequirements = void function (
3507         VkDevice              device,
3508         VkImage               image,
3509         VkMemoryRequirements* pMemoryRequirements,
3510     );
3511     alias PFN_vkGetImageSparseMemoryRequirements = void function (
3512         VkDevice                         device,
3513         VkImage                          image,
3514         uint32_t*                        pSparseMemoryRequirementCount,
3515         VkSparseImageMemoryRequirements* pSparseMemoryRequirements,
3516     );
3517     alias PFN_vkGetPhysicalDeviceSparseImageFormatProperties = void function (
3518         VkPhysicalDevice               physicalDevice,
3519         VkFormat                       format,
3520         VkImageType                    type,
3521         VkSampleCountFlagBits          samples,
3522         VkImageUsageFlags              usage,
3523         VkImageTiling                  tiling,
3524         uint32_t*                      pPropertyCount,
3525         VkSparseImageFormatProperties* pProperties,
3526     );
3527     alias PFN_vkQueueBindSparse = VkResult function (
3528         VkQueue                  queue,
3529         uint32_t                 bindInfoCount,
3530         const(VkBindSparseInfo)* pBindInfo,
3531         VkFence                  fence,
3532     );
3533     alias PFN_vkCreateFence = VkResult function (
3534         VkDevice                      device,
3535         const(VkFenceCreateInfo)*     pCreateInfo,
3536         const(VkAllocationCallbacks)* pAllocator,
3537         VkFence*                      pFence,
3538     );
3539     alias PFN_vkDestroyFence = void function (
3540         VkDevice                      device,
3541         VkFence                       fence,
3542         const(VkAllocationCallbacks)* pAllocator,
3543     );
3544     alias PFN_vkResetFences = VkResult function (
3545         VkDevice        device,
3546         uint32_t        fenceCount,
3547         const(VkFence)* pFences,
3548     );
3549     alias PFN_vkGetFenceStatus = VkResult function (
3550         VkDevice device,
3551         VkFence  fence,
3552     );
3553     alias PFN_vkWaitForFences = VkResult function (
3554         VkDevice        device,
3555         uint32_t        fenceCount,
3556         const(VkFence)* pFences,
3557         VkBool32        waitAll,
3558         uint64_t        timeout,
3559     );
3560     alias PFN_vkCreateSemaphore = VkResult function (
3561         VkDevice                      device,
3562         const(VkSemaphoreCreateInfo)* pCreateInfo,
3563         const(VkAllocationCallbacks)* pAllocator,
3564         VkSemaphore*                  pSemaphore,
3565     );
3566     alias PFN_vkDestroySemaphore = void function (
3567         VkDevice                      device,
3568         VkSemaphore                   semaphore,
3569         const(VkAllocationCallbacks)* pAllocator,
3570     );
3571     alias PFN_vkCreateEvent = VkResult function (
3572         VkDevice                      device,
3573         const(VkEventCreateInfo)*     pCreateInfo,
3574         const(VkAllocationCallbacks)* pAllocator,
3575         VkEvent*                      pEvent,
3576     );
3577     alias PFN_vkDestroyEvent = void function (
3578         VkDevice                      device,
3579         VkEvent                       event,
3580         const(VkAllocationCallbacks)* pAllocator,
3581     );
3582     alias PFN_vkGetEventStatus = VkResult function (
3583         VkDevice device,
3584         VkEvent  event,
3585     );
3586     alias PFN_vkSetEvent = VkResult function (
3587         VkDevice device,
3588         VkEvent  event,
3589     );
3590     alias PFN_vkResetEvent = VkResult function (
3591         VkDevice device,
3592         VkEvent  event,
3593     );
3594     alias PFN_vkCreateQueryPool = VkResult function (
3595         VkDevice                      device,
3596         const(VkQueryPoolCreateInfo)* pCreateInfo,
3597         const(VkAllocationCallbacks)* pAllocator,
3598         VkQueryPool*                  pQueryPool,
3599     );
3600     alias PFN_vkDestroyQueryPool = void function (
3601         VkDevice                      device,
3602         VkQueryPool                   queryPool,
3603         const(VkAllocationCallbacks)* pAllocator,
3604     );
3605     alias PFN_vkGetQueryPoolResults = VkResult function (
3606         VkDevice           device,
3607         VkQueryPool        queryPool,
3608         uint32_t           firstQuery,
3609         uint32_t           queryCount,
3610         size_t             dataSize,
3611         void*              pData,
3612         VkDeviceSize       stride,
3613         VkQueryResultFlags flags,
3614     );
3615     alias PFN_vkCreateBuffer = VkResult function (
3616         VkDevice                      device,
3617         const(VkBufferCreateInfo)*    pCreateInfo,
3618         const(VkAllocationCallbacks)* pAllocator,
3619         VkBuffer*                     pBuffer,
3620     );
3621     alias PFN_vkDestroyBuffer = void function (
3622         VkDevice                      device,
3623         VkBuffer                      buffer,
3624         const(VkAllocationCallbacks)* pAllocator,
3625     );
3626     alias PFN_vkCreateBufferView = VkResult function (
3627         VkDevice                       device,
3628         const(VkBufferViewCreateInfo)* pCreateInfo,
3629         const(VkAllocationCallbacks)*  pAllocator,
3630         VkBufferView*                  pView,
3631     );
3632     alias PFN_vkDestroyBufferView = void function (
3633         VkDevice                      device,
3634         VkBufferView                  bufferView,
3635         const(VkAllocationCallbacks)* pAllocator,
3636     );
3637     alias PFN_vkCreateImage = VkResult function (
3638         VkDevice                      device,
3639         const(VkImageCreateInfo)*     pCreateInfo,
3640         const(VkAllocationCallbacks)* pAllocator,
3641         VkImage*                      pImage,
3642     );
3643     alias PFN_vkDestroyImage = void function (
3644         VkDevice                      device,
3645         VkImage                       image,
3646         const(VkAllocationCallbacks)* pAllocator,
3647     );
3648     alias PFN_vkGetImageSubresourceLayout = void function (
3649         VkDevice                   device,
3650         VkImage                    image,
3651         const(VkImageSubresource)* pSubresource,
3652         VkSubresourceLayout*       pLayout,
3653     );
3654     alias PFN_vkCreateImageView = VkResult function (
3655         VkDevice                      device,
3656         const(VkImageViewCreateInfo)* pCreateInfo,
3657         const(VkAllocationCallbacks)* pAllocator,
3658         VkImageView*                  pView,
3659     );
3660     alias PFN_vkDestroyImageView = void function (
3661         VkDevice                      device,
3662         VkImageView                   imageView,
3663         const(VkAllocationCallbacks)* pAllocator,
3664     );
3665     alias PFN_vkCreateShaderModule = VkResult function (
3666         VkDevice                         device,
3667         const(VkShaderModuleCreateInfo)* pCreateInfo,
3668         const(VkAllocationCallbacks)*    pAllocator,
3669         VkShaderModule*                  pShaderModule,
3670     );
3671     alias PFN_vkDestroyShaderModule = void function (
3672         VkDevice                      device,
3673         VkShaderModule                shaderModule,
3674         const(VkAllocationCallbacks)* pAllocator,
3675     );
3676     alias PFN_vkCreatePipelineCache = VkResult function (
3677         VkDevice                          device,
3678         const(VkPipelineCacheCreateInfo)* pCreateInfo,
3679         const(VkAllocationCallbacks)*     pAllocator,
3680         VkPipelineCache*                  pPipelineCache,
3681     );
3682     alias PFN_vkDestroyPipelineCache = void function (
3683         VkDevice                      device,
3684         VkPipelineCache               pipelineCache,
3685         const(VkAllocationCallbacks)* pAllocator,
3686     );
3687     alias PFN_vkGetPipelineCacheData = VkResult function (
3688         VkDevice        device,
3689         VkPipelineCache pipelineCache,
3690         size_t*         pDataSize,
3691         void*           pData,
3692     );
3693     alias PFN_vkMergePipelineCaches = VkResult function (
3694         VkDevice                device,
3695         VkPipelineCache         dstCache,
3696         uint32_t                srcCacheCount,
3697         const(VkPipelineCache)* pSrcCaches,
3698     );
3699     alias PFN_vkCreateGraphicsPipelines = VkResult function (
3700         VkDevice                             device,
3701         VkPipelineCache                      pipelineCache,
3702         uint32_t                             createInfoCount,
3703         const(VkGraphicsPipelineCreateInfo)* pCreateInfos,
3704         const(VkAllocationCallbacks)*        pAllocator,
3705         VkPipeline*                          pPipelines,
3706     );
3707     alias PFN_vkCreateComputePipelines = VkResult function (
3708         VkDevice                            device,
3709         VkPipelineCache                     pipelineCache,
3710         uint32_t                            createInfoCount,
3711         const(VkComputePipelineCreateInfo)* pCreateInfos,
3712         const(VkAllocationCallbacks)*       pAllocator,
3713         VkPipeline*                         pPipelines,
3714     );
3715     alias PFN_vkDestroyPipeline = void function (
3716         VkDevice                      device,
3717         VkPipeline                    pipeline,
3718         const(VkAllocationCallbacks)* pAllocator,
3719     );
3720     alias PFN_vkCreatePipelineLayout = VkResult function (
3721         VkDevice                           device,
3722         const(VkPipelineLayoutCreateInfo)* pCreateInfo,
3723         const(VkAllocationCallbacks)*      pAllocator,
3724         VkPipelineLayout*                  pPipelineLayout,
3725     );
3726     alias PFN_vkDestroyPipelineLayout = void function (
3727         VkDevice                      device,
3728         VkPipelineLayout              pipelineLayout,
3729         const(VkAllocationCallbacks)* pAllocator,
3730     );
3731     alias PFN_vkCreateSampler = VkResult function (
3732         VkDevice                      device,
3733         const(VkSamplerCreateInfo)*   pCreateInfo,
3734         const(VkAllocationCallbacks)* pAllocator,
3735         VkSampler*                    pSampler,
3736     );
3737     alias PFN_vkDestroySampler = void function (
3738         VkDevice                      device,
3739         VkSampler                     sampler,
3740         const(VkAllocationCallbacks)* pAllocator,
3741     );
3742     alias PFN_vkCreateDescriptorSetLayout = VkResult function (
3743         VkDevice                                device,
3744         const(VkDescriptorSetLayoutCreateInfo)* pCreateInfo,
3745         const(VkAllocationCallbacks)*           pAllocator,
3746         VkDescriptorSetLayout*                  pSetLayout,
3747     );
3748     alias PFN_vkDestroyDescriptorSetLayout = void function (
3749         VkDevice                      device,
3750         VkDescriptorSetLayout         descriptorSetLayout,
3751         const(VkAllocationCallbacks)* pAllocator,
3752     );
3753     alias PFN_vkCreateDescriptorPool = VkResult function (
3754         VkDevice                           device,
3755         const(VkDescriptorPoolCreateInfo)* pCreateInfo,
3756         const(VkAllocationCallbacks)*      pAllocator,
3757         VkDescriptorPool*                  pDescriptorPool,
3758     );
3759     alias PFN_vkDestroyDescriptorPool = void function (
3760         VkDevice                      device,
3761         VkDescriptorPool              descriptorPool,
3762         const(VkAllocationCallbacks)* pAllocator,
3763     );
3764     alias PFN_vkResetDescriptorPool = VkResult function (
3765         VkDevice                   device,
3766         VkDescriptorPool           descriptorPool,
3767         VkDescriptorPoolResetFlags flags,
3768     );
3769     alias PFN_vkAllocateDescriptorSets = VkResult function (
3770         VkDevice                            device,
3771         const(VkDescriptorSetAllocateInfo)* pAllocateInfo,
3772         VkDescriptorSet*                    pDescriptorSets,
3773     );
3774     alias PFN_vkFreeDescriptorSets = VkResult function (
3775         VkDevice                device,
3776         VkDescriptorPool        descriptorPool,
3777         uint32_t                descriptorSetCount,
3778         const(VkDescriptorSet)* pDescriptorSets,
3779     );
3780     alias PFN_vkUpdateDescriptorSets = void function (
3781         VkDevice                     device,
3782         uint32_t                     descriptorWriteCount,
3783         const(VkWriteDescriptorSet)* pDescriptorWrites,
3784         uint32_t                     descriptorCopyCount,
3785         const(VkCopyDescriptorSet)*  pDescriptorCopies,
3786     );
3787     alias PFN_vkCreateFramebuffer = VkResult function (
3788         VkDevice                        device,
3789         const(VkFramebufferCreateInfo)* pCreateInfo,
3790         const(VkAllocationCallbacks)*   pAllocator,
3791         VkFramebuffer*                  pFramebuffer,
3792     );
3793     alias PFN_vkDestroyFramebuffer = void function (
3794         VkDevice                      device,
3795         VkFramebuffer                 framebuffer,
3796         const(VkAllocationCallbacks)* pAllocator,
3797     );
3798     alias PFN_vkCreateRenderPass = VkResult function (
3799         VkDevice                       device,
3800         const(VkRenderPassCreateInfo)* pCreateInfo,
3801         const(VkAllocationCallbacks)*  pAllocator,
3802         VkRenderPass*                  pRenderPass,
3803     );
3804     alias PFN_vkDestroyRenderPass = void function (
3805         VkDevice                      device,
3806         VkRenderPass                  renderPass,
3807         const(VkAllocationCallbacks)* pAllocator,
3808     );
3809     alias PFN_vkGetRenderAreaGranularity = void function (
3810         VkDevice     device,
3811         VkRenderPass renderPass,
3812         VkExtent2D*  pGranularity,
3813     );
3814     alias PFN_vkCreateCommandPool = VkResult function (
3815         VkDevice                        device,
3816         const(VkCommandPoolCreateInfo)* pCreateInfo,
3817         const(VkAllocationCallbacks)*   pAllocator,
3818         VkCommandPool*                  pCommandPool,
3819     );
3820     alias PFN_vkDestroyCommandPool = void function (
3821         VkDevice                      device,
3822         VkCommandPool                 commandPool,
3823         const(VkAllocationCallbacks)* pAllocator,
3824     );
3825     alias PFN_vkResetCommandPool = VkResult function (
3826         VkDevice                device,
3827         VkCommandPool           commandPool,
3828         VkCommandPoolResetFlags flags,
3829     );
3830     alias PFN_vkAllocateCommandBuffers = VkResult function (
3831         VkDevice                            device,
3832         const(VkCommandBufferAllocateInfo)* pAllocateInfo,
3833         VkCommandBuffer*                    pCommandBuffers,
3834     );
3835     alias PFN_vkFreeCommandBuffers = void function (
3836         VkDevice                device,
3837         VkCommandPool           commandPool,
3838         uint32_t                commandBufferCount,
3839         const(VkCommandBuffer)* pCommandBuffers,
3840     );
3841     alias PFN_vkBeginCommandBuffer = VkResult function (
3842         VkCommandBuffer                  commandBuffer,
3843         const(VkCommandBufferBeginInfo)* pBeginInfo,
3844     );
3845     alias PFN_vkEndCommandBuffer = VkResult function (VkCommandBuffer commandBuffer);
3846     alias PFN_vkResetCommandBuffer = VkResult function (
3847         VkCommandBuffer           commandBuffer,
3848         VkCommandBufferResetFlags flags,
3849     );
3850     alias PFN_vkCmdBindPipeline = void function (
3851         VkCommandBuffer     commandBuffer,
3852         VkPipelineBindPoint pipelineBindPoint,
3853         VkPipeline          pipeline,
3854     );
3855     alias PFN_vkCmdSetViewport = void function (
3856         VkCommandBuffer    commandBuffer,
3857         uint32_t           firstViewport,
3858         uint32_t           viewportCount,
3859         const(VkViewport)* pViewports,
3860     );
3861     alias PFN_vkCmdSetScissor = void function (
3862         VkCommandBuffer  commandBuffer,
3863         uint32_t         firstScissor,
3864         uint32_t         scissorCount,
3865         const(VkRect2D)* pScissors,
3866     );
3867     alias PFN_vkCmdSetLineWidth = void function (
3868         VkCommandBuffer commandBuffer,
3869         float           lineWidth,
3870     );
3871     alias PFN_vkCmdSetDepthBias = void function (
3872         VkCommandBuffer commandBuffer,
3873         float           depthBiasConstantFactor,
3874         float           depthBiasClamp,
3875         float           depthBiasSlopeFactor,
3876     );
3877     alias PFN_vkCmdSetBlendConstants = void function (
3878         VkCommandBuffer commandBuffer,
3879         const float[4]  blendConstants,
3880     );
3881     alias PFN_vkCmdSetDepthBounds = void function (
3882         VkCommandBuffer commandBuffer,
3883         float           minDepthBounds,
3884         float           maxDepthBounds,
3885     );
3886     alias PFN_vkCmdSetStencilCompareMask = void function (
3887         VkCommandBuffer    commandBuffer,
3888         VkStencilFaceFlags faceMask,
3889         uint32_t           compareMask,
3890     );
3891     alias PFN_vkCmdSetStencilWriteMask = void function (
3892         VkCommandBuffer    commandBuffer,
3893         VkStencilFaceFlags faceMask,
3894         uint32_t           writeMask,
3895     );
3896     alias PFN_vkCmdSetStencilReference = void function (
3897         VkCommandBuffer    commandBuffer,
3898         VkStencilFaceFlags faceMask,
3899         uint32_t           reference,
3900     );
3901     alias PFN_vkCmdBindDescriptorSets = void function (
3902         VkCommandBuffer         commandBuffer,
3903         VkPipelineBindPoint     pipelineBindPoint,
3904         VkPipelineLayout        layout,
3905         uint32_t                firstSet,
3906         uint32_t                descriptorSetCount,
3907         const(VkDescriptorSet)* pDescriptorSets,
3908         uint32_t                dynamicOffsetCount,
3909         const(uint32_t)*        pDynamicOffsets,
3910     );
3911     alias PFN_vkCmdBindIndexBuffer = void function (
3912         VkCommandBuffer commandBuffer,
3913         VkBuffer        buffer,
3914         VkDeviceSize    offset,
3915         VkIndexType     indexType,
3916     );
3917     alias PFN_vkCmdBindVertexBuffers = void function (
3918         VkCommandBuffer      commandBuffer,
3919         uint32_t             firstBinding,
3920         uint32_t             bindingCount,
3921         const(VkBuffer)*     pBuffers,
3922         const(VkDeviceSize)* pOffsets,
3923     );
3924     alias PFN_vkCmdDraw = void function (
3925         VkCommandBuffer commandBuffer,
3926         uint32_t        vertexCount,
3927         uint32_t        instanceCount,
3928         uint32_t        firstVertex,
3929         uint32_t        firstInstance,
3930     );
3931     alias PFN_vkCmdDrawIndexed = void function (
3932         VkCommandBuffer commandBuffer,
3933         uint32_t        indexCount,
3934         uint32_t        instanceCount,
3935         uint32_t        firstIndex,
3936         int32_t         vertexOffset,
3937         uint32_t        firstInstance,
3938     );
3939     alias PFN_vkCmdDrawIndirect = void function (
3940         VkCommandBuffer commandBuffer,
3941         VkBuffer        buffer,
3942         VkDeviceSize    offset,
3943         uint32_t        drawCount,
3944         uint32_t        stride,
3945     );
3946     alias PFN_vkCmdDrawIndexedIndirect = void function (
3947         VkCommandBuffer commandBuffer,
3948         VkBuffer        buffer,
3949         VkDeviceSize    offset,
3950         uint32_t        drawCount,
3951         uint32_t        stride,
3952     );
3953     alias PFN_vkCmdDispatch = void function (
3954         VkCommandBuffer commandBuffer,
3955         uint32_t        groupCountX,
3956         uint32_t        groupCountY,
3957         uint32_t        groupCountZ,
3958     );
3959     alias PFN_vkCmdDispatchIndirect = void function (
3960         VkCommandBuffer commandBuffer,
3961         VkBuffer        buffer,
3962         VkDeviceSize    offset,
3963     );
3964     alias PFN_vkCmdCopyBuffer = void function (
3965         VkCommandBuffer      commandBuffer,
3966         VkBuffer             srcBuffer,
3967         VkBuffer             dstBuffer,
3968         uint32_t             regionCount,
3969         const(VkBufferCopy)* pRegions,
3970     );
3971     alias PFN_vkCmdCopyImage = void function (
3972         VkCommandBuffer     commandBuffer,
3973         VkImage             srcImage,
3974         VkImageLayout       srcImageLayout,
3975         VkImage             dstImage,
3976         VkImageLayout       dstImageLayout,
3977         uint32_t            regionCount,
3978         const(VkImageCopy)* pRegions,
3979     );
3980     alias PFN_vkCmdBlitImage = void function (
3981         VkCommandBuffer     commandBuffer,
3982         VkImage             srcImage,
3983         VkImageLayout       srcImageLayout,
3984         VkImage             dstImage,
3985         VkImageLayout       dstImageLayout,
3986         uint32_t            regionCount,
3987         const(VkImageBlit)* pRegions,
3988         VkFilter            filter,
3989     );
3990     alias PFN_vkCmdCopyBufferToImage = void function (
3991         VkCommandBuffer           commandBuffer,
3992         VkBuffer                  srcBuffer,
3993         VkImage                   dstImage,
3994         VkImageLayout             dstImageLayout,
3995         uint32_t                  regionCount,
3996         const(VkBufferImageCopy)* pRegions,
3997     );
3998     alias PFN_vkCmdCopyImageToBuffer = void function (
3999         VkCommandBuffer           commandBuffer,
4000         VkImage                   srcImage,
4001         VkImageLayout             srcImageLayout,
4002         VkBuffer                  dstBuffer,
4003         uint32_t                  regionCount,
4004         const(VkBufferImageCopy)* pRegions,
4005     );
4006     alias PFN_vkCmdUpdateBuffer = void function (
4007         VkCommandBuffer commandBuffer,
4008         VkBuffer        dstBuffer,
4009         VkDeviceSize    dstOffset,
4010         VkDeviceSize    dataSize,
4011         const(void)*    pData,
4012     );
4013     alias PFN_vkCmdFillBuffer = void function (
4014         VkCommandBuffer commandBuffer,
4015         VkBuffer        dstBuffer,
4016         VkDeviceSize    dstOffset,
4017         VkDeviceSize    size,
4018         uint32_t        data,
4019     );
4020     alias PFN_vkCmdClearColorImage = void function (
4021         VkCommandBuffer                 commandBuffer,
4022         VkImage                         image,
4023         VkImageLayout                   imageLayout,
4024         const(VkClearColorValue)*       pColor,
4025         uint32_t                        rangeCount,
4026         const(VkImageSubresourceRange)* pRanges,
4027     );
4028     alias PFN_vkCmdClearDepthStencilImage = void function (
4029         VkCommandBuffer                  commandBuffer,
4030         VkImage                          image,
4031         VkImageLayout                    imageLayout,
4032         const(VkClearDepthStencilValue)* pDepthStencil,
4033         uint32_t                         rangeCount,
4034         const(VkImageSubresourceRange)*  pRanges,
4035     );
4036     alias PFN_vkCmdClearAttachments = void function (
4037         VkCommandBuffer           commandBuffer,
4038         uint32_t                  attachmentCount,
4039         const(VkClearAttachment)* pAttachments,
4040         uint32_t                  rectCount,
4041         const(VkClearRect)*       pRects,
4042     );
4043     alias PFN_vkCmdResolveImage = void function (
4044         VkCommandBuffer        commandBuffer,
4045         VkImage                srcImage,
4046         VkImageLayout          srcImageLayout,
4047         VkImage                dstImage,
4048         VkImageLayout          dstImageLayout,
4049         uint32_t               regionCount,
4050         const(VkImageResolve)* pRegions,
4051     );
4052     alias PFN_vkCmdSetEvent = void function (
4053         VkCommandBuffer      commandBuffer,
4054         VkEvent              event,
4055         VkPipelineStageFlags stageMask,
4056     );
4057     alias PFN_vkCmdResetEvent = void function (
4058         VkCommandBuffer      commandBuffer,
4059         VkEvent              event,
4060         VkPipelineStageFlags stageMask,
4061     );
4062     alias PFN_vkCmdWaitEvents = void function (
4063         VkCommandBuffer               commandBuffer,
4064         uint32_t                      eventCount,
4065         const(VkEvent)*               pEvents,
4066         VkPipelineStageFlags          srcStageMask,
4067         VkPipelineStageFlags          dstStageMask,
4068         uint32_t                      memoryBarrierCount,
4069         const(VkMemoryBarrier)*       pMemoryBarriers,
4070         uint32_t                      bufferMemoryBarrierCount,
4071         const(VkBufferMemoryBarrier)* pBufferMemoryBarriers,
4072         uint32_t                      imageMemoryBarrierCount,
4073         const(VkImageMemoryBarrier)*  pImageMemoryBarriers,
4074     );
4075     alias PFN_vkCmdPipelineBarrier = void function (
4076         VkCommandBuffer               commandBuffer,
4077         VkPipelineStageFlags          srcStageMask,
4078         VkPipelineStageFlags          dstStageMask,
4079         VkDependencyFlags             dependencyFlags,
4080         uint32_t                      memoryBarrierCount,
4081         const(VkMemoryBarrier)*       pMemoryBarriers,
4082         uint32_t                      bufferMemoryBarrierCount,
4083         const(VkBufferMemoryBarrier)* pBufferMemoryBarriers,
4084         uint32_t                      imageMemoryBarrierCount,
4085         const(VkImageMemoryBarrier)*  pImageMemoryBarriers,
4086     );
4087     alias PFN_vkCmdBeginQuery = void function (
4088         VkCommandBuffer     commandBuffer,
4089         VkQueryPool         queryPool,
4090         uint32_t            query,
4091         VkQueryControlFlags flags,
4092     );
4093     alias PFN_vkCmdEndQuery = void function (
4094         VkCommandBuffer commandBuffer,
4095         VkQueryPool     queryPool,
4096         uint32_t        query,
4097     );
4098     alias PFN_vkCmdResetQueryPool = void function (
4099         VkCommandBuffer commandBuffer,
4100         VkQueryPool     queryPool,
4101         uint32_t        firstQuery,
4102         uint32_t        queryCount,
4103     );
4104     alias PFN_vkCmdWriteTimestamp = void function (
4105         VkCommandBuffer         commandBuffer,
4106         VkPipelineStageFlagBits pipelineStage,
4107         VkQueryPool             queryPool,
4108         uint32_t                query,
4109     );
4110     alias PFN_vkCmdCopyQueryPoolResults = void function (
4111         VkCommandBuffer    commandBuffer,
4112         VkQueryPool        queryPool,
4113         uint32_t           firstQuery,
4114         uint32_t           queryCount,
4115         VkBuffer           dstBuffer,
4116         VkDeviceSize       dstOffset,
4117         VkDeviceSize       stride,
4118         VkQueryResultFlags flags,
4119     );
4120     alias PFN_vkCmdPushConstants = void function (
4121         VkCommandBuffer    commandBuffer,
4122         VkPipelineLayout   layout,
4123         VkShaderStageFlags stageFlags,
4124         uint32_t           offset,
4125         uint32_t           size,
4126         const(void)*       pValues,
4127     );
4128     alias PFN_vkCmdBeginRenderPass = void function (
4129         VkCommandBuffer               commandBuffer,
4130         const(VkRenderPassBeginInfo)* pRenderPassBegin,
4131         VkSubpassContents             contents,
4132     );
4133     alias PFN_vkCmdNextSubpass = void function (
4134         VkCommandBuffer   commandBuffer,
4135         VkSubpassContents contents,
4136     );
4137     alias PFN_vkCmdEndRenderPass = void function (VkCommandBuffer commandBuffer);
4138     alias PFN_vkCmdExecuteCommands = void function (
4139         VkCommandBuffer         commandBuffer,
4140         uint32_t                commandBufferCount,
4141         const(VkCommandBuffer)* pCommandBuffers,
4142     );
4143 
4144     // VK_KHR_surface
4145 
4146     alias PFN_vkDestroySurfaceKHR = void function (
4147         VkInstance                    instance,
4148         VkSurfaceKHR                  surface,
4149         const(VkAllocationCallbacks)* pAllocator,
4150     );
4151     alias PFN_vkGetPhysicalDeviceSurfaceSupportKHR = VkResult function (
4152         VkPhysicalDevice physicalDevice,
4153         uint32_t         queueFamilyIndex,
4154         VkSurfaceKHR     surface,
4155         VkBool32*        pSupported,
4156     );
4157     alias PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = VkResult function (
4158         VkPhysicalDevice          physicalDevice,
4159         VkSurfaceKHR              surface,
4160         VkSurfaceCapabilitiesKHR* pSurfaceCapabilities,
4161     );
4162     alias PFN_vkGetPhysicalDeviceSurfaceFormatsKHR = VkResult function (
4163         VkPhysicalDevice    physicalDevice,
4164         VkSurfaceKHR        surface,
4165         uint32_t*           pSurfaceFormatCount,
4166         VkSurfaceFormatKHR* pSurfaceFormats,
4167     );
4168     alias PFN_vkGetPhysicalDeviceSurfacePresentModesKHR = VkResult function (
4169         VkPhysicalDevice  physicalDevice,
4170         VkSurfaceKHR      surface,
4171         uint32_t*         pPresentModeCount,
4172         VkPresentModeKHR* pPresentModes,
4173     );
4174 
4175     // VK_KHR_swapchain
4176 
4177     alias PFN_vkCreateSwapchainKHR = VkResult function (
4178         VkDevice                         device,
4179         const(VkSwapchainCreateInfoKHR)* pCreateInfo,
4180         const(VkAllocationCallbacks)*    pAllocator,
4181         VkSwapchainKHR*                  pSwapchain,
4182     );
4183     alias PFN_vkDestroySwapchainKHR = void function (
4184         VkDevice                      device,
4185         VkSwapchainKHR                swapchain,
4186         const(VkAllocationCallbacks)* pAllocator,
4187     );
4188     alias PFN_vkGetSwapchainImagesKHR = VkResult function (
4189         VkDevice       device,
4190         VkSwapchainKHR swapchain,
4191         uint32_t*      pSwapchainImageCount,
4192         VkImage*       pSwapchainImages,
4193     );
4194     alias PFN_vkAcquireNextImageKHR = VkResult function (
4195         VkDevice       device,
4196         VkSwapchainKHR swapchain,
4197         uint64_t       timeout,
4198         VkSemaphore    semaphore,
4199         VkFence        fence,
4200         uint32_t*      pImageIndex,
4201     );
4202     alias PFN_vkQueuePresentKHR = VkResult function (
4203         VkQueue                  queue,
4204         const(VkPresentInfoKHR)* pPresentInfo,
4205     );
4206 
4207     // VK_KHR_display
4208 
4209     alias PFN_vkGetPhysicalDeviceDisplayPropertiesKHR = VkResult function (
4210         VkPhysicalDevice        physicalDevice,
4211         uint32_t*               pPropertyCount,
4212         VkDisplayPropertiesKHR* pProperties,
4213     );
4214     alias PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR = VkResult function (
4215         VkPhysicalDevice             physicalDevice,
4216         uint32_t*                    pPropertyCount,
4217         VkDisplayPlanePropertiesKHR* pProperties,
4218     );
4219     alias PFN_vkGetDisplayPlaneSupportedDisplaysKHR = VkResult function (
4220         VkPhysicalDevice physicalDevice,
4221         uint32_t         planeIndex,
4222         uint32_t*        pDisplayCount,
4223         VkDisplayKHR*    pDisplays,
4224     );
4225     alias PFN_vkGetDisplayModePropertiesKHR = VkResult function (
4226         VkPhysicalDevice            physicalDevice,
4227         VkDisplayKHR                display,
4228         uint32_t*                   pPropertyCount,
4229         VkDisplayModePropertiesKHR* pProperties,
4230     );
4231     alias PFN_vkCreateDisplayModeKHR = VkResult function (
4232         VkPhysicalDevice                   physicalDevice,
4233         VkDisplayKHR                       display,
4234         const(VkDisplayModeCreateInfoKHR)* pCreateInfo,
4235         const(VkAllocationCallbacks)*      pAllocator,
4236         VkDisplayModeKHR*                  pMode,
4237     );
4238     alias PFN_vkGetDisplayPlaneCapabilitiesKHR = VkResult function (
4239         VkPhysicalDevice               physicalDevice,
4240         VkDisplayModeKHR               mode,
4241         uint32_t                       planeIndex,
4242         VkDisplayPlaneCapabilitiesKHR* pCapabilities,
4243     );
4244     alias PFN_vkCreateDisplayPlaneSurfaceKHR = VkResult function (
4245         VkInstance                            instance,
4246         const(VkDisplaySurfaceCreateInfoKHR)* pCreateInfo,
4247         const(VkAllocationCallbacks)*         pAllocator,
4248         VkSurfaceKHR*                         pSurface,
4249     );
4250 
4251     // VK_KHR_wayland_surface
4252 
4253     version(linux) {
4254         alias PFN_vkCreateWaylandSurfaceKHR = VkResult function (
4255             VkInstance                            instance,
4256             const(VkWaylandSurfaceCreateInfoKHR)* pCreateInfo,
4257             const(VkAllocationCallbacks)*         pAllocator,
4258             VkSurfaceKHR*                         pSurface,
4259         );
4260         alias PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR = VkBool32 function (
4261             VkPhysicalDevice physicalDevice,
4262             uint32_t         queueFamilyIndex,
4263             wl_display*      display,
4264         );
4265     }
4266 }
4267 
4268 final class VkGlobalCmds {
4269 
4270     // VK_VERSION_1_0
4271     PFN_vkCreateInstance                       createInstance;
4272     PFN_vkGetInstanceProcAddr                  getInstanceProcAddr;
4273     PFN_vkEnumerateInstanceExtensionProperties enumerateInstanceExtensionProperties;
4274     PFN_vkEnumerateInstanceLayerProperties     enumerateInstanceLayerProperties;
4275 
4276     this (PFN_vkGetInstanceProcAddr loader) {
4277         getInstanceProcAddr = loader;
4278 
4279         // VK_VERSION_1_0
4280         createInstance                       = cast(PFN_vkCreateInstance)                      loader(null, "vkCreateInstance");
4281         enumerateInstanceExtensionProperties = cast(PFN_vkEnumerateInstanceExtensionProperties)loader(null, "vkEnumerateInstanceExtensionProperties");
4282         enumerateInstanceLayerProperties     = cast(PFN_vkEnumerateInstanceLayerProperties)    loader(null, "vkEnumerateInstanceLayerProperties");
4283     }
4284 }
4285 
4286 final class VkInstanceCmds {
4287 
4288     // VK_VERSION_1_0
4289     PFN_vkDestroyInstance                                destroyInstance;
4290     PFN_vkEnumeratePhysicalDevices                       enumeratePhysicalDevices;
4291     PFN_vkGetPhysicalDeviceFeatures                      getPhysicalDeviceFeatures;
4292     PFN_vkGetPhysicalDeviceFormatProperties              getPhysicalDeviceFormatProperties;
4293     PFN_vkGetPhysicalDeviceImageFormatProperties         getPhysicalDeviceImageFormatProperties;
4294     PFN_vkGetPhysicalDeviceProperties                    getPhysicalDeviceProperties;
4295     PFN_vkGetPhysicalDeviceQueueFamilyProperties         getPhysicalDeviceQueueFamilyProperties;
4296     PFN_vkGetPhysicalDeviceMemoryProperties              getPhysicalDeviceMemoryProperties;
4297     PFN_vkGetDeviceProcAddr                              getDeviceProcAddr;
4298     PFN_vkCreateDevice                                   createDevice;
4299     PFN_vkEnumerateDeviceExtensionProperties             enumerateDeviceExtensionProperties;
4300     PFN_vkEnumerateDeviceLayerProperties                 enumerateDeviceLayerProperties;
4301     PFN_vkGetPhysicalDeviceSparseImageFormatProperties   getPhysicalDeviceSparseImageFormatProperties;
4302 
4303     // VK_KHR_surface
4304     PFN_vkDestroySurfaceKHR                              destroySurfaceKHR;
4305     PFN_vkGetPhysicalDeviceSurfaceSupportKHR             getPhysicalDeviceSurfaceSupportKHR;
4306     PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR        getPhysicalDeviceSurfaceCapabilitiesKHR;
4307     PFN_vkGetPhysicalDeviceSurfaceFormatsKHR             getPhysicalDeviceSurfaceFormatsKHR;
4308     PFN_vkGetPhysicalDeviceSurfacePresentModesKHR        getPhysicalDeviceSurfacePresentModesKHR;
4309 
4310     // VK_KHR_display
4311     PFN_vkGetPhysicalDeviceDisplayPropertiesKHR          getPhysicalDeviceDisplayPropertiesKHR;
4312     PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR     getPhysicalDeviceDisplayPlanePropertiesKHR;
4313     PFN_vkGetDisplayPlaneSupportedDisplaysKHR            getDisplayPlaneSupportedDisplaysKHR;
4314     PFN_vkGetDisplayModePropertiesKHR                    getDisplayModePropertiesKHR;
4315     PFN_vkCreateDisplayModeKHR                           createDisplayModeKHR;
4316     PFN_vkGetDisplayPlaneCapabilitiesKHR                 getDisplayPlaneCapabilitiesKHR;
4317     PFN_vkCreateDisplayPlaneSurfaceKHR                   createDisplayPlaneSurfaceKHR;
4318 
4319     // VK_KHR_wayland_surface
4320     version(linux) {
4321         PFN_vkCreateWaylandSurfaceKHR                        createWaylandSurfaceKHR;
4322         PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR getPhysicalDeviceWaylandPresentationSupportKHR;
4323     }
4324 
4325     this (VkInstance instance, VkGlobalCmds globalCmds) {
4326         auto loader = globalCmds.getInstanceProcAddr;
4327 
4328         // VK_VERSION_1_0
4329         destroyInstance                                = cast(PFN_vkDestroyInstance)                               loader(instance, "vkDestroyInstance");
4330         enumeratePhysicalDevices                       = cast(PFN_vkEnumeratePhysicalDevices)                      loader(instance, "vkEnumeratePhysicalDevices");
4331         getPhysicalDeviceFeatures                      = cast(PFN_vkGetPhysicalDeviceFeatures)                     loader(instance, "vkGetPhysicalDeviceFeatures");
4332         getPhysicalDeviceFormatProperties              = cast(PFN_vkGetPhysicalDeviceFormatProperties)             loader(instance, "vkGetPhysicalDeviceFormatProperties");
4333         getPhysicalDeviceImageFormatProperties         = cast(PFN_vkGetPhysicalDeviceImageFormatProperties)        loader(instance, "vkGetPhysicalDeviceImageFormatProperties");
4334         getPhysicalDeviceProperties                    = cast(PFN_vkGetPhysicalDeviceProperties)                   loader(instance, "vkGetPhysicalDeviceProperties");
4335         getPhysicalDeviceQueueFamilyProperties         = cast(PFN_vkGetPhysicalDeviceQueueFamilyProperties)        loader(instance, "vkGetPhysicalDeviceQueueFamilyProperties");
4336         getPhysicalDeviceMemoryProperties              = cast(PFN_vkGetPhysicalDeviceMemoryProperties)             loader(instance, "vkGetPhysicalDeviceMemoryProperties");
4337         getDeviceProcAddr                              = cast(PFN_vkGetDeviceProcAddr)                             loader(instance, "vkGetDeviceProcAddr");
4338         createDevice                                   = cast(PFN_vkCreateDevice)                                  loader(instance, "vkCreateDevice");
4339         enumerateDeviceExtensionProperties             = cast(PFN_vkEnumerateDeviceExtensionProperties)            loader(instance, "vkEnumerateDeviceExtensionProperties");
4340         enumerateDeviceLayerProperties                 = cast(PFN_vkEnumerateDeviceLayerProperties)                loader(instance, "vkEnumerateDeviceLayerProperties");
4341         getPhysicalDeviceSparseImageFormatProperties   = cast(PFN_vkGetPhysicalDeviceSparseImageFormatProperties)  loader(instance, "vkGetPhysicalDeviceSparseImageFormatProperties");
4342 
4343         // VK_KHR_surface
4344         destroySurfaceKHR                              = cast(PFN_vkDestroySurfaceKHR)                             loader(instance, "vkDestroySurfaceKHR");
4345         getPhysicalDeviceSurfaceSupportKHR             = cast(PFN_vkGetPhysicalDeviceSurfaceSupportKHR)            loader(instance, "vkGetPhysicalDeviceSurfaceSupportKHR");
4346         getPhysicalDeviceSurfaceCapabilitiesKHR        = cast(PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)       loader(instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
4347         getPhysicalDeviceSurfaceFormatsKHR             = cast(PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)            loader(instance, "vkGetPhysicalDeviceSurfaceFormatsKHR");
4348         getPhysicalDeviceSurfacePresentModesKHR        = cast(PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)       loader(instance, "vkGetPhysicalDeviceSurfacePresentModesKHR");
4349 
4350         // VK_KHR_display
4351         getPhysicalDeviceDisplayPropertiesKHR          = cast(PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)         loader(instance, "vkGetPhysicalDeviceDisplayPropertiesKHR");
4352         getPhysicalDeviceDisplayPlanePropertiesKHR     = cast(PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)    loader(instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
4353         getDisplayPlaneSupportedDisplaysKHR            = cast(PFN_vkGetDisplayPlaneSupportedDisplaysKHR)           loader(instance, "vkGetDisplayPlaneSupportedDisplaysKHR");
4354         getDisplayModePropertiesKHR                    = cast(PFN_vkGetDisplayModePropertiesKHR)                   loader(instance, "vkGetDisplayModePropertiesKHR");
4355         createDisplayModeKHR                           = cast(PFN_vkCreateDisplayModeKHR)                          loader(instance, "vkCreateDisplayModeKHR");
4356         getDisplayPlaneCapabilitiesKHR                 = cast(PFN_vkGetDisplayPlaneCapabilitiesKHR)                loader(instance, "vkGetDisplayPlaneCapabilitiesKHR");
4357         createDisplayPlaneSurfaceKHR                   = cast(PFN_vkCreateDisplayPlaneSurfaceKHR)                  loader(instance, "vkCreateDisplayPlaneSurfaceKHR");
4358 
4359         // VK_KHR_wayland_surface
4360         version(linux) {
4361             createWaylandSurfaceKHR                        = cast(PFN_vkCreateWaylandSurfaceKHR)                       loader(instance, "vkCreateWaylandSurfaceKHR");
4362             getPhysicalDeviceWaylandPresentationSupportKHR = cast(PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)loader(instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR");
4363         }
4364     }
4365 }
4366 
4367 final class VkDeviceCmds {
4368 
4369     // VK_VERSION_1_0
4370     PFN_vkDestroyDevice                    destroyDevice;
4371     PFN_vkGetDeviceQueue                   getDeviceQueue;
4372     PFN_vkQueueSubmit                      queueSubmit;
4373     PFN_vkQueueWaitIdle                    queueWaitIdle;
4374     PFN_vkDeviceWaitIdle                   deviceWaitIdle;
4375     PFN_vkAllocateMemory                   allocateMemory;
4376     PFN_vkFreeMemory                       freeMemory;
4377     PFN_vkMapMemory                        mapMemory;
4378     PFN_vkUnmapMemory                      unmapMemory;
4379     PFN_vkFlushMappedMemoryRanges          flushMappedMemoryRanges;
4380     PFN_vkInvalidateMappedMemoryRanges     invalidateMappedMemoryRanges;
4381     PFN_vkGetDeviceMemoryCommitment        getDeviceMemoryCommitment;
4382     PFN_vkBindBufferMemory                 bindBufferMemory;
4383     PFN_vkBindImageMemory                  bindImageMemory;
4384     PFN_vkGetBufferMemoryRequirements      getBufferMemoryRequirements;
4385     PFN_vkGetImageMemoryRequirements       getImageMemoryRequirements;
4386     PFN_vkGetImageSparseMemoryRequirements getImageSparseMemoryRequirements;
4387     PFN_vkQueueBindSparse                  queueBindSparse;
4388     PFN_vkCreateFence                      createFence;
4389     PFN_vkDestroyFence                     destroyFence;
4390     PFN_vkResetFences                      resetFences;
4391     PFN_vkGetFenceStatus                   getFenceStatus;
4392     PFN_vkWaitForFences                    waitForFences;
4393     PFN_vkCreateSemaphore                  createSemaphore;
4394     PFN_vkDestroySemaphore                 destroySemaphore;
4395     PFN_vkCreateEvent                      createEvent;
4396     PFN_vkDestroyEvent                     destroyEvent;
4397     PFN_vkGetEventStatus                   getEventStatus;
4398     PFN_vkSetEvent                         setEvent;
4399     PFN_vkResetEvent                       resetEvent;
4400     PFN_vkCreateQueryPool                  createQueryPool;
4401     PFN_vkDestroyQueryPool                 destroyQueryPool;
4402     PFN_vkGetQueryPoolResults              getQueryPoolResults;
4403     PFN_vkCreateBuffer                     createBuffer;
4404     PFN_vkDestroyBuffer                    destroyBuffer;
4405     PFN_vkCreateBufferView                 createBufferView;
4406     PFN_vkDestroyBufferView                destroyBufferView;
4407     PFN_vkCreateImage                      createImage;
4408     PFN_vkDestroyImage                     destroyImage;
4409     PFN_vkGetImageSubresourceLayout        getImageSubresourceLayout;
4410     PFN_vkCreateImageView                  createImageView;
4411     PFN_vkDestroyImageView                 destroyImageView;
4412     PFN_vkCreateShaderModule               createShaderModule;
4413     PFN_vkDestroyShaderModule              destroyShaderModule;
4414     PFN_vkCreatePipelineCache              createPipelineCache;
4415     PFN_vkDestroyPipelineCache             destroyPipelineCache;
4416     PFN_vkGetPipelineCacheData             getPipelineCacheData;
4417     PFN_vkMergePipelineCaches              mergePipelineCaches;
4418     PFN_vkCreateGraphicsPipelines          createGraphicsPipelines;
4419     PFN_vkCreateComputePipelines           createComputePipelines;
4420     PFN_vkDestroyPipeline                  destroyPipeline;
4421     PFN_vkCreatePipelineLayout             createPipelineLayout;
4422     PFN_vkDestroyPipelineLayout            destroyPipelineLayout;
4423     PFN_vkCreateSampler                    createSampler;
4424     PFN_vkDestroySampler                   destroySampler;
4425     PFN_vkCreateDescriptorSetLayout        createDescriptorSetLayout;
4426     PFN_vkDestroyDescriptorSetLayout       destroyDescriptorSetLayout;
4427     PFN_vkCreateDescriptorPool             createDescriptorPool;
4428     PFN_vkDestroyDescriptorPool            destroyDescriptorPool;
4429     PFN_vkResetDescriptorPool              resetDescriptorPool;
4430     PFN_vkAllocateDescriptorSets           allocateDescriptorSets;
4431     PFN_vkFreeDescriptorSets               freeDescriptorSets;
4432     PFN_vkUpdateDescriptorSets             updateDescriptorSets;
4433     PFN_vkCreateFramebuffer                createFramebuffer;
4434     PFN_vkDestroyFramebuffer               destroyFramebuffer;
4435     PFN_vkCreateRenderPass                 createRenderPass;
4436     PFN_vkDestroyRenderPass                destroyRenderPass;
4437     PFN_vkGetRenderAreaGranularity         getRenderAreaGranularity;
4438     PFN_vkCreateCommandPool                createCommandPool;
4439     PFN_vkDestroyCommandPool               destroyCommandPool;
4440     PFN_vkResetCommandPool                 resetCommandPool;
4441     PFN_vkAllocateCommandBuffers           allocateCommandBuffers;
4442     PFN_vkFreeCommandBuffers               freeCommandBuffers;
4443     PFN_vkBeginCommandBuffer               beginCommandBuffer;
4444     PFN_vkEndCommandBuffer                 endCommandBuffer;
4445     PFN_vkResetCommandBuffer               resetCommandBuffer;
4446     PFN_vkCmdBindPipeline                  cmdBindPipeline;
4447     PFN_vkCmdSetViewport                   cmdSetViewport;
4448     PFN_vkCmdSetScissor                    cmdSetScissor;
4449     PFN_vkCmdSetLineWidth                  cmdSetLineWidth;
4450     PFN_vkCmdSetDepthBias                  cmdSetDepthBias;
4451     PFN_vkCmdSetBlendConstants             cmdSetBlendConstants;
4452     PFN_vkCmdSetDepthBounds                cmdSetDepthBounds;
4453     PFN_vkCmdSetStencilCompareMask         cmdSetStencilCompareMask;
4454     PFN_vkCmdSetStencilWriteMask           cmdSetStencilWriteMask;
4455     PFN_vkCmdSetStencilReference           cmdSetStencilReference;
4456     PFN_vkCmdBindDescriptorSets            cmdBindDescriptorSets;
4457     PFN_vkCmdBindIndexBuffer               cmdBindIndexBuffer;
4458     PFN_vkCmdBindVertexBuffers             cmdBindVertexBuffers;
4459     PFN_vkCmdDraw                          cmdDraw;
4460     PFN_vkCmdDrawIndexed                   cmdDrawIndexed;
4461     PFN_vkCmdDrawIndirect                  cmdDrawIndirect;
4462     PFN_vkCmdDrawIndexedIndirect           cmdDrawIndexedIndirect;
4463     PFN_vkCmdDispatch                      cmdDispatch;
4464     PFN_vkCmdDispatchIndirect              cmdDispatchIndirect;
4465     PFN_vkCmdCopyBuffer                    cmdCopyBuffer;
4466     PFN_vkCmdCopyImage                     cmdCopyImage;
4467     PFN_vkCmdBlitImage                     cmdBlitImage;
4468     PFN_vkCmdCopyBufferToImage             cmdCopyBufferToImage;
4469     PFN_vkCmdCopyImageToBuffer             cmdCopyImageToBuffer;
4470     PFN_vkCmdUpdateBuffer                  cmdUpdateBuffer;
4471     PFN_vkCmdFillBuffer                    cmdFillBuffer;
4472     PFN_vkCmdClearColorImage               cmdClearColorImage;
4473     PFN_vkCmdClearDepthStencilImage        cmdClearDepthStencilImage;
4474     PFN_vkCmdClearAttachments              cmdClearAttachments;
4475     PFN_vkCmdResolveImage                  cmdResolveImage;
4476     PFN_vkCmdSetEvent                      cmdSetEvent;
4477     PFN_vkCmdResetEvent                    cmdResetEvent;
4478     PFN_vkCmdWaitEvents                    cmdWaitEvents;
4479     PFN_vkCmdPipelineBarrier               cmdPipelineBarrier;
4480     PFN_vkCmdBeginQuery                    cmdBeginQuery;
4481     PFN_vkCmdEndQuery                      cmdEndQuery;
4482     PFN_vkCmdResetQueryPool                cmdResetQueryPool;
4483     PFN_vkCmdWriteTimestamp                cmdWriteTimestamp;
4484     PFN_vkCmdCopyQueryPoolResults          cmdCopyQueryPoolResults;
4485     PFN_vkCmdPushConstants                 cmdPushConstants;
4486     PFN_vkCmdBeginRenderPass               cmdBeginRenderPass;
4487     PFN_vkCmdNextSubpass                   cmdNextSubpass;
4488     PFN_vkCmdEndRenderPass                 cmdEndRenderPass;
4489     PFN_vkCmdExecuteCommands               cmdExecuteCommands;
4490 
4491     // VK_KHR_swapchain
4492     PFN_vkCreateSwapchainKHR               createSwapchainKHR;
4493     PFN_vkDestroySwapchainKHR              destroySwapchainKHR;
4494     PFN_vkGetSwapchainImagesKHR            getSwapchainImagesKHR;
4495     PFN_vkAcquireNextImageKHR              acquireNextImageKHR;
4496     PFN_vkQueuePresentKHR                  queuePresentKHR;
4497 
4498     this (VkDevice device, VkInstanceCmds instanceCmds) {
4499         auto loader = instanceCmds.getDeviceProcAddr;
4500 
4501         // VK_VERSION_1_0
4502         destroyDevice                    = cast(PFN_vkDestroyDevice)                   loader(device, "vkDestroyDevice");
4503         getDeviceQueue                   = cast(PFN_vkGetDeviceQueue)                  loader(device, "vkGetDeviceQueue");
4504         queueSubmit                      = cast(PFN_vkQueueSubmit)                     loader(device, "vkQueueSubmit");
4505         queueWaitIdle                    = cast(PFN_vkQueueWaitIdle)                   loader(device, "vkQueueWaitIdle");
4506         deviceWaitIdle                   = cast(PFN_vkDeviceWaitIdle)                  loader(device, "vkDeviceWaitIdle");
4507         allocateMemory                   = cast(PFN_vkAllocateMemory)                  loader(device, "vkAllocateMemory");
4508         freeMemory                       = cast(PFN_vkFreeMemory)                      loader(device, "vkFreeMemory");
4509         mapMemory                        = cast(PFN_vkMapMemory)                       loader(device, "vkMapMemory");
4510         unmapMemory                      = cast(PFN_vkUnmapMemory)                     loader(device, "vkUnmapMemory");
4511         flushMappedMemoryRanges          = cast(PFN_vkFlushMappedMemoryRanges)         loader(device, "vkFlushMappedMemoryRanges");
4512         invalidateMappedMemoryRanges     = cast(PFN_vkInvalidateMappedMemoryRanges)    loader(device, "vkInvalidateMappedMemoryRanges");
4513         getDeviceMemoryCommitment        = cast(PFN_vkGetDeviceMemoryCommitment)       loader(device, "vkGetDeviceMemoryCommitment");
4514         bindBufferMemory                 = cast(PFN_vkBindBufferMemory)                loader(device, "vkBindBufferMemory");
4515         bindImageMemory                  = cast(PFN_vkBindImageMemory)                 loader(device, "vkBindImageMemory");
4516         getBufferMemoryRequirements      = cast(PFN_vkGetBufferMemoryRequirements)     loader(device, "vkGetBufferMemoryRequirements");
4517         getImageMemoryRequirements       = cast(PFN_vkGetImageMemoryRequirements)      loader(device, "vkGetImageMemoryRequirements");
4518         getImageSparseMemoryRequirements = cast(PFN_vkGetImageSparseMemoryRequirements)loader(device, "vkGetImageSparseMemoryRequirements");
4519         queueBindSparse                  = cast(PFN_vkQueueBindSparse)                 loader(device, "vkQueueBindSparse");
4520         createFence                      = cast(PFN_vkCreateFence)                     loader(device, "vkCreateFence");
4521         destroyFence                     = cast(PFN_vkDestroyFence)                    loader(device, "vkDestroyFence");
4522         resetFences                      = cast(PFN_vkResetFences)                     loader(device, "vkResetFences");
4523         getFenceStatus                   = cast(PFN_vkGetFenceStatus)                  loader(device, "vkGetFenceStatus");
4524         waitForFences                    = cast(PFN_vkWaitForFences)                   loader(device, "vkWaitForFences");
4525         createSemaphore                  = cast(PFN_vkCreateSemaphore)                 loader(device, "vkCreateSemaphore");
4526         destroySemaphore                 = cast(PFN_vkDestroySemaphore)                loader(device, "vkDestroySemaphore");
4527         createEvent                      = cast(PFN_vkCreateEvent)                     loader(device, "vkCreateEvent");
4528         destroyEvent                     = cast(PFN_vkDestroyEvent)                    loader(device, "vkDestroyEvent");
4529         getEventStatus                   = cast(PFN_vkGetEventStatus)                  loader(device, "vkGetEventStatus");
4530         setEvent                         = cast(PFN_vkSetEvent)                        loader(device, "vkSetEvent");
4531         resetEvent                       = cast(PFN_vkResetEvent)                      loader(device, "vkResetEvent");
4532         createQueryPool                  = cast(PFN_vkCreateQueryPool)                 loader(device, "vkCreateQueryPool");
4533         destroyQueryPool                 = cast(PFN_vkDestroyQueryPool)                loader(device, "vkDestroyQueryPool");
4534         getQueryPoolResults              = cast(PFN_vkGetQueryPoolResults)             loader(device, "vkGetQueryPoolResults");
4535         createBuffer                     = cast(PFN_vkCreateBuffer)                    loader(device, "vkCreateBuffer");
4536         destroyBuffer                    = cast(PFN_vkDestroyBuffer)                   loader(device, "vkDestroyBuffer");
4537         createBufferView                 = cast(PFN_vkCreateBufferView)                loader(device, "vkCreateBufferView");
4538         destroyBufferView                = cast(PFN_vkDestroyBufferView)               loader(device, "vkDestroyBufferView");
4539         createImage                      = cast(PFN_vkCreateImage)                     loader(device, "vkCreateImage");
4540         destroyImage                     = cast(PFN_vkDestroyImage)                    loader(device, "vkDestroyImage");
4541         getImageSubresourceLayout        = cast(PFN_vkGetImageSubresourceLayout)       loader(device, "vkGetImageSubresourceLayout");
4542         createImageView                  = cast(PFN_vkCreateImageView)                 loader(device, "vkCreateImageView");
4543         destroyImageView                 = cast(PFN_vkDestroyImageView)                loader(device, "vkDestroyImageView");
4544         createShaderModule               = cast(PFN_vkCreateShaderModule)              loader(device, "vkCreateShaderModule");
4545         destroyShaderModule              = cast(PFN_vkDestroyShaderModule)             loader(device, "vkDestroyShaderModule");
4546         createPipelineCache              = cast(PFN_vkCreatePipelineCache)             loader(device, "vkCreatePipelineCache");
4547         destroyPipelineCache             = cast(PFN_vkDestroyPipelineCache)            loader(device, "vkDestroyPipelineCache");
4548         getPipelineCacheData             = cast(PFN_vkGetPipelineCacheData)            loader(device, "vkGetPipelineCacheData");
4549         mergePipelineCaches              = cast(PFN_vkMergePipelineCaches)             loader(device, "vkMergePipelineCaches");
4550         createGraphicsPipelines          = cast(PFN_vkCreateGraphicsPipelines)         loader(device, "vkCreateGraphicsPipelines");
4551         createComputePipelines           = cast(PFN_vkCreateComputePipelines)          loader(device, "vkCreateComputePipelines");
4552         destroyPipeline                  = cast(PFN_vkDestroyPipeline)                 loader(device, "vkDestroyPipeline");
4553         createPipelineLayout             = cast(PFN_vkCreatePipelineLayout)            loader(device, "vkCreatePipelineLayout");
4554         destroyPipelineLayout            = cast(PFN_vkDestroyPipelineLayout)           loader(device, "vkDestroyPipelineLayout");
4555         createSampler                    = cast(PFN_vkCreateSampler)                   loader(device, "vkCreateSampler");
4556         destroySampler                   = cast(PFN_vkDestroySampler)                  loader(device, "vkDestroySampler");
4557         createDescriptorSetLayout        = cast(PFN_vkCreateDescriptorSetLayout)       loader(device, "vkCreateDescriptorSetLayout");
4558         destroyDescriptorSetLayout       = cast(PFN_vkDestroyDescriptorSetLayout)      loader(device, "vkDestroyDescriptorSetLayout");
4559         createDescriptorPool             = cast(PFN_vkCreateDescriptorPool)            loader(device, "vkCreateDescriptorPool");
4560         destroyDescriptorPool            = cast(PFN_vkDestroyDescriptorPool)           loader(device, "vkDestroyDescriptorPool");
4561         resetDescriptorPool              = cast(PFN_vkResetDescriptorPool)             loader(device, "vkResetDescriptorPool");
4562         allocateDescriptorSets           = cast(PFN_vkAllocateDescriptorSets)          loader(device, "vkAllocateDescriptorSets");
4563         freeDescriptorSets               = cast(PFN_vkFreeDescriptorSets)              loader(device, "vkFreeDescriptorSets");
4564         updateDescriptorSets             = cast(PFN_vkUpdateDescriptorSets)            loader(device, "vkUpdateDescriptorSets");
4565         createFramebuffer                = cast(PFN_vkCreateFramebuffer)               loader(device, "vkCreateFramebuffer");
4566         destroyFramebuffer               = cast(PFN_vkDestroyFramebuffer)              loader(device, "vkDestroyFramebuffer");
4567         createRenderPass                 = cast(PFN_vkCreateRenderPass)                loader(device, "vkCreateRenderPass");
4568         destroyRenderPass                = cast(PFN_vkDestroyRenderPass)               loader(device, "vkDestroyRenderPass");
4569         getRenderAreaGranularity         = cast(PFN_vkGetRenderAreaGranularity)        loader(device, "vkGetRenderAreaGranularity");
4570         createCommandPool                = cast(PFN_vkCreateCommandPool)               loader(device, "vkCreateCommandPool");
4571         destroyCommandPool               = cast(PFN_vkDestroyCommandPool)              loader(device, "vkDestroyCommandPool");
4572         resetCommandPool                 = cast(PFN_vkResetCommandPool)                loader(device, "vkResetCommandPool");
4573         allocateCommandBuffers           = cast(PFN_vkAllocateCommandBuffers)          loader(device, "vkAllocateCommandBuffers");
4574         freeCommandBuffers               = cast(PFN_vkFreeCommandBuffers)              loader(device, "vkFreeCommandBuffers");
4575         beginCommandBuffer               = cast(PFN_vkBeginCommandBuffer)              loader(device, "vkBeginCommandBuffer");
4576         endCommandBuffer                 = cast(PFN_vkEndCommandBuffer)                loader(device, "vkEndCommandBuffer");
4577         resetCommandBuffer               = cast(PFN_vkResetCommandBuffer)              loader(device, "vkResetCommandBuffer");
4578         cmdBindPipeline                  = cast(PFN_vkCmdBindPipeline)                 loader(device, "vkCmdBindPipeline");
4579         cmdSetViewport                   = cast(PFN_vkCmdSetViewport)                  loader(device, "vkCmdSetViewport");
4580         cmdSetScissor                    = cast(PFN_vkCmdSetScissor)                   loader(device, "vkCmdSetScissor");
4581         cmdSetLineWidth                  = cast(PFN_vkCmdSetLineWidth)                 loader(device, "vkCmdSetLineWidth");
4582         cmdSetDepthBias                  = cast(PFN_vkCmdSetDepthBias)                 loader(device, "vkCmdSetDepthBias");
4583         cmdSetBlendConstants             = cast(PFN_vkCmdSetBlendConstants)            loader(device, "vkCmdSetBlendConstants");
4584         cmdSetDepthBounds                = cast(PFN_vkCmdSetDepthBounds)               loader(device, "vkCmdSetDepthBounds");
4585         cmdSetStencilCompareMask         = cast(PFN_vkCmdSetStencilCompareMask)        loader(device, "vkCmdSetStencilCompareMask");
4586         cmdSetStencilWriteMask           = cast(PFN_vkCmdSetStencilWriteMask)          loader(device, "vkCmdSetStencilWriteMask");
4587         cmdSetStencilReference           = cast(PFN_vkCmdSetStencilReference)          loader(device, "vkCmdSetStencilReference");
4588         cmdBindDescriptorSets            = cast(PFN_vkCmdBindDescriptorSets)           loader(device, "vkCmdBindDescriptorSets");
4589         cmdBindIndexBuffer               = cast(PFN_vkCmdBindIndexBuffer)              loader(device, "vkCmdBindIndexBuffer");
4590         cmdBindVertexBuffers             = cast(PFN_vkCmdBindVertexBuffers)            loader(device, "vkCmdBindVertexBuffers");
4591         cmdDraw                          = cast(PFN_vkCmdDraw)                         loader(device, "vkCmdDraw");
4592         cmdDrawIndexed                   = cast(PFN_vkCmdDrawIndexed)                  loader(device, "vkCmdDrawIndexed");
4593         cmdDrawIndirect                  = cast(PFN_vkCmdDrawIndirect)                 loader(device, "vkCmdDrawIndirect");
4594         cmdDrawIndexedIndirect           = cast(PFN_vkCmdDrawIndexedIndirect)          loader(device, "vkCmdDrawIndexedIndirect");
4595         cmdDispatch                      = cast(PFN_vkCmdDispatch)                     loader(device, "vkCmdDispatch");
4596         cmdDispatchIndirect              = cast(PFN_vkCmdDispatchIndirect)             loader(device, "vkCmdDispatchIndirect");
4597         cmdCopyBuffer                    = cast(PFN_vkCmdCopyBuffer)                   loader(device, "vkCmdCopyBuffer");
4598         cmdCopyImage                     = cast(PFN_vkCmdCopyImage)                    loader(device, "vkCmdCopyImage");
4599         cmdBlitImage                     = cast(PFN_vkCmdBlitImage)                    loader(device, "vkCmdBlitImage");
4600         cmdCopyBufferToImage             = cast(PFN_vkCmdCopyBufferToImage)            loader(device, "vkCmdCopyBufferToImage");
4601         cmdCopyImageToBuffer             = cast(PFN_vkCmdCopyImageToBuffer)            loader(device, "vkCmdCopyImageToBuffer");
4602         cmdUpdateBuffer                  = cast(PFN_vkCmdUpdateBuffer)                 loader(device, "vkCmdUpdateBuffer");
4603         cmdFillBuffer                    = cast(PFN_vkCmdFillBuffer)                   loader(device, "vkCmdFillBuffer");
4604         cmdClearColorImage               = cast(PFN_vkCmdClearColorImage)              loader(device, "vkCmdClearColorImage");
4605         cmdClearDepthStencilImage        = cast(PFN_vkCmdClearDepthStencilImage)       loader(device, "vkCmdClearDepthStencilImage");
4606         cmdClearAttachments              = cast(PFN_vkCmdClearAttachments)             loader(device, "vkCmdClearAttachments");
4607         cmdResolveImage                  = cast(PFN_vkCmdResolveImage)                 loader(device, "vkCmdResolveImage");
4608         cmdSetEvent                      = cast(PFN_vkCmdSetEvent)                     loader(device, "vkCmdSetEvent");
4609         cmdResetEvent                    = cast(PFN_vkCmdResetEvent)                   loader(device, "vkCmdResetEvent");
4610         cmdWaitEvents                    = cast(PFN_vkCmdWaitEvents)                   loader(device, "vkCmdWaitEvents");
4611         cmdPipelineBarrier               = cast(PFN_vkCmdPipelineBarrier)              loader(device, "vkCmdPipelineBarrier");
4612         cmdBeginQuery                    = cast(PFN_vkCmdBeginQuery)                   loader(device, "vkCmdBeginQuery");
4613         cmdEndQuery                      = cast(PFN_vkCmdEndQuery)                     loader(device, "vkCmdEndQuery");
4614         cmdResetQueryPool                = cast(PFN_vkCmdResetQueryPool)               loader(device, "vkCmdResetQueryPool");
4615         cmdWriteTimestamp                = cast(PFN_vkCmdWriteTimestamp)               loader(device, "vkCmdWriteTimestamp");
4616         cmdCopyQueryPoolResults          = cast(PFN_vkCmdCopyQueryPoolResults)         loader(device, "vkCmdCopyQueryPoolResults");
4617         cmdPushConstants                 = cast(PFN_vkCmdPushConstants)                loader(device, "vkCmdPushConstants");
4618         cmdBeginRenderPass               = cast(PFN_vkCmdBeginRenderPass)              loader(device, "vkCmdBeginRenderPass");
4619         cmdNextSubpass                   = cast(PFN_vkCmdNextSubpass)                  loader(device, "vkCmdNextSubpass");
4620         cmdEndRenderPass                 = cast(PFN_vkCmdEndRenderPass)                loader(device, "vkCmdEndRenderPass");
4621         cmdExecuteCommands               = cast(PFN_vkCmdExecuteCommands)              loader(device, "vkCmdExecuteCommands");
4622 
4623         // VK_KHR_swapchain
4624         createSwapchainKHR               = cast(PFN_vkCreateSwapchainKHR)              loader(device, "vkCreateSwapchainKHR");
4625         destroySwapchainKHR              = cast(PFN_vkDestroySwapchainKHR)             loader(device, "vkDestroySwapchainKHR");
4626         getSwapchainImagesKHR            = cast(PFN_vkGetSwapchainImagesKHR)           loader(device, "vkGetSwapchainImagesKHR");
4627         acquireNextImageKHR              = cast(PFN_vkAcquireNextImageKHR)             loader(device, "vkAcquireNextImageKHR");
4628         queuePresentKHR                  = cast(PFN_vkQueuePresentKHR)                 loader(device, "vkQueuePresentKHR");
4629     }
4630 }
4631