Skip to main content

vulkan_rust_sys/
commands.rs

1#![allow(clippy::manual_c_str_literals)]
2#![allow(clippy::missing_transmute_annotations)]
3#![allow(clippy::field_reassign_with_default)]
4use super::structs::*;
5use super::enums::*;
6use super::handles::*;
7use super::bitmasks::*;
8///[`vkCreateInstance`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateInstance.html)
9/**
10Provided by **VK_BASE_VERSION_1_0**.*/
11///
12///# Success Codes
13///- `VK_SUCCESS`
14///
15///# Error Codes
16///- `VK_ERROR_OUT_OF_HOST_MEMORY`
17///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
18///- `VK_ERROR_INITIALIZATION_FAILED`
19///- `VK_ERROR_LAYER_NOT_PRESENT`
20///- `VK_ERROR_EXTENSION_NOT_PRESENT`
21///- `VK_ERROR_INCOMPATIBLE_DRIVER`
22///- `VK_ERROR_UNKNOWN`
23///- `VK_ERROR_VALIDATION_FAILED`
24pub type PFN_vkCreateInstance = Option<
25    unsafe extern "system" fn(
26        p_create_info: *const InstanceCreateInfo,
27        p_allocator: *const AllocationCallbacks,
28        p_instance: *mut Instance,
29    ) -> Result,
30>;
31///[`vkDestroyInstance`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyInstance.html)
32/**
33Provided by **VK_BASE_VERSION_1_0**.*/
34///
35///# Thread Safety
36///- `instance` must be externally synchronized
37pub type PFN_vkDestroyInstance = Option<
38    unsafe extern "system" fn(
39        instance: Instance,
40        p_allocator: *const AllocationCallbacks,
41    ),
42>;
43///[`vkEnumeratePhysicalDevices`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDevices.html)
44/**
45Provided by **VK_BASE_VERSION_1_0**.*/
46///
47///# Success Codes
48///- `VK_SUCCESS`
49///- `VK_INCOMPLETE`
50///
51///# Error Codes
52///- `VK_ERROR_OUT_OF_HOST_MEMORY`
53///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
54///- `VK_ERROR_INITIALIZATION_FAILED`
55///- `VK_ERROR_UNKNOWN`
56///- `VK_ERROR_VALIDATION_FAILED`
57pub type PFN_vkEnumeratePhysicalDevices = Option<
58    unsafe extern "system" fn(
59        instance: Instance,
60        p_physical_device_count: *mut u32,
61        p_physical_devices: *mut PhysicalDevice,
62    ) -> Result,
63>;
64///[`vkGetDeviceProcAddr`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceProcAddr.html)
65/**
66Provided by **VK_BASE_VERSION_1_0**.*/
67pub type PFN_vkGetDeviceProcAddr = Option<
68    unsafe extern "system" fn(
69        device: Device,
70        p_name: *const core::ffi::c_char,
71    ) -> PFN_vkVoidFunction,
72>;
73///[`vkGetInstanceProcAddr`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetInstanceProcAddr.html)
74/**
75Provided by **VK_BASE_VERSION_1_0**.*/
76pub type PFN_vkGetInstanceProcAddr = Option<
77    unsafe extern "system" fn(
78        instance: Instance,
79        p_name: *const core::ffi::c_char,
80    ) -> PFN_vkVoidFunction,
81>;
82///[`vkGetPhysicalDeviceProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceProperties.html)
83/**
84Provided by **VK_BASE_VERSION_1_0**.*/
85pub type PFN_vkGetPhysicalDeviceProperties = Option<
86    unsafe extern "system" fn(
87        physical_device: PhysicalDevice,
88        p_properties: *mut PhysicalDeviceProperties,
89    ),
90>;
91///[`vkGetPhysicalDeviceQueueFamilyProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyProperties.html)
92/**
93Provided by **VK_BASE_VERSION_1_0**.*/
94pub type PFN_vkGetPhysicalDeviceQueueFamilyProperties = Option<
95    unsafe extern "system" fn(
96        physical_device: PhysicalDevice,
97        p_queue_family_property_count: *mut u32,
98        p_queue_family_properties: *mut QueueFamilyProperties,
99    ),
100>;
101///[`vkGetPhysicalDeviceMemoryProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceMemoryProperties.html)
102/**
103Provided by **VK_BASE_VERSION_1_0**.*/
104pub type PFN_vkGetPhysicalDeviceMemoryProperties = Option<
105    unsafe extern "system" fn(
106        physical_device: PhysicalDevice,
107        p_memory_properties: *mut PhysicalDeviceMemoryProperties,
108    ),
109>;
110///[`vkGetPhysicalDeviceFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFeatures.html)
111/**
112Provided by **VK_BASE_VERSION_1_0**.*/
113pub type PFN_vkGetPhysicalDeviceFeatures = Option<
114    unsafe extern "system" fn(
115        physical_device: PhysicalDevice,
116        p_features: *mut PhysicalDeviceFeatures,
117    ),
118>;
119///[`vkGetPhysicalDeviceFormatProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFormatProperties.html)
120/**
121Provided by **VK_BASE_VERSION_1_0**.*/
122pub type PFN_vkGetPhysicalDeviceFormatProperties = Option<
123    unsafe extern "system" fn(
124        physical_device: PhysicalDevice,
125        format: Format,
126        p_format_properties: *mut FormatProperties,
127    ),
128>;
129///[`vkGetPhysicalDeviceImageFormatProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceImageFormatProperties.html)
130/**
131Provided by **VK_BASE_VERSION_1_0**.*/
132///
133///# Success Codes
134///- `VK_SUCCESS`
135///
136///# Error Codes
137///- `VK_ERROR_OUT_OF_HOST_MEMORY`
138///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
139///- `VK_ERROR_FORMAT_NOT_SUPPORTED`
140///- `VK_ERROR_UNKNOWN`
141///- `VK_ERROR_VALIDATION_FAILED`
142pub type PFN_vkGetPhysicalDeviceImageFormatProperties = Option<
143    unsafe extern "system" fn(
144        physical_device: PhysicalDevice,
145        format: Format,
146        r#type: ImageType,
147        tiling: ImageTiling,
148        usage: ImageUsageFlags,
149        flags: ImageCreateFlags,
150        p_image_format_properties: *mut ImageFormatProperties,
151    ) -> Result,
152>;
153///[`vkCreateDevice`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDevice.html)
154/**
155Provided by **VK_BASE_VERSION_1_0**.*/
156///
157///# Success Codes
158///- `VK_SUCCESS`
159///
160///# Error Codes
161///- `VK_ERROR_OUT_OF_HOST_MEMORY`
162///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
163///- `VK_ERROR_INITIALIZATION_FAILED`
164///- `VK_ERROR_EXTENSION_NOT_PRESENT`
165///- `VK_ERROR_FEATURE_NOT_PRESENT`
166///- `VK_ERROR_TOO_MANY_OBJECTS`
167///- `VK_ERROR_DEVICE_LOST`
168///- `VK_ERROR_UNKNOWN`
169///- `VK_ERROR_VALIDATION_FAILED`
170pub type PFN_vkCreateDevice = Option<
171    unsafe extern "system" fn(
172        physical_device: PhysicalDevice,
173        p_create_info: *const DeviceCreateInfo,
174        p_allocator: *const AllocationCallbacks,
175        p_device: *mut Device,
176    ) -> Result,
177>;
178///[`vkDestroyDevice`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDevice.html)
179/**
180Provided by **VK_BASE_VERSION_1_0**.*/
181///
182///# Thread Safety
183///- `device` must be externally synchronized
184pub type PFN_vkDestroyDevice = Option<
185    unsafe extern "system" fn(device: Device, p_allocator: *const AllocationCallbacks),
186>;
187///[`vkEnumerateInstanceVersion`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateInstanceVersion.html)
188/**
189Provided by **VK_BASE_VERSION_1_1**.*/
190///
191///# Success Codes
192///- `VK_SUCCESS`
193///
194///# Error Codes
195///- `VK_ERROR_OUT_OF_HOST_MEMORY`
196///- `VK_ERROR_UNKNOWN`
197///- `VK_ERROR_VALIDATION_FAILED`
198pub type PFN_vkEnumerateInstanceVersion = Option<
199    unsafe extern "system" fn(p_api_version: *mut u32) -> Result,
200>;
201///[`vkEnumerateInstanceLayerProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateInstanceLayerProperties.html)
202/**
203Provided by **VK_BASE_VERSION_1_0**.*/
204///
205///# Success Codes
206///- `VK_SUCCESS`
207///- `VK_INCOMPLETE`
208///
209///# Error Codes
210///- `VK_ERROR_OUT_OF_HOST_MEMORY`
211///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
212///- `VK_ERROR_UNKNOWN`
213///- `VK_ERROR_VALIDATION_FAILED`
214pub type PFN_vkEnumerateInstanceLayerProperties = Option<
215    unsafe extern "system" fn(
216        p_property_count: *mut u32,
217        p_properties: *mut LayerProperties,
218    ) -> Result,
219>;
220///[`vkEnumerateInstanceExtensionProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateInstanceExtensionProperties.html)
221/**
222Provided by **VK_BASE_VERSION_1_0**.*/
223///
224///# Success Codes
225///- `VK_SUCCESS`
226///- `VK_INCOMPLETE`
227///
228///# Error Codes
229///- `VK_ERROR_OUT_OF_HOST_MEMORY`
230///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
231///- `VK_ERROR_LAYER_NOT_PRESENT`
232///- `VK_ERROR_UNKNOWN`
233///- `VK_ERROR_VALIDATION_FAILED`
234pub type PFN_vkEnumerateInstanceExtensionProperties = Option<
235    unsafe extern "system" fn(
236        p_layer_name: *const core::ffi::c_char,
237        p_property_count: *mut u32,
238        p_properties: *mut ExtensionProperties,
239    ) -> Result,
240>;
241///[`vkEnumerateDeviceLayerProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateDeviceLayerProperties.html)
242/**
243Provided by **VK_BASE_VERSION_1_0**.*/
244///
245///# Success Codes
246///- `VK_SUCCESS`
247///- `VK_INCOMPLETE`
248///
249///# Error Codes
250///- `VK_ERROR_OUT_OF_HOST_MEMORY`
251///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
252///- `VK_ERROR_UNKNOWN`
253///- `VK_ERROR_VALIDATION_FAILED`
254pub type PFN_vkEnumerateDeviceLayerProperties = Option<
255    unsafe extern "system" fn(
256        physical_device: PhysicalDevice,
257        p_property_count: *mut u32,
258        p_properties: *mut LayerProperties,
259    ) -> Result,
260>;
261///[`vkEnumerateDeviceExtensionProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateDeviceExtensionProperties.html)
262/**
263Provided by **VK_BASE_VERSION_1_0**.*/
264///
265///# Success Codes
266///- `VK_SUCCESS`
267///- `VK_INCOMPLETE`
268///
269///# Error Codes
270///- `VK_ERROR_OUT_OF_HOST_MEMORY`
271///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
272///- `VK_ERROR_LAYER_NOT_PRESENT`
273///- `VK_ERROR_UNKNOWN`
274///- `VK_ERROR_VALIDATION_FAILED`
275pub type PFN_vkEnumerateDeviceExtensionProperties = Option<
276    unsafe extern "system" fn(
277        physical_device: PhysicalDevice,
278        p_layer_name: *const core::ffi::c_char,
279        p_property_count: *mut u32,
280        p_properties: *mut ExtensionProperties,
281    ) -> Result,
282>;
283///[`vkGetDeviceQueue`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceQueue.html)
284/**
285Provided by **VK_BASE_VERSION_1_0**.*/
286pub type PFN_vkGetDeviceQueue = Option<
287    unsafe extern "system" fn(
288        device: Device,
289        queue_family_index: u32,
290        queue_index: u32,
291        p_queue: *mut Queue,
292    ),
293>;
294///[`vkQueueSubmit`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSubmit.html)
295/**
296Provided by **VK_BASE_VERSION_1_0**.*/
297///
298///# Success Codes
299///- `VK_SUCCESS`
300///
301///# Error Codes
302///- `VK_ERROR_OUT_OF_HOST_MEMORY`
303///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
304///- `VK_ERROR_DEVICE_LOST`
305///- `VK_ERROR_UNKNOWN`
306///- `VK_ERROR_VALIDATION_FAILED`
307///
308///# Thread Safety
309///- `queue` must be externally synchronized
310///- `fence` must be externally synchronized
311pub type PFN_vkQueueSubmit = Option<
312    unsafe extern "system" fn(
313        queue: Queue,
314        submit_count: u32,
315        p_submits: *const SubmitInfo,
316        fence: Fence,
317    ) -> Result,
318>;
319///[`vkQueueWaitIdle`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueWaitIdle.html)
320/**
321Provided by **VK_BASE_VERSION_1_0**.*/
322///
323///# Success Codes
324///- `VK_SUCCESS`
325///
326///# Error Codes
327///- `VK_ERROR_OUT_OF_HOST_MEMORY`
328///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
329///- `VK_ERROR_DEVICE_LOST`
330///- `VK_ERROR_UNKNOWN`
331///- `VK_ERROR_VALIDATION_FAILED`
332///
333///# Thread Safety
334///- `queue` must be externally synchronized
335pub type PFN_vkQueueWaitIdle = Option<unsafe extern "system" fn(queue: Queue) -> Result>;
336///[`vkDeviceWaitIdle`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDeviceWaitIdle.html)
337/**
338Provided by **VK_BASE_VERSION_1_0**.*/
339///
340///# Success Codes
341///- `VK_SUCCESS`
342///
343///# Error Codes
344///- `VK_ERROR_OUT_OF_HOST_MEMORY`
345///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
346///- `VK_ERROR_DEVICE_LOST`
347///- `VK_ERROR_UNKNOWN`
348///- `VK_ERROR_VALIDATION_FAILED`
349pub type PFN_vkDeviceWaitIdle = Option<
350    unsafe extern "system" fn(device: Device) -> Result,
351>;
352///[`vkAllocateMemory`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateMemory.html)
353/**
354Provided by **VK_BASE_VERSION_1_0**.*/
355///
356///# Success Codes
357///- `VK_SUCCESS`
358///
359///# Error Codes
360///- `VK_ERROR_OUT_OF_HOST_MEMORY`
361///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
362///- `VK_ERROR_INVALID_EXTERNAL_HANDLE`
363///- `VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR`
364///- `VK_ERROR_UNKNOWN`
365///- `VK_ERROR_VALIDATION_FAILED`
366pub type PFN_vkAllocateMemory = Option<
367    unsafe extern "system" fn(
368        device: Device,
369        p_allocate_info: *const MemoryAllocateInfo,
370        p_allocator: *const AllocationCallbacks,
371        p_memory: *mut DeviceMemory,
372    ) -> Result,
373>;
374///[`vkFreeMemory`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkFreeMemory.html)
375/**
376Provided by **VK_BASE_VERSION_1_0**.*/
377///
378///# Thread Safety
379///- `memory` must be externally synchronized
380pub type PFN_vkFreeMemory = Option<
381    unsafe extern "system" fn(
382        device: Device,
383        memory: DeviceMemory,
384        p_allocator: *const AllocationCallbacks,
385    ),
386>;
387///[`vkMapMemory`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkMapMemory.html)
388/**
389Provided by **VK_BASE_VERSION_1_0**.*/
390///
391///# Success Codes
392///- `VK_SUCCESS`
393///
394///# Error Codes
395///- `VK_ERROR_OUT_OF_HOST_MEMORY`
396///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
397///- `VK_ERROR_MEMORY_MAP_FAILED`
398///- `VK_ERROR_UNKNOWN`
399///- `VK_ERROR_VALIDATION_FAILED`
400///
401///# Thread Safety
402///- `memory` must be externally synchronized
403pub type PFN_vkMapMemory = Option<
404    unsafe extern "system" fn(
405        device: Device,
406        memory: DeviceMemory,
407        offset: u64,
408        size: u64,
409        flags: MemoryMapFlags,
410        pp_data: *mut *mut core::ffi::c_void,
411    ) -> Result,
412>;
413///[`vkUnmapMemory`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkUnmapMemory.html)
414/**
415Provided by **VK_BASE_VERSION_1_0**.*/
416///
417///# Thread Safety
418///- `memory` must be externally synchronized
419pub type PFN_vkUnmapMemory = Option<
420    unsafe extern "system" fn(device: Device, memory: DeviceMemory),
421>;
422///[`vkFlushMappedMemoryRanges`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkFlushMappedMemoryRanges.html)
423/**
424Provided by **VK_BASE_VERSION_1_0**.*/
425///
426///# Success Codes
427///- `VK_SUCCESS`
428///
429///# Error Codes
430///- `VK_ERROR_OUT_OF_HOST_MEMORY`
431///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
432///- `VK_ERROR_UNKNOWN`
433///- `VK_ERROR_VALIDATION_FAILED`
434pub type PFN_vkFlushMappedMemoryRanges = Option<
435    unsafe extern "system" fn(
436        device: Device,
437        memory_range_count: u32,
438        p_memory_ranges: *const MappedMemoryRange,
439    ) -> Result,
440>;
441///[`vkInvalidateMappedMemoryRanges`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkInvalidateMappedMemoryRanges.html)
442/**
443Provided by **VK_BASE_VERSION_1_0**.*/
444///
445///# Success Codes
446///- `VK_SUCCESS`
447///
448///# Error Codes
449///- `VK_ERROR_OUT_OF_HOST_MEMORY`
450///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
451///- `VK_ERROR_UNKNOWN`
452///- `VK_ERROR_VALIDATION_FAILED`
453pub type PFN_vkInvalidateMappedMemoryRanges = Option<
454    unsafe extern "system" fn(
455        device: Device,
456        memory_range_count: u32,
457        p_memory_ranges: *const MappedMemoryRange,
458    ) -> Result,
459>;
460///[`vkGetDeviceMemoryCommitment`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceMemoryCommitment.html)
461/**
462Provided by **VK_BASE_VERSION_1_0**.*/
463pub type PFN_vkGetDeviceMemoryCommitment = Option<
464    unsafe extern "system" fn(
465        device: Device,
466        memory: DeviceMemory,
467        p_committed_memory_in_bytes: *mut u64,
468    ),
469>;
470///[`vkGetBufferMemoryRequirements`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferMemoryRequirements.html)
471/**
472Provided by **VK_BASE_VERSION_1_0**.*/
473pub type PFN_vkGetBufferMemoryRequirements = Option<
474    unsafe extern "system" fn(
475        device: Device,
476        buffer: Buffer,
477        p_memory_requirements: *mut MemoryRequirements,
478    ),
479>;
480///[`vkBindBufferMemory`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindBufferMemory.html)
481/**
482Provided by **VK_BASE_VERSION_1_0**.*/
483///
484///# Success Codes
485///- `VK_SUCCESS`
486///
487///# Error Codes
488///- `VK_ERROR_OUT_OF_HOST_MEMORY`
489///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
490///- `VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR`
491///- `VK_ERROR_UNKNOWN`
492///- `VK_ERROR_VALIDATION_FAILED`
493///
494///# Thread Safety
495///- `buffer` must be externally synchronized
496pub type PFN_vkBindBufferMemory = Option<
497    unsafe extern "system" fn(
498        device: Device,
499        buffer: Buffer,
500        memory: DeviceMemory,
501        memory_offset: u64,
502    ) -> Result,
503>;
504///[`vkGetImageMemoryRequirements`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageMemoryRequirements.html)
505/**
506Provided by **VK_BASE_VERSION_1_0**.*/
507pub type PFN_vkGetImageMemoryRequirements = Option<
508    unsafe extern "system" fn(
509        device: Device,
510        image: Image,
511        p_memory_requirements: *mut MemoryRequirements,
512    ),
513>;
514///[`vkBindImageMemory`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindImageMemory.html)
515/**
516Provided by **VK_BASE_VERSION_1_0**.*/
517///
518///# Success Codes
519///- `VK_SUCCESS`
520///
521///# Error Codes
522///- `VK_ERROR_OUT_OF_HOST_MEMORY`
523///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
524///- `VK_ERROR_UNKNOWN`
525///- `VK_ERROR_VALIDATION_FAILED`
526///
527///# Thread Safety
528///- `image` must be externally synchronized
529pub type PFN_vkBindImageMemory = Option<
530    unsafe extern "system" fn(
531        device: Device,
532        image: Image,
533        memory: DeviceMemory,
534        memory_offset: u64,
535    ) -> Result,
536>;
537///[`vkGetImageSparseMemoryRequirements`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSparseMemoryRequirements.html)
538/**
539Provided by **VK_BASE_VERSION_1_0**.*/
540pub type PFN_vkGetImageSparseMemoryRequirements = Option<
541    unsafe extern "system" fn(
542        device: Device,
543        image: Image,
544        p_sparse_memory_requirement_count: *mut u32,
545        p_sparse_memory_requirements: *mut SparseImageMemoryRequirements,
546    ),
547>;
548///[`vkGetPhysicalDeviceSparseImageFormatProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSparseImageFormatProperties.html)
549/**
550Provided by **VK_BASE_VERSION_1_0**.*/
551pub type PFN_vkGetPhysicalDeviceSparseImageFormatProperties = Option<
552    unsafe extern "system" fn(
553        physical_device: PhysicalDevice,
554        format: Format,
555        r#type: ImageType,
556        samples: SampleCountFlagBits,
557        usage: ImageUsageFlags,
558        tiling: ImageTiling,
559        p_property_count: *mut u32,
560        p_properties: *mut SparseImageFormatProperties,
561    ),
562>;
563///[`vkQueueBindSparse`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueBindSparse.html)
564/**
565Provided by **VK_BASE_VERSION_1_0**.*/
566///
567///# Success Codes
568///- `VK_SUCCESS`
569///
570///# Error Codes
571///- `VK_ERROR_OUT_OF_HOST_MEMORY`
572///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
573///- `VK_ERROR_DEVICE_LOST`
574///- `VK_ERROR_UNKNOWN`
575///- `VK_ERROR_VALIDATION_FAILED`
576///
577///# Thread Safety
578///- `queue` must be externally synchronized
579///- `fence` must be externally synchronized
580pub type PFN_vkQueueBindSparse = Option<
581    unsafe extern "system" fn(
582        queue: Queue,
583        bind_info_count: u32,
584        p_bind_info: *const BindSparseInfo,
585        fence: Fence,
586    ) -> Result,
587>;
588///[`vkCreateFence`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateFence.html)
589/**
590Provided by **VK_BASE_VERSION_1_0**.*/
591///
592///# Success Codes
593///- `VK_SUCCESS`
594///
595///# Error Codes
596///- `VK_ERROR_OUT_OF_HOST_MEMORY`
597///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
598///- `VK_ERROR_UNKNOWN`
599///- `VK_ERROR_VALIDATION_FAILED`
600pub type PFN_vkCreateFence = Option<
601    unsafe extern "system" fn(
602        device: Device,
603        p_create_info: *const FenceCreateInfo,
604        p_allocator: *const AllocationCallbacks,
605        p_fence: *mut Fence,
606    ) -> Result,
607>;
608///[`vkDestroyFence`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyFence.html)
609/**
610Provided by **VK_BASE_VERSION_1_0**.*/
611///
612///# Thread Safety
613///- `fence` must be externally synchronized
614pub type PFN_vkDestroyFence = Option<
615    unsafe extern "system" fn(
616        device: Device,
617        fence: Fence,
618        p_allocator: *const AllocationCallbacks,
619    ),
620>;
621///[`vkResetFences`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetFences.html)
622/**
623Provided by **VK_BASE_VERSION_1_0**.*/
624///
625///# Success Codes
626///- `VK_SUCCESS`
627///
628///# Error Codes
629///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
630///- `VK_ERROR_UNKNOWN`
631///- `VK_ERROR_VALIDATION_FAILED`
632///
633///# Thread Safety
634///- `pFences` must be externally synchronized
635pub type PFN_vkResetFences = Option<
636    unsafe extern "system" fn(
637        device: Device,
638        fence_count: u32,
639        p_fences: *const Fence,
640    ) -> Result,
641>;
642///[`vkGetFenceStatus`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFenceStatus.html)
643/**
644Provided by **VK_BASE_VERSION_1_0**.*/
645///
646///# Success Codes
647///- `VK_SUCCESS`
648///- `VK_NOT_READY`
649///
650///# Error Codes
651///- `VK_ERROR_OUT_OF_HOST_MEMORY`
652///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
653///- `VK_ERROR_DEVICE_LOST`
654///- `VK_ERROR_UNKNOWN`
655///- `VK_ERROR_VALIDATION_FAILED`
656pub type PFN_vkGetFenceStatus = Option<
657    unsafe extern "system" fn(device: Device, fence: Fence) -> Result,
658>;
659///[`vkWaitForFences`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitForFences.html)
660/**
661Provided by **VK_BASE_VERSION_1_0**.*/
662///
663///# Success Codes
664///- `VK_SUCCESS`
665///- `VK_TIMEOUT`
666///
667///# Error Codes
668///- `VK_ERROR_OUT_OF_HOST_MEMORY`
669///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
670///- `VK_ERROR_DEVICE_LOST`
671///- `VK_ERROR_UNKNOWN`
672///- `VK_ERROR_VALIDATION_FAILED`
673pub type PFN_vkWaitForFences = Option<
674    unsafe extern "system" fn(
675        device: Device,
676        fence_count: u32,
677        p_fences: *const Fence,
678        wait_all: u32,
679        timeout: u64,
680    ) -> Result,
681>;
682///[`vkCreateSemaphore`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSemaphore.html)
683/**
684Provided by **VK_BASE_VERSION_1_0**.*/
685///
686///# Success Codes
687///- `VK_SUCCESS`
688///
689///# Error Codes
690///- `VK_ERROR_OUT_OF_HOST_MEMORY`
691///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
692///- `VK_ERROR_UNKNOWN`
693///- `VK_ERROR_VALIDATION_FAILED`
694pub type PFN_vkCreateSemaphore = Option<
695    unsafe extern "system" fn(
696        device: Device,
697        p_create_info: *const SemaphoreCreateInfo,
698        p_allocator: *const AllocationCallbacks,
699        p_semaphore: *mut Semaphore,
700    ) -> Result,
701>;
702///[`vkDestroySemaphore`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySemaphore.html)
703/**
704Provided by **VK_BASE_VERSION_1_0**.*/
705///
706///# Thread Safety
707///- `semaphore` must be externally synchronized
708pub type PFN_vkDestroySemaphore = Option<
709    unsafe extern "system" fn(
710        device: Device,
711        semaphore: Semaphore,
712        p_allocator: *const AllocationCallbacks,
713    ),
714>;
715///[`vkCreateEvent`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateEvent.html)
716/**
717Provided by **VK_COMPUTE_VERSION_1_0**.*/
718///
719///# Success Codes
720///- `VK_SUCCESS`
721///
722///# Error Codes
723///- `VK_ERROR_OUT_OF_HOST_MEMORY`
724///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
725///- `VK_ERROR_UNKNOWN`
726///- `VK_ERROR_VALIDATION_FAILED`
727pub type PFN_vkCreateEvent = Option<
728    unsafe extern "system" fn(
729        device: Device,
730        p_create_info: *const EventCreateInfo,
731        p_allocator: *const AllocationCallbacks,
732        p_event: *mut Event,
733    ) -> Result,
734>;
735///[`vkDestroyEvent`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyEvent.html)
736/**
737Provided by **VK_COMPUTE_VERSION_1_0**.*/
738///
739///# Thread Safety
740///- `event` must be externally synchronized
741pub type PFN_vkDestroyEvent = Option<
742    unsafe extern "system" fn(
743        device: Device,
744        event: Event,
745        p_allocator: *const AllocationCallbacks,
746    ),
747>;
748///[`vkGetEventStatus`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetEventStatus.html)
749/**
750Provided by **VK_COMPUTE_VERSION_1_0**.*/
751///
752///# Success Codes
753///- `VK_EVENT_SET`
754///- `VK_EVENT_RESET`
755///
756///# Error Codes
757///- `VK_ERROR_OUT_OF_HOST_MEMORY`
758///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
759///- `VK_ERROR_DEVICE_LOST`
760///- `VK_ERROR_UNKNOWN`
761///- `VK_ERROR_VALIDATION_FAILED`
762pub type PFN_vkGetEventStatus = Option<
763    unsafe extern "system" fn(device: Device, event: Event) -> Result,
764>;
765///[`vkSetEvent`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetEvent.html)
766/**
767Provided by **VK_COMPUTE_VERSION_1_0**.*/
768///
769///# Success Codes
770///- `VK_SUCCESS`
771///
772///# Error Codes
773///- `VK_ERROR_OUT_OF_HOST_MEMORY`
774///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
775///- `VK_ERROR_UNKNOWN`
776///- `VK_ERROR_VALIDATION_FAILED`
777///
778///# Thread Safety
779///- `event` must be externally synchronized
780pub type PFN_vkSetEvent = Option<
781    unsafe extern "system" fn(device: Device, event: Event) -> Result,
782>;
783///[`vkResetEvent`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetEvent.html)
784/**
785Provided by **VK_COMPUTE_VERSION_1_0**.*/
786///
787///# Success Codes
788///- `VK_SUCCESS`
789///
790///# Error Codes
791///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
792///- `VK_ERROR_UNKNOWN`
793///- `VK_ERROR_VALIDATION_FAILED`
794///
795///# Thread Safety
796///- `event` must be externally synchronized
797pub type PFN_vkResetEvent = Option<
798    unsafe extern "system" fn(device: Device, event: Event) -> Result,
799>;
800///[`vkCreateQueryPool`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateQueryPool.html)
801/**
802Provided by **VK_BASE_VERSION_1_0**.*/
803///
804///# Success Codes
805///- `VK_SUCCESS`
806///
807///# Error Codes
808///- `VK_ERROR_OUT_OF_HOST_MEMORY`
809///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
810///- `VK_ERROR_UNKNOWN`
811///- `VK_ERROR_VALIDATION_FAILED`
812pub type PFN_vkCreateQueryPool = Option<
813    unsafe extern "system" fn(
814        device: Device,
815        p_create_info: *const QueryPoolCreateInfo,
816        p_allocator: *const AllocationCallbacks,
817        p_query_pool: *mut QueryPool,
818    ) -> Result,
819>;
820///[`vkDestroyQueryPool`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyQueryPool.html)
821/**
822Provided by **VK_BASE_VERSION_1_0**.*/
823///
824///# Thread Safety
825///- `queryPool` must be externally synchronized
826pub type PFN_vkDestroyQueryPool = Option<
827    unsafe extern "system" fn(
828        device: Device,
829        query_pool: QueryPool,
830        p_allocator: *const AllocationCallbacks,
831    ),
832>;
833///[`vkGetQueryPoolResults`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetQueryPoolResults.html)
834/**
835Provided by **VK_BASE_VERSION_1_0**.*/
836///
837///# Success Codes
838///- `VK_SUCCESS`
839///- `VK_NOT_READY`
840///
841///# Error Codes
842///- `VK_ERROR_OUT_OF_HOST_MEMORY`
843///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
844///- `VK_ERROR_DEVICE_LOST`
845///- `VK_ERROR_UNKNOWN`
846///- `VK_ERROR_VALIDATION_FAILED`
847pub type PFN_vkGetQueryPoolResults = Option<
848    unsafe extern "system" fn(
849        device: Device,
850        query_pool: QueryPool,
851        first_query: u32,
852        query_count: u32,
853        data_size: usize,
854        p_data: *mut core::ffi::c_void,
855        stride: u64,
856        flags: QueryResultFlags,
857    ) -> Result,
858>;
859///[`vkResetQueryPool`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetQueryPool.html)
860/**
861Provided by **VK_BASE_VERSION_1_2**.*/
862pub type PFN_vkResetQueryPool = Option<
863    unsafe extern "system" fn(
864        device: Device,
865        query_pool: QueryPool,
866        first_query: u32,
867        query_count: u32,
868    ),
869>;
870///[`vkCreateBuffer`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateBuffer.html)
871/**
872Provided by **VK_BASE_VERSION_1_0**.*/
873///
874///# Success Codes
875///- `VK_SUCCESS`
876///
877///# Error Codes
878///- `VK_ERROR_OUT_OF_HOST_MEMORY`
879///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
880///- `VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR`
881///- `VK_ERROR_UNKNOWN`
882///- `VK_ERROR_VALIDATION_FAILED`
883pub type PFN_vkCreateBuffer = Option<
884    unsafe extern "system" fn(
885        device: Device,
886        p_create_info: *const BufferCreateInfo,
887        p_allocator: *const AllocationCallbacks,
888        p_buffer: *mut Buffer,
889    ) -> Result,
890>;
891///[`vkDestroyBuffer`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyBuffer.html)
892/**
893Provided by **VK_BASE_VERSION_1_0**.*/
894///
895///# Thread Safety
896///- `buffer` must be externally synchronized
897pub type PFN_vkDestroyBuffer = Option<
898    unsafe extern "system" fn(
899        device: Device,
900        buffer: Buffer,
901        p_allocator: *const AllocationCallbacks,
902    ),
903>;
904///[`vkCreateBufferView`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateBufferView.html)
905/**
906Provided by **VK_COMPUTE_VERSION_1_0**.*/
907///
908///# Success Codes
909///- `VK_SUCCESS`
910///
911///# Error Codes
912///- `VK_ERROR_OUT_OF_HOST_MEMORY`
913///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
914///- `VK_ERROR_UNKNOWN`
915///- `VK_ERROR_VALIDATION_FAILED`
916pub type PFN_vkCreateBufferView = Option<
917    unsafe extern "system" fn(
918        device: Device,
919        p_create_info: *const BufferViewCreateInfo,
920        p_allocator: *const AllocationCallbacks,
921        p_view: *mut BufferView,
922    ) -> Result,
923>;
924///[`vkDestroyBufferView`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyBufferView.html)
925/**
926Provided by **VK_COMPUTE_VERSION_1_0**.*/
927///
928///# Thread Safety
929///- `bufferView` must be externally synchronized
930pub type PFN_vkDestroyBufferView = Option<
931    unsafe extern "system" fn(
932        device: Device,
933        buffer_view: BufferView,
934        p_allocator: *const AllocationCallbacks,
935    ),
936>;
937///[`vkCreateImage`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateImage.html)
938/**
939Provided by **VK_BASE_VERSION_1_0**.*/
940///
941///# Success Codes
942///- `VK_SUCCESS`
943///
944///# Error Codes
945///- `VK_ERROR_OUT_OF_HOST_MEMORY`
946///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
947///- `VK_ERROR_COMPRESSION_EXHAUSTED_EXT`
948///- `VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR`
949///- `VK_ERROR_UNKNOWN`
950///- `VK_ERROR_VALIDATION_FAILED`
951pub type PFN_vkCreateImage = Option<
952    unsafe extern "system" fn(
953        device: Device,
954        p_create_info: *const ImageCreateInfo,
955        p_allocator: *const AllocationCallbacks,
956        p_image: *mut Image,
957    ) -> Result,
958>;
959///[`vkDestroyImage`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyImage.html)
960/**
961Provided by **VK_BASE_VERSION_1_0**.*/
962///
963///# Thread Safety
964///- `image` must be externally synchronized
965pub type PFN_vkDestroyImage = Option<
966    unsafe extern "system" fn(
967        device: Device,
968        image: Image,
969        p_allocator: *const AllocationCallbacks,
970    ),
971>;
972///[`vkGetImageSubresourceLayout`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSubresourceLayout.html)
973/**
974Provided by **VK_BASE_VERSION_1_0**.*/
975pub type PFN_vkGetImageSubresourceLayout = Option<
976    unsafe extern "system" fn(
977        device: Device,
978        image: Image,
979        p_subresource: *const ImageSubresource,
980        p_layout: *mut SubresourceLayout,
981    ),
982>;
983///[`vkCreateImageView`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateImageView.html)
984/**
985Provided by **VK_BASE_VERSION_1_0**.*/
986///
987///# Success Codes
988///- `VK_SUCCESS`
989///
990///# Error Codes
991///- `VK_ERROR_OUT_OF_HOST_MEMORY`
992///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
993///- `VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR`
994///- `VK_ERROR_UNKNOWN`
995///- `VK_ERROR_VALIDATION_FAILED`
996pub type PFN_vkCreateImageView = Option<
997    unsafe extern "system" fn(
998        device: Device,
999        p_create_info: *const ImageViewCreateInfo,
1000        p_allocator: *const AllocationCallbacks,
1001        p_view: *mut ImageView,
1002    ) -> Result,
1003>;
1004///[`vkDestroyImageView`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyImageView.html)
1005/**
1006Provided by **VK_BASE_VERSION_1_0**.*/
1007///
1008///# Thread Safety
1009///- `imageView` must be externally synchronized
1010pub type PFN_vkDestroyImageView = Option<
1011    unsafe extern "system" fn(
1012        device: Device,
1013        image_view: ImageView,
1014        p_allocator: *const AllocationCallbacks,
1015    ),
1016>;
1017///[`vkCreateShaderModule`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateShaderModule.html)
1018/**
1019Provided by **VK_COMPUTE_VERSION_1_0**.*/
1020///
1021///# Success Codes
1022///- `VK_SUCCESS`
1023///
1024///# Error Codes
1025///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1026///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1027///- `VK_ERROR_INVALID_SHADER_NV`
1028///- `VK_ERROR_UNKNOWN`
1029///- `VK_ERROR_VALIDATION_FAILED`
1030pub type PFN_vkCreateShaderModule = Option<
1031    unsafe extern "system" fn(
1032        device: Device,
1033        p_create_info: *const ShaderModuleCreateInfo,
1034        p_allocator: *const AllocationCallbacks,
1035        p_shader_module: *mut ShaderModule,
1036    ) -> Result,
1037>;
1038///[`vkDestroyShaderModule`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyShaderModule.html)
1039/**
1040Provided by **VK_COMPUTE_VERSION_1_0**.*/
1041///
1042///# Thread Safety
1043///- `shaderModule` must be externally synchronized
1044pub type PFN_vkDestroyShaderModule = Option<
1045    unsafe extern "system" fn(
1046        device: Device,
1047        shader_module: ShaderModule,
1048        p_allocator: *const AllocationCallbacks,
1049    ),
1050>;
1051///[`vkCreatePipelineCache`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePipelineCache.html)
1052/**
1053Provided by **VK_COMPUTE_VERSION_1_0**.*/
1054///
1055///# Success Codes
1056///- `VK_SUCCESS`
1057///
1058///# Error Codes
1059///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1060///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1061///- `VK_ERROR_UNKNOWN`
1062///- `VK_ERROR_VALIDATION_FAILED`
1063pub type PFN_vkCreatePipelineCache = Option<
1064    unsafe extern "system" fn(
1065        device: Device,
1066        p_create_info: *const PipelineCacheCreateInfo,
1067        p_allocator: *const AllocationCallbacks,
1068        p_pipeline_cache: *mut PipelineCache,
1069    ) -> Result,
1070>;
1071///[`vkDestroyPipelineCache`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPipelineCache.html)
1072/**
1073Provided by **VK_COMPUTE_VERSION_1_0**.*/
1074///
1075///# Thread Safety
1076///- `pipelineCache` must be externally synchronized
1077pub type PFN_vkDestroyPipelineCache = Option<
1078    unsafe extern "system" fn(
1079        device: Device,
1080        pipeline_cache: PipelineCache,
1081        p_allocator: *const AllocationCallbacks,
1082    ),
1083>;
1084///[`vkGetPipelineCacheData`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineCacheData.html)
1085/**
1086Provided by **VK_COMPUTE_VERSION_1_0**.*/
1087///
1088///# Success Codes
1089///- `VK_SUCCESS`
1090///- `VK_INCOMPLETE`
1091///
1092///# Error Codes
1093///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1094///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1095///- `VK_ERROR_UNKNOWN`
1096///- `VK_ERROR_VALIDATION_FAILED`
1097pub type PFN_vkGetPipelineCacheData = Option<
1098    unsafe extern "system" fn(
1099        device: Device,
1100        pipeline_cache: PipelineCache,
1101        p_data_size: *mut usize,
1102        p_data: *mut core::ffi::c_void,
1103    ) -> Result,
1104>;
1105///[`vkMergePipelineCaches`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkMergePipelineCaches.html)
1106/**
1107Provided by **VK_COMPUTE_VERSION_1_0**.*/
1108///
1109///# Success Codes
1110///- `VK_SUCCESS`
1111///
1112///# Error Codes
1113///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1114///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1115///- `VK_ERROR_UNKNOWN`
1116///- `VK_ERROR_VALIDATION_FAILED`
1117///
1118///# Thread Safety
1119///- `dstCache` must be externally synchronized
1120pub type PFN_vkMergePipelineCaches = Option<
1121    unsafe extern "system" fn(
1122        device: Device,
1123        dst_cache: PipelineCache,
1124        src_cache_count: u32,
1125        p_src_caches: *const PipelineCache,
1126    ) -> Result,
1127>;
1128///[`vkCreatePipelineBinariesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePipelineBinariesKHR.html)
1129/**
1130Provided by **VK_KHR_pipeline_binary**.*/
1131///
1132///# Success Codes
1133///- `VK_SUCCESS`
1134///- `VK_INCOMPLETE`
1135///- `VK_PIPELINE_BINARY_MISSING_KHR`
1136///
1137///# Error Codes
1138///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1139///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1140///- `VK_ERROR_INITIALIZATION_FAILED`
1141///- `VK_ERROR_UNKNOWN`
1142///- `VK_ERROR_VALIDATION_FAILED`
1143pub type PFN_vkCreatePipelineBinariesKHR = Option<
1144    unsafe extern "system" fn(
1145        device: Device,
1146        p_create_info: *const PipelineBinaryCreateInfoKHR,
1147        p_allocator: *const AllocationCallbacks,
1148        p_binaries: *mut PipelineBinaryHandlesInfoKHR,
1149    ) -> Result,
1150>;
1151///[`vkDestroyPipelineBinaryKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPipelineBinaryKHR.html)
1152/**
1153Provided by **VK_KHR_pipeline_binary**.*/
1154///
1155///# Thread Safety
1156///- `pipelineBinary` must be externally synchronized
1157pub type PFN_vkDestroyPipelineBinaryKHR = Option<
1158    unsafe extern "system" fn(
1159        device: Device,
1160        pipeline_binary: PipelineBinaryKHR,
1161        p_allocator: *const AllocationCallbacks,
1162    ),
1163>;
1164///[`vkGetPipelineKeyKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineKeyKHR.html)
1165/**
1166Provided by **VK_KHR_pipeline_binary**.*/
1167///
1168///# Success Codes
1169///- `VK_SUCCESS`
1170///
1171///# Error Codes
1172///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1173///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1174///- `VK_ERROR_UNKNOWN`
1175///- `VK_ERROR_VALIDATION_FAILED`
1176pub type PFN_vkGetPipelineKeyKHR = Option<
1177    unsafe extern "system" fn(
1178        device: Device,
1179        p_pipeline_create_info: *const PipelineCreateInfoKHR,
1180        p_pipeline_key: *mut PipelineBinaryKeyKHR,
1181    ) -> Result,
1182>;
1183///[`vkGetPipelineBinaryDataKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineBinaryDataKHR.html)
1184/**
1185Provided by **VK_KHR_pipeline_binary**.*/
1186///
1187///# Success Codes
1188///- `VK_SUCCESS`
1189///
1190///# Error Codes
1191///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1192///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1193///- `VK_ERROR_NOT_ENOUGH_SPACE_KHR`
1194///- `VK_ERROR_UNKNOWN`
1195///- `VK_ERROR_VALIDATION_FAILED`
1196pub type PFN_vkGetPipelineBinaryDataKHR = Option<
1197    unsafe extern "system" fn(
1198        device: Device,
1199        p_info: *const PipelineBinaryDataInfoKHR,
1200        p_pipeline_binary_key: *mut PipelineBinaryKeyKHR,
1201        p_pipeline_binary_data_size: *mut usize,
1202        p_pipeline_binary_data: *mut core::ffi::c_void,
1203    ) -> Result,
1204>;
1205///[`vkReleaseCapturedPipelineDataKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseCapturedPipelineDataKHR.html)
1206/**
1207Provided by **VK_KHR_pipeline_binary**.*/
1208///
1209///# Success Codes
1210///- `VK_SUCCESS`
1211///
1212///# Error Codes
1213///- `VK_ERROR_UNKNOWN`
1214///- `VK_ERROR_VALIDATION_FAILED`
1215pub type PFN_vkReleaseCapturedPipelineDataKHR = Option<
1216    unsafe extern "system" fn(
1217        device: Device,
1218        p_info: *const ReleaseCapturedPipelineDataInfoKHR,
1219        p_allocator: *const AllocationCallbacks,
1220    ) -> Result,
1221>;
1222///[`vkCreateGraphicsPipelines`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateGraphicsPipelines.html)
1223/**
1224Provided by **VK_GRAPHICS_VERSION_1_0**.*/
1225///
1226///# Success Codes
1227///- `VK_SUCCESS`
1228///- `VK_PIPELINE_COMPILE_REQUIRED_EXT`
1229///
1230///# Error Codes
1231///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1232///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1233///- `VK_ERROR_INVALID_SHADER_NV`
1234///- `VK_ERROR_UNKNOWN`
1235///- `VK_ERROR_VALIDATION_FAILED`
1236///
1237///# Thread Safety
1238///- `pipelineCache` must be externally synchronized
1239pub type PFN_vkCreateGraphicsPipelines = Option<
1240    unsafe extern "system" fn(
1241        device: Device,
1242        pipeline_cache: PipelineCache,
1243        create_info_count: u32,
1244        p_create_infos: *const GraphicsPipelineCreateInfo,
1245        p_allocator: *const AllocationCallbacks,
1246        p_pipelines: *mut Pipeline,
1247    ) -> Result,
1248>;
1249///[`vkCreateComputePipelines`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateComputePipelines.html)
1250/**
1251Provided by **VK_COMPUTE_VERSION_1_0**.*/
1252///
1253///# Success Codes
1254///- `VK_SUCCESS`
1255///- `VK_PIPELINE_COMPILE_REQUIRED_EXT`
1256///
1257///# Error Codes
1258///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1259///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1260///- `VK_ERROR_INVALID_SHADER_NV`
1261///- `VK_ERROR_UNKNOWN`
1262///- `VK_ERROR_VALIDATION_FAILED`
1263///
1264///# Thread Safety
1265///- `pipelineCache` must be externally synchronized
1266pub type PFN_vkCreateComputePipelines = Option<
1267    unsafe extern "system" fn(
1268        device: Device,
1269        pipeline_cache: PipelineCache,
1270        create_info_count: u32,
1271        p_create_infos: *const ComputePipelineCreateInfo,
1272        p_allocator: *const AllocationCallbacks,
1273        p_pipelines: *mut Pipeline,
1274    ) -> Result,
1275>;
1276///[`vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI.html)
1277/**
1278Provided by **VK_HUAWEI_subpass_shading**.*/
1279///
1280///# Success Codes
1281///- `VK_SUCCESS`
1282///
1283///# Error Codes
1284///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1285///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1286///- `VK_ERROR_SURFACE_LOST_KHR`
1287///- `VK_ERROR_UNKNOWN`
1288///- `VK_ERROR_VALIDATION_FAILED`
1289pub type PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = Option<
1290    unsafe extern "system" fn(
1291        device: Device,
1292        renderpass: RenderPass,
1293        p_max_workgroup_size: *mut Extent2D,
1294    ) -> Result,
1295>;
1296///[`vkDestroyPipeline`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPipeline.html)
1297/**
1298Provided by **VK_COMPUTE_VERSION_1_0**.*/
1299///
1300///# Thread Safety
1301///- `pipeline` must be externally synchronized
1302pub type PFN_vkDestroyPipeline = Option<
1303    unsafe extern "system" fn(
1304        device: Device,
1305        pipeline: Pipeline,
1306        p_allocator: *const AllocationCallbacks,
1307    ),
1308>;
1309///[`vkCreatePipelineLayout`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePipelineLayout.html)
1310/**
1311Provided by **VK_COMPUTE_VERSION_1_0**.*/
1312///
1313///# Success Codes
1314///- `VK_SUCCESS`
1315///
1316///# Error Codes
1317///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1318///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1319///- `VK_ERROR_UNKNOWN`
1320///- `VK_ERROR_VALIDATION_FAILED`
1321pub type PFN_vkCreatePipelineLayout = Option<
1322    unsafe extern "system" fn(
1323        device: Device,
1324        p_create_info: *const PipelineLayoutCreateInfo,
1325        p_allocator: *const AllocationCallbacks,
1326        p_pipeline_layout: *mut PipelineLayout,
1327    ) -> Result,
1328>;
1329///[`vkDestroyPipelineLayout`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPipelineLayout.html)
1330/**
1331Provided by **VK_COMPUTE_VERSION_1_0**.*/
1332///
1333///# Thread Safety
1334///- `pipelineLayout` must be externally synchronized
1335pub type PFN_vkDestroyPipelineLayout = Option<
1336    unsafe extern "system" fn(
1337        device: Device,
1338        pipeline_layout: PipelineLayout,
1339        p_allocator: *const AllocationCallbacks,
1340    ),
1341>;
1342///[`vkCreateSampler`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSampler.html)
1343/**
1344Provided by **VK_COMPUTE_VERSION_1_0**.*/
1345///
1346///# Success Codes
1347///- `VK_SUCCESS`
1348///
1349///# Error Codes
1350///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1351///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1352///- `VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR`
1353///- `VK_ERROR_UNKNOWN`
1354///- `VK_ERROR_VALIDATION_FAILED`
1355pub type PFN_vkCreateSampler = Option<
1356    unsafe extern "system" fn(
1357        device: Device,
1358        p_create_info: *const SamplerCreateInfo,
1359        p_allocator: *const AllocationCallbacks,
1360        p_sampler: *mut Sampler,
1361    ) -> Result,
1362>;
1363///[`vkDestroySampler`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySampler.html)
1364/**
1365Provided by **VK_COMPUTE_VERSION_1_0**.*/
1366///
1367///# Thread Safety
1368///- `sampler` must be externally synchronized
1369pub type PFN_vkDestroySampler = Option<
1370    unsafe extern "system" fn(
1371        device: Device,
1372        sampler: Sampler,
1373        p_allocator: *const AllocationCallbacks,
1374    ),
1375>;
1376///[`vkCreateDescriptorSetLayout`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorSetLayout.html)
1377/**
1378Provided by **VK_COMPUTE_VERSION_1_0**.*/
1379///
1380///# Success Codes
1381///- `VK_SUCCESS`
1382///
1383///# Error Codes
1384///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1385///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1386///- `VK_ERROR_UNKNOWN`
1387///- `VK_ERROR_VALIDATION_FAILED`
1388pub type PFN_vkCreateDescriptorSetLayout = Option<
1389    unsafe extern "system" fn(
1390        device: Device,
1391        p_create_info: *const DescriptorSetLayoutCreateInfo,
1392        p_allocator: *const AllocationCallbacks,
1393        p_set_layout: *mut DescriptorSetLayout,
1394    ) -> Result,
1395>;
1396///[`vkDestroyDescriptorSetLayout`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDescriptorSetLayout.html)
1397/**
1398Provided by **VK_COMPUTE_VERSION_1_0**.*/
1399///
1400///# Thread Safety
1401///- `descriptorSetLayout` must be externally synchronized
1402pub type PFN_vkDestroyDescriptorSetLayout = Option<
1403    unsafe extern "system" fn(
1404        device: Device,
1405        descriptor_set_layout: DescriptorSetLayout,
1406        p_allocator: *const AllocationCallbacks,
1407    ),
1408>;
1409///[`vkCreateDescriptorPool`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorPool.html)
1410/**
1411Provided by **VK_COMPUTE_VERSION_1_0**.*/
1412///
1413///# Success Codes
1414///- `VK_SUCCESS`
1415///
1416///# Error Codes
1417///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1418///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1419///- `VK_ERROR_FRAGMENTATION_EXT`
1420///- `VK_ERROR_UNKNOWN`
1421///- `VK_ERROR_VALIDATION_FAILED`
1422pub type PFN_vkCreateDescriptorPool = Option<
1423    unsafe extern "system" fn(
1424        device: Device,
1425        p_create_info: *const DescriptorPoolCreateInfo,
1426        p_allocator: *const AllocationCallbacks,
1427        p_descriptor_pool: *mut DescriptorPool,
1428    ) -> Result,
1429>;
1430///[`vkDestroyDescriptorPool`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDescriptorPool.html)
1431/**
1432Provided by **VK_COMPUTE_VERSION_1_0**.*/
1433///
1434///# Thread Safety
1435///- `descriptorPool` must be externally synchronized
1436pub type PFN_vkDestroyDescriptorPool = Option<
1437    unsafe extern "system" fn(
1438        device: Device,
1439        descriptor_pool: DescriptorPool,
1440        p_allocator: *const AllocationCallbacks,
1441    ),
1442>;
1443///[`vkResetDescriptorPool`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetDescriptorPool.html)
1444/**
1445Provided by **VK_COMPUTE_VERSION_1_0**.*/
1446///
1447///# Success Codes
1448///- `VK_SUCCESS`
1449///
1450///# Error Codes
1451///- `VK_ERROR_UNKNOWN`
1452///- `VK_ERROR_VALIDATION_FAILED`
1453///
1454///# Thread Safety
1455///- `descriptorPool` must be externally synchronized
1456pub type PFN_vkResetDescriptorPool = Option<
1457    unsafe extern "system" fn(
1458        device: Device,
1459        descriptor_pool: DescriptorPool,
1460        flags: DescriptorPoolResetFlags,
1461    ) -> Result,
1462>;
1463///[`vkAllocateDescriptorSets`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateDescriptorSets.html)
1464/**
1465Provided by **VK_COMPUTE_VERSION_1_0**.*/
1466///
1467///# Success Codes
1468///- `VK_SUCCESS`
1469///
1470///# Error Codes
1471///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1472///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1473///- `VK_ERROR_FRAGMENTED_POOL`
1474///- `VK_ERROR_OUT_OF_POOL_MEMORY`
1475///- `VK_ERROR_UNKNOWN`
1476///- `VK_ERROR_VALIDATION_FAILED`
1477pub type PFN_vkAllocateDescriptorSets = Option<
1478    unsafe extern "system" fn(
1479        device: Device,
1480        p_allocate_info: *const DescriptorSetAllocateInfo,
1481        p_descriptor_sets: *mut DescriptorSet,
1482    ) -> Result,
1483>;
1484///[`vkFreeDescriptorSets`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkFreeDescriptorSets.html)
1485/**
1486Provided by **VK_COMPUTE_VERSION_1_0**.*/
1487///
1488///# Success Codes
1489///- `VK_SUCCESS`
1490///
1491///# Error Codes
1492///- `VK_ERROR_UNKNOWN`
1493///- `VK_ERROR_VALIDATION_FAILED`
1494///
1495///# Thread Safety
1496///- `descriptorPool` must be externally synchronized
1497///- `pDescriptorSets` must be externally synchronized
1498pub type PFN_vkFreeDescriptorSets = Option<
1499    unsafe extern "system" fn(
1500        device: Device,
1501        descriptor_pool: DescriptorPool,
1502        descriptor_set_count: u32,
1503        p_descriptor_sets: *const DescriptorSet,
1504    ) -> Result,
1505>;
1506///[`vkUpdateDescriptorSets`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateDescriptorSets.html)
1507/**
1508Provided by **VK_COMPUTE_VERSION_1_0**.*/
1509///
1510///# Thread Safety
1511///- `pDescriptorWrites` must be externally synchronized
1512pub type PFN_vkUpdateDescriptorSets = Option<
1513    unsafe extern "system" fn(
1514        device: Device,
1515        descriptor_write_count: u32,
1516        p_descriptor_writes: *const WriteDescriptorSet,
1517        descriptor_copy_count: u32,
1518        p_descriptor_copies: *const CopyDescriptorSet,
1519    ),
1520>;
1521///[`vkCreateFramebuffer`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateFramebuffer.html)
1522/**
1523Provided by **VK_GRAPHICS_VERSION_1_0**.*/
1524///
1525///# Success Codes
1526///- `VK_SUCCESS`
1527///
1528///# Error Codes
1529///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1530///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1531///- `VK_ERROR_UNKNOWN`
1532///- `VK_ERROR_VALIDATION_FAILED`
1533pub type PFN_vkCreateFramebuffer = Option<
1534    unsafe extern "system" fn(
1535        device: Device,
1536        p_create_info: *const FramebufferCreateInfo,
1537        p_allocator: *const AllocationCallbacks,
1538        p_framebuffer: *mut Framebuffer,
1539    ) -> Result,
1540>;
1541///[`vkDestroyFramebuffer`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyFramebuffer.html)
1542/**
1543Provided by **VK_GRAPHICS_VERSION_1_0**.*/
1544///
1545///# Thread Safety
1546///- `framebuffer` must be externally synchronized
1547pub type PFN_vkDestroyFramebuffer = Option<
1548    unsafe extern "system" fn(
1549        device: Device,
1550        framebuffer: Framebuffer,
1551        p_allocator: *const AllocationCallbacks,
1552    ),
1553>;
1554///[`vkCreateRenderPass`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRenderPass.html)
1555/**
1556Provided by **VK_GRAPHICS_VERSION_1_0**.*/
1557///
1558///# Success Codes
1559///- `VK_SUCCESS`
1560///
1561///# Error Codes
1562///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1563///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1564///- `VK_ERROR_UNKNOWN`
1565///- `VK_ERROR_VALIDATION_FAILED`
1566pub type PFN_vkCreateRenderPass = Option<
1567    unsafe extern "system" fn(
1568        device: Device,
1569        p_create_info: *const RenderPassCreateInfo,
1570        p_allocator: *const AllocationCallbacks,
1571        p_render_pass: *mut RenderPass,
1572    ) -> Result,
1573>;
1574///[`vkDestroyRenderPass`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyRenderPass.html)
1575/**
1576Provided by **VK_GRAPHICS_VERSION_1_0**.*/
1577///
1578///# Thread Safety
1579///- `renderPass` must be externally synchronized
1580pub type PFN_vkDestroyRenderPass = Option<
1581    unsafe extern "system" fn(
1582        device: Device,
1583        render_pass: RenderPass,
1584        p_allocator: *const AllocationCallbacks,
1585    ),
1586>;
1587///[`vkGetRenderAreaGranularity`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRenderAreaGranularity.html)
1588/**
1589Provided by **VK_GRAPHICS_VERSION_1_0**.*/
1590pub type PFN_vkGetRenderAreaGranularity = Option<
1591    unsafe extern "system" fn(
1592        device: Device,
1593        render_pass: RenderPass,
1594        p_granularity: *mut Extent2D,
1595    ),
1596>;
1597///[`vkGetRenderingAreaGranularity`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRenderingAreaGranularity.html)
1598/**
1599Provided by **VK_GRAPHICS_VERSION_1_4**.*/
1600pub type PFN_vkGetRenderingAreaGranularity = Option<
1601    unsafe extern "system" fn(
1602        device: Device,
1603        p_rendering_area_info: *const RenderingAreaInfo,
1604        p_granularity: *mut Extent2D,
1605    ),
1606>;
1607///[`vkCreateCommandPool`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCommandPool.html)
1608/**
1609Provided by **VK_BASE_VERSION_1_0**.*/
1610///
1611///# Success Codes
1612///- `VK_SUCCESS`
1613///
1614///# Error Codes
1615///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1616///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1617///- `VK_ERROR_UNKNOWN`
1618///- `VK_ERROR_VALIDATION_FAILED`
1619pub type PFN_vkCreateCommandPool = Option<
1620    unsafe extern "system" fn(
1621        device: Device,
1622        p_create_info: *const CommandPoolCreateInfo,
1623        p_allocator: *const AllocationCallbacks,
1624        p_command_pool: *mut CommandPool,
1625    ) -> Result,
1626>;
1627///[`vkDestroyCommandPool`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCommandPool.html)
1628/**
1629Provided by **VK_BASE_VERSION_1_0**.*/
1630///
1631///# Thread Safety
1632///- `commandPool` must be externally synchronized
1633pub type PFN_vkDestroyCommandPool = Option<
1634    unsafe extern "system" fn(
1635        device: Device,
1636        command_pool: CommandPool,
1637        p_allocator: *const AllocationCallbacks,
1638    ),
1639>;
1640///[`vkResetCommandPool`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetCommandPool.html)
1641/**
1642Provided by **VK_BASE_VERSION_1_0**.*/
1643///
1644///# Success Codes
1645///- `VK_SUCCESS`
1646///
1647///# Error Codes
1648///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1649///- `VK_ERROR_UNKNOWN`
1650///- `VK_ERROR_VALIDATION_FAILED`
1651///
1652///# Thread Safety
1653///- `commandPool` must be externally synchronized
1654pub type PFN_vkResetCommandPool = Option<
1655    unsafe extern "system" fn(
1656        device: Device,
1657        command_pool: CommandPool,
1658        flags: CommandPoolResetFlags,
1659    ) -> Result,
1660>;
1661///[`vkAllocateCommandBuffers`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateCommandBuffers.html)
1662/**
1663Provided by **VK_BASE_VERSION_1_0**.*/
1664///
1665///# Success Codes
1666///- `VK_SUCCESS`
1667///
1668///# Error Codes
1669///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1670///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1671///- `VK_ERROR_UNKNOWN`
1672///- `VK_ERROR_VALIDATION_FAILED`
1673pub type PFN_vkAllocateCommandBuffers = Option<
1674    unsafe extern "system" fn(
1675        device: Device,
1676        p_allocate_info: *const CommandBufferAllocateInfo,
1677        p_command_buffers: *mut CommandBuffer,
1678    ) -> Result,
1679>;
1680///[`vkFreeCommandBuffers`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkFreeCommandBuffers.html)
1681/**
1682Provided by **VK_BASE_VERSION_1_0**.*/
1683///
1684///# Thread Safety
1685///- `commandPool` must be externally synchronized
1686///- `pCommandBuffers` must be externally synchronized
1687pub type PFN_vkFreeCommandBuffers = Option<
1688    unsafe extern "system" fn(
1689        device: Device,
1690        command_pool: CommandPool,
1691        command_buffer_count: u32,
1692        p_command_buffers: *const CommandBuffer,
1693    ),
1694>;
1695///[`vkBeginCommandBuffer`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkBeginCommandBuffer.html)
1696/**
1697Provided by **VK_BASE_VERSION_1_0**.*/
1698///
1699///# Success Codes
1700///- `VK_SUCCESS`
1701///
1702///# Error Codes
1703///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1704///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1705///- `VK_ERROR_UNKNOWN`
1706///- `VK_ERROR_VALIDATION_FAILED`
1707///
1708///# Thread Safety
1709///- `commandBuffer` must be externally synchronized
1710pub type PFN_vkBeginCommandBuffer = Option<
1711    unsafe extern "system" fn(
1712        command_buffer: CommandBuffer,
1713        p_begin_info: *const CommandBufferBeginInfo,
1714    ) -> Result,
1715>;
1716///[`vkEndCommandBuffer`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkEndCommandBuffer.html)
1717/**
1718Provided by **VK_BASE_VERSION_1_0**.*/
1719///
1720///# Success Codes
1721///- `VK_SUCCESS`
1722///
1723///# Error Codes
1724///- `VK_ERROR_OUT_OF_HOST_MEMORY`
1725///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1726///- `VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR`
1727///- `VK_ERROR_UNKNOWN`
1728///- `VK_ERROR_VALIDATION_FAILED`
1729///
1730///# Thread Safety
1731///- `commandBuffer` must be externally synchronized
1732pub type PFN_vkEndCommandBuffer = Option<
1733    unsafe extern "system" fn(command_buffer: CommandBuffer) -> Result,
1734>;
1735///[`vkResetCommandBuffer`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetCommandBuffer.html)
1736/**
1737Provided by **VK_BASE_VERSION_1_0**.*/
1738///
1739///# Success Codes
1740///- `VK_SUCCESS`
1741///
1742///# Error Codes
1743///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
1744///- `VK_ERROR_UNKNOWN`
1745///- `VK_ERROR_VALIDATION_FAILED`
1746///
1747///# Thread Safety
1748///- `commandBuffer` must be externally synchronized
1749pub type PFN_vkResetCommandBuffer = Option<
1750    unsafe extern "system" fn(
1751        command_buffer: CommandBuffer,
1752        flags: CommandBufferResetFlags,
1753    ) -> Result,
1754>;
1755///[`vkCmdBindPipeline`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindPipeline.html)
1756/**
1757Provided by **VK_COMPUTE_VERSION_1_0**.*/
1758///
1759///# Thread Safety
1760///- `commandBuffer` must be externally synchronized
1761pub type PFN_vkCmdBindPipeline = Option<
1762    unsafe extern "system" fn(
1763        command_buffer: CommandBuffer,
1764        pipeline_bind_point: PipelineBindPoint,
1765        pipeline: Pipeline,
1766    ),
1767>;
1768///[`vkCmdSetAttachmentFeedbackLoopEnableEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetAttachmentFeedbackLoopEnableEXT.html)
1769/**
1770Provided by **VK_EXT_attachment_feedback_loop_dynamic_state**.*/
1771///
1772///# Thread Safety
1773///- `commandBuffer` must be externally synchronized
1774pub type PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT = Option<
1775    unsafe extern "system" fn(
1776        command_buffer: CommandBuffer,
1777        aspect_mask: ImageAspectFlags,
1778    ),
1779>;
1780///[`vkCmdSetViewport`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetViewport.html)
1781/**
1782Provided by **VK_GRAPHICS_VERSION_1_0**.*/
1783///
1784///# Thread Safety
1785///- `commandBuffer` must be externally synchronized
1786pub type PFN_vkCmdSetViewport = Option<
1787    unsafe extern "system" fn(
1788        command_buffer: CommandBuffer,
1789        first_viewport: u32,
1790        viewport_count: u32,
1791        p_viewports: *const Viewport,
1792    ),
1793>;
1794///[`vkCmdSetScissor`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetScissor.html)
1795/**
1796Provided by **VK_GRAPHICS_VERSION_1_0**.*/
1797///
1798///# Thread Safety
1799///- `commandBuffer` must be externally synchronized
1800pub type PFN_vkCmdSetScissor = Option<
1801    unsafe extern "system" fn(
1802        command_buffer: CommandBuffer,
1803        first_scissor: u32,
1804        scissor_count: u32,
1805        p_scissors: *const Rect2D,
1806    ),
1807>;
1808///[`vkCmdSetLineWidth`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetLineWidth.html)
1809/**
1810Provided by **VK_GRAPHICS_VERSION_1_0**.*/
1811///
1812///# Thread Safety
1813///- `commandBuffer` must be externally synchronized
1814pub type PFN_vkCmdSetLineWidth = Option<
1815    unsafe extern "system" fn(command_buffer: CommandBuffer, line_width: f32),
1816>;
1817///[`vkCmdSetDepthBias`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthBias.html)
1818/**
1819Provided by **VK_GRAPHICS_VERSION_1_0**.*/
1820///
1821///# Thread Safety
1822///- `commandBuffer` must be externally synchronized
1823pub type PFN_vkCmdSetDepthBias = Option<
1824    unsafe extern "system" fn(
1825        command_buffer: CommandBuffer,
1826        depth_bias_constant_factor: f32,
1827        depth_bias_clamp: f32,
1828        depth_bias_slope_factor: f32,
1829    ),
1830>;
1831///[`vkCmdSetBlendConstants`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetBlendConstants.html)
1832/**
1833Provided by **VK_GRAPHICS_VERSION_1_0**.*/
1834///
1835///# Thread Safety
1836///- `commandBuffer` must be externally synchronized
1837pub type PFN_vkCmdSetBlendConstants = Option<
1838    unsafe extern "system" fn(command_buffer: CommandBuffer, blend_constants: f32),
1839>;
1840///[`vkCmdSetDepthBounds`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthBounds.html)
1841/**
1842Provided by **VK_GRAPHICS_VERSION_1_0**.*/
1843///
1844///# Thread Safety
1845///- `commandBuffer` must be externally synchronized
1846pub type PFN_vkCmdSetDepthBounds = Option<
1847    unsafe extern "system" fn(
1848        command_buffer: CommandBuffer,
1849        min_depth_bounds: f32,
1850        max_depth_bounds: f32,
1851    ),
1852>;
1853///[`vkCmdSetStencilCompareMask`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetStencilCompareMask.html)
1854/**
1855Provided by **VK_GRAPHICS_VERSION_1_0**.*/
1856///
1857///# Thread Safety
1858///- `commandBuffer` must be externally synchronized
1859pub type PFN_vkCmdSetStencilCompareMask = Option<
1860    unsafe extern "system" fn(
1861        command_buffer: CommandBuffer,
1862        face_mask: StencilFaceFlags,
1863        compare_mask: u32,
1864    ),
1865>;
1866///[`vkCmdSetStencilWriteMask`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetStencilWriteMask.html)
1867/**
1868Provided by **VK_GRAPHICS_VERSION_1_0**.*/
1869///
1870///# Thread Safety
1871///- `commandBuffer` must be externally synchronized
1872pub type PFN_vkCmdSetStencilWriteMask = Option<
1873    unsafe extern "system" fn(
1874        command_buffer: CommandBuffer,
1875        face_mask: StencilFaceFlags,
1876        write_mask: u32,
1877    ),
1878>;
1879///[`vkCmdSetStencilReference`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetStencilReference.html)
1880/**
1881Provided by **VK_GRAPHICS_VERSION_1_0**.*/
1882///
1883///# Thread Safety
1884///- `commandBuffer` must be externally synchronized
1885pub type PFN_vkCmdSetStencilReference = Option<
1886    unsafe extern "system" fn(
1887        command_buffer: CommandBuffer,
1888        face_mask: StencilFaceFlags,
1889        reference: u32,
1890    ),
1891>;
1892///[`vkCmdBindDescriptorSets`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindDescriptorSets.html)
1893/**
1894Provided by **VK_COMPUTE_VERSION_1_0**.*/
1895///
1896///# Thread Safety
1897///- `commandBuffer` must be externally synchronized
1898pub type PFN_vkCmdBindDescriptorSets = Option<
1899    unsafe extern "system" fn(
1900        command_buffer: CommandBuffer,
1901        pipeline_bind_point: PipelineBindPoint,
1902        layout: PipelineLayout,
1903        first_set: u32,
1904        descriptor_set_count: u32,
1905        p_descriptor_sets: *const DescriptorSet,
1906        dynamic_offset_count: u32,
1907        p_dynamic_offsets: *const u32,
1908    ),
1909>;
1910///[`vkCmdBindIndexBuffer`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindIndexBuffer.html)
1911/**
1912Provided by **VK_GRAPHICS_VERSION_1_0**.*/
1913///
1914///# Thread Safety
1915///- `commandBuffer` must be externally synchronized
1916pub type PFN_vkCmdBindIndexBuffer = Option<
1917    unsafe extern "system" fn(
1918        command_buffer: CommandBuffer,
1919        buffer: Buffer,
1920        offset: u64,
1921        index_type: IndexType,
1922    ),
1923>;
1924///[`vkCmdBindVertexBuffers`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindVertexBuffers.html)
1925/**
1926Provided by **VK_GRAPHICS_VERSION_1_0**.*/
1927///
1928///# Thread Safety
1929///- `commandBuffer` must be externally synchronized
1930pub type PFN_vkCmdBindVertexBuffers = Option<
1931    unsafe extern "system" fn(
1932        command_buffer: CommandBuffer,
1933        first_binding: u32,
1934        binding_count: u32,
1935        p_buffers: *const Buffer,
1936        p_offsets: *const u64,
1937    ),
1938>;
1939///[`vkCmdDraw`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDraw.html)
1940/**
1941Provided by **VK_GRAPHICS_VERSION_1_0**.*/
1942///
1943///# Thread Safety
1944///- `commandBuffer` must be externally synchronized
1945pub type PFN_vkCmdDraw = Option<
1946    unsafe extern "system" fn(
1947        command_buffer: CommandBuffer,
1948        vertex_count: u32,
1949        instance_count: u32,
1950        first_vertex: u32,
1951        first_instance: u32,
1952    ),
1953>;
1954///[`vkCmdDrawIndexed`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndexed.html)
1955/**
1956Provided by **VK_GRAPHICS_VERSION_1_0**.*/
1957///
1958///# Thread Safety
1959///- `commandBuffer` must be externally synchronized
1960pub type PFN_vkCmdDrawIndexed = Option<
1961    unsafe extern "system" fn(
1962        command_buffer: CommandBuffer,
1963        index_count: u32,
1964        instance_count: u32,
1965        first_index: u32,
1966        vertex_offset: i32,
1967        first_instance: u32,
1968    ),
1969>;
1970///[`vkCmdDrawMultiEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawMultiEXT.html)
1971/**
1972Provided by **VK_EXT_multi_draw**.*/
1973///
1974///# Thread Safety
1975///- `commandBuffer` must be externally synchronized
1976pub type PFN_vkCmdDrawMultiEXT = Option<
1977    unsafe extern "system" fn(
1978        command_buffer: CommandBuffer,
1979        draw_count: u32,
1980        p_vertex_info: *const MultiDrawInfoEXT,
1981        instance_count: u32,
1982        first_instance: u32,
1983        stride: u32,
1984    ),
1985>;
1986///[`vkCmdDrawMultiIndexedEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawMultiIndexedEXT.html)
1987/**
1988Provided by **VK_EXT_multi_draw**.*/
1989///
1990///# Thread Safety
1991///- `commandBuffer` must be externally synchronized
1992pub type PFN_vkCmdDrawMultiIndexedEXT = Option<
1993    unsafe extern "system" fn(
1994        command_buffer: CommandBuffer,
1995        draw_count: u32,
1996        p_index_info: *const MultiDrawIndexedInfoEXT,
1997        instance_count: u32,
1998        first_instance: u32,
1999        stride: u32,
2000        p_vertex_offset: *const i32,
2001    ),
2002>;
2003///[`vkCmdDrawIndirect`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndirect.html)
2004/**
2005Provided by **VK_GRAPHICS_VERSION_1_0**.*/
2006///
2007///# Thread Safety
2008///- `commandBuffer` must be externally synchronized
2009pub type PFN_vkCmdDrawIndirect = Option<
2010    unsafe extern "system" fn(
2011        command_buffer: CommandBuffer,
2012        buffer: Buffer,
2013        offset: u64,
2014        draw_count: u32,
2015        stride: u32,
2016    ),
2017>;
2018///[`vkCmdDrawIndexedIndirect`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndexedIndirect.html)
2019/**
2020Provided by **VK_GRAPHICS_VERSION_1_0**.*/
2021///
2022///# Thread Safety
2023///- `commandBuffer` must be externally synchronized
2024pub type PFN_vkCmdDrawIndexedIndirect = Option<
2025    unsafe extern "system" fn(
2026        command_buffer: CommandBuffer,
2027        buffer: Buffer,
2028        offset: u64,
2029        draw_count: u32,
2030        stride: u32,
2031    ),
2032>;
2033///[`vkCmdDispatch`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDispatch.html)
2034/**
2035Provided by **VK_COMPUTE_VERSION_1_0**.*/
2036///
2037///# Thread Safety
2038///- `commandBuffer` must be externally synchronized
2039pub type PFN_vkCmdDispatch = Option<
2040    unsafe extern "system" fn(
2041        command_buffer: CommandBuffer,
2042        group_count_x: u32,
2043        group_count_y: u32,
2044        group_count_z: u32,
2045    ),
2046>;
2047///[`vkCmdDispatchIndirect`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDispatchIndirect.html)
2048/**
2049Provided by **VK_COMPUTE_VERSION_1_0**.*/
2050///
2051///# Thread Safety
2052///- `commandBuffer` must be externally synchronized
2053pub type PFN_vkCmdDispatchIndirect = Option<
2054    unsafe extern "system" fn(command_buffer: CommandBuffer, buffer: Buffer, offset: u64),
2055>;
2056///[`vkCmdSubpassShadingHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSubpassShadingHUAWEI.html)
2057/**
2058Provided by **VK_HUAWEI_subpass_shading**.*/
2059///
2060///# Thread Safety
2061///- `commandBuffer` must be externally synchronized
2062pub type PFN_vkCmdSubpassShadingHUAWEI = Option<
2063    unsafe extern "system" fn(command_buffer: CommandBuffer),
2064>;
2065///[`vkCmdDrawClusterHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawClusterHUAWEI.html)
2066/**
2067Provided by **VK_HUAWEI_cluster_culling_shader**.*/
2068///
2069///# Thread Safety
2070///- `commandBuffer` must be externally synchronized
2071pub type PFN_vkCmdDrawClusterHUAWEI = Option<
2072    unsafe extern "system" fn(
2073        command_buffer: CommandBuffer,
2074        group_count_x: u32,
2075        group_count_y: u32,
2076        group_count_z: u32,
2077    ),
2078>;
2079///[`vkCmdDrawClusterIndirectHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawClusterIndirectHUAWEI.html)
2080/**
2081Provided by **VK_HUAWEI_cluster_culling_shader**.*/
2082///
2083///# Thread Safety
2084///- `commandBuffer` must be externally synchronized
2085pub type PFN_vkCmdDrawClusterIndirectHUAWEI = Option<
2086    unsafe extern "system" fn(command_buffer: CommandBuffer, buffer: Buffer, offset: u64),
2087>;
2088///[`vkCmdUpdatePipelineIndirectBufferNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdUpdatePipelineIndirectBufferNV.html)
2089/**
2090Provided by **VK_NV_device_generated_commands_compute**.*/
2091///
2092///# Thread Safety
2093///- `commandBuffer` must be externally synchronized
2094pub type PFN_vkCmdUpdatePipelineIndirectBufferNV = Option<
2095    unsafe extern "system" fn(
2096        command_buffer: CommandBuffer,
2097        pipeline_bind_point: PipelineBindPoint,
2098        pipeline: Pipeline,
2099    ),
2100>;
2101///[`vkCmdCopyBuffer`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyBuffer.html)
2102/**
2103Provided by **VK_BASE_VERSION_1_0**.*/
2104///
2105///# Thread Safety
2106///- `commandBuffer` must be externally synchronized
2107pub type PFN_vkCmdCopyBuffer = Option<
2108    unsafe extern "system" fn(
2109        command_buffer: CommandBuffer,
2110        src_buffer: Buffer,
2111        dst_buffer: Buffer,
2112        region_count: u32,
2113        p_regions: *const BufferCopy,
2114    ),
2115>;
2116///[`vkCmdCopyImage`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyImage.html)
2117/**
2118Provided by **VK_BASE_VERSION_1_0**.*/
2119///
2120///# Thread Safety
2121///- `commandBuffer` must be externally synchronized
2122pub type PFN_vkCmdCopyImage = Option<
2123    unsafe extern "system" fn(
2124        command_buffer: CommandBuffer,
2125        src_image: Image,
2126        src_image_layout: ImageLayout,
2127        dst_image: Image,
2128        dst_image_layout: ImageLayout,
2129        region_count: u32,
2130        p_regions: *const ImageCopy,
2131    ),
2132>;
2133///[`vkCmdBlitImage`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBlitImage.html)
2134/**
2135Provided by **VK_GRAPHICS_VERSION_1_0**.*/
2136///
2137///# Thread Safety
2138///- `commandBuffer` must be externally synchronized
2139pub type PFN_vkCmdBlitImage = Option<
2140    unsafe extern "system" fn(
2141        command_buffer: CommandBuffer,
2142        src_image: Image,
2143        src_image_layout: ImageLayout,
2144        dst_image: Image,
2145        dst_image_layout: ImageLayout,
2146        region_count: u32,
2147        p_regions: *const ImageBlit,
2148        filter: Filter,
2149    ),
2150>;
2151///[`vkCmdCopyBufferToImage`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyBufferToImage.html)
2152/**
2153Provided by **VK_BASE_VERSION_1_0**.*/
2154///
2155///# Thread Safety
2156///- `commandBuffer` must be externally synchronized
2157pub type PFN_vkCmdCopyBufferToImage = Option<
2158    unsafe extern "system" fn(
2159        command_buffer: CommandBuffer,
2160        src_buffer: Buffer,
2161        dst_image: Image,
2162        dst_image_layout: ImageLayout,
2163        region_count: u32,
2164        p_regions: *const BufferImageCopy,
2165    ),
2166>;
2167///[`vkCmdCopyImageToBuffer`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyImageToBuffer.html)
2168/**
2169Provided by **VK_BASE_VERSION_1_0**.*/
2170///
2171///# Thread Safety
2172///- `commandBuffer` must be externally synchronized
2173pub type PFN_vkCmdCopyImageToBuffer = Option<
2174    unsafe extern "system" fn(
2175        command_buffer: CommandBuffer,
2176        src_image: Image,
2177        src_image_layout: ImageLayout,
2178        dst_buffer: Buffer,
2179        region_count: u32,
2180        p_regions: *const BufferImageCopy,
2181    ),
2182>;
2183///[`vkCmdCopyMemoryIndirectNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryIndirectNV.html)
2184/**
2185Provided by **VK_NV_copy_memory_indirect**.*/
2186///
2187///# Thread Safety
2188///- `commandBuffer` must be externally synchronized
2189pub type PFN_vkCmdCopyMemoryIndirectNV = Option<
2190    unsafe extern "system" fn(
2191        command_buffer: CommandBuffer,
2192        copy_buffer_address: u64,
2193        copy_count: u32,
2194        stride: u32,
2195    ),
2196>;
2197///[`vkCmdCopyMemoryIndirectKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryIndirectKHR.html)
2198/**
2199Provided by **VK_KHR_copy_memory_indirect**.*/
2200///
2201///# Thread Safety
2202///- `commandBuffer` must be externally synchronized
2203pub type PFN_vkCmdCopyMemoryIndirectKHR = Option<
2204    unsafe extern "system" fn(
2205        command_buffer: CommandBuffer,
2206        p_copy_memory_indirect_info: *const CopyMemoryIndirectInfoKHR,
2207    ),
2208>;
2209///[`vkCmdCopyMemoryToImageIndirectNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryToImageIndirectNV.html)
2210/**
2211Provided by **VK_NV_copy_memory_indirect**.*/
2212///
2213///# Thread Safety
2214///- `commandBuffer` must be externally synchronized
2215pub type PFN_vkCmdCopyMemoryToImageIndirectNV = Option<
2216    unsafe extern "system" fn(
2217        command_buffer: CommandBuffer,
2218        copy_buffer_address: u64,
2219        copy_count: u32,
2220        stride: u32,
2221        dst_image: Image,
2222        dst_image_layout: ImageLayout,
2223        p_image_subresources: *const ImageSubresourceLayers,
2224    ),
2225>;
2226///[`vkCmdCopyMemoryToImageIndirectKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryToImageIndirectKHR.html)
2227/**
2228Provided by **VK_KHR_copy_memory_indirect**.*/
2229///
2230///# Thread Safety
2231///- `commandBuffer` must be externally synchronized
2232pub type PFN_vkCmdCopyMemoryToImageIndirectKHR = Option<
2233    unsafe extern "system" fn(
2234        command_buffer: CommandBuffer,
2235        p_copy_memory_to_image_indirect_info: *const CopyMemoryToImageIndirectInfoKHR,
2236    ),
2237>;
2238///[`vkCmdUpdateBuffer`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdUpdateBuffer.html)
2239/**
2240Provided by **VK_BASE_VERSION_1_0**.*/
2241///
2242///# Thread Safety
2243///- `commandBuffer` must be externally synchronized
2244pub type PFN_vkCmdUpdateBuffer = Option<
2245    unsafe extern "system" fn(
2246        command_buffer: CommandBuffer,
2247        dst_buffer: Buffer,
2248        dst_offset: u64,
2249        data_size: u64,
2250        p_data: *const core::ffi::c_void,
2251    ),
2252>;
2253///[`vkCmdFillBuffer`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdFillBuffer.html)
2254/**
2255Provided by **VK_BASE_VERSION_1_0**.*/
2256///
2257///# Thread Safety
2258///- `commandBuffer` must be externally synchronized
2259pub type PFN_vkCmdFillBuffer = Option<
2260    unsafe extern "system" fn(
2261        command_buffer: CommandBuffer,
2262        dst_buffer: Buffer,
2263        dst_offset: u64,
2264        size: u64,
2265        data: u32,
2266    ),
2267>;
2268///[`vkCmdClearColorImage`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdClearColorImage.html)
2269/**
2270Provided by **VK_COMPUTE_VERSION_1_0**.*/
2271///
2272///# Thread Safety
2273///- `commandBuffer` must be externally synchronized
2274pub type PFN_vkCmdClearColorImage = Option<
2275    unsafe extern "system" fn(
2276        command_buffer: CommandBuffer,
2277        image: Image,
2278        image_layout: ImageLayout,
2279        p_color: *const ClearColorValue,
2280        range_count: u32,
2281        p_ranges: *const ImageSubresourceRange,
2282    ),
2283>;
2284///[`vkCmdClearDepthStencilImage`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdClearDepthStencilImage.html)
2285/**
2286Provided by **VK_GRAPHICS_VERSION_1_0**.*/
2287///
2288///# Thread Safety
2289///- `commandBuffer` must be externally synchronized
2290pub type PFN_vkCmdClearDepthStencilImage = Option<
2291    unsafe extern "system" fn(
2292        command_buffer: CommandBuffer,
2293        image: Image,
2294        image_layout: ImageLayout,
2295        p_depth_stencil: *const ClearDepthStencilValue,
2296        range_count: u32,
2297        p_ranges: *const ImageSubresourceRange,
2298    ),
2299>;
2300///[`vkCmdClearAttachments`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdClearAttachments.html)
2301/**
2302Provided by **VK_GRAPHICS_VERSION_1_0**.*/
2303///
2304///# Thread Safety
2305///- `commandBuffer` must be externally synchronized
2306pub type PFN_vkCmdClearAttachments = Option<
2307    unsafe extern "system" fn(
2308        command_buffer: CommandBuffer,
2309        attachment_count: u32,
2310        p_attachments: *const ClearAttachment,
2311        rect_count: u32,
2312        p_rects: *const ClearRect,
2313    ),
2314>;
2315///[`vkCmdResolveImage`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdResolveImage.html)
2316/**
2317Provided by **VK_GRAPHICS_VERSION_1_0**.*/
2318///
2319///# Thread Safety
2320///- `commandBuffer` must be externally synchronized
2321pub type PFN_vkCmdResolveImage = Option<
2322    unsafe extern "system" fn(
2323        command_buffer: CommandBuffer,
2324        src_image: Image,
2325        src_image_layout: ImageLayout,
2326        dst_image: Image,
2327        dst_image_layout: ImageLayout,
2328        region_count: u32,
2329        p_regions: *const ImageResolve,
2330    ),
2331>;
2332///[`vkCmdSetEvent`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetEvent.html)
2333/**
2334Provided by **VK_COMPUTE_VERSION_1_0**.*/
2335///
2336///# Thread Safety
2337///- `commandBuffer` must be externally synchronized
2338pub type PFN_vkCmdSetEvent = Option<
2339    unsafe extern "system" fn(
2340        command_buffer: CommandBuffer,
2341        event: Event,
2342        stage_mask: PipelineStageFlags,
2343    ),
2344>;
2345///[`vkCmdResetEvent`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdResetEvent.html)
2346/**
2347Provided by **VK_COMPUTE_VERSION_1_0**.*/
2348///
2349///# Thread Safety
2350///- `commandBuffer` must be externally synchronized
2351pub type PFN_vkCmdResetEvent = Option<
2352    unsafe extern "system" fn(
2353        command_buffer: CommandBuffer,
2354        event: Event,
2355        stage_mask: PipelineStageFlags,
2356    ),
2357>;
2358///[`vkCmdWaitEvents`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWaitEvents.html)
2359/**
2360Provided by **VK_COMPUTE_VERSION_1_0**.*/
2361///
2362///# Thread Safety
2363///- `commandBuffer` must be externally synchronized
2364pub type PFN_vkCmdWaitEvents = Option<
2365    unsafe extern "system" fn(
2366        command_buffer: CommandBuffer,
2367        event_count: u32,
2368        p_events: *const Event,
2369        src_stage_mask: PipelineStageFlags,
2370        dst_stage_mask: PipelineStageFlags,
2371        memory_barrier_count: u32,
2372        p_memory_barriers: *const MemoryBarrier,
2373        buffer_memory_barrier_count: u32,
2374        p_buffer_memory_barriers: *const BufferMemoryBarrier,
2375        image_memory_barrier_count: u32,
2376        p_image_memory_barriers: *const ImageMemoryBarrier,
2377    ),
2378>;
2379///[`vkCmdPipelineBarrier`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPipelineBarrier.html)
2380/**
2381Provided by **VK_BASE_VERSION_1_0**.*/
2382///
2383///# Thread Safety
2384///- `commandBuffer` must be externally synchronized
2385pub type PFN_vkCmdPipelineBarrier = Option<
2386    unsafe extern "system" fn(
2387        command_buffer: CommandBuffer,
2388        src_stage_mask: PipelineStageFlags,
2389        dst_stage_mask: PipelineStageFlags,
2390        dependency_flags: DependencyFlags,
2391        memory_barrier_count: u32,
2392        p_memory_barriers: *const MemoryBarrier,
2393        buffer_memory_barrier_count: u32,
2394        p_buffer_memory_barriers: *const BufferMemoryBarrier,
2395        image_memory_barrier_count: u32,
2396        p_image_memory_barriers: *const ImageMemoryBarrier,
2397    ),
2398>;
2399///[`vkCmdBeginQuery`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginQuery.html)
2400/**
2401Provided by **VK_BASE_VERSION_1_0**.*/
2402///
2403///# Thread Safety
2404///- `commandBuffer` must be externally synchronized
2405pub type PFN_vkCmdBeginQuery = Option<
2406    unsafe extern "system" fn(
2407        command_buffer: CommandBuffer,
2408        query_pool: QueryPool,
2409        query: u32,
2410        flags: QueryControlFlags,
2411    ),
2412>;
2413///[`vkCmdEndQuery`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndQuery.html)
2414/**
2415Provided by **VK_BASE_VERSION_1_0**.*/
2416///
2417///# Thread Safety
2418///- `commandBuffer` must be externally synchronized
2419pub type PFN_vkCmdEndQuery = Option<
2420    unsafe extern "system" fn(
2421        command_buffer: CommandBuffer,
2422        query_pool: QueryPool,
2423        query: u32,
2424    ),
2425>;
2426///[`vkCmdBeginConditionalRenderingEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginConditionalRenderingEXT.html)
2427/**
2428Provided by **VK_EXT_conditional_rendering**.*/
2429///
2430///# Thread Safety
2431///- `commandBuffer` must be externally synchronized
2432pub type PFN_vkCmdBeginConditionalRenderingEXT = Option<
2433    unsafe extern "system" fn(
2434        command_buffer: CommandBuffer,
2435        p_conditional_rendering_begin: *const ConditionalRenderingBeginInfoEXT,
2436    ),
2437>;
2438///[`vkCmdEndConditionalRenderingEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndConditionalRenderingEXT.html)
2439/**
2440Provided by **VK_EXT_conditional_rendering**.*/
2441///
2442///# Thread Safety
2443///- `commandBuffer` must be externally synchronized
2444pub type PFN_vkCmdEndConditionalRenderingEXT = Option<
2445    unsafe extern "system" fn(command_buffer: CommandBuffer),
2446>;
2447///[`vkCmdBeginCustomResolveEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginCustomResolveEXT.html)
2448/**
2449Provided by **VK_EXT_custom_resolve**.*/
2450///
2451///# Thread Safety
2452///- `commandBuffer` must be externally synchronized
2453pub type PFN_vkCmdBeginCustomResolveEXT = Option<
2454    unsafe extern "system" fn(
2455        command_buffer: CommandBuffer,
2456        p_begin_custom_resolve_info: *const BeginCustomResolveInfoEXT,
2457    ),
2458>;
2459///[`vkCmdResetQueryPool`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdResetQueryPool.html)
2460/**
2461Provided by **VK_BASE_VERSION_1_0**.*/
2462///
2463///# Thread Safety
2464///- `commandBuffer` must be externally synchronized
2465pub type PFN_vkCmdResetQueryPool = Option<
2466    unsafe extern "system" fn(
2467        command_buffer: CommandBuffer,
2468        query_pool: QueryPool,
2469        first_query: u32,
2470        query_count: u32,
2471    ),
2472>;
2473///[`vkCmdWriteTimestamp`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWriteTimestamp.html)
2474/**
2475Provided by **VK_BASE_VERSION_1_0**.*/
2476///
2477///# Thread Safety
2478///- `commandBuffer` must be externally synchronized
2479pub type PFN_vkCmdWriteTimestamp = Option<
2480    unsafe extern "system" fn(
2481        command_buffer: CommandBuffer,
2482        pipeline_stage: PipelineStageFlagBits,
2483        query_pool: QueryPool,
2484        query: u32,
2485    ),
2486>;
2487///[`vkCmdCopyQueryPoolResults`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyQueryPoolResults.html)
2488/**
2489Provided by **VK_BASE_VERSION_1_0**.*/
2490///
2491///# Thread Safety
2492///- `commandBuffer` must be externally synchronized
2493pub type PFN_vkCmdCopyQueryPoolResults = Option<
2494    unsafe extern "system" fn(
2495        command_buffer: CommandBuffer,
2496        query_pool: QueryPool,
2497        first_query: u32,
2498        query_count: u32,
2499        dst_buffer: Buffer,
2500        dst_offset: u64,
2501        stride: u64,
2502        flags: QueryResultFlags,
2503    ),
2504>;
2505///[`vkCmdPushConstants`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushConstants.html)
2506/**
2507Provided by **VK_COMPUTE_VERSION_1_0**.*/
2508///
2509///# Thread Safety
2510///- `commandBuffer` must be externally synchronized
2511pub type PFN_vkCmdPushConstants = Option<
2512    unsafe extern "system" fn(
2513        command_buffer: CommandBuffer,
2514        layout: PipelineLayout,
2515        stage_flags: ShaderStageFlags,
2516        offset: u32,
2517        size: u32,
2518        p_values: *const core::ffi::c_void,
2519    ),
2520>;
2521///[`vkCmdBeginRenderPass`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginRenderPass.html)
2522/**
2523Provided by **VK_GRAPHICS_VERSION_1_0**.*/
2524///
2525///# Thread Safety
2526///- `commandBuffer` must be externally synchronized
2527pub type PFN_vkCmdBeginRenderPass = Option<
2528    unsafe extern "system" fn(
2529        command_buffer: CommandBuffer,
2530        p_render_pass_begin: *const RenderPassBeginInfo,
2531        contents: SubpassContents,
2532    ),
2533>;
2534///[`vkCmdNextSubpass`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdNextSubpass.html)
2535/**
2536Provided by **VK_GRAPHICS_VERSION_1_0**.*/
2537///
2538///# Thread Safety
2539///- `commandBuffer` must be externally synchronized
2540pub type PFN_vkCmdNextSubpass = Option<
2541    unsafe extern "system" fn(command_buffer: CommandBuffer, contents: SubpassContents),
2542>;
2543///[`vkCmdEndRenderPass`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndRenderPass.html)
2544/**
2545Provided by **VK_GRAPHICS_VERSION_1_0**.*/
2546///
2547///# Thread Safety
2548///- `commandBuffer` must be externally synchronized
2549pub type PFN_vkCmdEndRenderPass = Option<
2550    unsafe extern "system" fn(command_buffer: CommandBuffer),
2551>;
2552///[`vkCmdExecuteCommands`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdExecuteCommands.html)
2553/**
2554Provided by **VK_BASE_VERSION_1_0**.*/
2555///
2556///# Thread Safety
2557///- `commandBuffer` must be externally synchronized
2558pub type PFN_vkCmdExecuteCommands = Option<
2559    unsafe extern "system" fn(
2560        command_buffer: CommandBuffer,
2561        command_buffer_count: u32,
2562        p_command_buffers: *const CommandBuffer,
2563    ),
2564>;
2565///[`vkCreateAndroidSurfaceKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateAndroidSurfaceKHR.html)
2566/**
2567Provided by **VK_KHR_android_surface**.*/
2568///
2569///# Success Codes
2570///- `VK_SUCCESS`
2571///
2572///# Error Codes
2573///- `VK_ERROR_OUT_OF_HOST_MEMORY`
2574///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
2575///- `VK_ERROR_NATIVE_WINDOW_IN_USE_KHR`
2576///- `VK_ERROR_UNKNOWN`
2577///- `VK_ERROR_VALIDATION_FAILED`
2578pub type PFN_vkCreateAndroidSurfaceKHR = Option<
2579    unsafe extern "system" fn(
2580        instance: Instance,
2581        p_create_info: *const AndroidSurfaceCreateInfoKHR,
2582        p_allocator: *const AllocationCallbacks,
2583        p_surface: *mut SurfaceKHR,
2584    ) -> Result,
2585>;
2586///[`vkCreateSurfaceOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSurfaceOHOS.html)
2587/**
2588Provided by **VK_OHOS_surface**.*/
2589///
2590///# Success Codes
2591///- `VK_SUCCESS`
2592///
2593///# Error Codes
2594///- `VK_ERROR_OUT_OF_HOST_MEMORY`
2595///- `VK_ERROR_SURFACE_LOST_KHR`
2596///- `VK_ERROR_UNKNOWN`
2597///- `VK_ERROR_VALIDATION_FAILED`
2598pub type PFN_vkCreateSurfaceOHOS = Option<
2599    unsafe extern "system" fn(
2600        instance: Instance,
2601        p_create_info: *const SurfaceCreateInfoOHOS,
2602        p_allocator: *const AllocationCallbacks,
2603        p_surface: *mut SurfaceKHR,
2604    ) -> Result,
2605>;
2606///[`vkGetPhysicalDeviceDisplayPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayPropertiesKHR.html)
2607/**
2608Provided by **VK_KHR_display**.*/
2609///
2610///# Success Codes
2611///- `VK_SUCCESS`
2612///- `VK_INCOMPLETE`
2613///
2614///# Error Codes
2615///- `VK_ERROR_OUT_OF_HOST_MEMORY`
2616///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
2617///- `VK_ERROR_UNKNOWN`
2618///- `VK_ERROR_VALIDATION_FAILED`
2619pub type PFN_vkGetPhysicalDeviceDisplayPropertiesKHR = Option<
2620    unsafe extern "system" fn(
2621        physical_device: PhysicalDevice,
2622        p_property_count: *mut u32,
2623        p_properties: *mut DisplayPropertiesKHR,
2624    ) -> Result,
2625>;
2626///[`vkGetPhysicalDeviceDisplayPlanePropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayPlanePropertiesKHR.html)
2627/**
2628Provided by **VK_KHR_display**.*/
2629///
2630///# Success Codes
2631///- `VK_SUCCESS`
2632///- `VK_INCOMPLETE`
2633///
2634///# Error Codes
2635///- `VK_ERROR_OUT_OF_HOST_MEMORY`
2636///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
2637///- `VK_ERROR_UNKNOWN`
2638///- `VK_ERROR_VALIDATION_FAILED`
2639pub type PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR = Option<
2640    unsafe extern "system" fn(
2641        physical_device: PhysicalDevice,
2642        p_property_count: *mut u32,
2643        p_properties: *mut DisplayPlanePropertiesKHR,
2644    ) -> Result,
2645>;
2646///[`vkGetDisplayPlaneSupportedDisplaysKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayPlaneSupportedDisplaysKHR.html)
2647/**
2648Provided by **VK_KHR_display**.*/
2649///
2650///# Success Codes
2651///- `VK_SUCCESS`
2652///- `VK_INCOMPLETE`
2653///
2654///# Error Codes
2655///- `VK_ERROR_OUT_OF_HOST_MEMORY`
2656///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
2657///- `VK_ERROR_UNKNOWN`
2658///- `VK_ERROR_VALIDATION_FAILED`
2659pub type PFN_vkGetDisplayPlaneSupportedDisplaysKHR = Option<
2660    unsafe extern "system" fn(
2661        physical_device: PhysicalDevice,
2662        plane_index: u32,
2663        p_display_count: *mut u32,
2664        p_displays: *mut DisplayKHR,
2665    ) -> Result,
2666>;
2667///[`vkGetDisplayModePropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayModePropertiesKHR.html)
2668/**
2669Provided by **VK_KHR_display**.*/
2670///
2671///# Success Codes
2672///- `VK_SUCCESS`
2673///- `VK_INCOMPLETE`
2674///
2675///# Error Codes
2676///- `VK_ERROR_OUT_OF_HOST_MEMORY`
2677///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
2678///- `VK_ERROR_UNKNOWN`
2679///- `VK_ERROR_VALIDATION_FAILED`
2680pub type PFN_vkGetDisplayModePropertiesKHR = Option<
2681    unsafe extern "system" fn(
2682        physical_device: PhysicalDevice,
2683        display: DisplayKHR,
2684        p_property_count: *mut u32,
2685        p_properties: *mut DisplayModePropertiesKHR,
2686    ) -> Result,
2687>;
2688///[`vkCreateDisplayModeKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDisplayModeKHR.html)
2689/**
2690Provided by **VK_KHR_display**.*/
2691///
2692///# Success Codes
2693///- `VK_SUCCESS`
2694///
2695///# Error Codes
2696///- `VK_ERROR_OUT_OF_HOST_MEMORY`
2697///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
2698///- `VK_ERROR_INITIALIZATION_FAILED`
2699///- `VK_ERROR_UNKNOWN`
2700///- `VK_ERROR_VALIDATION_FAILED`
2701///
2702///# Thread Safety
2703///- `display` must be externally synchronized
2704pub type PFN_vkCreateDisplayModeKHR = Option<
2705    unsafe extern "system" fn(
2706        physical_device: PhysicalDevice,
2707        display: DisplayKHR,
2708        p_create_info: *const DisplayModeCreateInfoKHR,
2709        p_allocator: *const AllocationCallbacks,
2710        p_mode: *mut DisplayModeKHR,
2711    ) -> Result,
2712>;
2713///[`vkGetDisplayPlaneCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayPlaneCapabilitiesKHR.html)
2714/**
2715Provided by **VK_KHR_display**.*/
2716///
2717///# Success Codes
2718///- `VK_SUCCESS`
2719///
2720///# Error Codes
2721///- `VK_ERROR_OUT_OF_HOST_MEMORY`
2722///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
2723///- `VK_ERROR_UNKNOWN`
2724///- `VK_ERROR_VALIDATION_FAILED`
2725///
2726///# Thread Safety
2727///- `mode` must be externally synchronized
2728pub type PFN_vkGetDisplayPlaneCapabilitiesKHR = Option<
2729    unsafe extern "system" fn(
2730        physical_device: PhysicalDevice,
2731        mode: DisplayModeKHR,
2732        plane_index: u32,
2733        p_capabilities: *mut DisplayPlaneCapabilitiesKHR,
2734    ) -> Result,
2735>;
2736///[`vkCreateDisplayPlaneSurfaceKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDisplayPlaneSurfaceKHR.html)
2737/**
2738Provided by **VK_KHR_display**.*/
2739///
2740///# Success Codes
2741///- `VK_SUCCESS`
2742///
2743///# Error Codes
2744///- `VK_ERROR_OUT_OF_HOST_MEMORY`
2745///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
2746///- `VK_ERROR_UNKNOWN`
2747///- `VK_ERROR_VALIDATION_FAILED`
2748pub type PFN_vkCreateDisplayPlaneSurfaceKHR = Option<
2749    unsafe extern "system" fn(
2750        instance: Instance,
2751        p_create_info: *const DisplaySurfaceCreateInfoKHR,
2752        p_allocator: *const AllocationCallbacks,
2753        p_surface: *mut SurfaceKHR,
2754    ) -> Result,
2755>;
2756///[`vkCreateSharedSwapchainsKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSharedSwapchainsKHR.html)
2757/**
2758Provided by **VK_KHR_display_swapchain**.*/
2759///
2760///# Success Codes
2761///- `VK_SUCCESS`
2762///
2763///# Error Codes
2764///- `VK_ERROR_OUT_OF_HOST_MEMORY`
2765///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
2766///- `VK_ERROR_INCOMPATIBLE_DISPLAY_KHR`
2767///- `VK_ERROR_DEVICE_LOST`
2768///- `VK_ERROR_SURFACE_LOST_KHR`
2769///- `VK_ERROR_UNKNOWN`
2770///- `VK_ERROR_VALIDATION_FAILED`
2771pub type PFN_vkCreateSharedSwapchainsKHR = Option<
2772    unsafe extern "system" fn(
2773        device: Device,
2774        swapchain_count: u32,
2775        p_create_infos: *const SwapchainCreateInfoKHR,
2776        p_allocator: *const AllocationCallbacks,
2777        p_swapchains: *mut SwapchainKHR,
2778    ) -> Result,
2779>;
2780///[`vkDestroySurfaceKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySurfaceKHR.html)
2781/**
2782Provided by **VK_KHR_surface**.*/
2783///
2784///# Thread Safety
2785///- `surface` must be externally synchronized
2786pub type PFN_vkDestroySurfaceKHR = Option<
2787    unsafe extern "system" fn(
2788        instance: Instance,
2789        surface: SurfaceKHR,
2790        p_allocator: *const AllocationCallbacks,
2791    ),
2792>;
2793///[`vkGetPhysicalDeviceSurfaceSupportKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceSupportKHR.html)
2794/**
2795Provided by **VK_KHR_surface**.*/
2796///
2797///# Success Codes
2798///- `VK_SUCCESS`
2799///
2800///# Error Codes
2801///- `VK_ERROR_OUT_OF_HOST_MEMORY`
2802///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
2803///- `VK_ERROR_SURFACE_LOST_KHR`
2804///- `VK_ERROR_UNKNOWN`
2805///- `VK_ERROR_VALIDATION_FAILED`
2806pub type PFN_vkGetPhysicalDeviceSurfaceSupportKHR = Option<
2807    unsafe extern "system" fn(
2808        physical_device: PhysicalDevice,
2809        queue_family_index: u32,
2810        surface: SurfaceKHR,
2811        p_supported: *mut u32,
2812    ) -> Result,
2813>;
2814///[`vkGetPhysicalDeviceSurfaceCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceCapabilitiesKHR.html)
2815/**
2816Provided by **VK_KHR_surface**.*/
2817///
2818///# Success Codes
2819///- `VK_SUCCESS`
2820///
2821///# Error Codes
2822///- `VK_ERROR_OUT_OF_HOST_MEMORY`
2823///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
2824///- `VK_ERROR_SURFACE_LOST_KHR`
2825///- `VK_ERROR_UNKNOWN`
2826///- `VK_ERROR_VALIDATION_FAILED`
2827pub type PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = Option<
2828    unsafe extern "system" fn(
2829        physical_device: PhysicalDevice,
2830        surface: SurfaceKHR,
2831        p_surface_capabilities: *mut SurfaceCapabilitiesKHR,
2832    ) -> Result,
2833>;
2834///[`vkGetPhysicalDeviceSurfaceFormatsKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceFormatsKHR.html)
2835/**
2836Provided by **VK_KHR_surface**.*/
2837///
2838///# Success Codes
2839///- `VK_SUCCESS`
2840///- `VK_INCOMPLETE`
2841///
2842///# Error Codes
2843///- `VK_ERROR_OUT_OF_HOST_MEMORY`
2844///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
2845///- `VK_ERROR_SURFACE_LOST_KHR`
2846///- `VK_ERROR_UNKNOWN`
2847///- `VK_ERROR_VALIDATION_FAILED`
2848pub type PFN_vkGetPhysicalDeviceSurfaceFormatsKHR = Option<
2849    unsafe extern "system" fn(
2850        physical_device: PhysicalDevice,
2851        surface: SurfaceKHR,
2852        p_surface_format_count: *mut u32,
2853        p_surface_formats: *mut SurfaceFormatKHR,
2854    ) -> Result,
2855>;
2856///[`vkGetPhysicalDeviceSurfacePresentModesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfacePresentModesKHR.html)
2857/**
2858Provided by **VK_KHR_surface**.*/
2859///
2860///# Success Codes
2861///- `VK_SUCCESS`
2862///- `VK_INCOMPLETE`
2863///
2864///# Error Codes
2865///- `VK_ERROR_OUT_OF_HOST_MEMORY`
2866///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
2867///- `VK_ERROR_SURFACE_LOST_KHR`
2868///- `VK_ERROR_UNKNOWN`
2869///- `VK_ERROR_VALIDATION_FAILED`
2870pub type PFN_vkGetPhysicalDeviceSurfacePresentModesKHR = Option<
2871    unsafe extern "system" fn(
2872        physical_device: PhysicalDevice,
2873        surface: SurfaceKHR,
2874        p_present_mode_count: *mut u32,
2875        p_present_modes: *mut PresentModeKHR,
2876    ) -> Result,
2877>;
2878///[`vkCreateSwapchainKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSwapchainKHR.html)
2879/**
2880Provided by **VK_KHR_swapchain**.*/
2881///
2882///# Success Codes
2883///- `VK_SUCCESS`
2884///
2885///# Error Codes
2886///- `VK_ERROR_OUT_OF_HOST_MEMORY`
2887///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
2888///- `VK_ERROR_DEVICE_LOST`
2889///- `VK_ERROR_SURFACE_LOST_KHR`
2890///- `VK_ERROR_NATIVE_WINDOW_IN_USE_KHR`
2891///- `VK_ERROR_INITIALIZATION_FAILED`
2892///- `VK_ERROR_COMPRESSION_EXHAUSTED_EXT`
2893///- `VK_ERROR_UNKNOWN`
2894///- `VK_ERROR_VALIDATION_FAILED`
2895pub type PFN_vkCreateSwapchainKHR = Option<
2896    unsafe extern "system" fn(
2897        device: Device,
2898        p_create_info: *const SwapchainCreateInfoKHR,
2899        p_allocator: *const AllocationCallbacks,
2900        p_swapchain: *mut SwapchainKHR,
2901    ) -> Result,
2902>;
2903///[`vkDestroySwapchainKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySwapchainKHR.html)
2904/**
2905Provided by **VK_KHR_swapchain**.*/
2906///
2907///# Thread Safety
2908///- `swapchain` must be externally synchronized
2909pub type PFN_vkDestroySwapchainKHR = Option<
2910    unsafe extern "system" fn(
2911        device: Device,
2912        swapchain: SwapchainKHR,
2913        p_allocator: *const AllocationCallbacks,
2914    ),
2915>;
2916///[`vkGetSwapchainImagesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSwapchainImagesKHR.html)
2917/**
2918Provided by **VK_KHR_swapchain**.*/
2919///
2920///# Success Codes
2921///- `VK_SUCCESS`
2922///- `VK_INCOMPLETE`
2923///
2924///# Error Codes
2925///- `VK_ERROR_OUT_OF_HOST_MEMORY`
2926///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
2927///- `VK_ERROR_UNKNOWN`
2928///- `VK_ERROR_VALIDATION_FAILED`
2929pub type PFN_vkGetSwapchainImagesKHR = Option<
2930    unsafe extern "system" fn(
2931        device: Device,
2932        swapchain: SwapchainKHR,
2933        p_swapchain_image_count: *mut u32,
2934        p_swapchain_images: *mut Image,
2935    ) -> Result,
2936>;
2937///[`vkAcquireNextImageKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireNextImageKHR.html)
2938/**
2939Provided by **VK_KHR_swapchain**.*/
2940///
2941///# Success Codes
2942///- `VK_SUCCESS`
2943///- `VK_TIMEOUT`
2944///- `VK_NOT_READY`
2945///- `VK_SUBOPTIMAL_KHR`
2946///
2947///# Error Codes
2948///- `VK_ERROR_OUT_OF_HOST_MEMORY`
2949///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
2950///- `VK_ERROR_DEVICE_LOST`
2951///- `VK_ERROR_OUT_OF_DATE_KHR`
2952///- `VK_ERROR_SURFACE_LOST_KHR`
2953///- `VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT`
2954///- `VK_ERROR_UNKNOWN`
2955///- `VK_ERROR_VALIDATION_FAILED`
2956///
2957///# Thread Safety
2958///- `swapchain` must be externally synchronized
2959///- `semaphore` must be externally synchronized
2960///- `fence` must be externally synchronized
2961pub type PFN_vkAcquireNextImageKHR = Option<
2962    unsafe extern "system" fn(
2963        device: Device,
2964        swapchain: SwapchainKHR,
2965        timeout: u64,
2966        semaphore: Semaphore,
2967        fence: Fence,
2968        p_image_index: *mut u32,
2969    ) -> Result,
2970>;
2971///[`vkQueuePresentKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueuePresentKHR.html)
2972/**
2973Provided by **VK_KHR_swapchain**.*/
2974///
2975///# Success Codes
2976///- `VK_SUCCESS`
2977///- `VK_SUBOPTIMAL_KHR`
2978///
2979///# Error Codes
2980///- `VK_ERROR_OUT_OF_HOST_MEMORY`
2981///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
2982///- `VK_ERROR_DEVICE_LOST`
2983///- `VK_ERROR_OUT_OF_DATE_KHR`
2984///- `VK_ERROR_SURFACE_LOST_KHR`
2985///- `VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT`
2986///- `VK_ERROR_UNKNOWN`
2987///- `VK_ERROR_VALIDATION_FAILED`
2988///- `VK_ERROR_PRESENT_TIMING_QUEUE_FULL_EXT`
2989///
2990///# Thread Safety
2991///- `queue` must be externally synchronized
2992pub type PFN_vkQueuePresentKHR = Option<
2993    unsafe extern "system" fn(
2994        queue: Queue,
2995        p_present_info: *const PresentInfoKHR,
2996    ) -> Result,
2997>;
2998///[`vkCreateViSurfaceNN`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateViSurfaceNN.html)
2999/**
3000Provided by **VK_NN_vi_surface**.*/
3001///
3002///# Success Codes
3003///- `VK_SUCCESS`
3004///
3005///# Error Codes
3006///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3007///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
3008///- `VK_ERROR_NATIVE_WINDOW_IN_USE_KHR`
3009///- `VK_ERROR_UNKNOWN`
3010///- `VK_ERROR_VALIDATION_FAILED`
3011pub type PFN_vkCreateViSurfaceNN = Option<
3012    unsafe extern "system" fn(
3013        instance: Instance,
3014        p_create_info: *const ViSurfaceCreateInfoNN,
3015        p_allocator: *const AllocationCallbacks,
3016        p_surface: *mut SurfaceKHR,
3017    ) -> Result,
3018>;
3019///[`vkCreateWaylandSurfaceKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateWaylandSurfaceKHR.html)
3020/**
3021Provided by **VK_KHR_wayland_surface**.*/
3022///
3023///# Success Codes
3024///- `VK_SUCCESS`
3025///
3026///# Error Codes
3027///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3028///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
3029///- `VK_ERROR_UNKNOWN`
3030///- `VK_ERROR_VALIDATION_FAILED`
3031pub type PFN_vkCreateWaylandSurfaceKHR = Option<
3032    unsafe extern "system" fn(
3033        instance: Instance,
3034        p_create_info: *const WaylandSurfaceCreateInfoKHR,
3035        p_allocator: *const AllocationCallbacks,
3036        p_surface: *mut SurfaceKHR,
3037    ) -> Result,
3038>;
3039///[`vkGetPhysicalDeviceWaylandPresentationSupportKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceWaylandPresentationSupportKHR.html)
3040/**
3041Provided by **VK_KHR_wayland_surface**.*/
3042pub type PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR = Option<
3043    unsafe extern "system" fn(
3044        physical_device: PhysicalDevice,
3045        queue_family_index: u32,
3046        display: *mut core::ffi::c_void,
3047    ) -> u32,
3048>;
3049///[`vkCreateUbmSurfaceSEC`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateUbmSurfaceSEC.html)
3050/**
3051Provided by **VK_SEC_ubm_surface**.*/
3052///
3053///# Success Codes
3054///- `VK_SUCCESS`
3055///
3056///# Error Codes
3057///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3058///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
3059///- `VK_ERROR_UNKNOWN`
3060///- `VK_ERROR_VALIDATION_FAILED`
3061pub type PFN_vkCreateUbmSurfaceSEC = Option<
3062    unsafe extern "system" fn(
3063        instance: Instance,
3064        p_create_info: *const UbmSurfaceCreateInfoSEC,
3065        p_allocator: *const AllocationCallbacks,
3066        p_surface: *mut SurfaceKHR,
3067    ) -> Result,
3068>;
3069///[`vkGetPhysicalDeviceUbmPresentationSupportSEC`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceUbmPresentationSupportSEC.html)
3070/**
3071Provided by **VK_SEC_ubm_surface**.*/
3072pub type PFN_vkGetPhysicalDeviceUbmPresentationSupportSEC = Option<
3073    unsafe extern "system" fn(
3074        physical_device: PhysicalDevice,
3075        queue_family_index: u32,
3076        device: *mut core::ffi::c_void,
3077    ) -> u32,
3078>;
3079///[`vkCreateWin32SurfaceKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateWin32SurfaceKHR.html)
3080/**
3081Provided by **VK_KHR_win32_surface**.*/
3082///
3083///# Success Codes
3084///- `VK_SUCCESS`
3085///
3086///# Error Codes
3087///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3088///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
3089///- `VK_ERROR_UNKNOWN`
3090///- `VK_ERROR_VALIDATION_FAILED`
3091pub type PFN_vkCreateWin32SurfaceKHR = Option<
3092    unsafe extern "system" fn(
3093        instance: Instance,
3094        p_create_info: *const Win32SurfaceCreateInfoKHR,
3095        p_allocator: *const AllocationCallbacks,
3096        p_surface: *mut SurfaceKHR,
3097    ) -> Result,
3098>;
3099///[`vkGetPhysicalDeviceWin32PresentationSupportKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceWin32PresentationSupportKHR.html)
3100/**
3101Provided by **VK_KHR_win32_surface**.*/
3102pub type PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR = Option<
3103    unsafe extern "system" fn(
3104        physical_device: PhysicalDevice,
3105        queue_family_index: u32,
3106    ) -> u32,
3107>;
3108///[`vkCreateXlibSurfaceKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateXlibSurfaceKHR.html)
3109/**
3110Provided by **VK_KHR_xlib_surface**.*/
3111///
3112///# Success Codes
3113///- `VK_SUCCESS`
3114///
3115///# Error Codes
3116///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3117///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
3118///- `VK_ERROR_UNKNOWN`
3119///- `VK_ERROR_VALIDATION_FAILED`
3120pub type PFN_vkCreateXlibSurfaceKHR = Option<
3121    unsafe extern "system" fn(
3122        instance: Instance,
3123        p_create_info: *const XlibSurfaceCreateInfoKHR,
3124        p_allocator: *const AllocationCallbacks,
3125        p_surface: *mut SurfaceKHR,
3126    ) -> Result,
3127>;
3128///[`vkGetPhysicalDeviceXlibPresentationSupportKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceXlibPresentationSupportKHR.html)
3129/**
3130Provided by **VK_KHR_xlib_surface**.*/
3131pub type PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR = Option<
3132    unsafe extern "system" fn(
3133        physical_device: PhysicalDevice,
3134        queue_family_index: u32,
3135        dpy: *mut core::ffi::c_void,
3136        visual_id: core::ffi::c_ulong,
3137    ) -> u32,
3138>;
3139///[`vkCreateXcbSurfaceKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateXcbSurfaceKHR.html)
3140/**
3141Provided by **VK_KHR_xcb_surface**.*/
3142///
3143///# Success Codes
3144///- `VK_SUCCESS`
3145///
3146///# Error Codes
3147///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3148///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
3149///- `VK_ERROR_UNKNOWN`
3150///- `VK_ERROR_VALIDATION_FAILED`
3151pub type PFN_vkCreateXcbSurfaceKHR = Option<
3152    unsafe extern "system" fn(
3153        instance: Instance,
3154        p_create_info: *const XcbSurfaceCreateInfoKHR,
3155        p_allocator: *const AllocationCallbacks,
3156        p_surface: *mut SurfaceKHR,
3157    ) -> Result,
3158>;
3159///[`vkGetPhysicalDeviceXcbPresentationSupportKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceXcbPresentationSupportKHR.html)
3160/**
3161Provided by **VK_KHR_xcb_surface**.*/
3162pub type PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR = Option<
3163    unsafe extern "system" fn(
3164        physical_device: PhysicalDevice,
3165        queue_family_index: u32,
3166        connection: *mut core::ffi::c_void,
3167        visual_id: u32,
3168    ) -> u32,
3169>;
3170///[`vkCreateDirectFBSurfaceEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDirectFBSurfaceEXT.html)
3171/**
3172Provided by **VK_EXT_directfb_surface**.*/
3173///
3174///# Success Codes
3175///- `VK_SUCCESS`
3176///
3177///# Error Codes
3178///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3179///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
3180///- `VK_ERROR_UNKNOWN`
3181///- `VK_ERROR_VALIDATION_FAILED`
3182pub type PFN_vkCreateDirectFBSurfaceEXT = Option<
3183    unsafe extern "system" fn(
3184        instance: Instance,
3185        p_create_info: *const DirectFBSurfaceCreateInfoEXT,
3186        p_allocator: *const AllocationCallbacks,
3187        p_surface: *mut SurfaceKHR,
3188    ) -> Result,
3189>;
3190///[`vkGetPhysicalDeviceDirectFBPresentationSupportEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDirectFBPresentationSupportEXT.html)
3191/**
3192Provided by **VK_EXT_directfb_surface**.*/
3193pub type PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT = Option<
3194    unsafe extern "system" fn(
3195        physical_device: PhysicalDevice,
3196        queue_family_index: u32,
3197        dfb: *mut core::ffi::c_void,
3198    ) -> u32,
3199>;
3200///[`vkCreateImagePipeSurfaceFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateImagePipeSurfaceFUCHSIA.html)
3201/**
3202Provided by **VK_FUCHSIA_imagepipe_surface**.*/
3203///
3204///# Success Codes
3205///- `VK_SUCCESS`
3206///
3207///# Error Codes
3208///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3209///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
3210///- `VK_ERROR_UNKNOWN`
3211///- `VK_ERROR_VALIDATION_FAILED`
3212pub type PFN_vkCreateImagePipeSurfaceFUCHSIA = Option<
3213    unsafe extern "system" fn(
3214        instance: Instance,
3215        p_create_info: *const ImagePipeSurfaceCreateInfoFUCHSIA,
3216        p_allocator: *const AllocationCallbacks,
3217        p_surface: *mut SurfaceKHR,
3218    ) -> Result,
3219>;
3220///[`vkCreateStreamDescriptorSurfaceGGP`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateStreamDescriptorSurfaceGGP.html)
3221/**
3222Provided by **VK_GGP_stream_descriptor_surface**.*/
3223///
3224///# Success Codes
3225///- `VK_SUCCESS`
3226///
3227///# Error Codes
3228///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3229///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
3230///- `VK_ERROR_NATIVE_WINDOW_IN_USE_KHR`
3231///- `VK_ERROR_UNKNOWN`
3232///- `VK_ERROR_VALIDATION_FAILED`
3233pub type PFN_vkCreateStreamDescriptorSurfaceGGP = Option<
3234    unsafe extern "system" fn(
3235        instance: Instance,
3236        p_create_info: *const StreamDescriptorSurfaceCreateInfoGGP,
3237        p_allocator: *const AllocationCallbacks,
3238        p_surface: *mut SurfaceKHR,
3239    ) -> Result,
3240>;
3241///[`vkCreateScreenSurfaceQNX`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateScreenSurfaceQNX.html)
3242/**
3243Provided by **VK_QNX_screen_surface**.*/
3244///
3245///# Success Codes
3246///- `VK_SUCCESS`
3247///
3248///# Error Codes
3249///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3250///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
3251///- `VK_ERROR_UNKNOWN`
3252///- `VK_ERROR_VALIDATION_FAILED`
3253pub type PFN_vkCreateScreenSurfaceQNX = Option<
3254    unsafe extern "system" fn(
3255        instance: Instance,
3256        p_create_info: *const ScreenSurfaceCreateInfoQNX,
3257        p_allocator: *const AllocationCallbacks,
3258        p_surface: *mut SurfaceKHR,
3259    ) -> Result,
3260>;
3261///[`vkGetPhysicalDeviceScreenPresentationSupportQNX`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceScreenPresentationSupportQNX.html)
3262/**
3263Provided by **VK_QNX_screen_surface**.*/
3264pub type PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX = Option<
3265    unsafe extern "system" fn(
3266        physical_device: PhysicalDevice,
3267        queue_family_index: u32,
3268        window: *mut core::ffi::c_void,
3269    ) -> u32,
3270>;
3271///[`vkCreateDebugReportCallbackEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDebugReportCallbackEXT.html)
3272/**
3273Provided by **VK_EXT_debug_report**.*/
3274///
3275///# Success Codes
3276///- `VK_SUCCESS`
3277///
3278///# Error Codes
3279///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3280///- `VK_ERROR_UNKNOWN`
3281///- `VK_ERROR_VALIDATION_FAILED`
3282pub type PFN_vkCreateDebugReportCallbackEXT = Option<
3283    unsafe extern "system" fn(
3284        instance: Instance,
3285        p_create_info: *const DebugReportCallbackCreateInfoEXT,
3286        p_allocator: *const AllocationCallbacks,
3287        p_callback: *mut DebugReportCallbackEXT,
3288    ) -> Result,
3289>;
3290///[`vkDestroyDebugReportCallbackEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDebugReportCallbackEXT.html)
3291/**
3292Provided by **VK_EXT_debug_report**.*/
3293///
3294///# Thread Safety
3295///- `callback` must be externally synchronized
3296pub type PFN_vkDestroyDebugReportCallbackEXT = Option<
3297    unsafe extern "system" fn(
3298        instance: Instance,
3299        callback: DebugReportCallbackEXT,
3300        p_allocator: *const AllocationCallbacks,
3301    ),
3302>;
3303///[`vkDebugReportMessageEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDebugReportMessageEXT.html)
3304/**
3305Provided by **VK_EXT_debug_report**.*/
3306pub type PFN_vkDebugReportMessageEXT = Option<
3307    unsafe extern "system" fn(
3308        instance: Instance,
3309        flags: DebugReportFlagsEXT,
3310        object_type: DebugReportObjectTypeEXT,
3311        object: u64,
3312        location: usize,
3313        message_code: i32,
3314        p_layer_prefix: *const core::ffi::c_char,
3315        p_message: *const core::ffi::c_char,
3316    ),
3317>;
3318///[`vkDebugMarkerSetObjectNameEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDebugMarkerSetObjectNameEXT.html)
3319/**
3320Provided by **VK_EXT_debug_marker**.*/
3321///
3322///# Success Codes
3323///- `VK_SUCCESS`
3324///
3325///# Error Codes
3326///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3327///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
3328///- `VK_ERROR_UNKNOWN`
3329///- `VK_ERROR_VALIDATION_FAILED`
3330pub type PFN_vkDebugMarkerSetObjectNameEXT = Option<
3331    unsafe extern "system" fn(
3332        device: Device,
3333        p_name_info: *const DebugMarkerObjectNameInfoEXT,
3334    ) -> Result,
3335>;
3336///[`vkDebugMarkerSetObjectTagEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDebugMarkerSetObjectTagEXT.html)
3337/**
3338Provided by **VK_EXT_debug_marker**.*/
3339///
3340///# Success Codes
3341///- `VK_SUCCESS`
3342///
3343///# Error Codes
3344///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3345///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
3346///- `VK_ERROR_UNKNOWN`
3347///- `VK_ERROR_VALIDATION_FAILED`
3348pub type PFN_vkDebugMarkerSetObjectTagEXT = Option<
3349    unsafe extern "system" fn(
3350        device: Device,
3351        p_tag_info: *const DebugMarkerObjectTagInfoEXT,
3352    ) -> Result,
3353>;
3354///[`vkCmdDebugMarkerBeginEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDebugMarkerBeginEXT.html)
3355/**
3356Provided by **VK_EXT_debug_marker**.*/
3357///
3358///# Thread Safety
3359///- `commandBuffer` must be externally synchronized
3360pub type PFN_vkCmdDebugMarkerBeginEXT = Option<
3361    unsafe extern "system" fn(
3362        command_buffer: CommandBuffer,
3363        p_marker_info: *const DebugMarkerMarkerInfoEXT,
3364    ),
3365>;
3366///[`vkCmdDebugMarkerEndEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDebugMarkerEndEXT.html)
3367/**
3368Provided by **VK_EXT_debug_marker**.*/
3369///
3370///# Thread Safety
3371///- `commandBuffer` must be externally synchronized
3372pub type PFN_vkCmdDebugMarkerEndEXT = Option<
3373    unsafe extern "system" fn(command_buffer: CommandBuffer),
3374>;
3375///[`vkCmdDebugMarkerInsertEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDebugMarkerInsertEXT.html)
3376/**
3377Provided by **VK_EXT_debug_marker**.*/
3378///
3379///# Thread Safety
3380///- `commandBuffer` must be externally synchronized
3381pub type PFN_vkCmdDebugMarkerInsertEXT = Option<
3382    unsafe extern "system" fn(
3383        command_buffer: CommandBuffer,
3384        p_marker_info: *const DebugMarkerMarkerInfoEXT,
3385    ),
3386>;
3387///[`vkGetPhysicalDeviceExternalImageFormatPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalImageFormatPropertiesNV.html)
3388/**
3389Provided by **VK_NV_external_memory_capabilities**.*/
3390///
3391///# Success Codes
3392///- `VK_SUCCESS`
3393///
3394///# Error Codes
3395///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3396///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
3397///- `VK_ERROR_FORMAT_NOT_SUPPORTED`
3398///- `VK_ERROR_UNKNOWN`
3399///- `VK_ERROR_VALIDATION_FAILED`
3400pub type PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = Option<
3401    unsafe extern "system" fn(
3402        physical_device: PhysicalDevice,
3403        format: Format,
3404        r#type: ImageType,
3405        tiling: ImageTiling,
3406        usage: ImageUsageFlags,
3407        flags: ImageCreateFlags,
3408        external_handle_type: ExternalMemoryHandleTypeFlagsNV,
3409        p_external_image_format_properties: *mut ExternalImageFormatPropertiesNV,
3410    ) -> Result,
3411>;
3412///[`vkGetMemoryWin32HandleNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryWin32HandleNV.html)
3413/**
3414Provided by **VK_NV_external_memory_win32**.*/
3415///
3416///# Success Codes
3417///- `VK_SUCCESS`
3418///
3419///# Error Codes
3420///- `VK_ERROR_TOO_MANY_OBJECTS`
3421///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3422///- `VK_ERROR_UNKNOWN`
3423///- `VK_ERROR_VALIDATION_FAILED`
3424pub type PFN_vkGetMemoryWin32HandleNV = Option<
3425    unsafe extern "system" fn(
3426        device: Device,
3427        memory: DeviceMemory,
3428        handle_type: ExternalMemoryHandleTypeFlagsNV,
3429        p_handle: *mut isize,
3430    ) -> Result,
3431>;
3432///[`vkCmdExecuteGeneratedCommandsNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdExecuteGeneratedCommandsNV.html)
3433/**
3434Provided by **VK_NV_device_generated_commands**.*/
3435///
3436///# Thread Safety
3437///- `commandBuffer` must be externally synchronized
3438pub type PFN_vkCmdExecuteGeneratedCommandsNV = Option<
3439    unsafe extern "system" fn(
3440        command_buffer: CommandBuffer,
3441        is_preprocessed: u32,
3442        p_generated_commands_info: *const GeneratedCommandsInfoNV,
3443    ),
3444>;
3445///[`vkCmdPreprocessGeneratedCommandsNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPreprocessGeneratedCommandsNV.html)
3446/**
3447Provided by **VK_NV_device_generated_commands**.*/
3448///
3449///# Thread Safety
3450///- `commandBuffer` must be externally synchronized
3451pub type PFN_vkCmdPreprocessGeneratedCommandsNV = Option<
3452    unsafe extern "system" fn(
3453        command_buffer: CommandBuffer,
3454        p_generated_commands_info: *const GeneratedCommandsInfoNV,
3455    ),
3456>;
3457///[`vkCmdBindPipelineShaderGroupNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindPipelineShaderGroupNV.html)
3458/**
3459Provided by **VK_NV_device_generated_commands**.*/
3460///
3461///# Thread Safety
3462///- `commandBuffer` must be externally synchronized
3463pub type PFN_vkCmdBindPipelineShaderGroupNV = Option<
3464    unsafe extern "system" fn(
3465        command_buffer: CommandBuffer,
3466        pipeline_bind_point: PipelineBindPoint,
3467        pipeline: Pipeline,
3468        group_index: u32,
3469    ),
3470>;
3471///[`vkGetGeneratedCommandsMemoryRequirementsNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetGeneratedCommandsMemoryRequirementsNV.html)
3472/**
3473Provided by **VK_NV_device_generated_commands**.*/
3474pub type PFN_vkGetGeneratedCommandsMemoryRequirementsNV = Option<
3475    unsafe extern "system" fn(
3476        device: Device,
3477        p_info: *const GeneratedCommandsMemoryRequirementsInfoNV,
3478        p_memory_requirements: *mut MemoryRequirements2,
3479    ),
3480>;
3481///[`vkCreateIndirectCommandsLayoutNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIndirectCommandsLayoutNV.html)
3482/**
3483Provided by **VK_NV_device_generated_commands**.*/
3484///
3485///# Success Codes
3486///- `VK_SUCCESS`
3487///
3488///# Error Codes
3489///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3490///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
3491///- `VK_ERROR_UNKNOWN`
3492///- `VK_ERROR_VALIDATION_FAILED`
3493pub type PFN_vkCreateIndirectCommandsLayoutNV = Option<
3494    unsafe extern "system" fn(
3495        device: Device,
3496        p_create_info: *const IndirectCommandsLayoutCreateInfoNV,
3497        p_allocator: *const AllocationCallbacks,
3498        p_indirect_commands_layout: *mut IndirectCommandsLayoutNV,
3499    ) -> Result,
3500>;
3501///[`vkDestroyIndirectCommandsLayoutNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyIndirectCommandsLayoutNV.html)
3502/**
3503Provided by **VK_NV_device_generated_commands**.*/
3504///
3505///# Thread Safety
3506///- `indirectCommandsLayout` must be externally synchronized
3507pub type PFN_vkDestroyIndirectCommandsLayoutNV = Option<
3508    unsafe extern "system" fn(
3509        device: Device,
3510        indirect_commands_layout: IndirectCommandsLayoutNV,
3511        p_allocator: *const AllocationCallbacks,
3512    ),
3513>;
3514///[`vkCmdExecuteGeneratedCommandsEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdExecuteGeneratedCommandsEXT.html)
3515/**
3516Provided by **VK_EXT_device_generated_commands**.*/
3517///
3518///# Thread Safety
3519///- `commandBuffer` must be externally synchronized
3520pub type PFN_vkCmdExecuteGeneratedCommandsEXT = Option<
3521    unsafe extern "system" fn(
3522        command_buffer: CommandBuffer,
3523        is_preprocessed: u32,
3524        p_generated_commands_info: *const GeneratedCommandsInfoEXT,
3525    ),
3526>;
3527///[`vkCmdPreprocessGeneratedCommandsEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPreprocessGeneratedCommandsEXT.html)
3528/**
3529Provided by **VK_EXT_device_generated_commands**.*/
3530///
3531///# Thread Safety
3532///- `commandBuffer` must be externally synchronized
3533///- `stateCommandBuffer` must be externally synchronized
3534pub type PFN_vkCmdPreprocessGeneratedCommandsEXT = Option<
3535    unsafe extern "system" fn(
3536        command_buffer: CommandBuffer,
3537        p_generated_commands_info: *const GeneratedCommandsInfoEXT,
3538        state_command_buffer: CommandBuffer,
3539    ),
3540>;
3541///[`vkGetGeneratedCommandsMemoryRequirementsEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetGeneratedCommandsMemoryRequirementsEXT.html)
3542/**
3543Provided by **VK_EXT_device_generated_commands**.*/
3544pub type PFN_vkGetGeneratedCommandsMemoryRequirementsEXT = Option<
3545    unsafe extern "system" fn(
3546        device: Device,
3547        p_info: *const GeneratedCommandsMemoryRequirementsInfoEXT,
3548        p_memory_requirements: *mut MemoryRequirements2,
3549    ),
3550>;
3551///[`vkCreateIndirectCommandsLayoutEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIndirectCommandsLayoutEXT.html)
3552/**
3553Provided by **VK_EXT_device_generated_commands**.*/
3554///
3555///# Success Codes
3556///- `VK_SUCCESS`
3557///
3558///# Error Codes
3559///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3560///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
3561///- `VK_ERROR_UNKNOWN`
3562///- `VK_ERROR_VALIDATION_FAILED`
3563pub type PFN_vkCreateIndirectCommandsLayoutEXT = Option<
3564    unsafe extern "system" fn(
3565        device: Device,
3566        p_create_info: *const IndirectCommandsLayoutCreateInfoEXT,
3567        p_allocator: *const AllocationCallbacks,
3568        p_indirect_commands_layout: *mut IndirectCommandsLayoutEXT,
3569    ) -> Result,
3570>;
3571///[`vkDestroyIndirectCommandsLayoutEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyIndirectCommandsLayoutEXT.html)
3572/**
3573Provided by **VK_EXT_device_generated_commands**.*/
3574///
3575///# Thread Safety
3576///- `indirectCommandsLayout` must be externally synchronized
3577pub type PFN_vkDestroyIndirectCommandsLayoutEXT = Option<
3578    unsafe extern "system" fn(
3579        device: Device,
3580        indirect_commands_layout: IndirectCommandsLayoutEXT,
3581        p_allocator: *const AllocationCallbacks,
3582    ),
3583>;
3584///[`vkCreateIndirectExecutionSetEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIndirectExecutionSetEXT.html)
3585/**
3586Provided by **VK_EXT_device_generated_commands**.*/
3587///
3588///# Success Codes
3589///- `VK_SUCCESS`
3590///
3591///# Error Codes
3592///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3593///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
3594///- `VK_ERROR_UNKNOWN`
3595///- `VK_ERROR_VALIDATION_FAILED`
3596pub type PFN_vkCreateIndirectExecutionSetEXT = Option<
3597    unsafe extern "system" fn(
3598        device: Device,
3599        p_create_info: *const IndirectExecutionSetCreateInfoEXT,
3600        p_allocator: *const AllocationCallbacks,
3601        p_indirect_execution_set: *mut IndirectExecutionSetEXT,
3602    ) -> Result,
3603>;
3604///[`vkDestroyIndirectExecutionSetEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyIndirectExecutionSetEXT.html)
3605/**
3606Provided by **VK_EXT_device_generated_commands**.*/
3607///
3608///# Thread Safety
3609///- `indirectExecutionSet` must be externally synchronized
3610pub type PFN_vkDestroyIndirectExecutionSetEXT = Option<
3611    unsafe extern "system" fn(
3612        device: Device,
3613        indirect_execution_set: IndirectExecutionSetEXT,
3614        p_allocator: *const AllocationCallbacks,
3615    ),
3616>;
3617///[`vkUpdateIndirectExecutionSetPipelineEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateIndirectExecutionSetPipelineEXT.html)
3618/**
3619Provided by **VK_EXT_device_generated_commands**.*/
3620///
3621///# Thread Safety
3622///- `indirectExecutionSet` must be externally synchronized
3623pub type PFN_vkUpdateIndirectExecutionSetPipelineEXT = Option<
3624    unsafe extern "system" fn(
3625        device: Device,
3626        indirect_execution_set: IndirectExecutionSetEXT,
3627        execution_set_write_count: u32,
3628        p_execution_set_writes: *const WriteIndirectExecutionSetPipelineEXT,
3629    ),
3630>;
3631///[`vkUpdateIndirectExecutionSetShaderEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateIndirectExecutionSetShaderEXT.html)
3632/**
3633Provided by **VK_EXT_device_generated_commands**.*/
3634///
3635///# Thread Safety
3636///- `indirectExecutionSet` must be externally synchronized
3637pub type PFN_vkUpdateIndirectExecutionSetShaderEXT = Option<
3638    unsafe extern "system" fn(
3639        device: Device,
3640        indirect_execution_set: IndirectExecutionSetEXT,
3641        execution_set_write_count: u32,
3642        p_execution_set_writes: *const WriteIndirectExecutionSetShaderEXT,
3643    ),
3644>;
3645///[`vkGetPhysicalDeviceFeatures2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFeatures2.html)
3646/**
3647Provided by **VK_BASE_VERSION_1_1**.*/
3648pub type PFN_vkGetPhysicalDeviceFeatures2 = Option<
3649    unsafe extern "system" fn(
3650        physical_device: PhysicalDevice,
3651        p_features: *mut PhysicalDeviceFeatures2,
3652    ),
3653>;
3654///[`vkGetPhysicalDeviceProperties2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceProperties2.html)
3655/**
3656Provided by **VK_BASE_VERSION_1_1**.*/
3657pub type PFN_vkGetPhysicalDeviceProperties2 = Option<
3658    unsafe extern "system" fn(
3659        physical_device: PhysicalDevice,
3660        p_properties: *mut PhysicalDeviceProperties2,
3661    ),
3662>;
3663///[`vkGetPhysicalDeviceFormatProperties2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFormatProperties2.html)
3664/**
3665Provided by **VK_BASE_VERSION_1_1**.*/
3666pub type PFN_vkGetPhysicalDeviceFormatProperties2 = Option<
3667    unsafe extern "system" fn(
3668        physical_device: PhysicalDevice,
3669        format: Format,
3670        p_format_properties: *mut FormatProperties2,
3671    ),
3672>;
3673///[`vkGetPhysicalDeviceImageFormatProperties2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceImageFormatProperties2.html)
3674/**
3675Provided by **VK_BASE_VERSION_1_1**.*/
3676///
3677///# Success Codes
3678///- `VK_SUCCESS`
3679///
3680///# Error Codes
3681///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3682///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
3683///- `VK_ERROR_FORMAT_NOT_SUPPORTED`
3684///- `VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR`
3685///- `VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR`
3686///- `VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR`
3687///- `VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR`
3688///- `VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR`
3689///- `VK_ERROR_UNKNOWN`
3690///- `VK_ERROR_VALIDATION_FAILED`
3691pub type PFN_vkGetPhysicalDeviceImageFormatProperties2 = Option<
3692    unsafe extern "system" fn(
3693        physical_device: PhysicalDevice,
3694        p_image_format_info: *const PhysicalDeviceImageFormatInfo2,
3695        p_image_format_properties: *mut ImageFormatProperties2,
3696    ) -> Result,
3697>;
3698///[`vkGetPhysicalDeviceQueueFamilyProperties2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyProperties2.html)
3699/**
3700Provided by **VK_BASE_VERSION_1_1**.*/
3701pub type PFN_vkGetPhysicalDeviceQueueFamilyProperties2 = Option<
3702    unsafe extern "system" fn(
3703        physical_device: PhysicalDevice,
3704        p_queue_family_property_count: *mut u32,
3705        p_queue_family_properties: *mut QueueFamilyProperties2,
3706    ),
3707>;
3708///[`vkGetPhysicalDeviceMemoryProperties2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceMemoryProperties2.html)
3709/**
3710Provided by **VK_BASE_VERSION_1_1**.*/
3711pub type PFN_vkGetPhysicalDeviceMemoryProperties2 = Option<
3712    unsafe extern "system" fn(
3713        physical_device: PhysicalDevice,
3714        p_memory_properties: *mut PhysicalDeviceMemoryProperties2,
3715    ),
3716>;
3717///[`vkGetPhysicalDeviceSparseImageFormatProperties2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSparseImageFormatProperties2.html)
3718/**
3719Provided by **VK_BASE_VERSION_1_1**.*/
3720pub type PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 = Option<
3721    unsafe extern "system" fn(
3722        physical_device: PhysicalDevice,
3723        p_format_info: *const PhysicalDeviceSparseImageFormatInfo2,
3724        p_property_count: *mut u32,
3725        p_properties: *mut SparseImageFormatProperties2,
3726    ),
3727>;
3728///[`vkCmdPushDescriptorSet`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDescriptorSet.html)
3729/**
3730Provided by **VK_COMPUTE_VERSION_1_4**.*/
3731///
3732///# Thread Safety
3733///- `commandBuffer` must be externally synchronized
3734pub type PFN_vkCmdPushDescriptorSet = Option<
3735    unsafe extern "system" fn(
3736        command_buffer: CommandBuffer,
3737        pipeline_bind_point: PipelineBindPoint,
3738        layout: PipelineLayout,
3739        set: u32,
3740        descriptor_write_count: u32,
3741        p_descriptor_writes: *const WriteDescriptorSet,
3742    ),
3743>;
3744///[`vkTrimCommandPool`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkTrimCommandPool.html)
3745/**
3746Provided by **VK_BASE_VERSION_1_1**.*/
3747///
3748///# Thread Safety
3749///- `commandPool` must be externally synchronized
3750pub type PFN_vkTrimCommandPool = Option<
3751    unsafe extern "system" fn(
3752        device: Device,
3753        command_pool: CommandPool,
3754        flags: CommandPoolTrimFlags,
3755    ),
3756>;
3757///[`vkGetPhysicalDeviceExternalBufferProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalBufferProperties.html)
3758/**
3759Provided by **VK_BASE_VERSION_1_1**.*/
3760pub type PFN_vkGetPhysicalDeviceExternalBufferProperties = Option<
3761    unsafe extern "system" fn(
3762        physical_device: PhysicalDevice,
3763        p_external_buffer_info: *const PhysicalDeviceExternalBufferInfo,
3764        p_external_buffer_properties: *mut ExternalBufferProperties,
3765    ),
3766>;
3767///[`vkGetMemoryWin32HandleKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryWin32HandleKHR.html)
3768/**
3769Provided by **VK_KHR_external_memory_win32**.*/
3770///
3771///# Success Codes
3772///- `VK_SUCCESS`
3773///
3774///# Error Codes
3775///- `VK_ERROR_TOO_MANY_OBJECTS`
3776///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3777///- `VK_ERROR_UNKNOWN`
3778///- `VK_ERROR_VALIDATION_FAILED`
3779pub type PFN_vkGetMemoryWin32HandleKHR = Option<
3780    unsafe extern "system" fn(
3781        device: Device,
3782        p_get_win32_handle_info: *const MemoryGetWin32HandleInfoKHR,
3783        p_handle: *mut isize,
3784    ) -> Result,
3785>;
3786///[`vkGetMemoryWin32HandlePropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryWin32HandlePropertiesKHR.html)
3787/**
3788Provided by **VK_KHR_external_memory_win32**.*/
3789///
3790///# Success Codes
3791///- `VK_SUCCESS`
3792///
3793///# Error Codes
3794///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3795///- `VK_ERROR_INVALID_EXTERNAL_HANDLE`
3796///- `VK_ERROR_UNKNOWN`
3797///- `VK_ERROR_VALIDATION_FAILED`
3798pub type PFN_vkGetMemoryWin32HandlePropertiesKHR = Option<
3799    unsafe extern "system" fn(
3800        device: Device,
3801        handle_type: ExternalMemoryHandleTypeFlagBits,
3802        handle: isize,
3803        p_memory_win32_handle_properties: *mut MemoryWin32HandlePropertiesKHR,
3804    ) -> Result,
3805>;
3806///[`vkGetMemoryFdKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryFdKHR.html)
3807/**
3808Provided by **VK_KHR_external_memory_fd**.*/
3809///
3810///# Success Codes
3811///- `VK_SUCCESS`
3812///
3813///# Error Codes
3814///- `VK_ERROR_TOO_MANY_OBJECTS`
3815///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3816///- `VK_ERROR_UNKNOWN`
3817///- `VK_ERROR_VALIDATION_FAILED`
3818pub type PFN_vkGetMemoryFdKHR = Option<
3819    unsafe extern "system" fn(
3820        device: Device,
3821        p_get_fd_info: *const MemoryGetFdInfoKHR,
3822        p_fd: *mut core::ffi::c_int,
3823    ) -> Result,
3824>;
3825///[`vkGetMemoryFdPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryFdPropertiesKHR.html)
3826/**
3827Provided by **VK_KHR_external_memory_fd**.*/
3828///
3829///# Success Codes
3830///- `VK_SUCCESS`
3831///
3832///# Error Codes
3833///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3834///- `VK_ERROR_INVALID_EXTERNAL_HANDLE`
3835///- `VK_ERROR_UNKNOWN`
3836///- `VK_ERROR_VALIDATION_FAILED`
3837pub type PFN_vkGetMemoryFdPropertiesKHR = Option<
3838    unsafe extern "system" fn(
3839        device: Device,
3840        handle_type: ExternalMemoryHandleTypeFlagBits,
3841        fd: core::ffi::c_int,
3842        p_memory_fd_properties: *mut MemoryFdPropertiesKHR,
3843    ) -> Result,
3844>;
3845///[`vkGetMemoryZirconHandleFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryZirconHandleFUCHSIA.html)
3846/**
3847Provided by **VK_FUCHSIA_external_memory**.*/
3848///
3849///# Success Codes
3850///- `VK_SUCCESS`
3851///
3852///# Error Codes
3853///- `VK_ERROR_TOO_MANY_OBJECTS`
3854///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3855///- `VK_ERROR_UNKNOWN`
3856///- `VK_ERROR_VALIDATION_FAILED`
3857pub type PFN_vkGetMemoryZirconHandleFUCHSIA = Option<
3858    unsafe extern "system" fn(
3859        device: Device,
3860        p_get_zircon_handle_info: *const MemoryGetZirconHandleInfoFUCHSIA,
3861        p_zircon_handle: *mut u32,
3862    ) -> Result,
3863>;
3864///[`vkGetMemoryZirconHandlePropertiesFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryZirconHandlePropertiesFUCHSIA.html)
3865/**
3866Provided by **VK_FUCHSIA_external_memory**.*/
3867///
3868///# Success Codes
3869///- `VK_SUCCESS`
3870///
3871///# Error Codes
3872///- `VK_ERROR_INVALID_EXTERNAL_HANDLE`
3873///- `VK_ERROR_UNKNOWN`
3874///- `VK_ERROR_VALIDATION_FAILED`
3875pub type PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA = Option<
3876    unsafe extern "system" fn(
3877        device: Device,
3878        handle_type: ExternalMemoryHandleTypeFlagBits,
3879        zircon_handle: u32,
3880        p_memory_zircon_handle_properties: *mut MemoryZirconHandlePropertiesFUCHSIA,
3881    ) -> Result,
3882>;
3883///[`vkGetMemoryRemoteAddressNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryRemoteAddressNV.html)
3884/**
3885Provided by **VK_NV_external_memory_rdma**.*/
3886///
3887///# Success Codes
3888///- `VK_SUCCESS`
3889///
3890///# Error Codes
3891///- `VK_ERROR_INVALID_EXTERNAL_HANDLE`
3892///- `VK_ERROR_UNKNOWN`
3893///- `VK_ERROR_VALIDATION_FAILED`
3894pub type PFN_vkGetMemoryRemoteAddressNV = Option<
3895    unsafe extern "system" fn(
3896        device: Device,
3897        p_memory_get_remote_address_info: *const MemoryGetRemoteAddressInfoNV,
3898        p_address: *mut *mut core::ffi::c_void,
3899    ) -> Result,
3900>;
3901///[`vkGetMemorySciBufNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemorySciBufNV.html)
3902///
3903///# Success Codes
3904///- `VK_SUCCESS`
3905///
3906///# Error Codes
3907///- `VK_ERROR_INITIALIZATION_FAILED`
3908///- `VK_ERROR_UNKNOWN`
3909///- `VK_ERROR_VALIDATION_FAILED`
3910pub type PFN_vkGetMemorySciBufNV = Option<
3911    unsafe extern "system" fn(
3912        device: Device,
3913        p_get_sci_buf_info: *const MemoryGetSciBufInfoNV,
3914        p_handle: *mut core::ffi::c_void,
3915    ) -> Result,
3916>;
3917///[`vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV.html)
3918///
3919///# Success Codes
3920///- `VK_SUCCESS`
3921///
3922///# Error Codes
3923///- `VK_ERROR_INITIALIZATION_FAILED`
3924///- `VK_ERROR_INVALID_EXTERNAL_HANDLE`
3925///- `VK_ERROR_UNKNOWN`
3926///- `VK_ERROR_VALIDATION_FAILED`
3927pub type PFN_vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV = Option<
3928    unsafe extern "system" fn(
3929        physical_device: PhysicalDevice,
3930        handle_type: ExternalMemoryHandleTypeFlagBits,
3931        handle: *const core::ffi::c_void,
3932        p_memory_sci_buf_properties: *mut MemorySciBufPropertiesNV,
3933    ) -> Result,
3934>;
3935///[`vkGetPhysicalDeviceSciBufAttributesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSciBufAttributesNV.html)
3936///
3937///# Success Codes
3938///- `VK_SUCCESS`
3939///
3940///# Error Codes
3941///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3942///- `VK_ERROR_INITIALIZATION_FAILED`
3943///- `VK_ERROR_UNKNOWN`
3944///- `VK_ERROR_VALIDATION_FAILED`
3945pub type PFN_vkGetPhysicalDeviceSciBufAttributesNV = Option<
3946    unsafe extern "system" fn(
3947        physical_device: PhysicalDevice,
3948        p_attributes: *const core::ffi::c_void,
3949    ) -> Result,
3950>;
3951///[`vkGetPhysicalDeviceExternalSemaphoreProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalSemaphoreProperties.html)
3952/**
3953Provided by **VK_BASE_VERSION_1_1**.*/
3954pub type PFN_vkGetPhysicalDeviceExternalSemaphoreProperties = Option<
3955    unsafe extern "system" fn(
3956        physical_device: PhysicalDevice,
3957        p_external_semaphore_info: *const PhysicalDeviceExternalSemaphoreInfo,
3958        p_external_semaphore_properties: *mut ExternalSemaphoreProperties,
3959    ),
3960>;
3961///[`vkGetSemaphoreWin32HandleKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreWin32HandleKHR.html)
3962/**
3963Provided by **VK_KHR_external_semaphore_win32**.*/
3964///
3965///# Success Codes
3966///- `VK_SUCCESS`
3967///
3968///# Error Codes
3969///- `VK_ERROR_TOO_MANY_OBJECTS`
3970///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3971///- `VK_ERROR_UNKNOWN`
3972///- `VK_ERROR_VALIDATION_FAILED`
3973pub type PFN_vkGetSemaphoreWin32HandleKHR = Option<
3974    unsafe extern "system" fn(
3975        device: Device,
3976        p_get_win32_handle_info: *const SemaphoreGetWin32HandleInfoKHR,
3977        p_handle: *mut isize,
3978    ) -> Result,
3979>;
3980///[`vkImportSemaphoreWin32HandleKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportSemaphoreWin32HandleKHR.html)
3981/**
3982Provided by **VK_KHR_external_semaphore_win32**.*/
3983///
3984///# Success Codes
3985///- `VK_SUCCESS`
3986///
3987///# Error Codes
3988///- `VK_ERROR_OUT_OF_HOST_MEMORY`
3989///- `VK_ERROR_INVALID_EXTERNAL_HANDLE`
3990///- `VK_ERROR_UNKNOWN`
3991///- `VK_ERROR_VALIDATION_FAILED`
3992pub type PFN_vkImportSemaphoreWin32HandleKHR = Option<
3993    unsafe extern "system" fn(
3994        device: Device,
3995        p_import_semaphore_win32_handle_info: *const ImportSemaphoreWin32HandleInfoKHR,
3996    ) -> Result,
3997>;
3998///[`vkGetSemaphoreFdKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreFdKHR.html)
3999/**
4000Provided by **VK_KHR_external_semaphore_fd**.*/
4001///
4002///# Success Codes
4003///- `VK_SUCCESS`
4004///
4005///# Error Codes
4006///- `VK_ERROR_TOO_MANY_OBJECTS`
4007///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4008///- `VK_ERROR_UNKNOWN`
4009///- `VK_ERROR_VALIDATION_FAILED`
4010pub type PFN_vkGetSemaphoreFdKHR = Option<
4011    unsafe extern "system" fn(
4012        device: Device,
4013        p_get_fd_info: *const SemaphoreGetFdInfoKHR,
4014        p_fd: *mut core::ffi::c_int,
4015    ) -> Result,
4016>;
4017///[`vkImportSemaphoreFdKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportSemaphoreFdKHR.html)
4018/**
4019Provided by **VK_KHR_external_semaphore_fd**.*/
4020///
4021///# Success Codes
4022///- `VK_SUCCESS`
4023///
4024///# Error Codes
4025///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4026///- `VK_ERROR_INVALID_EXTERNAL_HANDLE`
4027///- `VK_ERROR_UNKNOWN`
4028///- `VK_ERROR_VALIDATION_FAILED`
4029pub type PFN_vkImportSemaphoreFdKHR = Option<
4030    unsafe extern "system" fn(
4031        device: Device,
4032        p_import_semaphore_fd_info: *const ImportSemaphoreFdInfoKHR,
4033    ) -> Result,
4034>;
4035///[`vkGetSemaphoreZirconHandleFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreZirconHandleFUCHSIA.html)
4036/**
4037Provided by **VK_FUCHSIA_external_semaphore**.*/
4038///
4039///# Success Codes
4040///- `VK_SUCCESS`
4041///
4042///# Error Codes
4043///- `VK_ERROR_TOO_MANY_OBJECTS`
4044///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4045///- `VK_ERROR_UNKNOWN`
4046///- `VK_ERROR_VALIDATION_FAILED`
4047pub type PFN_vkGetSemaphoreZirconHandleFUCHSIA = Option<
4048    unsafe extern "system" fn(
4049        device: Device,
4050        p_get_zircon_handle_info: *const SemaphoreGetZirconHandleInfoFUCHSIA,
4051        p_zircon_handle: *mut u32,
4052    ) -> Result,
4053>;
4054///[`vkImportSemaphoreZirconHandleFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportSemaphoreZirconHandleFUCHSIA.html)
4055/**
4056Provided by **VK_FUCHSIA_external_semaphore**.*/
4057///
4058///# Success Codes
4059///- `VK_SUCCESS`
4060///
4061///# Error Codes
4062///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4063///- `VK_ERROR_INVALID_EXTERNAL_HANDLE`
4064///- `VK_ERROR_UNKNOWN`
4065///- `VK_ERROR_VALIDATION_FAILED`
4066pub type PFN_vkImportSemaphoreZirconHandleFUCHSIA = Option<
4067    unsafe extern "system" fn(
4068        device: Device,
4069        p_import_semaphore_zircon_handle_info: *const ImportSemaphoreZirconHandleInfoFUCHSIA,
4070    ) -> Result,
4071>;
4072///[`vkGetPhysicalDeviceExternalFenceProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalFenceProperties.html)
4073/**
4074Provided by **VK_BASE_VERSION_1_1**.*/
4075pub type PFN_vkGetPhysicalDeviceExternalFenceProperties = Option<
4076    unsafe extern "system" fn(
4077        physical_device: PhysicalDevice,
4078        p_external_fence_info: *const PhysicalDeviceExternalFenceInfo,
4079        p_external_fence_properties: *mut ExternalFenceProperties,
4080    ),
4081>;
4082///[`vkGetFenceWin32HandleKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFenceWin32HandleKHR.html)
4083/**
4084Provided by **VK_KHR_external_fence_win32**.*/
4085///
4086///# Success Codes
4087///- `VK_SUCCESS`
4088///
4089///# Error Codes
4090///- `VK_ERROR_TOO_MANY_OBJECTS`
4091///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4092///- `VK_ERROR_UNKNOWN`
4093///- `VK_ERROR_VALIDATION_FAILED`
4094pub type PFN_vkGetFenceWin32HandleKHR = Option<
4095    unsafe extern "system" fn(
4096        device: Device,
4097        p_get_win32_handle_info: *const FenceGetWin32HandleInfoKHR,
4098        p_handle: *mut isize,
4099    ) -> Result,
4100>;
4101///[`vkImportFenceWin32HandleKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportFenceWin32HandleKHR.html)
4102/**
4103Provided by **VK_KHR_external_fence_win32**.*/
4104///
4105///# Success Codes
4106///- `VK_SUCCESS`
4107///
4108///# Error Codes
4109///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4110///- `VK_ERROR_INVALID_EXTERNAL_HANDLE`
4111///- `VK_ERROR_UNKNOWN`
4112///- `VK_ERROR_VALIDATION_FAILED`
4113pub type PFN_vkImportFenceWin32HandleKHR = Option<
4114    unsafe extern "system" fn(
4115        device: Device,
4116        p_import_fence_win32_handle_info: *const ImportFenceWin32HandleInfoKHR,
4117    ) -> Result,
4118>;
4119///[`vkGetFenceFdKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFenceFdKHR.html)
4120/**
4121Provided by **VK_KHR_external_fence_fd**.*/
4122///
4123///# Success Codes
4124///- `VK_SUCCESS`
4125///
4126///# Error Codes
4127///- `VK_ERROR_TOO_MANY_OBJECTS`
4128///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4129///- `VK_ERROR_UNKNOWN`
4130///- `VK_ERROR_VALIDATION_FAILED`
4131pub type PFN_vkGetFenceFdKHR = Option<
4132    unsafe extern "system" fn(
4133        device: Device,
4134        p_get_fd_info: *const FenceGetFdInfoKHR,
4135        p_fd: *mut core::ffi::c_int,
4136    ) -> Result,
4137>;
4138///[`vkImportFenceFdKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportFenceFdKHR.html)
4139/**
4140Provided by **VK_KHR_external_fence_fd**.*/
4141///
4142///# Success Codes
4143///- `VK_SUCCESS`
4144///
4145///# Error Codes
4146///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4147///- `VK_ERROR_INVALID_EXTERNAL_HANDLE`
4148///- `VK_ERROR_UNKNOWN`
4149///- `VK_ERROR_VALIDATION_FAILED`
4150pub type PFN_vkImportFenceFdKHR = Option<
4151    unsafe extern "system" fn(
4152        device: Device,
4153        p_import_fence_fd_info: *const ImportFenceFdInfoKHR,
4154    ) -> Result,
4155>;
4156///[`vkGetFenceSciSyncFenceNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFenceSciSyncFenceNV.html)
4157///
4158///# Success Codes
4159///- `VK_SUCCESS`
4160///
4161///# Error Codes
4162///- `VK_ERROR_INVALID_EXTERNAL_HANDLE`
4163///- `VK_ERROR_NOT_PERMITTED`
4164///- `VK_ERROR_UNKNOWN`
4165///- `VK_ERROR_VALIDATION_FAILED`
4166pub type PFN_vkGetFenceSciSyncFenceNV = Option<
4167    unsafe extern "system" fn(
4168        device: Device,
4169        p_get_sci_sync_handle_info: *const FenceGetSciSyncInfoNV,
4170        p_handle: *mut core::ffi::c_void,
4171    ) -> Result,
4172>;
4173///[`vkGetFenceSciSyncObjNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFenceSciSyncObjNV.html)
4174///
4175///# Success Codes
4176///- `VK_SUCCESS`
4177///
4178///# Error Codes
4179///- `VK_ERROR_INVALID_EXTERNAL_HANDLE`
4180///- `VK_ERROR_NOT_PERMITTED`
4181///- `VK_ERROR_UNKNOWN`
4182///- `VK_ERROR_VALIDATION_FAILED`
4183pub type PFN_vkGetFenceSciSyncObjNV = Option<
4184    unsafe extern "system" fn(
4185        device: Device,
4186        p_get_sci_sync_handle_info: *const FenceGetSciSyncInfoNV,
4187        p_handle: *mut core::ffi::c_void,
4188    ) -> Result,
4189>;
4190///[`vkImportFenceSciSyncFenceNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportFenceSciSyncFenceNV.html)
4191///
4192///# Success Codes
4193///- `VK_SUCCESS`
4194///
4195///# Error Codes
4196///- `VK_ERROR_INVALID_EXTERNAL_HANDLE`
4197///- `VK_ERROR_NOT_PERMITTED`
4198///- `VK_ERROR_UNKNOWN`
4199///- `VK_ERROR_VALIDATION_FAILED`
4200pub type PFN_vkImportFenceSciSyncFenceNV = Option<
4201    unsafe extern "system" fn(
4202        device: Device,
4203        p_import_fence_sci_sync_info: *const ImportFenceSciSyncInfoNV,
4204    ) -> Result,
4205>;
4206///[`vkImportFenceSciSyncObjNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportFenceSciSyncObjNV.html)
4207///
4208///# Success Codes
4209///- `VK_SUCCESS`
4210///
4211///# Error Codes
4212///- `VK_ERROR_INVALID_EXTERNAL_HANDLE`
4213///- `VK_ERROR_NOT_PERMITTED`
4214///- `VK_ERROR_UNKNOWN`
4215///- `VK_ERROR_VALIDATION_FAILED`
4216pub type PFN_vkImportFenceSciSyncObjNV = Option<
4217    unsafe extern "system" fn(
4218        device: Device,
4219        p_import_fence_sci_sync_info: *const ImportFenceSciSyncInfoNV,
4220    ) -> Result,
4221>;
4222///[`vkGetSemaphoreSciSyncObjNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreSciSyncObjNV.html)
4223///
4224///# Success Codes
4225///- `VK_SUCCESS`
4226///
4227///# Error Codes
4228///- `VK_ERROR_INVALID_EXTERNAL_HANDLE`
4229///- `VK_ERROR_NOT_PERMITTED`
4230///- `VK_ERROR_UNKNOWN`
4231///- `VK_ERROR_VALIDATION_FAILED`
4232pub type PFN_vkGetSemaphoreSciSyncObjNV = Option<
4233    unsafe extern "system" fn(
4234        device: Device,
4235        p_get_sci_sync_info: *const SemaphoreGetSciSyncInfoNV,
4236        p_handle: *mut core::ffi::c_void,
4237    ) -> Result,
4238>;
4239///[`vkImportSemaphoreSciSyncObjNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportSemaphoreSciSyncObjNV.html)
4240///
4241///# Success Codes
4242///- `VK_SUCCESS`
4243///
4244///# Error Codes
4245///- `VK_ERROR_INVALID_EXTERNAL_HANDLE`
4246///- `VK_ERROR_NOT_PERMITTED`
4247///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4248///- `VK_ERROR_UNKNOWN`
4249///- `VK_ERROR_VALIDATION_FAILED`
4250pub type PFN_vkImportSemaphoreSciSyncObjNV = Option<
4251    unsafe extern "system" fn(
4252        device: Device,
4253        p_import_semaphore_sci_sync_info: *const ImportSemaphoreSciSyncInfoNV,
4254    ) -> Result,
4255>;
4256///[`vkGetPhysicalDeviceSciSyncAttributesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSciSyncAttributesNV.html)
4257///
4258///# Success Codes
4259///- `VK_SUCCESS`
4260///
4261///# Error Codes
4262///- `VK_ERROR_INITIALIZATION_FAILED`
4263///- `VK_ERROR_UNKNOWN`
4264///- `VK_ERROR_VALIDATION_FAILED`
4265pub type PFN_vkGetPhysicalDeviceSciSyncAttributesNV = Option<
4266    unsafe extern "system" fn(
4267        physical_device: PhysicalDevice,
4268        p_sci_sync_attributes_info: *const SciSyncAttributesInfoNV,
4269        p_attributes: *const core::ffi::c_void,
4270    ) -> Result,
4271>;
4272///[`vkCreateSemaphoreSciSyncPoolNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSemaphoreSciSyncPoolNV.html)
4273///
4274///# Success Codes
4275///- `VK_SUCCESS`
4276///
4277///# Error Codes
4278///- `VK_ERROR_INITIALIZATION_FAILED`
4279///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4280///- `VK_ERROR_UNKNOWN`
4281///- `VK_ERROR_VALIDATION_FAILED`
4282pub type PFN_vkCreateSemaphoreSciSyncPoolNV = Option<
4283    unsafe extern "system" fn(
4284        device: Device,
4285        p_create_info: *const SemaphoreSciSyncPoolCreateInfoNV,
4286        p_allocator: *const AllocationCallbacks,
4287        p_semaphore_pool: *mut SemaphoreSciSyncPoolNV,
4288    ) -> Result,
4289>;
4290///[`vkDestroySemaphoreSciSyncPoolNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySemaphoreSciSyncPoolNV.html)
4291///
4292///# Thread Safety
4293///- `semaphorePool` must be externally synchronized
4294pub type PFN_vkDestroySemaphoreSciSyncPoolNV = Option<
4295    unsafe extern "system" fn(
4296        device: Device,
4297        semaphore_pool: SemaphoreSciSyncPoolNV,
4298        p_allocator: *const AllocationCallbacks,
4299    ),
4300>;
4301///[`vkReleaseDisplayEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseDisplayEXT.html)
4302/**
4303Provided by **VK_EXT_direct_mode_display**.*/
4304///
4305///# Success Codes
4306///- `VK_SUCCESS`
4307///
4308///# Error Codes
4309///- `VK_ERROR_UNKNOWN`
4310///- `VK_ERROR_VALIDATION_FAILED`
4311pub type PFN_vkReleaseDisplayEXT = Option<
4312    unsafe extern "system" fn(
4313        physical_device: PhysicalDevice,
4314        display: DisplayKHR,
4315    ) -> Result,
4316>;
4317///[`vkAcquireXlibDisplayEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireXlibDisplayEXT.html)
4318/**
4319Provided by **VK_EXT_acquire_xlib_display**.*/
4320///
4321///# Success Codes
4322///- `VK_SUCCESS`
4323///
4324///# Error Codes
4325///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4326///- `VK_ERROR_INITIALIZATION_FAILED`
4327///- `VK_ERROR_UNKNOWN`
4328///- `VK_ERROR_VALIDATION_FAILED`
4329pub type PFN_vkAcquireXlibDisplayEXT = Option<
4330    unsafe extern "system" fn(
4331        physical_device: PhysicalDevice,
4332        dpy: *mut core::ffi::c_void,
4333        display: DisplayKHR,
4334    ) -> Result,
4335>;
4336///[`vkGetRandROutputDisplayEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRandROutputDisplayEXT.html)
4337/**
4338Provided by **VK_EXT_acquire_xlib_display**.*/
4339///
4340///# Success Codes
4341///- `VK_SUCCESS`
4342///
4343///# Error Codes
4344///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4345///- `VK_ERROR_UNKNOWN`
4346///- `VK_ERROR_VALIDATION_FAILED`
4347pub type PFN_vkGetRandROutputDisplayEXT = Option<
4348    unsafe extern "system" fn(
4349        physical_device: PhysicalDevice,
4350        dpy: *mut core::ffi::c_void,
4351        rr_output: core::ffi::c_ulong,
4352        p_display: *mut DisplayKHR,
4353    ) -> Result,
4354>;
4355///[`vkAcquireWinrtDisplayNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireWinrtDisplayNV.html)
4356/**
4357Provided by **VK_NV_acquire_winrt_display**.*/
4358///
4359///# Success Codes
4360///- `VK_SUCCESS`
4361///
4362///# Error Codes
4363///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4364///- `VK_ERROR_DEVICE_LOST`
4365///- `VK_ERROR_INITIALIZATION_FAILED`
4366///- `VK_ERROR_UNKNOWN`
4367///- `VK_ERROR_VALIDATION_FAILED`
4368pub type PFN_vkAcquireWinrtDisplayNV = Option<
4369    unsafe extern "system" fn(
4370        physical_device: PhysicalDevice,
4371        display: DisplayKHR,
4372    ) -> Result,
4373>;
4374///[`vkGetWinrtDisplayNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetWinrtDisplayNV.html)
4375/**
4376Provided by **VK_NV_acquire_winrt_display**.*/
4377///
4378///# Success Codes
4379///- `VK_SUCCESS`
4380///
4381///# Error Codes
4382///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4383///- `VK_ERROR_DEVICE_LOST`
4384///- `VK_ERROR_INITIALIZATION_FAILED`
4385///- `VK_ERROR_UNKNOWN`
4386///- `VK_ERROR_VALIDATION_FAILED`
4387pub type PFN_vkGetWinrtDisplayNV = Option<
4388    unsafe extern "system" fn(
4389        physical_device: PhysicalDevice,
4390        device_relative_id: u32,
4391        p_display: *mut DisplayKHR,
4392    ) -> Result,
4393>;
4394///[`vkDisplayPowerControlEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDisplayPowerControlEXT.html)
4395/**
4396Provided by **VK_EXT_display_control**.*/
4397///
4398///# Success Codes
4399///- `VK_SUCCESS`
4400///
4401///# Error Codes
4402///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4403///- `VK_ERROR_UNKNOWN`
4404///- `VK_ERROR_VALIDATION_FAILED`
4405pub type PFN_vkDisplayPowerControlEXT = Option<
4406    unsafe extern "system" fn(
4407        device: Device,
4408        display: DisplayKHR,
4409        p_display_power_info: *const DisplayPowerInfoEXT,
4410    ) -> Result,
4411>;
4412///[`vkRegisterDeviceEventEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkRegisterDeviceEventEXT.html)
4413/**
4414Provided by **VK_EXT_display_control**.*/
4415///
4416///# Success Codes
4417///- `VK_SUCCESS`
4418///
4419///# Error Codes
4420///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4421///- `VK_ERROR_UNKNOWN`
4422///- `VK_ERROR_VALIDATION_FAILED`
4423pub type PFN_vkRegisterDeviceEventEXT = Option<
4424    unsafe extern "system" fn(
4425        device: Device,
4426        p_device_event_info: *const DeviceEventInfoEXT,
4427        p_allocator: *const AllocationCallbacks,
4428        p_fence: *mut Fence,
4429    ) -> Result,
4430>;
4431///[`vkRegisterDisplayEventEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkRegisterDisplayEventEXT.html)
4432/**
4433Provided by **VK_EXT_display_control**.*/
4434///
4435///# Success Codes
4436///- `VK_SUCCESS`
4437///
4438///# Error Codes
4439///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4440///- `VK_ERROR_UNKNOWN`
4441///- `VK_ERROR_VALIDATION_FAILED`
4442pub type PFN_vkRegisterDisplayEventEXT = Option<
4443    unsafe extern "system" fn(
4444        device: Device,
4445        display: DisplayKHR,
4446        p_display_event_info: *const DisplayEventInfoEXT,
4447        p_allocator: *const AllocationCallbacks,
4448        p_fence: *mut Fence,
4449    ) -> Result,
4450>;
4451///[`vkGetSwapchainCounterEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSwapchainCounterEXT.html)
4452/**
4453Provided by **VK_EXT_display_control**.*/
4454///
4455///# Success Codes
4456///- `VK_SUCCESS`
4457///
4458///# Error Codes
4459///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4460///- `VK_ERROR_DEVICE_LOST`
4461///- `VK_ERROR_OUT_OF_DATE_KHR`
4462///- `VK_ERROR_UNKNOWN`
4463///- `VK_ERROR_VALIDATION_FAILED`
4464pub type PFN_vkGetSwapchainCounterEXT = Option<
4465    unsafe extern "system" fn(
4466        device: Device,
4467        swapchain: SwapchainKHR,
4468        counter: SurfaceCounterFlagBitsEXT,
4469        p_counter_value: *mut u64,
4470    ) -> Result,
4471>;
4472///[`vkGetPhysicalDeviceSurfaceCapabilities2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceCapabilities2EXT.html)
4473/**
4474Provided by **VK_EXT_display_surface_counter**.*/
4475///
4476///# Success Codes
4477///- `VK_SUCCESS`
4478///
4479///# Error Codes
4480///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4481///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
4482///- `VK_ERROR_SURFACE_LOST_KHR`
4483///- `VK_ERROR_UNKNOWN`
4484///- `VK_ERROR_VALIDATION_FAILED`
4485pub type PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = Option<
4486    unsafe extern "system" fn(
4487        physical_device: PhysicalDevice,
4488        surface: SurfaceKHR,
4489        p_surface_capabilities: *mut SurfaceCapabilities2EXT,
4490    ) -> Result,
4491>;
4492///[`vkEnumeratePhysicalDeviceGroups`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDeviceGroups.html)
4493/**
4494Provided by **VK_BASE_VERSION_1_1**.*/
4495///
4496///# Success Codes
4497///- `VK_SUCCESS`
4498///- `VK_INCOMPLETE`
4499///
4500///# Error Codes
4501///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4502///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
4503///- `VK_ERROR_INITIALIZATION_FAILED`
4504///- `VK_ERROR_UNKNOWN`
4505///- `VK_ERROR_VALIDATION_FAILED`
4506pub type PFN_vkEnumeratePhysicalDeviceGroups = Option<
4507    unsafe extern "system" fn(
4508        instance: Instance,
4509        p_physical_device_group_count: *mut u32,
4510        p_physical_device_group_properties: *mut PhysicalDeviceGroupProperties,
4511    ) -> Result,
4512>;
4513///[`vkGetDeviceGroupPeerMemoryFeatures`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupPeerMemoryFeatures.html)
4514/**
4515Provided by **VK_BASE_VERSION_1_1**.*/
4516pub type PFN_vkGetDeviceGroupPeerMemoryFeatures = Option<
4517    unsafe extern "system" fn(
4518        device: Device,
4519        heap_index: u32,
4520        local_device_index: u32,
4521        remote_device_index: u32,
4522        p_peer_memory_features: *mut PeerMemoryFeatureFlags,
4523    ),
4524>;
4525///[`vkBindBufferMemory2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindBufferMemory2.html)
4526/**
4527Provided by **VK_BASE_VERSION_1_1**.*/
4528///
4529///# Success Codes
4530///- `VK_SUCCESS`
4531///
4532///# Error Codes
4533///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4534///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
4535///- `VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR`
4536///- `VK_ERROR_UNKNOWN`
4537///- `VK_ERROR_VALIDATION_FAILED`
4538pub type PFN_vkBindBufferMemory2 = Option<
4539    unsafe extern "system" fn(
4540        device: Device,
4541        bind_info_count: u32,
4542        p_bind_infos: *const BindBufferMemoryInfo,
4543    ) -> Result,
4544>;
4545///[`vkBindImageMemory2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindImageMemory2.html)
4546/**
4547Provided by **VK_BASE_VERSION_1_1**.*/
4548///
4549///# Success Codes
4550///- `VK_SUCCESS`
4551///
4552///# Error Codes
4553///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4554///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
4555///- `VK_ERROR_UNKNOWN`
4556///- `VK_ERROR_VALIDATION_FAILED`
4557pub type PFN_vkBindImageMemory2 = Option<
4558    unsafe extern "system" fn(
4559        device: Device,
4560        bind_info_count: u32,
4561        p_bind_infos: *const BindImageMemoryInfo,
4562    ) -> Result,
4563>;
4564///[`vkCmdSetDeviceMask`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDeviceMask.html)
4565/**
4566Provided by **VK_BASE_VERSION_1_1**.*/
4567///
4568///# Thread Safety
4569///- `commandBuffer` must be externally synchronized
4570pub type PFN_vkCmdSetDeviceMask = Option<
4571    unsafe extern "system" fn(command_buffer: CommandBuffer, device_mask: u32),
4572>;
4573///[`vkGetDeviceGroupPresentCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupPresentCapabilitiesKHR.html)
4574/**
4575Provided by **VK_KHR_swapchain**.*/
4576///
4577///# Success Codes
4578///- `VK_SUCCESS`
4579///
4580///# Error Codes
4581///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4582///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
4583///- `VK_ERROR_UNKNOWN`
4584///- `VK_ERROR_VALIDATION_FAILED`
4585pub type PFN_vkGetDeviceGroupPresentCapabilitiesKHR = Option<
4586    unsafe extern "system" fn(
4587        device: Device,
4588        p_device_group_present_capabilities: *mut DeviceGroupPresentCapabilitiesKHR,
4589    ) -> Result,
4590>;
4591///[`vkGetDeviceGroupSurfacePresentModesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupSurfacePresentModesKHR.html)
4592/**
4593Provided by **VK_KHR_swapchain**.*/
4594///
4595///# Success Codes
4596///- `VK_SUCCESS`
4597///
4598///# Error Codes
4599///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4600///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
4601///- `VK_ERROR_SURFACE_LOST_KHR`
4602///- `VK_ERROR_UNKNOWN`
4603///- `VK_ERROR_VALIDATION_FAILED`
4604///
4605///# Thread Safety
4606///- `surface` must be externally synchronized
4607pub type PFN_vkGetDeviceGroupSurfacePresentModesKHR = Option<
4608    unsafe extern "system" fn(
4609        device: Device,
4610        surface: SurfaceKHR,
4611        p_modes: *mut DeviceGroupPresentModeFlagsKHR,
4612    ) -> Result,
4613>;
4614///[`vkAcquireNextImage2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireNextImage2KHR.html)
4615/**
4616Provided by **VK_KHR_swapchain**.*/
4617///
4618///# Success Codes
4619///- `VK_SUCCESS`
4620///- `VK_TIMEOUT`
4621///- `VK_NOT_READY`
4622///- `VK_SUBOPTIMAL_KHR`
4623///
4624///# Error Codes
4625///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4626///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
4627///- `VK_ERROR_DEVICE_LOST`
4628///- `VK_ERROR_OUT_OF_DATE_KHR`
4629///- `VK_ERROR_SURFACE_LOST_KHR`
4630///- `VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT`
4631///- `VK_ERROR_UNKNOWN`
4632///- `VK_ERROR_VALIDATION_FAILED`
4633pub type PFN_vkAcquireNextImage2KHR = Option<
4634    unsafe extern "system" fn(
4635        device: Device,
4636        p_acquire_info: *const AcquireNextImageInfoKHR,
4637        p_image_index: *mut u32,
4638    ) -> Result,
4639>;
4640///[`vkCmdDispatchBase`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDispatchBase.html)
4641/**
4642Provided by **VK_COMPUTE_VERSION_1_1**.*/
4643///
4644///# Thread Safety
4645///- `commandBuffer` must be externally synchronized
4646pub type PFN_vkCmdDispatchBase = Option<
4647    unsafe extern "system" fn(
4648        command_buffer: CommandBuffer,
4649        base_group_x: u32,
4650        base_group_y: u32,
4651        base_group_z: u32,
4652        group_count_x: u32,
4653        group_count_y: u32,
4654        group_count_z: u32,
4655    ),
4656>;
4657///[`vkGetPhysicalDevicePresentRectanglesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDevicePresentRectanglesKHR.html)
4658/**
4659Provided by **VK_KHR_swapchain**.*/
4660///
4661///# Success Codes
4662///- `VK_SUCCESS`
4663///- `VK_INCOMPLETE`
4664///
4665///# Error Codes
4666///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4667///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
4668///- `VK_ERROR_UNKNOWN`
4669///- `VK_ERROR_VALIDATION_FAILED`
4670///
4671///# Thread Safety
4672///- `surface` must be externally synchronized
4673pub type PFN_vkGetPhysicalDevicePresentRectanglesKHR = Option<
4674    unsafe extern "system" fn(
4675        physical_device: PhysicalDevice,
4676        surface: SurfaceKHR,
4677        p_rect_count: *mut u32,
4678        p_rects: *mut Rect2D,
4679    ) -> Result,
4680>;
4681///[`vkCreateDescriptorUpdateTemplate`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorUpdateTemplate.html)
4682/**
4683Provided by **VK_COMPUTE_VERSION_1_1**.*/
4684///
4685///# Success Codes
4686///- `VK_SUCCESS`
4687///
4688///# Error Codes
4689///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4690///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
4691///- `VK_ERROR_UNKNOWN`
4692///- `VK_ERROR_VALIDATION_FAILED`
4693pub type PFN_vkCreateDescriptorUpdateTemplate = Option<
4694    unsafe extern "system" fn(
4695        device: Device,
4696        p_create_info: *const DescriptorUpdateTemplateCreateInfo,
4697        p_allocator: *const AllocationCallbacks,
4698        p_descriptor_update_template: *mut DescriptorUpdateTemplate,
4699    ) -> Result,
4700>;
4701///[`vkDestroyDescriptorUpdateTemplate`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDescriptorUpdateTemplate.html)
4702/**
4703Provided by **VK_COMPUTE_VERSION_1_1**.*/
4704///
4705///# Thread Safety
4706///- `descriptorUpdateTemplate` must be externally synchronized
4707pub type PFN_vkDestroyDescriptorUpdateTemplate = Option<
4708    unsafe extern "system" fn(
4709        device: Device,
4710        descriptor_update_template: DescriptorUpdateTemplate,
4711        p_allocator: *const AllocationCallbacks,
4712    ),
4713>;
4714///[`vkUpdateDescriptorSetWithTemplate`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateDescriptorSetWithTemplate.html)
4715/**
4716Provided by **VK_COMPUTE_VERSION_1_1**.*/
4717///
4718///# Thread Safety
4719///- `descriptorSet` must be externally synchronized
4720pub type PFN_vkUpdateDescriptorSetWithTemplate = Option<
4721    unsafe extern "system" fn(
4722        device: Device,
4723        descriptor_set: DescriptorSet,
4724        descriptor_update_template: DescriptorUpdateTemplate,
4725        p_data: *const core::ffi::c_void,
4726    ),
4727>;
4728///[`vkCmdPushDescriptorSetWithTemplate`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDescriptorSetWithTemplate.html)
4729/**
4730Provided by **VK_COMPUTE_VERSION_1_4**.*/
4731///
4732///# Thread Safety
4733///- `commandBuffer` must be externally synchronized
4734pub type PFN_vkCmdPushDescriptorSetWithTemplate = Option<
4735    unsafe extern "system" fn(
4736        command_buffer: CommandBuffer,
4737        descriptor_update_template: DescriptorUpdateTemplate,
4738        layout: PipelineLayout,
4739        set: u32,
4740        p_data: *const core::ffi::c_void,
4741    ),
4742>;
4743///[`vkSetHdrMetadataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetHdrMetadataEXT.html)
4744/**
4745Provided by **VK_EXT_hdr_metadata**.*/
4746pub type PFN_vkSetHdrMetadataEXT = Option<
4747    unsafe extern "system" fn(
4748        device: Device,
4749        swapchain_count: u32,
4750        p_swapchains: *const SwapchainKHR,
4751        p_metadata: *const HdrMetadataEXT,
4752    ),
4753>;
4754///[`vkGetSwapchainStatusKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSwapchainStatusKHR.html)
4755/**
4756Provided by **VK_KHR_shared_presentable_image**.*/
4757///
4758///# Success Codes
4759///- `VK_SUCCESS`
4760///- `VK_SUBOPTIMAL_KHR`
4761///
4762///# Error Codes
4763///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4764///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
4765///- `VK_ERROR_DEVICE_LOST`
4766///- `VK_ERROR_OUT_OF_DATE_KHR`
4767///- `VK_ERROR_SURFACE_LOST_KHR`
4768///- `VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT`
4769///- `VK_ERROR_UNKNOWN`
4770///- `VK_ERROR_VALIDATION_FAILED`
4771///
4772///# Thread Safety
4773///- `swapchain` must be externally synchronized
4774pub type PFN_vkGetSwapchainStatusKHR = Option<
4775    unsafe extern "system" fn(device: Device, swapchain: SwapchainKHR) -> Result,
4776>;
4777///[`vkGetRefreshCycleDurationGOOGLE`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRefreshCycleDurationGOOGLE.html)
4778/**
4779Provided by **VK_GOOGLE_display_timing**.*/
4780///
4781///# Success Codes
4782///- `VK_SUCCESS`
4783///
4784///# Error Codes
4785///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4786///- `VK_ERROR_DEVICE_LOST`
4787///- `VK_ERROR_SURFACE_LOST_KHR`
4788///- `VK_ERROR_UNKNOWN`
4789///- `VK_ERROR_VALIDATION_FAILED`
4790///
4791///# Thread Safety
4792///- `swapchain` must be externally synchronized
4793pub type PFN_vkGetRefreshCycleDurationGOOGLE = Option<
4794    unsafe extern "system" fn(
4795        device: Device,
4796        swapchain: SwapchainKHR,
4797        p_display_timing_properties: *mut RefreshCycleDurationGOOGLE,
4798    ) -> Result,
4799>;
4800///[`vkGetPastPresentationTimingGOOGLE`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPastPresentationTimingGOOGLE.html)
4801/**
4802Provided by **VK_GOOGLE_display_timing**.*/
4803///
4804///# Success Codes
4805///- `VK_SUCCESS`
4806///- `VK_INCOMPLETE`
4807///
4808///# Error Codes
4809///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4810///- `VK_ERROR_DEVICE_LOST`
4811///- `VK_ERROR_OUT_OF_DATE_KHR`
4812///- `VK_ERROR_SURFACE_LOST_KHR`
4813///- `VK_ERROR_UNKNOWN`
4814///- `VK_ERROR_VALIDATION_FAILED`
4815///
4816///# Thread Safety
4817///- `swapchain` must be externally synchronized
4818pub type PFN_vkGetPastPresentationTimingGOOGLE = Option<
4819    unsafe extern "system" fn(
4820        device: Device,
4821        swapchain: SwapchainKHR,
4822        p_presentation_timing_count: *mut u32,
4823        p_presentation_timings: *mut PastPresentationTimingGOOGLE,
4824    ) -> Result,
4825>;
4826///[`vkCreateIOSSurfaceMVK`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIOSSurfaceMVK.html)
4827/**
4828Provided by **VK_MVK_ios_surface**.*/
4829///
4830///# Success Codes
4831///- `VK_SUCCESS`
4832///
4833///# Error Codes
4834///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4835///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
4836///- `VK_ERROR_NATIVE_WINDOW_IN_USE_KHR`
4837///- `VK_ERROR_UNKNOWN`
4838///- `VK_ERROR_VALIDATION_FAILED`
4839pub type PFN_vkCreateIOSSurfaceMVK = Option<
4840    unsafe extern "system" fn(
4841        instance: Instance,
4842        p_create_info: *const IOSSurfaceCreateInfoMVK,
4843        p_allocator: *const AllocationCallbacks,
4844        p_surface: *mut SurfaceKHR,
4845    ) -> Result,
4846>;
4847///[`vkCreateMacOSSurfaceMVK`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateMacOSSurfaceMVK.html)
4848/**
4849Provided by **VK_MVK_macos_surface**.*/
4850///
4851///# Success Codes
4852///- `VK_SUCCESS`
4853///
4854///# Error Codes
4855///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4856///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
4857///- `VK_ERROR_NATIVE_WINDOW_IN_USE_KHR`
4858///- `VK_ERROR_UNKNOWN`
4859///- `VK_ERROR_VALIDATION_FAILED`
4860pub type PFN_vkCreateMacOSSurfaceMVK = Option<
4861    unsafe extern "system" fn(
4862        instance: Instance,
4863        p_create_info: *const MacOSSurfaceCreateInfoMVK,
4864        p_allocator: *const AllocationCallbacks,
4865        p_surface: *mut SurfaceKHR,
4866    ) -> Result,
4867>;
4868///[`vkCreateMetalSurfaceEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateMetalSurfaceEXT.html)
4869/**
4870Provided by **VK_EXT_metal_surface**.*/
4871///
4872///# Success Codes
4873///- `VK_SUCCESS`
4874///
4875///# Error Codes
4876///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4877///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
4878///- `VK_ERROR_NATIVE_WINDOW_IN_USE_KHR`
4879///- `VK_ERROR_UNKNOWN`
4880///- `VK_ERROR_VALIDATION_FAILED`
4881pub type PFN_vkCreateMetalSurfaceEXT = Option<
4882    unsafe extern "system" fn(
4883        instance: Instance,
4884        p_create_info: *const MetalSurfaceCreateInfoEXT,
4885        p_allocator: *const AllocationCallbacks,
4886        p_surface: *mut SurfaceKHR,
4887    ) -> Result,
4888>;
4889///[`vkCmdSetViewportWScalingNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetViewportWScalingNV.html)
4890/**
4891Provided by **VK_NV_clip_space_w_scaling**.*/
4892///
4893///# Thread Safety
4894///- `commandBuffer` must be externally synchronized
4895pub type PFN_vkCmdSetViewportWScalingNV = Option<
4896    unsafe extern "system" fn(
4897        command_buffer: CommandBuffer,
4898        first_viewport: u32,
4899        viewport_count: u32,
4900        p_viewport_w_scalings: *const ViewportWScalingNV,
4901    ),
4902>;
4903///[`vkCmdSetDiscardRectangleEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDiscardRectangleEXT.html)
4904/**
4905Provided by **VK_EXT_discard_rectangles**.*/
4906///
4907///# Thread Safety
4908///- `commandBuffer` must be externally synchronized
4909pub type PFN_vkCmdSetDiscardRectangleEXT = Option<
4910    unsafe extern "system" fn(
4911        command_buffer: CommandBuffer,
4912        first_discard_rectangle: u32,
4913        discard_rectangle_count: u32,
4914        p_discard_rectangles: *const Rect2D,
4915    ),
4916>;
4917///[`vkCmdSetDiscardRectangleEnableEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDiscardRectangleEnableEXT.html)
4918/**
4919Provided by **VK_EXT_discard_rectangles**.*/
4920///
4921///# Thread Safety
4922///- `commandBuffer` must be externally synchronized
4923pub type PFN_vkCmdSetDiscardRectangleEnableEXT = Option<
4924    unsafe extern "system" fn(
4925        command_buffer: CommandBuffer,
4926        discard_rectangle_enable: u32,
4927    ),
4928>;
4929///[`vkCmdSetDiscardRectangleModeEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDiscardRectangleModeEXT.html)
4930/**
4931Provided by **VK_EXT_discard_rectangles**.*/
4932///
4933///# Thread Safety
4934///- `commandBuffer` must be externally synchronized
4935pub type PFN_vkCmdSetDiscardRectangleModeEXT = Option<
4936    unsafe extern "system" fn(
4937        command_buffer: CommandBuffer,
4938        discard_rectangle_mode: DiscardRectangleModeEXT,
4939    ),
4940>;
4941///[`vkCmdSetSampleLocationsEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetSampleLocationsEXT.html)
4942/**
4943Provided by **VK_EXT_sample_locations**.*/
4944///
4945///# Thread Safety
4946///- `commandBuffer` must be externally synchronized
4947pub type PFN_vkCmdSetSampleLocationsEXT = Option<
4948    unsafe extern "system" fn(
4949        command_buffer: CommandBuffer,
4950        p_sample_locations_info: *const SampleLocationsInfoEXT,
4951    ),
4952>;
4953///[`vkGetPhysicalDeviceMultisamplePropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceMultisamplePropertiesEXT.html)
4954/**
4955Provided by **VK_EXT_sample_locations**.*/
4956pub type PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = Option<
4957    unsafe extern "system" fn(
4958        physical_device: PhysicalDevice,
4959        samples: SampleCountFlagBits,
4960        p_multisample_properties: *mut MultisamplePropertiesEXT,
4961    ),
4962>;
4963///[`vkGetPhysicalDeviceSurfaceCapabilities2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceCapabilities2KHR.html)
4964/**
4965Provided by **VK_KHR_get_surface_capabilities2**.*/
4966///
4967///# Success Codes
4968///- `VK_SUCCESS`
4969///
4970///# Error Codes
4971///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4972///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
4973///- `VK_ERROR_SURFACE_LOST_KHR`
4974///- `VK_ERROR_UNKNOWN`
4975///- `VK_ERROR_VALIDATION_FAILED`
4976pub type PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = Option<
4977    unsafe extern "system" fn(
4978        physical_device: PhysicalDevice,
4979        p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
4980        p_surface_capabilities: *mut SurfaceCapabilities2KHR,
4981    ) -> Result,
4982>;
4983///[`vkGetPhysicalDeviceSurfaceFormats2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceFormats2KHR.html)
4984/**
4985Provided by **VK_KHR_get_surface_capabilities2**.*/
4986///
4987///# Success Codes
4988///- `VK_SUCCESS`
4989///- `VK_INCOMPLETE`
4990///
4991///# Error Codes
4992///- `VK_ERROR_OUT_OF_HOST_MEMORY`
4993///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
4994///- `VK_ERROR_SURFACE_LOST_KHR`
4995///- `VK_ERROR_UNKNOWN`
4996///- `VK_ERROR_VALIDATION_FAILED`
4997pub type PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = Option<
4998    unsafe extern "system" fn(
4999        physical_device: PhysicalDevice,
5000        p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
5001        p_surface_format_count: *mut u32,
5002        p_surface_formats: *mut SurfaceFormat2KHR,
5003    ) -> Result,
5004>;
5005///[`vkGetPhysicalDeviceDisplayProperties2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayProperties2KHR.html)
5006/**
5007Provided by **VK_KHR_get_display_properties2**.*/
5008///
5009///# Success Codes
5010///- `VK_SUCCESS`
5011///- `VK_INCOMPLETE`
5012///
5013///# Error Codes
5014///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5015///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
5016///- `VK_ERROR_UNKNOWN`
5017///- `VK_ERROR_VALIDATION_FAILED`
5018pub type PFN_vkGetPhysicalDeviceDisplayProperties2KHR = Option<
5019    unsafe extern "system" fn(
5020        physical_device: PhysicalDevice,
5021        p_property_count: *mut u32,
5022        p_properties: *mut DisplayProperties2KHR,
5023    ) -> Result,
5024>;
5025///[`vkGetPhysicalDeviceDisplayPlaneProperties2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayPlaneProperties2KHR.html)
5026/**
5027Provided by **VK_KHR_get_display_properties2**.*/
5028///
5029///# Success Codes
5030///- `VK_SUCCESS`
5031///- `VK_INCOMPLETE`
5032///
5033///# Error Codes
5034///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5035///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
5036///- `VK_ERROR_UNKNOWN`
5037///- `VK_ERROR_VALIDATION_FAILED`
5038pub type PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = Option<
5039    unsafe extern "system" fn(
5040        physical_device: PhysicalDevice,
5041        p_property_count: *mut u32,
5042        p_properties: *mut DisplayPlaneProperties2KHR,
5043    ) -> Result,
5044>;
5045///[`vkGetDisplayModeProperties2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayModeProperties2KHR.html)
5046/**
5047Provided by **VK_KHR_get_display_properties2**.*/
5048///
5049///# Success Codes
5050///- `VK_SUCCESS`
5051///- `VK_INCOMPLETE`
5052///
5053///# Error Codes
5054///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5055///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
5056///- `VK_ERROR_UNKNOWN`
5057///- `VK_ERROR_VALIDATION_FAILED`
5058pub type PFN_vkGetDisplayModeProperties2KHR = Option<
5059    unsafe extern "system" fn(
5060        physical_device: PhysicalDevice,
5061        display: DisplayKHR,
5062        p_property_count: *mut u32,
5063        p_properties: *mut DisplayModeProperties2KHR,
5064    ) -> Result,
5065>;
5066///[`vkGetDisplayPlaneCapabilities2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayPlaneCapabilities2KHR.html)
5067/**
5068Provided by **VK_KHR_get_display_properties2**.*/
5069///
5070///# Success Codes
5071///- `VK_SUCCESS`
5072///
5073///# Error Codes
5074///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5075///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
5076///- `VK_ERROR_UNKNOWN`
5077///- `VK_ERROR_VALIDATION_FAILED`
5078pub type PFN_vkGetDisplayPlaneCapabilities2KHR = Option<
5079    unsafe extern "system" fn(
5080        physical_device: PhysicalDevice,
5081        p_display_plane_info: *const DisplayPlaneInfo2KHR,
5082        p_capabilities: *mut DisplayPlaneCapabilities2KHR,
5083    ) -> Result,
5084>;
5085///[`vkGetBufferMemoryRequirements2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferMemoryRequirements2.html)
5086/**
5087Provided by **VK_BASE_VERSION_1_1**.*/
5088pub type PFN_vkGetBufferMemoryRequirements2 = Option<
5089    unsafe extern "system" fn(
5090        device: Device,
5091        p_info: *const BufferMemoryRequirementsInfo2,
5092        p_memory_requirements: *mut MemoryRequirements2,
5093    ),
5094>;
5095///[`vkGetImageMemoryRequirements2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageMemoryRequirements2.html)
5096/**
5097Provided by **VK_BASE_VERSION_1_1**.*/
5098pub type PFN_vkGetImageMemoryRequirements2 = Option<
5099    unsafe extern "system" fn(
5100        device: Device,
5101        p_info: *const ImageMemoryRequirementsInfo2,
5102        p_memory_requirements: *mut MemoryRequirements2,
5103    ),
5104>;
5105///[`vkGetImageSparseMemoryRequirements2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSparseMemoryRequirements2.html)
5106/**
5107Provided by **VK_BASE_VERSION_1_1**.*/
5108pub type PFN_vkGetImageSparseMemoryRequirements2 = Option<
5109    unsafe extern "system" fn(
5110        device: Device,
5111        p_info: *const ImageSparseMemoryRequirementsInfo2,
5112        p_sparse_memory_requirement_count: *mut u32,
5113        p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2,
5114    ),
5115>;
5116///[`vkGetDeviceBufferMemoryRequirements`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceBufferMemoryRequirements.html)
5117/**
5118Provided by **VK_BASE_VERSION_1_3**.*/
5119pub type PFN_vkGetDeviceBufferMemoryRequirements = Option<
5120    unsafe extern "system" fn(
5121        device: Device,
5122        p_info: *const DeviceBufferMemoryRequirements,
5123        p_memory_requirements: *mut MemoryRequirements2,
5124    ),
5125>;
5126///[`vkGetDeviceImageMemoryRequirements`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageMemoryRequirements.html)
5127/**
5128Provided by **VK_BASE_VERSION_1_3**.*/
5129pub type PFN_vkGetDeviceImageMemoryRequirements = Option<
5130    unsafe extern "system" fn(
5131        device: Device,
5132        p_info: *const DeviceImageMemoryRequirements,
5133        p_memory_requirements: *mut MemoryRequirements2,
5134    ),
5135>;
5136///[`vkGetDeviceImageSparseMemoryRequirements`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageSparseMemoryRequirements.html)
5137/**
5138Provided by **VK_BASE_VERSION_1_3**.*/
5139pub type PFN_vkGetDeviceImageSparseMemoryRequirements = Option<
5140    unsafe extern "system" fn(
5141        device: Device,
5142        p_info: *const DeviceImageMemoryRequirements,
5143        p_sparse_memory_requirement_count: *mut u32,
5144        p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2,
5145    ),
5146>;
5147///[`vkCreateSamplerYcbcrConversion`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSamplerYcbcrConversion.html)
5148/**
5149Provided by **VK_COMPUTE_VERSION_1_1**.*/
5150///
5151///# Success Codes
5152///- `VK_SUCCESS`
5153///
5154///# Error Codes
5155///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5156///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
5157///- `VK_ERROR_UNKNOWN`
5158///- `VK_ERROR_VALIDATION_FAILED`
5159pub type PFN_vkCreateSamplerYcbcrConversion = Option<
5160    unsafe extern "system" fn(
5161        device: Device,
5162        p_create_info: *const SamplerYcbcrConversionCreateInfo,
5163        p_allocator: *const AllocationCallbacks,
5164        p_ycbcr_conversion: *mut SamplerYcbcrConversion,
5165    ) -> Result,
5166>;
5167///[`vkDestroySamplerYcbcrConversion`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySamplerYcbcrConversion.html)
5168/**
5169Provided by **VK_COMPUTE_VERSION_1_1**.*/
5170///
5171///# Thread Safety
5172///- `ycbcrConversion` must be externally synchronized
5173pub type PFN_vkDestroySamplerYcbcrConversion = Option<
5174    unsafe extern "system" fn(
5175        device: Device,
5176        ycbcr_conversion: SamplerYcbcrConversion,
5177        p_allocator: *const AllocationCallbacks,
5178    ),
5179>;
5180///[`vkGetDeviceQueue2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceQueue2.html)
5181/**
5182Provided by **VK_BASE_VERSION_1_1**.*/
5183pub type PFN_vkGetDeviceQueue2 = Option<
5184    unsafe extern "system" fn(
5185        device: Device,
5186        p_queue_info: *const DeviceQueueInfo2,
5187        p_queue: *mut Queue,
5188    ),
5189>;
5190///[`vkCreateValidationCacheEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateValidationCacheEXT.html)
5191/**
5192Provided by **VK_EXT_validation_cache**.*/
5193///
5194///# Success Codes
5195///- `VK_SUCCESS`
5196///
5197///# Error Codes
5198///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5199///- `VK_ERROR_UNKNOWN`
5200///- `VK_ERROR_VALIDATION_FAILED`
5201pub type PFN_vkCreateValidationCacheEXT = Option<
5202    unsafe extern "system" fn(
5203        device: Device,
5204        p_create_info: *const ValidationCacheCreateInfoEXT,
5205        p_allocator: *const AllocationCallbacks,
5206        p_validation_cache: *mut ValidationCacheEXT,
5207    ) -> Result,
5208>;
5209///[`vkDestroyValidationCacheEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyValidationCacheEXT.html)
5210/**
5211Provided by **VK_EXT_validation_cache**.*/
5212///
5213///# Thread Safety
5214///- `validationCache` must be externally synchronized
5215pub type PFN_vkDestroyValidationCacheEXT = Option<
5216    unsafe extern "system" fn(
5217        device: Device,
5218        validation_cache: ValidationCacheEXT,
5219        p_allocator: *const AllocationCallbacks,
5220    ),
5221>;
5222///[`vkGetValidationCacheDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetValidationCacheDataEXT.html)
5223/**
5224Provided by **VK_EXT_validation_cache**.*/
5225///
5226///# Success Codes
5227///- `VK_SUCCESS`
5228///- `VK_INCOMPLETE`
5229///
5230///# Error Codes
5231///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5232///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
5233///- `VK_ERROR_UNKNOWN`
5234///- `VK_ERROR_VALIDATION_FAILED`
5235pub type PFN_vkGetValidationCacheDataEXT = Option<
5236    unsafe extern "system" fn(
5237        device: Device,
5238        validation_cache: ValidationCacheEXT,
5239        p_data_size: *mut usize,
5240        p_data: *mut core::ffi::c_void,
5241    ) -> Result,
5242>;
5243///[`vkMergeValidationCachesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkMergeValidationCachesEXT.html)
5244/**
5245Provided by **VK_EXT_validation_cache**.*/
5246///
5247///# Success Codes
5248///- `VK_SUCCESS`
5249///
5250///# Error Codes
5251///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5252///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
5253///- `VK_ERROR_UNKNOWN`
5254///- `VK_ERROR_VALIDATION_FAILED`
5255///
5256///# Thread Safety
5257///- `dstCache` must be externally synchronized
5258pub type PFN_vkMergeValidationCachesEXT = Option<
5259    unsafe extern "system" fn(
5260        device: Device,
5261        dst_cache: ValidationCacheEXT,
5262        src_cache_count: u32,
5263        p_src_caches: *const ValidationCacheEXT,
5264    ) -> Result,
5265>;
5266///[`vkGetDescriptorSetLayoutSupport`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorSetLayoutSupport.html)
5267/**
5268Provided by **VK_COMPUTE_VERSION_1_1**.*/
5269pub type PFN_vkGetDescriptorSetLayoutSupport = Option<
5270    unsafe extern "system" fn(
5271        device: Device,
5272        p_create_info: *const DescriptorSetLayoutCreateInfo,
5273        p_support: *mut DescriptorSetLayoutSupport,
5274    ),
5275>;
5276///[`vkGetSwapchainGrallocUsageANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSwapchainGrallocUsageANDROID.html)
5277pub type PFN_vkGetSwapchainGrallocUsageANDROID = Option<
5278    unsafe extern "system" fn(
5279        device: Device,
5280        format: Format,
5281        image_usage: ImageUsageFlags,
5282        gralloc_usage: *mut core::ffi::c_int,
5283    ) -> Result,
5284>;
5285///[`vkGetSwapchainGrallocUsage2ANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSwapchainGrallocUsage2ANDROID.html)
5286pub type PFN_vkGetSwapchainGrallocUsage2ANDROID = Option<
5287    unsafe extern "system" fn(
5288        device: Device,
5289        format: Format,
5290        image_usage: ImageUsageFlags,
5291        swapchain_image_usage: SwapchainImageUsageFlagsANDROID,
5292        gralloc_consumer_usage: *mut u64,
5293        gralloc_producer_usage: *mut u64,
5294    ) -> Result,
5295>;
5296///[`vkAcquireImageANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireImageANDROID.html)
5297pub type PFN_vkAcquireImageANDROID = Option<
5298    unsafe extern "system" fn(
5299        device: Device,
5300        image: Image,
5301        native_fence_fd: core::ffi::c_int,
5302        semaphore: Semaphore,
5303        fence: Fence,
5304    ) -> Result,
5305>;
5306///[`vkQueueSignalReleaseImageANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSignalReleaseImageANDROID.html)
5307pub type PFN_vkQueueSignalReleaseImageANDROID = Option<
5308    unsafe extern "system" fn(
5309        queue: Queue,
5310        wait_semaphore_count: u32,
5311        p_wait_semaphores: *const Semaphore,
5312        image: Image,
5313        p_native_fence_fd: *mut core::ffi::c_int,
5314    ) -> Result,
5315>;
5316///[`vkGetShaderInfoAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderInfoAMD.html)
5317/**
5318Provided by **VK_AMD_shader_info**.*/
5319///
5320///# Success Codes
5321///- `VK_SUCCESS`
5322///- `VK_INCOMPLETE`
5323///
5324///# Error Codes
5325///- `VK_ERROR_FEATURE_NOT_PRESENT`
5326///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5327///- `VK_ERROR_UNKNOWN`
5328///- `VK_ERROR_VALIDATION_FAILED`
5329pub type PFN_vkGetShaderInfoAMD = Option<
5330    unsafe extern "system" fn(
5331        device: Device,
5332        pipeline: Pipeline,
5333        shader_stage: ShaderStageFlagBits,
5334        info_type: ShaderInfoTypeAMD,
5335        p_info_size: *mut usize,
5336        p_info: *mut core::ffi::c_void,
5337    ) -> Result,
5338>;
5339///[`vkSetLocalDimmingAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLocalDimmingAMD.html)
5340/**
5341Provided by **VK_AMD_display_native_hdr**.*/
5342pub type PFN_vkSetLocalDimmingAMD = Option<
5343    unsafe extern "system" fn(
5344        device: Device,
5345        swap_chain: SwapchainKHR,
5346        local_dimming_enable: u32,
5347    ),
5348>;
5349///[`vkGetPhysicalDeviceCalibrateableTimeDomainsKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCalibrateableTimeDomainsKHR.html)
5350/**
5351Provided by **VK_KHR_calibrated_timestamps**.*/
5352///
5353///# Success Codes
5354///- `VK_SUCCESS`
5355///- `VK_INCOMPLETE`
5356///
5357///# Error Codes
5358///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5359///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
5360///- `VK_ERROR_UNKNOWN`
5361///- `VK_ERROR_VALIDATION_FAILED`
5362pub type PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR = Option<
5363    unsafe extern "system" fn(
5364        physical_device: PhysicalDevice,
5365        p_time_domain_count: *mut u32,
5366        p_time_domains: *mut TimeDomainKHR,
5367    ) -> Result,
5368>;
5369///[`vkGetCalibratedTimestampsKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCalibratedTimestampsKHR.html)
5370/**
5371Provided by **VK_KHR_calibrated_timestamps**.*/
5372///
5373///# Success Codes
5374///- `VK_SUCCESS`
5375///
5376///# Error Codes
5377///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5378///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
5379///- `VK_ERROR_UNKNOWN`
5380///- `VK_ERROR_VALIDATION_FAILED`
5381pub type PFN_vkGetCalibratedTimestampsKHR = Option<
5382    unsafe extern "system" fn(
5383        device: Device,
5384        timestamp_count: u32,
5385        p_timestamp_infos: *const CalibratedTimestampInfoKHR,
5386        p_timestamps: *mut u64,
5387        p_max_deviation: *mut u64,
5388    ) -> Result,
5389>;
5390///[`vkSetDebugUtilsObjectNameEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetDebugUtilsObjectNameEXT.html)
5391/**
5392Provided by **VK_EXT_debug_utils**.*/
5393///
5394///# Success Codes
5395///- `VK_SUCCESS`
5396///
5397///# Error Codes
5398///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5399///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
5400///- `VK_ERROR_UNKNOWN`
5401///- `VK_ERROR_VALIDATION_FAILED`
5402///
5403///# Thread Safety
5404///- `pNameInfo` must be externally synchronized
5405pub type PFN_vkSetDebugUtilsObjectNameEXT = Option<
5406    unsafe extern "system" fn(
5407        device: Device,
5408        p_name_info: *const DebugUtilsObjectNameInfoEXT,
5409    ) -> Result,
5410>;
5411///[`vkSetDebugUtilsObjectTagEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetDebugUtilsObjectTagEXT.html)
5412/**
5413Provided by **VK_EXT_debug_utils**.*/
5414///
5415///# Success Codes
5416///- `VK_SUCCESS`
5417///
5418///# Error Codes
5419///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5420///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
5421///- `VK_ERROR_UNKNOWN`
5422///- `VK_ERROR_VALIDATION_FAILED`
5423pub type PFN_vkSetDebugUtilsObjectTagEXT = Option<
5424    unsafe extern "system" fn(
5425        device: Device,
5426        p_tag_info: *const DebugUtilsObjectTagInfoEXT,
5427    ) -> Result,
5428>;
5429///[`vkQueueBeginDebugUtilsLabelEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueBeginDebugUtilsLabelEXT.html)
5430/**
5431Provided by **VK_EXT_debug_utils**.*/
5432///
5433///# Thread Safety
5434///- `queue` must be externally synchronized
5435pub type PFN_vkQueueBeginDebugUtilsLabelEXT = Option<
5436    unsafe extern "system" fn(queue: Queue, p_label_info: *const DebugUtilsLabelEXT),
5437>;
5438///[`vkQueueEndDebugUtilsLabelEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueEndDebugUtilsLabelEXT.html)
5439/**
5440Provided by **VK_EXT_debug_utils**.*/
5441///
5442///# Thread Safety
5443///- `queue` must be externally synchronized
5444pub type PFN_vkQueueEndDebugUtilsLabelEXT = Option<
5445    unsafe extern "system" fn(queue: Queue),
5446>;
5447///[`vkQueueInsertDebugUtilsLabelEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueInsertDebugUtilsLabelEXT.html)
5448/**
5449Provided by **VK_EXT_debug_utils**.*/
5450///
5451///# Thread Safety
5452///- `queue` must be externally synchronized
5453pub type PFN_vkQueueInsertDebugUtilsLabelEXT = Option<
5454    unsafe extern "system" fn(queue: Queue, p_label_info: *const DebugUtilsLabelEXT),
5455>;
5456///[`vkCmdBeginDebugUtilsLabelEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginDebugUtilsLabelEXT.html)
5457/**
5458Provided by **VK_EXT_debug_utils**.*/
5459///
5460///# Thread Safety
5461///- `commandBuffer` must be externally synchronized
5462pub type PFN_vkCmdBeginDebugUtilsLabelEXT = Option<
5463    unsafe extern "system" fn(
5464        command_buffer: CommandBuffer,
5465        p_label_info: *const DebugUtilsLabelEXT,
5466    ),
5467>;
5468///[`vkCmdEndDebugUtilsLabelEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndDebugUtilsLabelEXT.html)
5469/**
5470Provided by **VK_EXT_debug_utils**.*/
5471///
5472///# Thread Safety
5473///- `commandBuffer` must be externally synchronized
5474pub type PFN_vkCmdEndDebugUtilsLabelEXT = Option<
5475    unsafe extern "system" fn(command_buffer: CommandBuffer),
5476>;
5477///[`vkCmdInsertDebugUtilsLabelEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdInsertDebugUtilsLabelEXT.html)
5478/**
5479Provided by **VK_EXT_debug_utils**.*/
5480///
5481///# Thread Safety
5482///- `commandBuffer` must be externally synchronized
5483pub type PFN_vkCmdInsertDebugUtilsLabelEXT = Option<
5484    unsafe extern "system" fn(
5485        command_buffer: CommandBuffer,
5486        p_label_info: *const DebugUtilsLabelEXT,
5487    ),
5488>;
5489///[`vkCreateDebugUtilsMessengerEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDebugUtilsMessengerEXT.html)
5490/**
5491Provided by **VK_EXT_debug_utils**.*/
5492///
5493///# Success Codes
5494///- `VK_SUCCESS`
5495///
5496///# Error Codes
5497///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5498///- `VK_ERROR_UNKNOWN`
5499///- `VK_ERROR_VALIDATION_FAILED`
5500pub type PFN_vkCreateDebugUtilsMessengerEXT = Option<
5501    unsafe extern "system" fn(
5502        instance: Instance,
5503        p_create_info: *const DebugUtilsMessengerCreateInfoEXT,
5504        p_allocator: *const AllocationCallbacks,
5505        p_messenger: *mut DebugUtilsMessengerEXT,
5506    ) -> Result,
5507>;
5508///[`vkDestroyDebugUtilsMessengerEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDebugUtilsMessengerEXT.html)
5509/**
5510Provided by **VK_EXT_debug_utils**.*/
5511///
5512///# Thread Safety
5513///- `messenger` must be externally synchronized
5514pub type PFN_vkDestroyDebugUtilsMessengerEXT = Option<
5515    unsafe extern "system" fn(
5516        instance: Instance,
5517        messenger: DebugUtilsMessengerEXT,
5518        p_allocator: *const AllocationCallbacks,
5519    ),
5520>;
5521///[`vkSubmitDebugUtilsMessageEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkSubmitDebugUtilsMessageEXT.html)
5522/**
5523Provided by **VK_EXT_debug_utils**.*/
5524pub type PFN_vkSubmitDebugUtilsMessageEXT = Option<
5525    unsafe extern "system" fn(
5526        instance: Instance,
5527        message_severity: DebugUtilsMessageSeverityFlagBitsEXT,
5528        message_types: DebugUtilsMessageTypeFlagsEXT,
5529        p_callback_data: *const DebugUtilsMessengerCallbackDataEXT,
5530    ),
5531>;
5532///[`vkGetMemoryHostPointerPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryHostPointerPropertiesEXT.html)
5533/**
5534Provided by **VK_EXT_external_memory_host**.*/
5535///
5536///# Success Codes
5537///- `VK_SUCCESS`
5538///
5539///# Error Codes
5540///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5541///- `VK_ERROR_INVALID_EXTERNAL_HANDLE`
5542///- `VK_ERROR_UNKNOWN`
5543///- `VK_ERROR_VALIDATION_FAILED`
5544pub type PFN_vkGetMemoryHostPointerPropertiesEXT = Option<
5545    unsafe extern "system" fn(
5546        device: Device,
5547        handle_type: ExternalMemoryHandleTypeFlagBits,
5548        p_host_pointer: *const core::ffi::c_void,
5549        p_memory_host_pointer_properties: *mut MemoryHostPointerPropertiesEXT,
5550    ) -> Result,
5551>;
5552///[`vkCmdWriteBufferMarkerAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWriteBufferMarkerAMD.html)
5553/**
5554Provided by **VK_AMD_buffer_marker**.*/
5555///
5556///# Thread Safety
5557///- `commandBuffer` must be externally synchronized
5558pub type PFN_vkCmdWriteBufferMarkerAMD = Option<
5559    unsafe extern "system" fn(
5560        command_buffer: CommandBuffer,
5561        pipeline_stage: PipelineStageFlagBits,
5562        dst_buffer: Buffer,
5563        dst_offset: u64,
5564        marker: u32,
5565    ),
5566>;
5567///[`vkCreateRenderPass2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRenderPass2.html)
5568/**
5569Provided by **VK_GRAPHICS_VERSION_1_2**.*/
5570///
5571///# Success Codes
5572///- `VK_SUCCESS`
5573///
5574///# Error Codes
5575///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5576///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
5577///- `VK_ERROR_UNKNOWN`
5578///- `VK_ERROR_VALIDATION_FAILED`
5579pub type PFN_vkCreateRenderPass2 = Option<
5580    unsafe extern "system" fn(
5581        device: Device,
5582        p_create_info: *const RenderPassCreateInfo2,
5583        p_allocator: *const AllocationCallbacks,
5584        p_render_pass: *mut RenderPass,
5585    ) -> Result,
5586>;
5587///[`vkCmdBeginRenderPass2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginRenderPass2.html)
5588/**
5589Provided by **VK_GRAPHICS_VERSION_1_2**.*/
5590///
5591///# Thread Safety
5592///- `commandBuffer` must be externally synchronized
5593pub type PFN_vkCmdBeginRenderPass2 = Option<
5594    unsafe extern "system" fn(
5595        command_buffer: CommandBuffer,
5596        p_render_pass_begin: *const RenderPassBeginInfo,
5597        p_subpass_begin_info: *const SubpassBeginInfo,
5598    ),
5599>;
5600///[`vkCmdNextSubpass2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdNextSubpass2.html)
5601/**
5602Provided by **VK_GRAPHICS_VERSION_1_2**.*/
5603///
5604///# Thread Safety
5605///- `commandBuffer` must be externally synchronized
5606pub type PFN_vkCmdNextSubpass2 = Option<
5607    unsafe extern "system" fn(
5608        command_buffer: CommandBuffer,
5609        p_subpass_begin_info: *const SubpassBeginInfo,
5610        p_subpass_end_info: *const SubpassEndInfo,
5611    ),
5612>;
5613///[`vkCmdEndRenderPass2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndRenderPass2.html)
5614/**
5615Provided by **VK_GRAPHICS_VERSION_1_2**.*/
5616///
5617///# Thread Safety
5618///- `commandBuffer` must be externally synchronized
5619pub type PFN_vkCmdEndRenderPass2 = Option<
5620    unsafe extern "system" fn(
5621        command_buffer: CommandBuffer,
5622        p_subpass_end_info: *const SubpassEndInfo,
5623    ),
5624>;
5625///[`vkGetSemaphoreCounterValue`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreCounterValue.html)
5626/**
5627Provided by **VK_BASE_VERSION_1_2**.*/
5628///
5629///# Success Codes
5630///- `VK_SUCCESS`
5631///
5632///# Error Codes
5633///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5634///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
5635///- `VK_ERROR_DEVICE_LOST`
5636///- `VK_ERROR_UNKNOWN`
5637///- `VK_ERROR_VALIDATION_FAILED`
5638pub type PFN_vkGetSemaphoreCounterValue = Option<
5639    unsafe extern "system" fn(
5640        device: Device,
5641        semaphore: Semaphore,
5642        p_value: *mut u64,
5643    ) -> Result,
5644>;
5645///[`vkWaitSemaphores`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitSemaphores.html)
5646/**
5647Provided by **VK_BASE_VERSION_1_2**.*/
5648///
5649///# Success Codes
5650///- `VK_SUCCESS`
5651///- `VK_TIMEOUT`
5652///
5653///# Error Codes
5654///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5655///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
5656///- `VK_ERROR_DEVICE_LOST`
5657///- `VK_ERROR_UNKNOWN`
5658///- `VK_ERROR_VALIDATION_FAILED`
5659pub type PFN_vkWaitSemaphores = Option<
5660    unsafe extern "system" fn(
5661        device: Device,
5662        p_wait_info: *const SemaphoreWaitInfo,
5663        timeout: u64,
5664    ) -> Result,
5665>;
5666///[`vkSignalSemaphore`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkSignalSemaphore.html)
5667/**
5668Provided by **VK_BASE_VERSION_1_2**.*/
5669///
5670///# Success Codes
5671///- `VK_SUCCESS`
5672///
5673///# Error Codes
5674///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5675///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
5676///- `VK_ERROR_UNKNOWN`
5677///- `VK_ERROR_VALIDATION_FAILED`
5678pub type PFN_vkSignalSemaphore = Option<
5679    unsafe extern "system" fn(
5680        device: Device,
5681        p_signal_info: *const SemaphoreSignalInfo,
5682    ) -> Result,
5683>;
5684///[`vkGetAndroidHardwareBufferPropertiesANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAndroidHardwareBufferPropertiesANDROID.html)
5685/**
5686Provided by **VK_ANDROID_external_memory_android_hardware_buffer**.*/
5687///
5688///# Success Codes
5689///- `VK_SUCCESS`
5690///
5691///# Error Codes
5692///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5693///- `VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR`
5694///- `VK_ERROR_UNKNOWN`
5695///- `VK_ERROR_VALIDATION_FAILED`
5696pub type PFN_vkGetAndroidHardwareBufferPropertiesANDROID = Option<
5697    unsafe extern "system" fn(
5698        device: Device,
5699        buffer: *const core::ffi::c_void,
5700        p_properties: *mut AndroidHardwareBufferPropertiesANDROID,
5701    ) -> Result,
5702>;
5703///[`vkGetMemoryAndroidHardwareBufferANDROID`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryAndroidHardwareBufferANDROID.html)
5704/**
5705Provided by **VK_ANDROID_external_memory_android_hardware_buffer**.*/
5706///
5707///# Success Codes
5708///- `VK_SUCCESS`
5709///
5710///# Error Codes
5711///- `VK_ERROR_TOO_MANY_OBJECTS`
5712///- `VK_ERROR_OUT_OF_HOST_MEMORY`
5713///- `VK_ERROR_UNKNOWN`
5714///- `VK_ERROR_VALIDATION_FAILED`
5715pub type PFN_vkGetMemoryAndroidHardwareBufferANDROID = Option<
5716    unsafe extern "system" fn(
5717        device: Device,
5718        p_info: *const MemoryGetAndroidHardwareBufferInfoANDROID,
5719        p_buffer: *mut *mut core::ffi::c_void,
5720    ) -> Result,
5721>;
5722///[`vkCmdDrawIndirectCount`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndirectCount.html)
5723/**
5724Provided by **VK_GRAPHICS_VERSION_1_2**.*/
5725///
5726///# Thread Safety
5727///- `commandBuffer` must be externally synchronized
5728pub type PFN_vkCmdDrawIndirectCount = Option<
5729    unsafe extern "system" fn(
5730        command_buffer: CommandBuffer,
5731        buffer: Buffer,
5732        offset: u64,
5733        count_buffer: Buffer,
5734        count_buffer_offset: u64,
5735        max_draw_count: u32,
5736        stride: u32,
5737    ),
5738>;
5739///[`vkCmdDrawIndexedIndirectCount`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndexedIndirectCount.html)
5740/**
5741Provided by **VK_GRAPHICS_VERSION_1_2**.*/
5742///
5743///# Thread Safety
5744///- `commandBuffer` must be externally synchronized
5745pub type PFN_vkCmdDrawIndexedIndirectCount = Option<
5746    unsafe extern "system" fn(
5747        command_buffer: CommandBuffer,
5748        buffer: Buffer,
5749        offset: u64,
5750        count_buffer: Buffer,
5751        count_buffer_offset: u64,
5752        max_draw_count: u32,
5753        stride: u32,
5754    ),
5755>;
5756///[`vkCmdSetCheckpointNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCheckpointNV.html)
5757/**
5758Provided by **VK_NV_device_diagnostic_checkpoints**.*/
5759///
5760///# Thread Safety
5761///- `commandBuffer` must be externally synchronized
5762pub type PFN_vkCmdSetCheckpointNV = Option<
5763    unsafe extern "system" fn(
5764        command_buffer: CommandBuffer,
5765        p_checkpoint_marker: *const core::ffi::c_void,
5766    ),
5767>;
5768///[`vkGetQueueCheckpointDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetQueueCheckpointDataNV.html)
5769/**
5770Provided by **VK_NV_device_diagnostic_checkpoints**.*/
5771pub type PFN_vkGetQueueCheckpointDataNV = Option<
5772    unsafe extern "system" fn(
5773        queue: Queue,
5774        p_checkpoint_data_count: *mut u32,
5775        p_checkpoint_data: *mut CheckpointDataNV,
5776    ),
5777>;
5778///[`vkCmdBindTransformFeedbackBuffersEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindTransformFeedbackBuffersEXT.html)
5779/**
5780Provided by **VK_EXT_transform_feedback**.*/
5781///
5782///# Thread Safety
5783///- `commandBuffer` must be externally synchronized
5784pub type PFN_vkCmdBindTransformFeedbackBuffersEXT = Option<
5785    unsafe extern "system" fn(
5786        command_buffer: CommandBuffer,
5787        first_binding: u32,
5788        binding_count: u32,
5789        p_buffers: *const Buffer,
5790        p_offsets: *const u64,
5791        p_sizes: *const u64,
5792    ),
5793>;
5794///[`vkCmdBeginTransformFeedbackEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginTransformFeedbackEXT.html)
5795/**
5796Provided by **VK_EXT_transform_feedback**.*/
5797///
5798///# Thread Safety
5799///- `commandBuffer` must be externally synchronized
5800pub type PFN_vkCmdBeginTransformFeedbackEXT = Option<
5801    unsafe extern "system" fn(
5802        command_buffer: CommandBuffer,
5803        first_counter_buffer: u32,
5804        counter_buffer_count: u32,
5805        p_counter_buffers: *const Buffer,
5806        p_counter_buffer_offsets: *const u64,
5807    ),
5808>;
5809///[`vkCmdEndTransformFeedbackEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndTransformFeedbackEXT.html)
5810/**
5811Provided by **VK_EXT_transform_feedback**.*/
5812///
5813///# Thread Safety
5814///- `commandBuffer` must be externally synchronized
5815pub type PFN_vkCmdEndTransformFeedbackEXT = Option<
5816    unsafe extern "system" fn(
5817        command_buffer: CommandBuffer,
5818        first_counter_buffer: u32,
5819        counter_buffer_count: u32,
5820        p_counter_buffers: *const Buffer,
5821        p_counter_buffer_offsets: *const u64,
5822    ),
5823>;
5824///[`vkCmdBeginQueryIndexedEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginQueryIndexedEXT.html)
5825/**
5826Provided by **VK_EXT_transform_feedback**.*/
5827///
5828///# Thread Safety
5829///- `commandBuffer` must be externally synchronized
5830pub type PFN_vkCmdBeginQueryIndexedEXT = Option<
5831    unsafe extern "system" fn(
5832        command_buffer: CommandBuffer,
5833        query_pool: QueryPool,
5834        query: u32,
5835        flags: QueryControlFlags,
5836        index: u32,
5837    ),
5838>;
5839///[`vkCmdEndQueryIndexedEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndQueryIndexedEXT.html)
5840/**
5841Provided by **VK_EXT_transform_feedback**.*/
5842///
5843///# Thread Safety
5844///- `commandBuffer` must be externally synchronized
5845pub type PFN_vkCmdEndQueryIndexedEXT = Option<
5846    unsafe extern "system" fn(
5847        command_buffer: CommandBuffer,
5848        query_pool: QueryPool,
5849        query: u32,
5850        index: u32,
5851    ),
5852>;
5853///[`vkCmdDrawIndirectByteCountEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndirectByteCountEXT.html)
5854/**
5855Provided by **VK_EXT_transform_feedback**.*/
5856///
5857///# Thread Safety
5858///- `commandBuffer` must be externally synchronized
5859pub type PFN_vkCmdDrawIndirectByteCountEXT = Option<
5860    unsafe extern "system" fn(
5861        command_buffer: CommandBuffer,
5862        instance_count: u32,
5863        first_instance: u32,
5864        counter_buffer: Buffer,
5865        counter_buffer_offset: u64,
5866        counter_offset: u32,
5867        vertex_stride: u32,
5868    ),
5869>;
5870///[`vkCmdSetExclusiveScissorNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetExclusiveScissorNV.html)
5871/**
5872Provided by **VK_NV_scissor_exclusive**.*/
5873///
5874///# Thread Safety
5875///- `commandBuffer` must be externally synchronized
5876pub type PFN_vkCmdSetExclusiveScissorNV = Option<
5877    unsafe extern "system" fn(
5878        command_buffer: CommandBuffer,
5879        first_exclusive_scissor: u32,
5880        exclusive_scissor_count: u32,
5881        p_exclusive_scissors: *const Rect2D,
5882    ),
5883>;
5884///[`vkCmdSetExclusiveScissorEnableNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetExclusiveScissorEnableNV.html)
5885/**
5886Provided by **VK_NV_scissor_exclusive**.*/
5887///
5888///# Thread Safety
5889///- `commandBuffer` must be externally synchronized
5890pub type PFN_vkCmdSetExclusiveScissorEnableNV = Option<
5891    unsafe extern "system" fn(
5892        command_buffer: CommandBuffer,
5893        first_exclusive_scissor: u32,
5894        exclusive_scissor_count: u32,
5895        p_exclusive_scissor_enables: *const u32,
5896    ),
5897>;
5898///[`vkCmdBindShadingRateImageNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindShadingRateImageNV.html)
5899/**
5900Provided by **VK_NV_shading_rate_image**.*/
5901///
5902///# Thread Safety
5903///- `commandBuffer` must be externally synchronized
5904pub type PFN_vkCmdBindShadingRateImageNV = Option<
5905    unsafe extern "system" fn(
5906        command_buffer: CommandBuffer,
5907        image_view: ImageView,
5908        image_layout: ImageLayout,
5909    ),
5910>;
5911///[`vkCmdSetViewportShadingRatePaletteNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetViewportShadingRatePaletteNV.html)
5912/**
5913Provided by **VK_NV_shading_rate_image**.*/
5914///
5915///# Thread Safety
5916///- `commandBuffer` must be externally synchronized
5917pub type PFN_vkCmdSetViewportShadingRatePaletteNV = Option<
5918    unsafe extern "system" fn(
5919        command_buffer: CommandBuffer,
5920        first_viewport: u32,
5921        viewport_count: u32,
5922        p_shading_rate_palettes: *const ShadingRatePaletteNV,
5923    ),
5924>;
5925///[`vkCmdSetCoarseSampleOrderNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCoarseSampleOrderNV.html)
5926/**
5927Provided by **VK_NV_shading_rate_image**.*/
5928///
5929///# Thread Safety
5930///- `commandBuffer` must be externally synchronized
5931pub type PFN_vkCmdSetCoarseSampleOrderNV = Option<
5932    unsafe extern "system" fn(
5933        command_buffer: CommandBuffer,
5934        sample_order_type: CoarseSampleOrderTypeNV,
5935        custom_sample_order_count: u32,
5936        p_custom_sample_orders: *const CoarseSampleOrderCustomNV,
5937    ),
5938>;
5939///[`vkCmdDrawMeshTasksNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawMeshTasksNV.html)
5940/**
5941Provided by **VK_NV_mesh_shader**.*/
5942///
5943///# Thread Safety
5944///- `commandBuffer` must be externally synchronized
5945pub type PFN_vkCmdDrawMeshTasksNV = Option<
5946    unsafe extern "system" fn(
5947        command_buffer: CommandBuffer,
5948        task_count: u32,
5949        first_task: u32,
5950    ),
5951>;
5952///[`vkCmdDrawMeshTasksIndirectNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawMeshTasksIndirectNV.html)
5953/**
5954Provided by **VK_NV_mesh_shader**.*/
5955///
5956///# Thread Safety
5957///- `commandBuffer` must be externally synchronized
5958pub type PFN_vkCmdDrawMeshTasksIndirectNV = Option<
5959    unsafe extern "system" fn(
5960        command_buffer: CommandBuffer,
5961        buffer: Buffer,
5962        offset: u64,
5963        draw_count: u32,
5964        stride: u32,
5965    ),
5966>;
5967///[`vkCmdDrawMeshTasksIndirectCountNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawMeshTasksIndirectCountNV.html)
5968/**
5969Provided by **VK_NV_mesh_shader**.*/
5970///
5971///# Thread Safety
5972///- `commandBuffer` must be externally synchronized
5973pub type PFN_vkCmdDrawMeshTasksIndirectCountNV = Option<
5974    unsafe extern "system" fn(
5975        command_buffer: CommandBuffer,
5976        buffer: Buffer,
5977        offset: u64,
5978        count_buffer: Buffer,
5979        count_buffer_offset: u64,
5980        max_draw_count: u32,
5981        stride: u32,
5982    ),
5983>;
5984///[`vkCmdDrawMeshTasksEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawMeshTasksEXT.html)
5985/**
5986Provided by **VK_EXT_mesh_shader**.*/
5987///
5988///# Thread Safety
5989///- `commandBuffer` must be externally synchronized
5990pub type PFN_vkCmdDrawMeshTasksEXT = Option<
5991    unsafe extern "system" fn(
5992        command_buffer: CommandBuffer,
5993        group_count_x: u32,
5994        group_count_y: u32,
5995        group_count_z: u32,
5996    ),
5997>;
5998///[`vkCmdDrawMeshTasksIndirectEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawMeshTasksIndirectEXT.html)
5999/**
6000Provided by **VK_EXT_mesh_shader**.*/
6001///
6002///# Thread Safety
6003///- `commandBuffer` must be externally synchronized
6004pub type PFN_vkCmdDrawMeshTasksIndirectEXT = Option<
6005    unsafe extern "system" fn(
6006        command_buffer: CommandBuffer,
6007        buffer: Buffer,
6008        offset: u64,
6009        draw_count: u32,
6010        stride: u32,
6011    ),
6012>;
6013///[`vkCmdDrawMeshTasksIndirectCountEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawMeshTasksIndirectCountEXT.html)
6014/**
6015Provided by **VK_EXT_mesh_shader**.*/
6016///
6017///# Thread Safety
6018///- `commandBuffer` must be externally synchronized
6019pub type PFN_vkCmdDrawMeshTasksIndirectCountEXT = Option<
6020    unsafe extern "system" fn(
6021        command_buffer: CommandBuffer,
6022        buffer: Buffer,
6023        offset: u64,
6024        count_buffer: Buffer,
6025        count_buffer_offset: u64,
6026        max_draw_count: u32,
6027        stride: u32,
6028    ),
6029>;
6030///[`vkCompileDeferredNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCompileDeferredNV.html)
6031/**
6032Provided by **VK_NV_ray_tracing**.*/
6033///
6034///# Success Codes
6035///- `VK_SUCCESS`
6036///
6037///# Error Codes
6038///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6039///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
6040///- `VK_ERROR_UNKNOWN`
6041///- `VK_ERROR_VALIDATION_FAILED`
6042pub type PFN_vkCompileDeferredNV = Option<
6043    unsafe extern "system" fn(device: Device, pipeline: Pipeline, shader: u32) -> Result,
6044>;
6045///[`vkCreateAccelerationStructureNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateAccelerationStructureNV.html)
6046/**
6047Provided by **VK_NV_ray_tracing**.*/
6048///
6049///# Success Codes
6050///- `VK_SUCCESS`
6051///
6052///# Error Codes
6053///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6054///- `VK_ERROR_UNKNOWN`
6055///- `VK_ERROR_VALIDATION_FAILED`
6056pub type PFN_vkCreateAccelerationStructureNV = Option<
6057    unsafe extern "system" fn(
6058        device: Device,
6059        p_create_info: *const AccelerationStructureCreateInfoNV,
6060        p_allocator: *const AllocationCallbacks,
6061        p_acceleration_structure: *mut AccelerationStructureNV,
6062    ) -> Result,
6063>;
6064///[`vkCmdBindInvocationMaskHUAWEI`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindInvocationMaskHUAWEI.html)
6065/**
6066Provided by **VK_HUAWEI_invocation_mask**.*/
6067///
6068///# Thread Safety
6069///- `commandBuffer` must be externally synchronized
6070pub type PFN_vkCmdBindInvocationMaskHUAWEI = Option<
6071    unsafe extern "system" fn(
6072        command_buffer: CommandBuffer,
6073        image_view: ImageView,
6074        image_layout: ImageLayout,
6075    ),
6076>;
6077///[`vkDestroyAccelerationStructureKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyAccelerationStructureKHR.html)
6078/**
6079Provided by **VK_KHR_acceleration_structure**.*/
6080///
6081///# Thread Safety
6082///- `accelerationStructure` must be externally synchronized
6083pub type PFN_vkDestroyAccelerationStructureKHR = Option<
6084    unsafe extern "system" fn(
6085        device: Device,
6086        acceleration_structure: AccelerationStructureKHR,
6087        p_allocator: *const AllocationCallbacks,
6088    ),
6089>;
6090///[`vkDestroyAccelerationStructureNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyAccelerationStructureNV.html)
6091/**
6092Provided by **VK_NV_ray_tracing**.*/
6093///
6094///# Thread Safety
6095///- `accelerationStructure` must be externally synchronized
6096pub type PFN_vkDestroyAccelerationStructureNV = Option<
6097    unsafe extern "system" fn(
6098        device: Device,
6099        acceleration_structure: AccelerationStructureNV,
6100        p_allocator: *const AllocationCallbacks,
6101    ),
6102>;
6103///[`vkGetAccelerationStructureMemoryRequirementsNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureMemoryRequirementsNV.html)
6104/**
6105Provided by **VK_NV_ray_tracing**.*/
6106pub type PFN_vkGetAccelerationStructureMemoryRequirementsNV = Option<
6107    unsafe extern "system" fn(
6108        device: Device,
6109        p_info: *const AccelerationStructureMemoryRequirementsInfoNV,
6110        p_memory_requirements: *mut MemoryRequirements2KHR,
6111    ),
6112>;
6113///[`vkBindAccelerationStructureMemoryNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindAccelerationStructureMemoryNV.html)
6114/**
6115Provided by **VK_NV_ray_tracing**.*/
6116///
6117///# Success Codes
6118///- `VK_SUCCESS`
6119///
6120///# Error Codes
6121///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6122///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
6123///- `VK_ERROR_UNKNOWN`
6124///- `VK_ERROR_VALIDATION_FAILED`
6125pub type PFN_vkBindAccelerationStructureMemoryNV = Option<
6126    unsafe extern "system" fn(
6127        device: Device,
6128        bind_info_count: u32,
6129        p_bind_infos: *const BindAccelerationStructureMemoryInfoNV,
6130    ) -> Result,
6131>;
6132///[`vkCmdCopyAccelerationStructureNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyAccelerationStructureNV.html)
6133/**
6134Provided by **VK_NV_ray_tracing**.*/
6135///
6136///# Thread Safety
6137///- `commandBuffer` must be externally synchronized
6138pub type PFN_vkCmdCopyAccelerationStructureNV = Option<
6139    unsafe extern "system" fn(
6140        command_buffer: CommandBuffer,
6141        dst: AccelerationStructureNV,
6142        src: AccelerationStructureNV,
6143        mode: CopyAccelerationStructureModeKHR,
6144    ),
6145>;
6146///[`vkCmdCopyAccelerationStructureKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyAccelerationStructureKHR.html)
6147/**
6148Provided by **VK_KHR_acceleration_structure**.*/
6149///
6150///# Thread Safety
6151///- `commandBuffer` must be externally synchronized
6152pub type PFN_vkCmdCopyAccelerationStructureKHR = Option<
6153    unsafe extern "system" fn(
6154        command_buffer: CommandBuffer,
6155        p_info: *const CopyAccelerationStructureInfoKHR,
6156    ),
6157>;
6158///[`vkCopyAccelerationStructureKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyAccelerationStructureKHR.html)
6159/**
6160Provided by **VK_KHR_acceleration_structure**.*/
6161///
6162///# Success Codes
6163///- `VK_SUCCESS`
6164///- `VK_OPERATION_DEFERRED_KHR`
6165///- `VK_OPERATION_NOT_DEFERRED_KHR`
6166///
6167///# Error Codes
6168///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6169///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
6170///- `VK_ERROR_UNKNOWN`
6171///- `VK_ERROR_VALIDATION_FAILED`
6172pub type PFN_vkCopyAccelerationStructureKHR = Option<
6173    unsafe extern "system" fn(
6174        device: Device,
6175        deferred_operation: DeferredOperationKHR,
6176        p_info: *const CopyAccelerationStructureInfoKHR,
6177    ) -> Result,
6178>;
6179///[`vkCmdCopyAccelerationStructureToMemoryKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyAccelerationStructureToMemoryKHR.html)
6180/**
6181Provided by **VK_KHR_acceleration_structure**.*/
6182///
6183///# Thread Safety
6184///- `commandBuffer` must be externally synchronized
6185pub type PFN_vkCmdCopyAccelerationStructureToMemoryKHR = Option<
6186    unsafe extern "system" fn(
6187        command_buffer: CommandBuffer,
6188        p_info: *const CopyAccelerationStructureToMemoryInfoKHR,
6189    ),
6190>;
6191///[`vkCopyAccelerationStructureToMemoryKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyAccelerationStructureToMemoryKHR.html)
6192/**
6193Provided by **VK_KHR_acceleration_structure**.*/
6194///
6195///# Success Codes
6196///- `VK_SUCCESS`
6197///- `VK_OPERATION_DEFERRED_KHR`
6198///- `VK_OPERATION_NOT_DEFERRED_KHR`
6199///
6200///# Error Codes
6201///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6202///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
6203///- `VK_ERROR_UNKNOWN`
6204///- `VK_ERROR_VALIDATION_FAILED`
6205pub type PFN_vkCopyAccelerationStructureToMemoryKHR = Option<
6206    unsafe extern "system" fn(
6207        device: Device,
6208        deferred_operation: DeferredOperationKHR,
6209        p_info: *const CopyAccelerationStructureToMemoryInfoKHR,
6210    ) -> Result,
6211>;
6212///[`vkCmdCopyMemoryToAccelerationStructureKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryToAccelerationStructureKHR.html)
6213/**
6214Provided by **VK_KHR_acceleration_structure**.*/
6215///
6216///# Thread Safety
6217///- `commandBuffer` must be externally synchronized
6218pub type PFN_vkCmdCopyMemoryToAccelerationStructureKHR = Option<
6219    unsafe extern "system" fn(
6220        command_buffer: CommandBuffer,
6221        p_info: *const CopyMemoryToAccelerationStructureInfoKHR,
6222    ),
6223>;
6224///[`vkCopyMemoryToAccelerationStructureKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMemoryToAccelerationStructureKHR.html)
6225/**
6226Provided by **VK_KHR_acceleration_structure**.*/
6227///
6228///# Success Codes
6229///- `VK_SUCCESS`
6230///- `VK_OPERATION_DEFERRED_KHR`
6231///- `VK_OPERATION_NOT_DEFERRED_KHR`
6232///
6233///# Error Codes
6234///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6235///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
6236///- `VK_ERROR_UNKNOWN`
6237///- `VK_ERROR_VALIDATION_FAILED`
6238pub type PFN_vkCopyMemoryToAccelerationStructureKHR = Option<
6239    unsafe extern "system" fn(
6240        device: Device,
6241        deferred_operation: DeferredOperationKHR,
6242        p_info: *const CopyMemoryToAccelerationStructureInfoKHR,
6243    ) -> Result,
6244>;
6245///[`vkCmdWriteAccelerationStructuresPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWriteAccelerationStructuresPropertiesKHR.html)
6246/**
6247Provided by **VK_KHR_acceleration_structure**.*/
6248///
6249///# Thread Safety
6250///- `commandBuffer` must be externally synchronized
6251pub type PFN_vkCmdWriteAccelerationStructuresPropertiesKHR = Option<
6252    unsafe extern "system" fn(
6253        command_buffer: CommandBuffer,
6254        acceleration_structure_count: u32,
6255        p_acceleration_structures: *const AccelerationStructureKHR,
6256        query_type: QueryType,
6257        query_pool: QueryPool,
6258        first_query: u32,
6259    ),
6260>;
6261///[`vkCmdWriteAccelerationStructuresPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWriteAccelerationStructuresPropertiesNV.html)
6262/**
6263Provided by **VK_NV_ray_tracing**.*/
6264///
6265///# Thread Safety
6266///- `commandBuffer` must be externally synchronized
6267pub type PFN_vkCmdWriteAccelerationStructuresPropertiesNV = Option<
6268    unsafe extern "system" fn(
6269        command_buffer: CommandBuffer,
6270        acceleration_structure_count: u32,
6271        p_acceleration_structures: *const AccelerationStructureNV,
6272        query_type: QueryType,
6273        query_pool: QueryPool,
6274        first_query: u32,
6275    ),
6276>;
6277///[`vkCmdBuildAccelerationStructureNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBuildAccelerationStructureNV.html)
6278/**
6279Provided by **VK_NV_ray_tracing**.*/
6280///
6281///# Thread Safety
6282///- `commandBuffer` must be externally synchronized
6283pub type PFN_vkCmdBuildAccelerationStructureNV = Option<
6284    unsafe extern "system" fn(
6285        command_buffer: CommandBuffer,
6286        p_info: *const AccelerationStructureInfoNV,
6287        instance_data: Buffer,
6288        instance_offset: u64,
6289        update: u32,
6290        dst: AccelerationStructureNV,
6291        src: AccelerationStructureNV,
6292        scratch: Buffer,
6293        scratch_offset: u64,
6294    ),
6295>;
6296///[`vkWriteAccelerationStructuresPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkWriteAccelerationStructuresPropertiesKHR.html)
6297/**
6298Provided by **VK_KHR_acceleration_structure**.*/
6299///
6300///# Success Codes
6301///- `VK_SUCCESS`
6302///
6303///# Error Codes
6304///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6305///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
6306///- `VK_ERROR_UNKNOWN`
6307///- `VK_ERROR_VALIDATION_FAILED`
6308pub type PFN_vkWriteAccelerationStructuresPropertiesKHR = Option<
6309    unsafe extern "system" fn(
6310        device: Device,
6311        acceleration_structure_count: u32,
6312        p_acceleration_structures: *const AccelerationStructureKHR,
6313        query_type: QueryType,
6314        data_size: usize,
6315        p_data: *mut core::ffi::c_void,
6316        stride: usize,
6317    ) -> Result,
6318>;
6319///[`vkCmdTraceRaysKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdTraceRaysKHR.html)
6320/**
6321Provided by **VK_KHR_ray_tracing_pipeline**.*/
6322///
6323///# Thread Safety
6324///- `commandBuffer` must be externally synchronized
6325pub type PFN_vkCmdTraceRaysKHR = Option<
6326    unsafe extern "system" fn(
6327        command_buffer: CommandBuffer,
6328        p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR,
6329        p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR,
6330        p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR,
6331        p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR,
6332        width: u32,
6333        height: u32,
6334        depth: u32,
6335    ),
6336>;
6337///[`vkCmdTraceRaysNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdTraceRaysNV.html)
6338/**
6339Provided by **VK_NV_ray_tracing**.*/
6340///
6341///# Thread Safety
6342///- `commandBuffer` must be externally synchronized
6343pub type PFN_vkCmdTraceRaysNV = Option<
6344    unsafe extern "system" fn(
6345        command_buffer: CommandBuffer,
6346        raygen_shader_binding_table_buffer: Buffer,
6347        raygen_shader_binding_offset: u64,
6348        miss_shader_binding_table_buffer: Buffer,
6349        miss_shader_binding_offset: u64,
6350        miss_shader_binding_stride: u64,
6351        hit_shader_binding_table_buffer: Buffer,
6352        hit_shader_binding_offset: u64,
6353        hit_shader_binding_stride: u64,
6354        callable_shader_binding_table_buffer: Buffer,
6355        callable_shader_binding_offset: u64,
6356        callable_shader_binding_stride: u64,
6357        width: u32,
6358        height: u32,
6359        depth: u32,
6360    ),
6361>;
6362///[`vkGetRayTracingShaderGroupHandlesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingShaderGroupHandlesKHR.html)
6363/**
6364Provided by **VK_KHR_ray_tracing_pipeline**.*/
6365///
6366///# Success Codes
6367///- `VK_SUCCESS`
6368///
6369///# Error Codes
6370///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6371///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
6372///- `VK_ERROR_UNKNOWN`
6373///- `VK_ERROR_VALIDATION_FAILED`
6374pub type PFN_vkGetRayTracingShaderGroupHandlesKHR = Option<
6375    unsafe extern "system" fn(
6376        device: Device,
6377        pipeline: Pipeline,
6378        first_group: u32,
6379        group_count: u32,
6380        data_size: usize,
6381        p_data: *mut core::ffi::c_void,
6382    ) -> Result,
6383>;
6384///[`vkGetRayTracingCaptureReplayShaderGroupHandlesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingCaptureReplayShaderGroupHandlesKHR.html)
6385/**
6386Provided by **VK_KHR_ray_tracing_pipeline**.*/
6387///
6388///# Success Codes
6389///- `VK_SUCCESS`
6390///
6391///# Error Codes
6392///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6393///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
6394///- `VK_ERROR_UNKNOWN`
6395///- `VK_ERROR_VALIDATION_FAILED`
6396pub type PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = Option<
6397    unsafe extern "system" fn(
6398        device: Device,
6399        pipeline: Pipeline,
6400        first_group: u32,
6401        group_count: u32,
6402        data_size: usize,
6403        p_data: *mut core::ffi::c_void,
6404    ) -> Result,
6405>;
6406///[`vkGetAccelerationStructureHandleNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureHandleNV.html)
6407/**
6408Provided by **VK_NV_ray_tracing**.*/
6409///
6410///# Success Codes
6411///- `VK_SUCCESS`
6412///
6413///# Error Codes
6414///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6415///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
6416///- `VK_ERROR_UNKNOWN`
6417///- `VK_ERROR_VALIDATION_FAILED`
6418pub type PFN_vkGetAccelerationStructureHandleNV = Option<
6419    unsafe extern "system" fn(
6420        device: Device,
6421        acceleration_structure: AccelerationStructureNV,
6422        data_size: usize,
6423        p_data: *mut core::ffi::c_void,
6424    ) -> Result,
6425>;
6426///[`vkCreateRayTracingPipelinesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesNV.html)
6427/**
6428Provided by **VK_NV_ray_tracing**.*/
6429///
6430///# Success Codes
6431///- `VK_SUCCESS`
6432///- `VK_PIPELINE_COMPILE_REQUIRED_EXT`
6433///
6434///# Error Codes
6435///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6436///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
6437///- `VK_ERROR_INVALID_SHADER_NV`
6438///- `VK_ERROR_UNKNOWN`
6439///- `VK_ERROR_VALIDATION_FAILED`
6440///
6441///# Thread Safety
6442///- `pipelineCache` must be externally synchronized
6443pub type PFN_vkCreateRayTracingPipelinesNV = Option<
6444    unsafe extern "system" fn(
6445        device: Device,
6446        pipeline_cache: PipelineCache,
6447        create_info_count: u32,
6448        p_create_infos: *const RayTracingPipelineCreateInfoNV,
6449        p_allocator: *const AllocationCallbacks,
6450        p_pipelines: *mut Pipeline,
6451    ) -> Result,
6452>;
6453///[`vkCreateRayTracingPipelinesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesKHR.html)
6454/**
6455Provided by **VK_KHR_ray_tracing_pipeline**.*/
6456///
6457///# Success Codes
6458///- `VK_SUCCESS`
6459///- `VK_OPERATION_DEFERRED_KHR`
6460///- `VK_OPERATION_NOT_DEFERRED_KHR`
6461///- `VK_PIPELINE_COMPILE_REQUIRED_EXT`
6462///
6463///# Error Codes
6464///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6465///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
6466///- `VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS`
6467///- `VK_ERROR_UNKNOWN`
6468///- `VK_ERROR_VALIDATION_FAILED`
6469///
6470///# Thread Safety
6471///- `pipelineCache` must be externally synchronized
6472pub type PFN_vkCreateRayTracingPipelinesKHR = Option<
6473    unsafe extern "system" fn(
6474        device: Device,
6475        deferred_operation: DeferredOperationKHR,
6476        pipeline_cache: PipelineCache,
6477        create_info_count: u32,
6478        p_create_infos: *const RayTracingPipelineCreateInfoKHR,
6479        p_allocator: *const AllocationCallbacks,
6480        p_pipelines: *mut Pipeline,
6481    ) -> Result,
6482>;
6483///[`vkGetPhysicalDeviceCooperativeMatrixPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeMatrixPropertiesNV.html)
6484/**
6485Provided by **VK_NV_cooperative_matrix**.*/
6486///
6487///# Success Codes
6488///- `VK_SUCCESS`
6489///- `VK_INCOMPLETE`
6490///
6491///# Error Codes
6492///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6493///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
6494///- `VK_ERROR_UNKNOWN`
6495///- `VK_ERROR_VALIDATION_FAILED`
6496pub type PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = Option<
6497    unsafe extern "system" fn(
6498        physical_device: PhysicalDevice,
6499        p_property_count: *mut u32,
6500        p_properties: *mut CooperativeMatrixPropertiesNV,
6501    ) -> Result,
6502>;
6503///[`vkCmdTraceRaysIndirectKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdTraceRaysIndirectKHR.html)
6504/**
6505Provided by **VK_KHR_ray_tracing_pipeline**.*/
6506///
6507///# Thread Safety
6508///- `commandBuffer` must be externally synchronized
6509pub type PFN_vkCmdTraceRaysIndirectKHR = Option<
6510    unsafe extern "system" fn(
6511        command_buffer: CommandBuffer,
6512        p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR,
6513        p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR,
6514        p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR,
6515        p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR,
6516        indirect_device_address: u64,
6517    ),
6518>;
6519///[`vkCmdTraceRaysIndirect2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdTraceRaysIndirect2KHR.html)
6520/**
6521Provided by **VK_KHR_ray_tracing_maintenance1**.*/
6522///
6523///# Thread Safety
6524///- `commandBuffer` must be externally synchronized
6525pub type PFN_vkCmdTraceRaysIndirect2KHR = Option<
6526    unsafe extern "system" fn(
6527        command_buffer: CommandBuffer,
6528        indirect_device_address: u64,
6529    ),
6530>;
6531///[`vkGetClusterAccelerationStructureBuildSizesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetClusterAccelerationStructureBuildSizesNV.html)
6532/**
6533Provided by **VK_NV_cluster_acceleration_structure**.*/
6534pub type PFN_vkGetClusterAccelerationStructureBuildSizesNV = Option<
6535    unsafe extern "system" fn(
6536        device: Device,
6537        p_info: *const ClusterAccelerationStructureInputInfoNV,
6538        p_size_info: *mut AccelerationStructureBuildSizesInfoKHR,
6539    ),
6540>;
6541///[`vkCmdBuildClusterAccelerationStructureIndirectNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBuildClusterAccelerationStructureIndirectNV.html)
6542/**
6543Provided by **VK_NV_cluster_acceleration_structure**.*/
6544///
6545///# Thread Safety
6546///- `commandBuffer` must be externally synchronized
6547pub type PFN_vkCmdBuildClusterAccelerationStructureIndirectNV = Option<
6548    unsafe extern "system" fn(
6549        command_buffer: CommandBuffer,
6550        p_command_infos: *const ClusterAccelerationStructureCommandsInfoNV,
6551    ),
6552>;
6553///[`vkGetDeviceAccelerationStructureCompatibilityKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceAccelerationStructureCompatibilityKHR.html)
6554/**
6555Provided by **VK_KHR_acceleration_structure**.*/
6556pub type PFN_vkGetDeviceAccelerationStructureCompatibilityKHR = Option<
6557    unsafe extern "system" fn(
6558        device: Device,
6559        p_version_info: *const AccelerationStructureVersionInfoKHR,
6560        p_compatibility: *mut AccelerationStructureCompatibilityKHR,
6561    ),
6562>;
6563///[`vkGetRayTracingShaderGroupStackSizeKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingShaderGroupStackSizeKHR.html)
6564/**
6565Provided by **VK_KHR_ray_tracing_pipeline**.*/
6566pub type PFN_vkGetRayTracingShaderGroupStackSizeKHR = Option<
6567    unsafe extern "system" fn(
6568        device: Device,
6569        pipeline: Pipeline,
6570        group: u32,
6571        group_shader: ShaderGroupShaderKHR,
6572    ) -> u64,
6573>;
6574///[`vkCmdSetRayTracingPipelineStackSizeKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRayTracingPipelineStackSizeKHR.html)
6575/**
6576Provided by **VK_KHR_ray_tracing_pipeline**.*/
6577///
6578///# Thread Safety
6579///- `commandBuffer` must be externally synchronized
6580pub type PFN_vkCmdSetRayTracingPipelineStackSizeKHR = Option<
6581    unsafe extern "system" fn(command_buffer: CommandBuffer, pipeline_stack_size: u32),
6582>;
6583///[`vkGetImageViewHandleNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageViewHandleNVX.html)
6584/**
6585Provided by **VK_NVX_image_view_handle**.*/
6586pub type PFN_vkGetImageViewHandleNVX = Option<
6587    unsafe extern "system" fn(
6588        device: Device,
6589        p_info: *const ImageViewHandleInfoNVX,
6590    ) -> u32,
6591>;
6592///[`vkGetImageViewHandle64NVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageViewHandle64NVX.html)
6593/**
6594Provided by **VK_NVX_image_view_handle**.*/
6595pub type PFN_vkGetImageViewHandle64NVX = Option<
6596    unsafe extern "system" fn(
6597        device: Device,
6598        p_info: *const ImageViewHandleInfoNVX,
6599    ) -> u64,
6600>;
6601///[`vkGetImageViewAddressNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageViewAddressNVX.html)
6602/**
6603Provided by **VK_NVX_image_view_handle**.*/
6604///
6605///# Success Codes
6606///- `VK_SUCCESS`
6607///
6608///# Error Codes
6609///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6610///- `VK_ERROR_UNKNOWN`
6611///- `VK_ERROR_VALIDATION_FAILED`
6612pub type PFN_vkGetImageViewAddressNVX = Option<
6613    unsafe extern "system" fn(
6614        device: Device,
6615        image_view: ImageView,
6616        p_properties: *mut ImageViewAddressPropertiesNVX,
6617    ) -> Result,
6618>;
6619///[`vkGetDeviceCombinedImageSamplerIndexNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceCombinedImageSamplerIndexNVX.html)
6620/**
6621Provided by **VK_NVX_image_view_handle**.*/
6622pub type PFN_vkGetDeviceCombinedImageSamplerIndexNVX = Option<
6623    unsafe extern "system" fn(
6624        device: Device,
6625        image_view_index: u64,
6626        sampler_index: u64,
6627    ) -> u64,
6628>;
6629///[`vkGetPhysicalDeviceSurfacePresentModes2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfacePresentModes2EXT.html)
6630/**
6631Provided by **VK_EXT_full_screen_exclusive**.*/
6632///
6633///# Success Codes
6634///- `VK_SUCCESS`
6635///- `VK_INCOMPLETE`
6636///
6637///# Error Codes
6638///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6639///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
6640///- `VK_ERROR_SURFACE_LOST_KHR`
6641///- `VK_ERROR_UNKNOWN`
6642///- `VK_ERROR_VALIDATION_FAILED`
6643pub type PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT = Option<
6644    unsafe extern "system" fn(
6645        physical_device: PhysicalDevice,
6646        p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
6647        p_present_mode_count: *mut u32,
6648        p_present_modes: *mut PresentModeKHR,
6649    ) -> Result,
6650>;
6651///[`vkGetDeviceGroupSurfacePresentModes2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupSurfacePresentModes2EXT.html)
6652/**
6653Provided by **VK_EXT_full_screen_exclusive**.*/
6654///
6655///# Success Codes
6656///- `VK_SUCCESS`
6657///
6658///# Error Codes
6659///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6660///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
6661///- `VK_ERROR_SURFACE_LOST_KHR`
6662///- `VK_ERROR_UNKNOWN`
6663///- `VK_ERROR_VALIDATION_FAILED`
6664pub type PFN_vkGetDeviceGroupSurfacePresentModes2EXT = Option<
6665    unsafe extern "system" fn(
6666        device: Device,
6667        p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
6668        p_modes: *mut DeviceGroupPresentModeFlagsKHR,
6669    ) -> Result,
6670>;
6671///[`vkAcquireFullScreenExclusiveModeEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireFullScreenExclusiveModeEXT.html)
6672/**
6673Provided by **VK_EXT_full_screen_exclusive**.*/
6674///
6675///# Success Codes
6676///- `VK_SUCCESS`
6677///
6678///# Error Codes
6679///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6680///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
6681///- `VK_ERROR_INITIALIZATION_FAILED`
6682///- `VK_ERROR_SURFACE_LOST_KHR`
6683///- `VK_ERROR_UNKNOWN`
6684///- `VK_ERROR_VALIDATION_FAILED`
6685pub type PFN_vkAcquireFullScreenExclusiveModeEXT = Option<
6686    unsafe extern "system" fn(device: Device, swapchain: SwapchainKHR) -> Result,
6687>;
6688///[`vkReleaseFullScreenExclusiveModeEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseFullScreenExclusiveModeEXT.html)
6689/**
6690Provided by **VK_EXT_full_screen_exclusive**.*/
6691///
6692///# Success Codes
6693///- `VK_SUCCESS`
6694///
6695///# Error Codes
6696///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6697///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
6698///- `VK_ERROR_SURFACE_LOST_KHR`
6699///- `VK_ERROR_UNKNOWN`
6700///- `VK_ERROR_VALIDATION_FAILED`
6701pub type PFN_vkReleaseFullScreenExclusiveModeEXT = Option<
6702    unsafe extern "system" fn(device: Device, swapchain: SwapchainKHR) -> Result,
6703>;
6704///[`vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR.html)
6705/**
6706Provided by **VK_KHR_performance_query**.*/
6707///
6708///# Success Codes
6709///- `VK_SUCCESS`
6710///- `VK_INCOMPLETE`
6711///
6712///# Error Codes
6713///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6714///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
6715///- `VK_ERROR_INITIALIZATION_FAILED`
6716///- `VK_ERROR_UNKNOWN`
6717///- `VK_ERROR_VALIDATION_FAILED`
6718pub type PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = Option<
6719    unsafe extern "system" fn(
6720        physical_device: PhysicalDevice,
6721        queue_family_index: u32,
6722        p_counter_count: *mut u32,
6723        p_counters: *mut PerformanceCounterKHR,
6724        p_counter_descriptions: *mut PerformanceCounterDescriptionKHR,
6725    ) -> Result,
6726>;
6727///[`vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR.html)
6728/**
6729Provided by **VK_KHR_performance_query**.*/
6730pub type PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = Option<
6731    unsafe extern "system" fn(
6732        physical_device: PhysicalDevice,
6733        p_performance_query_create_info: *const QueryPoolPerformanceCreateInfoKHR,
6734        p_num_passes: *mut u32,
6735    ),
6736>;
6737///[`vkAcquireProfilingLockKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireProfilingLockKHR.html)
6738/**
6739Provided by **VK_KHR_performance_query**.*/
6740///
6741///# Success Codes
6742///- `VK_SUCCESS`
6743///
6744///# Error Codes
6745///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6746///- `VK_TIMEOUT`
6747///- `VK_ERROR_UNKNOWN`
6748///- `VK_ERROR_VALIDATION_FAILED`
6749pub type PFN_vkAcquireProfilingLockKHR = Option<
6750    unsafe extern "system" fn(
6751        device: Device,
6752        p_info: *const AcquireProfilingLockInfoKHR,
6753    ) -> Result,
6754>;
6755///[`vkReleaseProfilingLockKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseProfilingLockKHR.html)
6756/**
6757Provided by **VK_KHR_performance_query**.*/
6758pub type PFN_vkReleaseProfilingLockKHR = Option<
6759    unsafe extern "system" fn(device: Device),
6760>;
6761///[`vkGetImageDrmFormatModifierPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageDrmFormatModifierPropertiesEXT.html)
6762/**
6763Provided by **VK_EXT_image_drm_format_modifier**.*/
6764///
6765///# Success Codes
6766///- `VK_SUCCESS`
6767///
6768///# Error Codes
6769///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6770///- `VK_ERROR_UNKNOWN`
6771///- `VK_ERROR_VALIDATION_FAILED`
6772pub type PFN_vkGetImageDrmFormatModifierPropertiesEXT = Option<
6773    unsafe extern "system" fn(
6774        device: Device,
6775        image: Image,
6776        p_properties: *mut ImageDrmFormatModifierPropertiesEXT,
6777    ) -> Result,
6778>;
6779///[`vkGetBufferOpaqueCaptureAddress`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferOpaqueCaptureAddress.html)
6780/**
6781Provided by **VK_BASE_VERSION_1_2**.*/
6782pub type PFN_vkGetBufferOpaqueCaptureAddress = Option<
6783    unsafe extern "system" fn(
6784        device: Device,
6785        p_info: *const BufferDeviceAddressInfo,
6786    ) -> u64,
6787>;
6788///[`vkGetBufferDeviceAddress`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferDeviceAddress.html)
6789/**
6790Provided by **VK_BASE_VERSION_1_2**.*/
6791pub type PFN_vkGetBufferDeviceAddress = Option<
6792    unsafe extern "system" fn(
6793        device: Device,
6794        p_info: *const BufferDeviceAddressInfo,
6795    ) -> u64,
6796>;
6797///[`vkCreateHeadlessSurfaceEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateHeadlessSurfaceEXT.html)
6798/**
6799Provided by **VK_EXT_headless_surface**.*/
6800///
6801///# Success Codes
6802///- `VK_SUCCESS`
6803///
6804///# Error Codes
6805///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6806///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
6807///- `VK_ERROR_UNKNOWN`
6808///- `VK_ERROR_VALIDATION_FAILED`
6809pub type PFN_vkCreateHeadlessSurfaceEXT = Option<
6810    unsafe extern "system" fn(
6811        instance: Instance,
6812        p_create_info: *const HeadlessSurfaceCreateInfoEXT,
6813        p_allocator: *const AllocationCallbacks,
6814        p_surface: *mut SurfaceKHR,
6815    ) -> Result,
6816>;
6817///[`vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV.html)
6818/**
6819Provided by **VK_NV_coverage_reduction_mode**.*/
6820///
6821///# Success Codes
6822///- `VK_SUCCESS`
6823///- `VK_INCOMPLETE`
6824///
6825///# Error Codes
6826///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6827///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
6828///- `VK_ERROR_UNKNOWN`
6829///- `VK_ERROR_VALIDATION_FAILED`
6830pub type PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = Option<
6831    unsafe extern "system" fn(
6832        physical_device: PhysicalDevice,
6833        p_combination_count: *mut u32,
6834        p_combinations: *mut FramebufferMixedSamplesCombinationNV,
6835    ) -> Result,
6836>;
6837///[`vkInitializePerformanceApiINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkInitializePerformanceApiINTEL.html)
6838/**
6839Provided by **VK_INTEL_performance_query**.*/
6840///
6841///# Success Codes
6842///- `VK_SUCCESS`
6843///
6844///# Error Codes
6845///- `VK_ERROR_TOO_MANY_OBJECTS`
6846///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6847///- `VK_ERROR_UNKNOWN`
6848///- `VK_ERROR_VALIDATION_FAILED`
6849pub type PFN_vkInitializePerformanceApiINTEL = Option<
6850    unsafe extern "system" fn(
6851        device: Device,
6852        p_initialize_info: *const InitializePerformanceApiInfoINTEL,
6853    ) -> Result,
6854>;
6855///[`vkUninitializePerformanceApiINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkUninitializePerformanceApiINTEL.html)
6856/**
6857Provided by **VK_INTEL_performance_query**.*/
6858pub type PFN_vkUninitializePerformanceApiINTEL = Option<
6859    unsafe extern "system" fn(device: Device),
6860>;
6861///[`vkCmdSetPerformanceMarkerINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPerformanceMarkerINTEL.html)
6862/**
6863Provided by **VK_INTEL_performance_query**.*/
6864///
6865///# Success Codes
6866///- `VK_SUCCESS`
6867///
6868///# Error Codes
6869///- `VK_ERROR_TOO_MANY_OBJECTS`
6870///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6871///- `VK_ERROR_UNKNOWN`
6872///- `VK_ERROR_VALIDATION_FAILED`
6873///
6874///# Thread Safety
6875///- `commandBuffer` must be externally synchronized
6876pub type PFN_vkCmdSetPerformanceMarkerINTEL = Option<
6877    unsafe extern "system" fn(
6878        command_buffer: CommandBuffer,
6879        p_marker_info: *const PerformanceMarkerInfoINTEL,
6880    ) -> Result,
6881>;
6882///[`vkCmdSetPerformanceStreamMarkerINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPerformanceStreamMarkerINTEL.html)
6883/**
6884Provided by **VK_INTEL_performance_query**.*/
6885///
6886///# Success Codes
6887///- `VK_SUCCESS`
6888///
6889///# Error Codes
6890///- `VK_ERROR_TOO_MANY_OBJECTS`
6891///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6892///- `VK_ERROR_UNKNOWN`
6893///- `VK_ERROR_VALIDATION_FAILED`
6894///
6895///# Thread Safety
6896///- `commandBuffer` must be externally synchronized
6897pub type PFN_vkCmdSetPerformanceStreamMarkerINTEL = Option<
6898    unsafe extern "system" fn(
6899        command_buffer: CommandBuffer,
6900        p_marker_info: *const PerformanceStreamMarkerInfoINTEL,
6901    ) -> Result,
6902>;
6903///[`vkCmdSetPerformanceOverrideINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPerformanceOverrideINTEL.html)
6904/**
6905Provided by **VK_INTEL_performance_query**.*/
6906///
6907///# Success Codes
6908///- `VK_SUCCESS`
6909///
6910///# Error Codes
6911///- `VK_ERROR_TOO_MANY_OBJECTS`
6912///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6913///- `VK_ERROR_UNKNOWN`
6914///- `VK_ERROR_VALIDATION_FAILED`
6915///
6916///# Thread Safety
6917///- `commandBuffer` must be externally synchronized
6918pub type PFN_vkCmdSetPerformanceOverrideINTEL = Option<
6919    unsafe extern "system" fn(
6920        command_buffer: CommandBuffer,
6921        p_override_info: *const PerformanceOverrideInfoINTEL,
6922    ) -> Result,
6923>;
6924///[`vkAcquirePerformanceConfigurationINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquirePerformanceConfigurationINTEL.html)
6925/**
6926Provided by **VK_INTEL_performance_query**.*/
6927///
6928///# Success Codes
6929///- `VK_SUCCESS`
6930///
6931///# Error Codes
6932///- `VK_ERROR_TOO_MANY_OBJECTS`
6933///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6934///- `VK_ERROR_UNKNOWN`
6935///- `VK_ERROR_VALIDATION_FAILED`
6936pub type PFN_vkAcquirePerformanceConfigurationINTEL = Option<
6937    unsafe extern "system" fn(
6938        device: Device,
6939        p_acquire_info: *const PerformanceConfigurationAcquireInfoINTEL,
6940        p_configuration: *mut PerformanceConfigurationINTEL,
6941    ) -> Result,
6942>;
6943///[`vkReleasePerformanceConfigurationINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleasePerformanceConfigurationINTEL.html)
6944/**
6945Provided by **VK_INTEL_performance_query**.*/
6946///
6947///# Success Codes
6948///- `VK_SUCCESS`
6949///
6950///# Error Codes
6951///- `VK_ERROR_TOO_MANY_OBJECTS`
6952///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6953///- `VK_ERROR_UNKNOWN`
6954///- `VK_ERROR_VALIDATION_FAILED`
6955///
6956///# Thread Safety
6957///- `configuration` must be externally synchronized
6958pub type PFN_vkReleasePerformanceConfigurationINTEL = Option<
6959    unsafe extern "system" fn(
6960        device: Device,
6961        configuration: PerformanceConfigurationINTEL,
6962    ) -> Result,
6963>;
6964///[`vkQueueSetPerformanceConfigurationINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSetPerformanceConfigurationINTEL.html)
6965/**
6966Provided by **VK_INTEL_performance_query**.*/
6967///
6968///# Success Codes
6969///- `VK_SUCCESS`
6970///
6971///# Error Codes
6972///- `VK_ERROR_TOO_MANY_OBJECTS`
6973///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6974///- `VK_ERROR_UNKNOWN`
6975///- `VK_ERROR_VALIDATION_FAILED`
6976///
6977///# Thread Safety
6978///- `queue` must be externally synchronized
6979pub type PFN_vkQueueSetPerformanceConfigurationINTEL = Option<
6980    unsafe extern "system" fn(
6981        queue: Queue,
6982        configuration: PerformanceConfigurationINTEL,
6983    ) -> Result,
6984>;
6985///[`vkGetPerformanceParameterINTEL`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPerformanceParameterINTEL.html)
6986/**
6987Provided by **VK_INTEL_performance_query**.*/
6988///
6989///# Success Codes
6990///- `VK_SUCCESS`
6991///
6992///# Error Codes
6993///- `VK_ERROR_TOO_MANY_OBJECTS`
6994///- `VK_ERROR_OUT_OF_HOST_MEMORY`
6995///- `VK_ERROR_UNKNOWN`
6996///- `VK_ERROR_VALIDATION_FAILED`
6997pub type PFN_vkGetPerformanceParameterINTEL = Option<
6998    unsafe extern "system" fn(
6999        device: Device,
7000        parameter: PerformanceParameterTypeINTEL,
7001        p_value: *mut PerformanceValueINTEL,
7002    ) -> Result,
7003>;
7004///[`vkGetDeviceMemoryOpaqueCaptureAddress`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceMemoryOpaqueCaptureAddress.html)
7005/**
7006Provided by **VK_BASE_VERSION_1_2**.*/
7007pub type PFN_vkGetDeviceMemoryOpaqueCaptureAddress = Option<
7008    unsafe extern "system" fn(
7009        device: Device,
7010        p_info: *const DeviceMemoryOpaqueCaptureAddressInfo,
7011    ) -> u64,
7012>;
7013///[`vkGetPipelineExecutablePropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineExecutablePropertiesKHR.html)
7014/**
7015Provided by **VK_KHR_pipeline_executable_properties**.*/
7016///
7017///# Success Codes
7018///- `VK_SUCCESS`
7019///- `VK_INCOMPLETE`
7020///
7021///# Error Codes
7022///- `VK_ERROR_OUT_OF_HOST_MEMORY`
7023///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
7024///- `VK_ERROR_UNKNOWN`
7025///- `VK_ERROR_VALIDATION_FAILED`
7026pub type PFN_vkGetPipelineExecutablePropertiesKHR = Option<
7027    unsafe extern "system" fn(
7028        device: Device,
7029        p_pipeline_info: *const PipelineInfoKHR,
7030        p_executable_count: *mut u32,
7031        p_properties: *mut PipelineExecutablePropertiesKHR,
7032    ) -> Result,
7033>;
7034///[`vkGetPipelineExecutableStatisticsKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineExecutableStatisticsKHR.html)
7035/**
7036Provided by **VK_KHR_pipeline_executable_properties**.*/
7037///
7038///# Success Codes
7039///- `VK_SUCCESS`
7040///- `VK_INCOMPLETE`
7041///
7042///# Error Codes
7043///- `VK_ERROR_OUT_OF_HOST_MEMORY`
7044///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
7045///- `VK_ERROR_UNKNOWN`
7046///- `VK_ERROR_VALIDATION_FAILED`
7047pub type PFN_vkGetPipelineExecutableStatisticsKHR = Option<
7048    unsafe extern "system" fn(
7049        device: Device,
7050        p_executable_info: *const PipelineExecutableInfoKHR,
7051        p_statistic_count: *mut u32,
7052        p_statistics: *mut PipelineExecutableStatisticKHR,
7053    ) -> Result,
7054>;
7055///[`vkGetPipelineExecutableInternalRepresentationsKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineExecutableInternalRepresentationsKHR.html)
7056/**
7057Provided by **VK_KHR_pipeline_executable_properties**.*/
7058///
7059///# Success Codes
7060///- `VK_SUCCESS`
7061///- `VK_INCOMPLETE`
7062///
7063///# Error Codes
7064///- `VK_ERROR_OUT_OF_HOST_MEMORY`
7065///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
7066///- `VK_ERROR_UNKNOWN`
7067///- `VK_ERROR_VALIDATION_FAILED`
7068pub type PFN_vkGetPipelineExecutableInternalRepresentationsKHR = Option<
7069    unsafe extern "system" fn(
7070        device: Device,
7071        p_executable_info: *const PipelineExecutableInfoKHR,
7072        p_internal_representation_count: *mut u32,
7073        p_internal_representations: *mut PipelineExecutableInternalRepresentationKHR,
7074    ) -> Result,
7075>;
7076///[`vkCmdSetLineStipple`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetLineStipple.html)
7077/**
7078Provided by **VK_GRAPHICS_VERSION_1_4**.*/
7079///
7080///# Thread Safety
7081///- `commandBuffer` must be externally synchronized
7082pub type PFN_vkCmdSetLineStipple = Option<
7083    unsafe extern "system" fn(
7084        command_buffer: CommandBuffer,
7085        line_stipple_factor: u32,
7086        line_stipple_pattern: u16,
7087    ),
7088>;
7089///[`vkGetFaultData`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFaultData.html)
7090/**
7091Provided by **VKSC_VERSION_1_0**.*/
7092///
7093///# Success Codes
7094///- `VK_SUCCESS`
7095///- `VK_INCOMPLETE`
7096///
7097///# Error Codes
7098///- `VK_ERROR_OUT_OF_HOST_MEMORY`
7099///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
7100///- `VK_ERROR_UNKNOWN`
7101///- `VK_ERROR_VALIDATION_FAILED`
7102pub type PFN_vkGetFaultData = Option<
7103    unsafe extern "system" fn(
7104        device: Device,
7105        fault_query_behavior: FaultQueryBehavior,
7106        p_unrecorded_faults: *mut u32,
7107        p_fault_count: *mut u32,
7108        p_faults: *mut FaultData,
7109    ) -> Result,
7110>;
7111///[`vkGetPhysicalDeviceToolProperties`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceToolProperties.html)
7112/**
7113Provided by **VK_BASE_VERSION_1_3**.*/
7114///
7115///# Success Codes
7116///- `VK_SUCCESS`
7117///- `VK_INCOMPLETE`
7118///
7119///# Error Codes
7120///- `VK_ERROR_OUT_OF_HOST_MEMORY`
7121///- `VK_ERROR_UNKNOWN`
7122///- `VK_ERROR_VALIDATION_FAILED`
7123pub type PFN_vkGetPhysicalDeviceToolProperties = Option<
7124    unsafe extern "system" fn(
7125        physical_device: PhysicalDevice,
7126        p_tool_count: *mut u32,
7127        p_tool_properties: *mut PhysicalDeviceToolProperties,
7128    ) -> Result,
7129>;
7130///[`vkCreateAccelerationStructureKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateAccelerationStructureKHR.html)
7131/**
7132Provided by **VK_KHR_acceleration_structure**.*/
7133///
7134///# Success Codes
7135///- `VK_SUCCESS`
7136///
7137///# Error Codes
7138///- `VK_ERROR_OUT_OF_HOST_MEMORY`
7139///- `VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR`
7140///- `VK_ERROR_UNKNOWN`
7141///- `VK_ERROR_VALIDATION_FAILED`
7142pub type PFN_vkCreateAccelerationStructureKHR = Option<
7143    unsafe extern "system" fn(
7144        device: Device,
7145        p_create_info: *const AccelerationStructureCreateInfoKHR,
7146        p_allocator: *const AllocationCallbacks,
7147        p_acceleration_structure: *mut AccelerationStructureKHR,
7148    ) -> Result,
7149>;
7150///[`vkCmdBuildAccelerationStructuresKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBuildAccelerationStructuresKHR.html)
7151/**
7152Provided by **VK_KHR_acceleration_structure**.*/
7153///
7154///# Thread Safety
7155///- `commandBuffer` must be externally synchronized
7156pub type PFN_vkCmdBuildAccelerationStructuresKHR = Option<
7157    unsafe extern "system" fn(
7158        command_buffer: CommandBuffer,
7159        info_count: u32,
7160        p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
7161        pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR,
7162    ),
7163>;
7164///[`vkCmdBuildAccelerationStructuresIndirectKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBuildAccelerationStructuresIndirectKHR.html)
7165/**
7166Provided by **VK_KHR_acceleration_structure**.*/
7167///
7168///# Thread Safety
7169///- `commandBuffer` must be externally synchronized
7170pub type PFN_vkCmdBuildAccelerationStructuresIndirectKHR = Option<
7171    unsafe extern "system" fn(
7172        command_buffer: CommandBuffer,
7173        info_count: u32,
7174        p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
7175        p_indirect_device_addresses: *const u64,
7176        p_indirect_strides: *const u32,
7177        pp_max_primitive_counts: *const *const u32,
7178    ),
7179>;
7180///[`vkBuildAccelerationStructuresKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkBuildAccelerationStructuresKHR.html)
7181/**
7182Provided by **VK_KHR_acceleration_structure**.*/
7183///
7184///# Success Codes
7185///- `VK_SUCCESS`
7186///- `VK_OPERATION_DEFERRED_KHR`
7187///- `VK_OPERATION_NOT_DEFERRED_KHR`
7188///
7189///# Error Codes
7190///- `VK_ERROR_OUT_OF_HOST_MEMORY`
7191///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
7192///- `VK_ERROR_UNKNOWN`
7193///- `VK_ERROR_VALIDATION_FAILED`
7194pub type PFN_vkBuildAccelerationStructuresKHR = Option<
7195    unsafe extern "system" fn(
7196        device: Device,
7197        deferred_operation: DeferredOperationKHR,
7198        info_count: u32,
7199        p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
7200        pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR,
7201    ) -> Result,
7202>;
7203///[`vkGetAccelerationStructureDeviceAddressKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureDeviceAddressKHR.html)
7204/**
7205Provided by **VK_KHR_acceleration_structure**.*/
7206pub type PFN_vkGetAccelerationStructureDeviceAddressKHR = Option<
7207    unsafe extern "system" fn(
7208        device: Device,
7209        p_info: *const AccelerationStructureDeviceAddressInfoKHR,
7210    ) -> u64,
7211>;
7212///[`vkCreateDeferredOperationKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDeferredOperationKHR.html)
7213/**
7214Provided by **VK_KHR_deferred_host_operations**.*/
7215///
7216///# Success Codes
7217///- `VK_SUCCESS`
7218///
7219///# Error Codes
7220///- `VK_ERROR_OUT_OF_HOST_MEMORY`
7221///- `VK_ERROR_UNKNOWN`
7222///- `VK_ERROR_VALIDATION_FAILED`
7223pub type PFN_vkCreateDeferredOperationKHR = Option<
7224    unsafe extern "system" fn(
7225        device: Device,
7226        p_allocator: *const AllocationCallbacks,
7227        p_deferred_operation: *mut DeferredOperationKHR,
7228    ) -> Result,
7229>;
7230///[`vkDestroyDeferredOperationKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDeferredOperationKHR.html)
7231/**
7232Provided by **VK_KHR_deferred_host_operations**.*/
7233///
7234///# Thread Safety
7235///- `operation` must be externally synchronized
7236pub type PFN_vkDestroyDeferredOperationKHR = Option<
7237    unsafe extern "system" fn(
7238        device: Device,
7239        operation: DeferredOperationKHR,
7240        p_allocator: *const AllocationCallbacks,
7241    ),
7242>;
7243///[`vkGetDeferredOperationMaxConcurrencyKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeferredOperationMaxConcurrencyKHR.html)
7244/**
7245Provided by **VK_KHR_deferred_host_operations**.*/
7246pub type PFN_vkGetDeferredOperationMaxConcurrencyKHR = Option<
7247    unsafe extern "system" fn(device: Device, operation: DeferredOperationKHR) -> u32,
7248>;
7249///[`vkGetDeferredOperationResultKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeferredOperationResultKHR.html)
7250/**
7251Provided by **VK_KHR_deferred_host_operations**.*/
7252///
7253///# Success Codes
7254///- `VK_SUCCESS`
7255///- `VK_NOT_READY`
7256///
7257///# Error Codes
7258///- `VK_ERROR_UNKNOWN`
7259///- `VK_ERROR_VALIDATION_FAILED`
7260pub type PFN_vkGetDeferredOperationResultKHR = Option<
7261    unsafe extern "system" fn(device: Device, operation: DeferredOperationKHR) -> Result,
7262>;
7263///[`vkDeferredOperationJoinKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDeferredOperationJoinKHR.html)
7264/**
7265Provided by **VK_KHR_deferred_host_operations**.*/
7266///
7267///# Success Codes
7268///- `VK_SUCCESS`
7269///- `VK_THREAD_DONE_KHR`
7270///- `VK_THREAD_IDLE_KHR`
7271///
7272///# Error Codes
7273///- `VK_ERROR_OUT_OF_HOST_MEMORY`
7274///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
7275///- `VK_ERROR_UNKNOWN`
7276///- `VK_ERROR_VALIDATION_FAILED`
7277pub type PFN_vkDeferredOperationJoinKHR = Option<
7278    unsafe extern "system" fn(device: Device, operation: DeferredOperationKHR) -> Result,
7279>;
7280///[`vkGetPipelineIndirectMemoryRequirementsNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineIndirectMemoryRequirementsNV.html)
7281/**
7282Provided by **VK_NV_device_generated_commands_compute**.*/
7283pub type PFN_vkGetPipelineIndirectMemoryRequirementsNV = Option<
7284    unsafe extern "system" fn(
7285        device: Device,
7286        p_create_info: *const ComputePipelineCreateInfo,
7287        p_memory_requirements: *mut MemoryRequirements2,
7288    ),
7289>;
7290///[`vkGetPipelineIndirectDeviceAddressNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineIndirectDeviceAddressNV.html)
7291/**
7292Provided by **VK_NV_device_generated_commands_compute**.*/
7293pub type PFN_vkGetPipelineIndirectDeviceAddressNV = Option<
7294    unsafe extern "system" fn(
7295        device: Device,
7296        p_info: *const PipelineIndirectDeviceAddressInfoNV,
7297    ) -> u64,
7298>;
7299///[`vkAntiLagUpdateAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkAntiLagUpdateAMD.html)
7300/**
7301Provided by **VK_AMD_anti_lag**.*/
7302pub type PFN_vkAntiLagUpdateAMD = Option<
7303    unsafe extern "system" fn(device: Device, p_data: *const AntiLagDataAMD),
7304>;
7305///[`vkCmdSetCullMode`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCullMode.html)
7306/**
7307Provided by **VK_GRAPHICS_VERSION_1_3**.*/
7308///
7309///# Thread Safety
7310///- `commandBuffer` must be externally synchronized
7311pub type PFN_vkCmdSetCullMode = Option<
7312    unsafe extern "system" fn(command_buffer: CommandBuffer, cull_mode: CullModeFlags),
7313>;
7314///[`vkCmdSetFrontFace`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetFrontFace.html)
7315/**
7316Provided by **VK_GRAPHICS_VERSION_1_3**.*/
7317///
7318///# Thread Safety
7319///- `commandBuffer` must be externally synchronized
7320pub type PFN_vkCmdSetFrontFace = Option<
7321    unsafe extern "system" fn(command_buffer: CommandBuffer, front_face: FrontFace),
7322>;
7323///[`vkCmdSetPrimitiveTopology`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPrimitiveTopology.html)
7324/**
7325Provided by **VK_GRAPHICS_VERSION_1_3**.*/
7326///
7327///# Thread Safety
7328///- `commandBuffer` must be externally synchronized
7329pub type PFN_vkCmdSetPrimitiveTopology = Option<
7330    unsafe extern "system" fn(
7331        command_buffer: CommandBuffer,
7332        primitive_topology: PrimitiveTopology,
7333    ),
7334>;
7335///[`vkCmdSetViewportWithCount`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetViewportWithCount.html)
7336/**
7337Provided by **VK_GRAPHICS_VERSION_1_3**.*/
7338///
7339///# Thread Safety
7340///- `commandBuffer` must be externally synchronized
7341pub type PFN_vkCmdSetViewportWithCount = Option<
7342    unsafe extern "system" fn(
7343        command_buffer: CommandBuffer,
7344        viewport_count: u32,
7345        p_viewports: *const Viewport,
7346    ),
7347>;
7348///[`vkCmdSetScissorWithCount`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetScissorWithCount.html)
7349/**
7350Provided by **VK_GRAPHICS_VERSION_1_3**.*/
7351///
7352///# Thread Safety
7353///- `commandBuffer` must be externally synchronized
7354pub type PFN_vkCmdSetScissorWithCount = Option<
7355    unsafe extern "system" fn(
7356        command_buffer: CommandBuffer,
7357        scissor_count: u32,
7358        p_scissors: *const Rect2D,
7359    ),
7360>;
7361///[`vkCmdBindIndexBuffer2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindIndexBuffer2.html)
7362/**
7363Provided by **VK_GRAPHICS_VERSION_1_4**.*/
7364///
7365///# Thread Safety
7366///- `commandBuffer` must be externally synchronized
7367pub type PFN_vkCmdBindIndexBuffer2 = Option<
7368    unsafe extern "system" fn(
7369        command_buffer: CommandBuffer,
7370        buffer: Buffer,
7371        offset: u64,
7372        size: u64,
7373        index_type: IndexType,
7374    ),
7375>;
7376///[`vkCmdBindVertexBuffers2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindVertexBuffers2.html)
7377/**
7378Provided by **VK_GRAPHICS_VERSION_1_3**.*/
7379///
7380///# Thread Safety
7381///- `commandBuffer` must be externally synchronized
7382pub type PFN_vkCmdBindVertexBuffers2 = Option<
7383    unsafe extern "system" fn(
7384        command_buffer: CommandBuffer,
7385        first_binding: u32,
7386        binding_count: u32,
7387        p_buffers: *const Buffer,
7388        p_offsets: *const u64,
7389        p_sizes: *const u64,
7390        p_strides: *const u64,
7391    ),
7392>;
7393///[`vkCmdSetDepthTestEnable`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthTestEnable.html)
7394/**
7395Provided by **VK_GRAPHICS_VERSION_1_3**.*/
7396///
7397///# Thread Safety
7398///- `commandBuffer` must be externally synchronized
7399pub type PFN_vkCmdSetDepthTestEnable = Option<
7400    unsafe extern "system" fn(command_buffer: CommandBuffer, depth_test_enable: u32),
7401>;
7402///[`vkCmdSetDepthWriteEnable`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthWriteEnable.html)
7403/**
7404Provided by **VK_GRAPHICS_VERSION_1_3**.*/
7405///
7406///# Thread Safety
7407///- `commandBuffer` must be externally synchronized
7408pub type PFN_vkCmdSetDepthWriteEnable = Option<
7409    unsafe extern "system" fn(command_buffer: CommandBuffer, depth_write_enable: u32),
7410>;
7411///[`vkCmdSetDepthCompareOp`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthCompareOp.html)
7412/**
7413Provided by **VK_GRAPHICS_VERSION_1_3**.*/
7414///
7415///# Thread Safety
7416///- `commandBuffer` must be externally synchronized
7417pub type PFN_vkCmdSetDepthCompareOp = Option<
7418    unsafe extern "system" fn(command_buffer: CommandBuffer, depth_compare_op: CompareOp),
7419>;
7420///[`vkCmdSetDepthBoundsTestEnable`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthBoundsTestEnable.html)
7421/**
7422Provided by **VK_GRAPHICS_VERSION_1_3**.*/
7423///
7424///# Thread Safety
7425///- `commandBuffer` must be externally synchronized
7426pub type PFN_vkCmdSetDepthBoundsTestEnable = Option<
7427    unsafe extern "system" fn(
7428        command_buffer: CommandBuffer,
7429        depth_bounds_test_enable: u32,
7430    ),
7431>;
7432///[`vkCmdSetStencilTestEnable`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetStencilTestEnable.html)
7433/**
7434Provided by **VK_GRAPHICS_VERSION_1_3**.*/
7435///
7436///# Thread Safety
7437///- `commandBuffer` must be externally synchronized
7438pub type PFN_vkCmdSetStencilTestEnable = Option<
7439    unsafe extern "system" fn(command_buffer: CommandBuffer, stencil_test_enable: u32),
7440>;
7441///[`vkCmdSetStencilOp`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetStencilOp.html)
7442/**
7443Provided by **VK_GRAPHICS_VERSION_1_3**.*/
7444///
7445///# Thread Safety
7446///- `commandBuffer` must be externally synchronized
7447pub type PFN_vkCmdSetStencilOp = Option<
7448    unsafe extern "system" fn(
7449        command_buffer: CommandBuffer,
7450        face_mask: StencilFaceFlags,
7451        fail_op: StencilOp,
7452        pass_op: StencilOp,
7453        depth_fail_op: StencilOp,
7454        compare_op: CompareOp,
7455    ),
7456>;
7457///[`vkCmdSetPatchControlPointsEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPatchControlPointsEXT.html)
7458/**
7459Provided by **VK_EXT_extended_dynamic_state2**.*/
7460///
7461///# Thread Safety
7462///- `commandBuffer` must be externally synchronized
7463pub type PFN_vkCmdSetPatchControlPointsEXT = Option<
7464    unsafe extern "system" fn(command_buffer: CommandBuffer, patch_control_points: u32),
7465>;
7466///[`vkCmdSetRasterizerDiscardEnable`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRasterizerDiscardEnable.html)
7467/**
7468Provided by **VK_GRAPHICS_VERSION_1_3**.*/
7469///
7470///# Thread Safety
7471///- `commandBuffer` must be externally synchronized
7472pub type PFN_vkCmdSetRasterizerDiscardEnable = Option<
7473    unsafe extern "system" fn(
7474        command_buffer: CommandBuffer,
7475        rasterizer_discard_enable: u32,
7476    ),
7477>;
7478///[`vkCmdSetDepthBiasEnable`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthBiasEnable.html)
7479/**
7480Provided by **VK_GRAPHICS_VERSION_1_3**.*/
7481///
7482///# Thread Safety
7483///- `commandBuffer` must be externally synchronized
7484pub type PFN_vkCmdSetDepthBiasEnable = Option<
7485    unsafe extern "system" fn(command_buffer: CommandBuffer, depth_bias_enable: u32),
7486>;
7487///[`vkCmdSetLogicOpEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetLogicOpEXT.html)
7488/**
7489Provided by **VK_EXT_extended_dynamic_state2**.*/
7490///
7491///# Thread Safety
7492///- `commandBuffer` must be externally synchronized
7493pub type PFN_vkCmdSetLogicOpEXT = Option<
7494    unsafe extern "system" fn(command_buffer: CommandBuffer, logic_op: LogicOp),
7495>;
7496///[`vkCmdSetPrimitiveRestartEnable`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPrimitiveRestartEnable.html)
7497/**
7498Provided by **VK_GRAPHICS_VERSION_1_3**.*/
7499///
7500///# Thread Safety
7501///- `commandBuffer` must be externally synchronized
7502pub type PFN_vkCmdSetPrimitiveRestartEnable = Option<
7503    unsafe extern "system" fn(
7504        command_buffer: CommandBuffer,
7505        primitive_restart_enable: u32,
7506    ),
7507>;
7508///[`vkCmdSetTessellationDomainOriginEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetTessellationDomainOriginEXT.html)
7509/**
7510Provided by **VK_EXT_extended_dynamic_state3**.*/
7511///
7512///# Thread Safety
7513///- `commandBuffer` must be externally synchronized
7514pub type PFN_vkCmdSetTessellationDomainOriginEXT = Option<
7515    unsafe extern "system" fn(
7516        command_buffer: CommandBuffer,
7517        domain_origin: TessellationDomainOrigin,
7518    ),
7519>;
7520///[`vkCmdSetDepthClampEnableEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthClampEnableEXT.html)
7521/**
7522Provided by **VK_EXT_extended_dynamic_state3**.*/
7523///
7524///# Thread Safety
7525///- `commandBuffer` must be externally synchronized
7526pub type PFN_vkCmdSetDepthClampEnableEXT = Option<
7527    unsafe extern "system" fn(command_buffer: CommandBuffer, depth_clamp_enable: u32),
7528>;
7529///[`vkCmdSetPolygonModeEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPolygonModeEXT.html)
7530/**
7531Provided by **VK_EXT_extended_dynamic_state3**.*/
7532///
7533///# Thread Safety
7534///- `commandBuffer` must be externally synchronized
7535pub type PFN_vkCmdSetPolygonModeEXT = Option<
7536    unsafe extern "system" fn(command_buffer: CommandBuffer, polygon_mode: PolygonMode),
7537>;
7538///[`vkCmdSetRasterizationSamplesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRasterizationSamplesEXT.html)
7539/**
7540Provided by **VK_EXT_extended_dynamic_state3**.*/
7541///
7542///# Thread Safety
7543///- `commandBuffer` must be externally synchronized
7544pub type PFN_vkCmdSetRasterizationSamplesEXT = Option<
7545    unsafe extern "system" fn(
7546        command_buffer: CommandBuffer,
7547        rasterization_samples: SampleCountFlagBits,
7548    ),
7549>;
7550///[`vkCmdSetSampleMaskEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetSampleMaskEXT.html)
7551/**
7552Provided by **VK_EXT_extended_dynamic_state3**.*/
7553///
7554///# Thread Safety
7555///- `commandBuffer` must be externally synchronized
7556pub type PFN_vkCmdSetSampleMaskEXT = Option<
7557    unsafe extern "system" fn(
7558        command_buffer: CommandBuffer,
7559        samples: SampleCountFlagBits,
7560        p_sample_mask: *const u32,
7561    ),
7562>;
7563///[`vkCmdSetAlphaToCoverageEnableEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetAlphaToCoverageEnableEXT.html)
7564/**
7565Provided by **VK_EXT_extended_dynamic_state3**.*/
7566///
7567///# Thread Safety
7568///- `commandBuffer` must be externally synchronized
7569pub type PFN_vkCmdSetAlphaToCoverageEnableEXT = Option<
7570    unsafe extern "system" fn(
7571        command_buffer: CommandBuffer,
7572        alpha_to_coverage_enable: u32,
7573    ),
7574>;
7575///[`vkCmdSetAlphaToOneEnableEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetAlphaToOneEnableEXT.html)
7576/**
7577Provided by **VK_EXT_extended_dynamic_state3**.*/
7578///
7579///# Thread Safety
7580///- `commandBuffer` must be externally synchronized
7581pub type PFN_vkCmdSetAlphaToOneEnableEXT = Option<
7582    unsafe extern "system" fn(command_buffer: CommandBuffer, alpha_to_one_enable: u32),
7583>;
7584///[`vkCmdSetLogicOpEnableEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetLogicOpEnableEXT.html)
7585/**
7586Provided by **VK_EXT_extended_dynamic_state3**.*/
7587///
7588///# Thread Safety
7589///- `commandBuffer` must be externally synchronized
7590pub type PFN_vkCmdSetLogicOpEnableEXT = Option<
7591    unsafe extern "system" fn(command_buffer: CommandBuffer, logic_op_enable: u32),
7592>;
7593///[`vkCmdSetColorBlendEnableEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetColorBlendEnableEXT.html)
7594/**
7595Provided by **VK_EXT_extended_dynamic_state3**.*/
7596///
7597///# Thread Safety
7598///- `commandBuffer` must be externally synchronized
7599pub type PFN_vkCmdSetColorBlendEnableEXT = Option<
7600    unsafe extern "system" fn(
7601        command_buffer: CommandBuffer,
7602        first_attachment: u32,
7603        attachment_count: u32,
7604        p_color_blend_enables: *const u32,
7605    ),
7606>;
7607///[`vkCmdSetColorBlendEquationEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetColorBlendEquationEXT.html)
7608/**
7609Provided by **VK_EXT_extended_dynamic_state3**.*/
7610///
7611///# Thread Safety
7612///- `commandBuffer` must be externally synchronized
7613pub type PFN_vkCmdSetColorBlendEquationEXT = Option<
7614    unsafe extern "system" fn(
7615        command_buffer: CommandBuffer,
7616        first_attachment: u32,
7617        attachment_count: u32,
7618        p_color_blend_equations: *const ColorBlendEquationEXT,
7619    ),
7620>;
7621///[`vkCmdSetColorWriteMaskEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetColorWriteMaskEXT.html)
7622/**
7623Provided by **VK_EXT_extended_dynamic_state3**.*/
7624///
7625///# Thread Safety
7626///- `commandBuffer` must be externally synchronized
7627pub type PFN_vkCmdSetColorWriteMaskEXT = Option<
7628    unsafe extern "system" fn(
7629        command_buffer: CommandBuffer,
7630        first_attachment: u32,
7631        attachment_count: u32,
7632        p_color_write_masks: *const ColorComponentFlags,
7633    ),
7634>;
7635///[`vkCmdSetRasterizationStreamEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRasterizationStreamEXT.html)
7636/**
7637Provided by **VK_EXT_extended_dynamic_state3**.*/
7638///
7639///# Thread Safety
7640///- `commandBuffer` must be externally synchronized
7641pub type PFN_vkCmdSetRasterizationStreamEXT = Option<
7642    unsafe extern "system" fn(command_buffer: CommandBuffer, rasterization_stream: u32),
7643>;
7644///[`vkCmdSetConservativeRasterizationModeEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetConservativeRasterizationModeEXT.html)
7645/**
7646Provided by **VK_EXT_extended_dynamic_state3**.*/
7647///
7648///# Thread Safety
7649///- `commandBuffer` must be externally synchronized
7650pub type PFN_vkCmdSetConservativeRasterizationModeEXT = Option<
7651    unsafe extern "system" fn(
7652        command_buffer: CommandBuffer,
7653        conservative_rasterization_mode: ConservativeRasterizationModeEXT,
7654    ),
7655>;
7656///[`vkCmdSetExtraPrimitiveOverestimationSizeEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetExtraPrimitiveOverestimationSizeEXT.html)
7657/**
7658Provided by **VK_EXT_extended_dynamic_state3**.*/
7659///
7660///# Thread Safety
7661///- `commandBuffer` must be externally synchronized
7662pub type PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT = Option<
7663    unsafe extern "system" fn(
7664        command_buffer: CommandBuffer,
7665        extra_primitive_overestimation_size: f32,
7666    ),
7667>;
7668///[`vkCmdSetDepthClipEnableEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthClipEnableEXT.html)
7669/**
7670Provided by **VK_EXT_extended_dynamic_state3**.*/
7671///
7672///# Thread Safety
7673///- `commandBuffer` must be externally synchronized
7674pub type PFN_vkCmdSetDepthClipEnableEXT = Option<
7675    unsafe extern "system" fn(command_buffer: CommandBuffer, depth_clip_enable: u32),
7676>;
7677///[`vkCmdSetSampleLocationsEnableEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetSampleLocationsEnableEXT.html)
7678/**
7679Provided by **VK_EXT_extended_dynamic_state3**.*/
7680///
7681///# Thread Safety
7682///- `commandBuffer` must be externally synchronized
7683pub type PFN_vkCmdSetSampleLocationsEnableEXT = Option<
7684    unsafe extern "system" fn(
7685        command_buffer: CommandBuffer,
7686        sample_locations_enable: u32,
7687    ),
7688>;
7689///[`vkCmdSetColorBlendAdvancedEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetColorBlendAdvancedEXT.html)
7690/**
7691Provided by **VK_EXT_extended_dynamic_state3**.*/
7692///
7693///# Thread Safety
7694///- `commandBuffer` must be externally synchronized
7695pub type PFN_vkCmdSetColorBlendAdvancedEXT = Option<
7696    unsafe extern "system" fn(
7697        command_buffer: CommandBuffer,
7698        first_attachment: u32,
7699        attachment_count: u32,
7700        p_color_blend_advanced: *const ColorBlendAdvancedEXT,
7701    ),
7702>;
7703///[`vkCmdSetProvokingVertexModeEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetProvokingVertexModeEXT.html)
7704/**
7705Provided by **VK_EXT_extended_dynamic_state3**.*/
7706///
7707///# Thread Safety
7708///- `commandBuffer` must be externally synchronized
7709pub type PFN_vkCmdSetProvokingVertexModeEXT = Option<
7710    unsafe extern "system" fn(
7711        command_buffer: CommandBuffer,
7712        provoking_vertex_mode: ProvokingVertexModeEXT,
7713    ),
7714>;
7715///[`vkCmdSetLineRasterizationModeEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetLineRasterizationModeEXT.html)
7716/**
7717Provided by **VK_EXT_extended_dynamic_state3**.*/
7718///
7719///# Thread Safety
7720///- `commandBuffer` must be externally synchronized
7721pub type PFN_vkCmdSetLineRasterizationModeEXT = Option<
7722    unsafe extern "system" fn(
7723        command_buffer: CommandBuffer,
7724        line_rasterization_mode: LineRasterizationModeEXT,
7725    ),
7726>;
7727///[`vkCmdSetLineStippleEnableEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetLineStippleEnableEXT.html)
7728/**
7729Provided by **VK_EXT_extended_dynamic_state3**.*/
7730///
7731///# Thread Safety
7732///- `commandBuffer` must be externally synchronized
7733pub type PFN_vkCmdSetLineStippleEnableEXT = Option<
7734    unsafe extern "system" fn(command_buffer: CommandBuffer, stippled_line_enable: u32),
7735>;
7736///[`vkCmdSetDepthClipNegativeOneToOneEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthClipNegativeOneToOneEXT.html)
7737/**
7738Provided by **VK_EXT_extended_dynamic_state3**.*/
7739///
7740///# Thread Safety
7741///- `commandBuffer` must be externally synchronized
7742pub type PFN_vkCmdSetDepthClipNegativeOneToOneEXT = Option<
7743    unsafe extern "system" fn(command_buffer: CommandBuffer, negative_one_to_one: u32),
7744>;
7745///[`vkCmdSetViewportWScalingEnableNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetViewportWScalingEnableNV.html)
7746/**
7747Provided by **VK_EXT_extended_dynamic_state3**.*/
7748///
7749///# Thread Safety
7750///- `commandBuffer` must be externally synchronized
7751pub type PFN_vkCmdSetViewportWScalingEnableNV = Option<
7752    unsafe extern "system" fn(
7753        command_buffer: CommandBuffer,
7754        viewport_w_scaling_enable: u32,
7755    ),
7756>;
7757///[`vkCmdSetViewportSwizzleNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetViewportSwizzleNV.html)
7758/**
7759Provided by **VK_EXT_extended_dynamic_state3**.*/
7760///
7761///# Thread Safety
7762///- `commandBuffer` must be externally synchronized
7763pub type PFN_vkCmdSetViewportSwizzleNV = Option<
7764    unsafe extern "system" fn(
7765        command_buffer: CommandBuffer,
7766        first_viewport: u32,
7767        viewport_count: u32,
7768        p_viewport_swizzles: *const ViewportSwizzleNV,
7769    ),
7770>;
7771///[`vkCmdSetCoverageToColorEnableNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCoverageToColorEnableNV.html)
7772/**
7773Provided by **VK_EXT_extended_dynamic_state3**.*/
7774///
7775///# Thread Safety
7776///- `commandBuffer` must be externally synchronized
7777pub type PFN_vkCmdSetCoverageToColorEnableNV = Option<
7778    unsafe extern "system" fn(
7779        command_buffer: CommandBuffer,
7780        coverage_to_color_enable: u32,
7781    ),
7782>;
7783///[`vkCmdSetCoverageToColorLocationNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCoverageToColorLocationNV.html)
7784/**
7785Provided by **VK_EXT_extended_dynamic_state3**.*/
7786///
7787///# Thread Safety
7788///- `commandBuffer` must be externally synchronized
7789pub type PFN_vkCmdSetCoverageToColorLocationNV = Option<
7790    unsafe extern "system" fn(
7791        command_buffer: CommandBuffer,
7792        coverage_to_color_location: u32,
7793    ),
7794>;
7795///[`vkCmdSetCoverageModulationModeNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCoverageModulationModeNV.html)
7796/**
7797Provided by **VK_EXT_extended_dynamic_state3**.*/
7798///
7799///# Thread Safety
7800///- `commandBuffer` must be externally synchronized
7801pub type PFN_vkCmdSetCoverageModulationModeNV = Option<
7802    unsafe extern "system" fn(
7803        command_buffer: CommandBuffer,
7804        coverage_modulation_mode: CoverageModulationModeNV,
7805    ),
7806>;
7807///[`vkCmdSetCoverageModulationTableEnableNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCoverageModulationTableEnableNV.html)
7808/**
7809Provided by **VK_EXT_extended_dynamic_state3**.*/
7810///
7811///# Thread Safety
7812///- `commandBuffer` must be externally synchronized
7813pub type PFN_vkCmdSetCoverageModulationTableEnableNV = Option<
7814    unsafe extern "system" fn(
7815        command_buffer: CommandBuffer,
7816        coverage_modulation_table_enable: u32,
7817    ),
7818>;
7819///[`vkCmdSetCoverageModulationTableNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCoverageModulationTableNV.html)
7820/**
7821Provided by **VK_EXT_extended_dynamic_state3**.*/
7822///
7823///# Thread Safety
7824///- `commandBuffer` must be externally synchronized
7825pub type PFN_vkCmdSetCoverageModulationTableNV = Option<
7826    unsafe extern "system" fn(
7827        command_buffer: CommandBuffer,
7828        coverage_modulation_table_count: u32,
7829        p_coverage_modulation_table: *const f32,
7830    ),
7831>;
7832///[`vkCmdSetShadingRateImageEnableNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetShadingRateImageEnableNV.html)
7833/**
7834Provided by **VK_EXT_extended_dynamic_state3**.*/
7835///
7836///# Thread Safety
7837///- `commandBuffer` must be externally synchronized
7838pub type PFN_vkCmdSetShadingRateImageEnableNV = Option<
7839    unsafe extern "system" fn(
7840        command_buffer: CommandBuffer,
7841        shading_rate_image_enable: u32,
7842    ),
7843>;
7844///[`vkCmdSetCoverageReductionModeNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCoverageReductionModeNV.html)
7845/**
7846Provided by **VK_EXT_extended_dynamic_state3**.*/
7847///
7848///# Thread Safety
7849///- `commandBuffer` must be externally synchronized
7850pub type PFN_vkCmdSetCoverageReductionModeNV = Option<
7851    unsafe extern "system" fn(
7852        command_buffer: CommandBuffer,
7853        coverage_reduction_mode: CoverageReductionModeNV,
7854    ),
7855>;
7856///[`vkCmdSetRepresentativeFragmentTestEnableNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRepresentativeFragmentTestEnableNV.html)
7857/**
7858Provided by **VK_EXT_extended_dynamic_state3**.*/
7859///
7860///# Thread Safety
7861///- `commandBuffer` must be externally synchronized
7862pub type PFN_vkCmdSetRepresentativeFragmentTestEnableNV = Option<
7863    unsafe extern "system" fn(
7864        command_buffer: CommandBuffer,
7865        representative_fragment_test_enable: u32,
7866    ),
7867>;
7868///[`vkCreatePrivateDataSlot`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePrivateDataSlot.html)
7869/**
7870Provided by **VK_BASE_VERSION_1_3**.*/
7871///
7872///# Success Codes
7873///- `VK_SUCCESS`
7874///
7875///# Error Codes
7876///- `VK_ERROR_OUT_OF_HOST_MEMORY`
7877///- `VK_ERROR_UNKNOWN`
7878///- `VK_ERROR_VALIDATION_FAILED`
7879pub type PFN_vkCreatePrivateDataSlot = Option<
7880    unsafe extern "system" fn(
7881        device: Device,
7882        p_create_info: *const PrivateDataSlotCreateInfo,
7883        p_allocator: *const AllocationCallbacks,
7884        p_private_data_slot: *mut PrivateDataSlot,
7885    ) -> Result,
7886>;
7887///[`vkDestroyPrivateDataSlot`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPrivateDataSlot.html)
7888/**
7889Provided by **VK_BASE_VERSION_1_3**.*/
7890///
7891///# Thread Safety
7892///- `privateDataSlot` must be externally synchronized
7893pub type PFN_vkDestroyPrivateDataSlot = Option<
7894    unsafe extern "system" fn(
7895        device: Device,
7896        private_data_slot: PrivateDataSlot,
7897        p_allocator: *const AllocationCallbacks,
7898    ),
7899>;
7900///[`vkSetPrivateData`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetPrivateData.html)
7901/**
7902Provided by **VK_BASE_VERSION_1_3**.*/
7903///
7904///# Success Codes
7905///- `VK_SUCCESS`
7906///
7907///# Error Codes
7908///- `VK_ERROR_OUT_OF_HOST_MEMORY`
7909///- `VK_ERROR_UNKNOWN`
7910///- `VK_ERROR_VALIDATION_FAILED`
7911pub type PFN_vkSetPrivateData = Option<
7912    unsafe extern "system" fn(
7913        device: Device,
7914        object_type: ObjectType,
7915        object_handle: u64,
7916        private_data_slot: PrivateDataSlot,
7917        data: u64,
7918    ) -> Result,
7919>;
7920///[`vkGetPrivateData`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPrivateData.html)
7921/**
7922Provided by **VK_BASE_VERSION_1_3**.*/
7923pub type PFN_vkGetPrivateData = Option<
7924    unsafe extern "system" fn(
7925        device: Device,
7926        object_type: ObjectType,
7927        object_handle: u64,
7928        private_data_slot: PrivateDataSlot,
7929        p_data: *mut u64,
7930    ),
7931>;
7932///[`vkCmdCopyBuffer2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyBuffer2.html)
7933/**
7934Provided by **VK_BASE_VERSION_1_3**.*/
7935///
7936///# Thread Safety
7937///- `commandBuffer` must be externally synchronized
7938pub type PFN_vkCmdCopyBuffer2 = Option<
7939    unsafe extern "system" fn(
7940        command_buffer: CommandBuffer,
7941        p_copy_buffer_info: *const CopyBufferInfo2,
7942    ),
7943>;
7944///[`vkCmdCopyImage2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyImage2.html)
7945/**
7946Provided by **VK_BASE_VERSION_1_3**.*/
7947///
7948///# Thread Safety
7949///- `commandBuffer` must be externally synchronized
7950pub type PFN_vkCmdCopyImage2 = Option<
7951    unsafe extern "system" fn(
7952        command_buffer: CommandBuffer,
7953        p_copy_image_info: *const CopyImageInfo2,
7954    ),
7955>;
7956///[`vkCmdBlitImage2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBlitImage2.html)
7957/**
7958Provided by **VK_GRAPHICS_VERSION_1_3**.*/
7959///
7960///# Thread Safety
7961///- `commandBuffer` must be externally synchronized
7962pub type PFN_vkCmdBlitImage2 = Option<
7963    unsafe extern "system" fn(
7964        command_buffer: CommandBuffer,
7965        p_blit_image_info: *const BlitImageInfo2,
7966    ),
7967>;
7968///[`vkCmdCopyBufferToImage2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyBufferToImage2.html)
7969/**
7970Provided by **VK_BASE_VERSION_1_3**.*/
7971///
7972///# Thread Safety
7973///- `commandBuffer` must be externally synchronized
7974pub type PFN_vkCmdCopyBufferToImage2 = Option<
7975    unsafe extern "system" fn(
7976        command_buffer: CommandBuffer,
7977        p_copy_buffer_to_image_info: *const CopyBufferToImageInfo2,
7978    ),
7979>;
7980///[`vkCmdCopyImageToBuffer2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyImageToBuffer2.html)
7981/**
7982Provided by **VK_BASE_VERSION_1_3**.*/
7983///
7984///# Thread Safety
7985///- `commandBuffer` must be externally synchronized
7986pub type PFN_vkCmdCopyImageToBuffer2 = Option<
7987    unsafe extern "system" fn(
7988        command_buffer: CommandBuffer,
7989        p_copy_image_to_buffer_info: *const CopyImageToBufferInfo2,
7990    ),
7991>;
7992///[`vkCmdResolveImage2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdResolveImage2.html)
7993/**
7994Provided by **VK_GRAPHICS_VERSION_1_3**.*/
7995///
7996///# Thread Safety
7997///- `commandBuffer` must be externally synchronized
7998pub type PFN_vkCmdResolveImage2 = Option<
7999    unsafe extern "system" fn(
8000        command_buffer: CommandBuffer,
8001        p_resolve_image_info: *const ResolveImageInfo2,
8002    ),
8003>;
8004///[`vkCmdRefreshObjectsKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdRefreshObjectsKHR.html)
8005///
8006///# Thread Safety
8007///- `commandBuffer` must be externally synchronized
8008pub type PFN_vkCmdRefreshObjectsKHR = Option<
8009    unsafe extern "system" fn(
8010        command_buffer: CommandBuffer,
8011        p_refresh_objects: *const RefreshObjectListKHR,
8012    ),
8013>;
8014///[`vkGetPhysicalDeviceRefreshableObjectTypesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceRefreshableObjectTypesKHR.html)
8015///
8016///# Success Codes
8017///- `VK_SUCCESS`
8018///- `VK_INCOMPLETE`
8019///
8020///# Error Codes
8021///- `VK_ERROR_UNKNOWN`
8022///- `VK_ERROR_VALIDATION_FAILED`
8023pub type PFN_vkGetPhysicalDeviceRefreshableObjectTypesKHR = Option<
8024    unsafe extern "system" fn(
8025        physical_device: PhysicalDevice,
8026        p_refreshable_object_type_count: *mut u32,
8027        p_refreshable_object_types: *mut ObjectType,
8028    ) -> Result,
8029>;
8030///[`vkCmdSetFragmentShadingRateKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetFragmentShadingRateKHR.html)
8031/**
8032Provided by **VK_KHR_fragment_shading_rate**.*/
8033///
8034///# Thread Safety
8035///- `commandBuffer` must be externally synchronized
8036pub type PFN_vkCmdSetFragmentShadingRateKHR = Option<
8037    unsafe extern "system" fn(
8038        command_buffer: CommandBuffer,
8039        p_fragment_size: *const Extent2D,
8040        combiner_ops: FragmentShadingRateCombinerOpKHR,
8041    ),
8042>;
8043///[`vkGetPhysicalDeviceFragmentShadingRatesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFragmentShadingRatesKHR.html)
8044/**
8045Provided by **VK_KHR_fragment_shading_rate**.*/
8046///
8047///# Success Codes
8048///- `VK_SUCCESS`
8049///- `VK_INCOMPLETE`
8050///
8051///# Error Codes
8052///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8053///- `VK_ERROR_UNKNOWN`
8054///- `VK_ERROR_VALIDATION_FAILED`
8055pub type PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = Option<
8056    unsafe extern "system" fn(
8057        physical_device: PhysicalDevice,
8058        p_fragment_shading_rate_count: *mut u32,
8059        p_fragment_shading_rates: *mut PhysicalDeviceFragmentShadingRateKHR,
8060    ) -> Result,
8061>;
8062///[`vkCmdSetFragmentShadingRateEnumNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetFragmentShadingRateEnumNV.html)
8063/**
8064Provided by **VK_NV_fragment_shading_rate_enums**.*/
8065///
8066///# Thread Safety
8067///- `commandBuffer` must be externally synchronized
8068pub type PFN_vkCmdSetFragmentShadingRateEnumNV = Option<
8069    unsafe extern "system" fn(
8070        command_buffer: CommandBuffer,
8071        shading_rate: FragmentShadingRateNV,
8072        combiner_ops: FragmentShadingRateCombinerOpKHR,
8073    ),
8074>;
8075///[`vkGetAccelerationStructureBuildSizesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureBuildSizesKHR.html)
8076/**
8077Provided by **VK_KHR_acceleration_structure**.*/
8078pub type PFN_vkGetAccelerationStructureBuildSizesKHR = Option<
8079    unsafe extern "system" fn(
8080        device: Device,
8081        build_type: AccelerationStructureBuildTypeKHR,
8082        p_build_info: *const AccelerationStructureBuildGeometryInfoKHR,
8083        p_max_primitive_counts: *const u32,
8084        p_size_info: *mut AccelerationStructureBuildSizesInfoKHR,
8085    ),
8086>;
8087///[`vkCmdSetVertexInputEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetVertexInputEXT.html)
8088/**
8089Provided by **VK_EXT_vertex_input_dynamic_state**.*/
8090///
8091///# Thread Safety
8092///- `commandBuffer` must be externally synchronized
8093pub type PFN_vkCmdSetVertexInputEXT = Option<
8094    unsafe extern "system" fn(
8095        command_buffer: CommandBuffer,
8096        vertex_binding_description_count: u32,
8097        p_vertex_binding_descriptions: *const VertexInputBindingDescription2EXT,
8098        vertex_attribute_description_count: u32,
8099        p_vertex_attribute_descriptions: *const VertexInputAttributeDescription2EXT,
8100    ),
8101>;
8102///[`vkCmdSetColorWriteEnableEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetColorWriteEnableEXT.html)
8103/**
8104Provided by **VK_EXT_color_write_enable**.*/
8105///
8106///# Thread Safety
8107///- `commandBuffer` must be externally synchronized
8108pub type PFN_vkCmdSetColorWriteEnableEXT = Option<
8109    unsafe extern "system" fn(
8110        command_buffer: CommandBuffer,
8111        attachment_count: u32,
8112        p_color_write_enables: *const u32,
8113    ),
8114>;
8115///[`vkCmdSetEvent2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetEvent2.html)
8116/**
8117Provided by **VK_COMPUTE_VERSION_1_3**.*/
8118///
8119///# Thread Safety
8120///- `commandBuffer` must be externally synchronized
8121pub type PFN_vkCmdSetEvent2 = Option<
8122    unsafe extern "system" fn(
8123        command_buffer: CommandBuffer,
8124        event: Event,
8125        p_dependency_info: *const DependencyInfo,
8126    ),
8127>;
8128///[`vkCmdResetEvent2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdResetEvent2.html)
8129/**
8130Provided by **VK_COMPUTE_VERSION_1_3**.*/
8131///
8132///# Thread Safety
8133///- `commandBuffer` must be externally synchronized
8134pub type PFN_vkCmdResetEvent2 = Option<
8135    unsafe extern "system" fn(
8136        command_buffer: CommandBuffer,
8137        event: Event,
8138        stage_mask: PipelineStageFlags2,
8139    ),
8140>;
8141///[`vkCmdWaitEvents2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWaitEvents2.html)
8142/**
8143Provided by **VK_COMPUTE_VERSION_1_3**.*/
8144///
8145///# Thread Safety
8146///- `commandBuffer` must be externally synchronized
8147pub type PFN_vkCmdWaitEvents2 = Option<
8148    unsafe extern "system" fn(
8149        command_buffer: CommandBuffer,
8150        event_count: u32,
8151        p_events: *const Event,
8152        p_dependency_infos: *const DependencyInfo,
8153    ),
8154>;
8155///[`vkCmdPipelineBarrier2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPipelineBarrier2.html)
8156/**
8157Provided by **VK_BASE_VERSION_1_3**.*/
8158///
8159///# Thread Safety
8160///- `commandBuffer` must be externally synchronized
8161pub type PFN_vkCmdPipelineBarrier2 = Option<
8162    unsafe extern "system" fn(
8163        command_buffer: CommandBuffer,
8164        p_dependency_info: *const DependencyInfo,
8165    ),
8166>;
8167///[`vkQueueSubmit2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSubmit2.html)
8168/**
8169Provided by **VK_BASE_VERSION_1_3**.*/
8170///
8171///# Success Codes
8172///- `VK_SUCCESS`
8173///
8174///# Error Codes
8175///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8176///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
8177///- `VK_ERROR_DEVICE_LOST`
8178///- `VK_ERROR_UNKNOWN`
8179///- `VK_ERROR_VALIDATION_FAILED`
8180///
8181///# Thread Safety
8182///- `queue` must be externally synchronized
8183///- `fence` must be externally synchronized
8184pub type PFN_vkQueueSubmit2 = Option<
8185    unsafe extern "system" fn(
8186        queue: Queue,
8187        submit_count: u32,
8188        p_submits: *const SubmitInfo2,
8189        fence: Fence,
8190    ) -> Result,
8191>;
8192///[`vkCmdWriteTimestamp2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWriteTimestamp2.html)
8193/**
8194Provided by **VK_BASE_VERSION_1_3**.*/
8195///
8196///# Thread Safety
8197///- `commandBuffer` must be externally synchronized
8198pub type PFN_vkCmdWriteTimestamp2 = Option<
8199    unsafe extern "system" fn(
8200        command_buffer: CommandBuffer,
8201        stage: PipelineStageFlags2,
8202        query_pool: QueryPool,
8203        query: u32,
8204    ),
8205>;
8206///[`vkCmdWriteBufferMarker2AMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWriteBufferMarker2AMD.html)
8207/**
8208Provided by **VK_AMD_buffer_marker**.*/
8209///
8210///# Thread Safety
8211///- `commandBuffer` must be externally synchronized
8212pub type PFN_vkCmdWriteBufferMarker2AMD = Option<
8213    unsafe extern "system" fn(
8214        command_buffer: CommandBuffer,
8215        stage: PipelineStageFlags2,
8216        dst_buffer: Buffer,
8217        dst_offset: u64,
8218        marker: u32,
8219    ),
8220>;
8221///[`vkGetQueueCheckpointData2NV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetQueueCheckpointData2NV.html)
8222/**
8223Provided by **VK_NV_device_diagnostic_checkpoints**.*/
8224pub type PFN_vkGetQueueCheckpointData2NV = Option<
8225    unsafe extern "system" fn(
8226        queue: Queue,
8227        p_checkpoint_data_count: *mut u32,
8228        p_checkpoint_data: *mut CheckpointData2NV,
8229    ),
8230>;
8231///[`vkCopyMemoryToImage`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMemoryToImage.html)
8232/**
8233Provided by **VK_BASE_VERSION_1_4**.*/
8234///
8235///# Success Codes
8236///- `VK_SUCCESS`
8237///
8238///# Error Codes
8239///- `VK_ERROR_INITIALIZATION_FAILED`
8240///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8241///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
8242///- `VK_ERROR_MEMORY_MAP_FAILED`
8243///- `VK_ERROR_UNKNOWN`
8244///- `VK_ERROR_VALIDATION_FAILED`
8245pub type PFN_vkCopyMemoryToImage = Option<
8246    unsafe extern "system" fn(
8247        device: Device,
8248        p_copy_memory_to_image_info: *const CopyMemoryToImageInfo,
8249    ) -> Result,
8250>;
8251///[`vkCopyImageToMemory`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyImageToMemory.html)
8252/**
8253Provided by **VK_BASE_VERSION_1_4**.*/
8254///
8255///# Success Codes
8256///- `VK_SUCCESS`
8257///
8258///# Error Codes
8259///- `VK_ERROR_INITIALIZATION_FAILED`
8260///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8261///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
8262///- `VK_ERROR_MEMORY_MAP_FAILED`
8263///- `VK_ERROR_UNKNOWN`
8264///- `VK_ERROR_VALIDATION_FAILED`
8265pub type PFN_vkCopyImageToMemory = Option<
8266    unsafe extern "system" fn(
8267        device: Device,
8268        p_copy_image_to_memory_info: *const CopyImageToMemoryInfo,
8269    ) -> Result,
8270>;
8271///[`vkCopyImageToImage`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyImageToImage.html)
8272/**
8273Provided by **VK_BASE_VERSION_1_4**.*/
8274///
8275///# Success Codes
8276///- `VK_SUCCESS`
8277///
8278///# Error Codes
8279///- `VK_ERROR_INITIALIZATION_FAILED`
8280///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8281///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
8282///- `VK_ERROR_MEMORY_MAP_FAILED`
8283///- `VK_ERROR_UNKNOWN`
8284///- `VK_ERROR_VALIDATION_FAILED`
8285pub type PFN_vkCopyImageToImage = Option<
8286    unsafe extern "system" fn(
8287        device: Device,
8288        p_copy_image_to_image_info: *const CopyImageToImageInfo,
8289    ) -> Result,
8290>;
8291///[`vkTransitionImageLayout`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkTransitionImageLayout.html)
8292/**
8293Provided by **VK_BASE_VERSION_1_4**.*/
8294///
8295///# Success Codes
8296///- `VK_SUCCESS`
8297///
8298///# Error Codes
8299///- `VK_ERROR_INITIALIZATION_FAILED`
8300///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8301///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
8302///- `VK_ERROR_MEMORY_MAP_FAILED`
8303///- `VK_ERROR_UNKNOWN`
8304///- `VK_ERROR_VALIDATION_FAILED`
8305pub type PFN_vkTransitionImageLayout = Option<
8306    unsafe extern "system" fn(
8307        device: Device,
8308        transition_count: u32,
8309        p_transitions: *const HostImageLayoutTransitionInfo,
8310    ) -> Result,
8311>;
8312///[`vkGetCommandPoolMemoryConsumption`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCommandPoolMemoryConsumption.html)
8313/**
8314Provided by **VKSC_VERSION_1_0**.*/
8315///
8316///# Thread Safety
8317///- `commandPool` must be externally synchronized
8318///- `commandBuffer` must be externally synchronized
8319pub type PFN_vkGetCommandPoolMemoryConsumption = Option<
8320    unsafe extern "system" fn(
8321        device: Device,
8322        command_pool: CommandPool,
8323        command_buffer: CommandBuffer,
8324        p_consumption: *mut CommandPoolMemoryConsumption,
8325    ),
8326>;
8327///[`vkGetPhysicalDeviceVideoCapabilitiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoCapabilitiesKHR.html)
8328/**
8329Provided by **VK_KHR_video_queue**.*/
8330///
8331///# Success Codes
8332///- `VK_SUCCESS`
8333///
8334///# Error Codes
8335///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8336///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
8337///- `VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR`
8338///- `VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR`
8339///- `VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR`
8340///- `VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR`
8341///- `VK_ERROR_UNKNOWN`
8342///- `VK_ERROR_VALIDATION_FAILED`
8343pub type PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = Option<
8344    unsafe extern "system" fn(
8345        physical_device: PhysicalDevice,
8346        p_video_profile: *const VideoProfileInfoKHR,
8347        p_capabilities: *mut VideoCapabilitiesKHR,
8348    ) -> Result,
8349>;
8350///[`vkGetPhysicalDeviceVideoFormatPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoFormatPropertiesKHR.html)
8351/**
8352Provided by **VK_KHR_video_queue**.*/
8353///
8354///# Success Codes
8355///- `VK_SUCCESS`
8356///- `VK_INCOMPLETE`
8357///
8358///# Error Codes
8359///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8360///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
8361///- `VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR`
8362///- `VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR`
8363///- `VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR`
8364///- `VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR`
8365///- `VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR`
8366///- `VK_ERROR_UNKNOWN`
8367///- `VK_ERROR_VALIDATION_FAILED`
8368pub type PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = Option<
8369    unsafe extern "system" fn(
8370        physical_device: PhysicalDevice,
8371        p_video_format_info: *const PhysicalDeviceVideoFormatInfoKHR,
8372        p_video_format_property_count: *mut u32,
8373        p_video_format_properties: *mut VideoFormatPropertiesKHR,
8374    ) -> Result,
8375>;
8376///[`vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR.html)
8377/**
8378Provided by **VK_KHR_video_encode_queue**.*/
8379///
8380///# Success Codes
8381///- `VK_SUCCESS`
8382///
8383///# Error Codes
8384///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8385///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
8386///- `VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR`
8387///- `VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR`
8388///- `VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR`
8389///- `VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR`
8390///- `VK_ERROR_UNKNOWN`
8391///- `VK_ERROR_VALIDATION_FAILED`
8392pub type PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = Option<
8393    unsafe extern "system" fn(
8394        physical_device: PhysicalDevice,
8395        p_quality_level_info: *const PhysicalDeviceVideoEncodeQualityLevelInfoKHR,
8396        p_quality_level_properties: *mut VideoEncodeQualityLevelPropertiesKHR,
8397    ) -> Result,
8398>;
8399///[`vkCreateVideoSessionKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateVideoSessionKHR.html)
8400/**
8401Provided by **VK_KHR_video_queue**.*/
8402///
8403///# Success Codes
8404///- `VK_SUCCESS`
8405///
8406///# Error Codes
8407///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8408///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
8409///- `VK_ERROR_INITIALIZATION_FAILED`
8410///- `VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR`
8411///- `VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR`
8412///- `VK_ERROR_UNKNOWN`
8413///- `VK_ERROR_VALIDATION_FAILED`
8414pub type PFN_vkCreateVideoSessionKHR = Option<
8415    unsafe extern "system" fn(
8416        device: Device,
8417        p_create_info: *const VideoSessionCreateInfoKHR,
8418        p_allocator: *const AllocationCallbacks,
8419        p_video_session: *mut VideoSessionKHR,
8420    ) -> Result,
8421>;
8422///[`vkDestroyVideoSessionKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyVideoSessionKHR.html)
8423/**
8424Provided by **VK_KHR_video_queue**.*/
8425///
8426///# Thread Safety
8427///- `videoSession` must be externally synchronized
8428pub type PFN_vkDestroyVideoSessionKHR = Option<
8429    unsafe extern "system" fn(
8430        device: Device,
8431        video_session: VideoSessionKHR,
8432        p_allocator: *const AllocationCallbacks,
8433    ),
8434>;
8435///[`vkCreateVideoSessionParametersKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateVideoSessionParametersKHR.html)
8436/**
8437Provided by **VK_KHR_video_queue**.*/
8438///
8439///# Success Codes
8440///- `VK_SUCCESS`
8441///
8442///# Error Codes
8443///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8444///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
8445///- `VK_ERROR_INITIALIZATION_FAILED`
8446///- `VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR`
8447///- `VK_ERROR_UNKNOWN`
8448///- `VK_ERROR_VALIDATION_FAILED`
8449pub type PFN_vkCreateVideoSessionParametersKHR = Option<
8450    unsafe extern "system" fn(
8451        device: Device,
8452        p_create_info: *const VideoSessionParametersCreateInfoKHR,
8453        p_allocator: *const AllocationCallbacks,
8454        p_video_session_parameters: *mut VideoSessionParametersKHR,
8455    ) -> Result,
8456>;
8457///[`vkUpdateVideoSessionParametersKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateVideoSessionParametersKHR.html)
8458/**
8459Provided by **VK_KHR_video_queue**.*/
8460///
8461///# Success Codes
8462///- `VK_SUCCESS`
8463///
8464///# Error Codes
8465///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8466///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
8467///- `VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR`
8468///- `VK_ERROR_UNKNOWN`
8469///- `VK_ERROR_VALIDATION_FAILED`
8470pub type PFN_vkUpdateVideoSessionParametersKHR = Option<
8471    unsafe extern "system" fn(
8472        device: Device,
8473        video_session_parameters: VideoSessionParametersKHR,
8474        p_update_info: *const VideoSessionParametersUpdateInfoKHR,
8475    ) -> Result,
8476>;
8477///[`vkGetEncodedVideoSessionParametersKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetEncodedVideoSessionParametersKHR.html)
8478/**
8479Provided by **VK_KHR_video_encode_queue**.*/
8480///
8481///# Success Codes
8482///- `VK_SUCCESS`
8483///- `VK_INCOMPLETE`
8484///
8485///# Error Codes
8486///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8487///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
8488///- `VK_ERROR_UNKNOWN`
8489///- `VK_ERROR_VALIDATION_FAILED`
8490pub type PFN_vkGetEncodedVideoSessionParametersKHR = Option<
8491    unsafe extern "system" fn(
8492        device: Device,
8493        p_video_session_parameters_info: *const VideoEncodeSessionParametersGetInfoKHR,
8494        p_feedback_info: *mut VideoEncodeSessionParametersFeedbackInfoKHR,
8495        p_data_size: *mut usize,
8496        p_data: *mut core::ffi::c_void,
8497    ) -> Result,
8498>;
8499///[`vkDestroyVideoSessionParametersKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyVideoSessionParametersKHR.html)
8500/**
8501Provided by **VK_KHR_video_queue**.*/
8502///
8503///# Thread Safety
8504///- `videoSessionParameters` must be externally synchronized
8505pub type PFN_vkDestroyVideoSessionParametersKHR = Option<
8506    unsafe extern "system" fn(
8507        device: Device,
8508        video_session_parameters: VideoSessionParametersKHR,
8509        p_allocator: *const AllocationCallbacks,
8510    ),
8511>;
8512///[`vkGetVideoSessionMemoryRequirementsKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetVideoSessionMemoryRequirementsKHR.html)
8513/**
8514Provided by **VK_KHR_video_queue**.*/
8515///
8516///# Success Codes
8517///- `VK_SUCCESS`
8518///- `VK_INCOMPLETE`
8519///
8520///# Error Codes
8521///- `VK_ERROR_UNKNOWN`
8522///- `VK_ERROR_VALIDATION_FAILED`
8523pub type PFN_vkGetVideoSessionMemoryRequirementsKHR = Option<
8524    unsafe extern "system" fn(
8525        device: Device,
8526        video_session: VideoSessionKHR,
8527        p_memory_requirements_count: *mut u32,
8528        p_memory_requirements: *mut VideoSessionMemoryRequirementsKHR,
8529    ) -> Result,
8530>;
8531///[`vkBindVideoSessionMemoryKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindVideoSessionMemoryKHR.html)
8532/**
8533Provided by **VK_KHR_video_queue**.*/
8534///
8535///# Success Codes
8536///- `VK_SUCCESS`
8537///
8538///# Error Codes
8539///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8540///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
8541///- `VK_ERROR_UNKNOWN`
8542///- `VK_ERROR_VALIDATION_FAILED`
8543///
8544///# Thread Safety
8545///- `videoSession` must be externally synchronized
8546pub type PFN_vkBindVideoSessionMemoryKHR = Option<
8547    unsafe extern "system" fn(
8548        device: Device,
8549        video_session: VideoSessionKHR,
8550        bind_session_memory_info_count: u32,
8551        p_bind_session_memory_infos: *const BindVideoSessionMemoryInfoKHR,
8552    ) -> Result,
8553>;
8554///[`vkCmdDecodeVideoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDecodeVideoKHR.html)
8555/**
8556Provided by **VK_KHR_video_decode_queue**.*/
8557///
8558///# Thread Safety
8559///- `commandBuffer` must be externally synchronized
8560pub type PFN_vkCmdDecodeVideoKHR = Option<
8561    unsafe extern "system" fn(
8562        command_buffer: CommandBuffer,
8563        p_decode_info: *const VideoDecodeInfoKHR,
8564    ),
8565>;
8566///[`vkCmdBeginVideoCodingKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginVideoCodingKHR.html)
8567/**
8568Provided by **VK_KHR_video_queue**.*/
8569///
8570///# Thread Safety
8571///- `commandBuffer` must be externally synchronized
8572pub type PFN_vkCmdBeginVideoCodingKHR = Option<
8573    unsafe extern "system" fn(
8574        command_buffer: CommandBuffer,
8575        p_begin_info: *const VideoBeginCodingInfoKHR,
8576    ),
8577>;
8578///[`vkCmdControlVideoCodingKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdControlVideoCodingKHR.html)
8579/**
8580Provided by **VK_KHR_video_queue**.*/
8581///
8582///# Thread Safety
8583///- `commandBuffer` must be externally synchronized
8584pub type PFN_vkCmdControlVideoCodingKHR = Option<
8585    unsafe extern "system" fn(
8586        command_buffer: CommandBuffer,
8587        p_coding_control_info: *const VideoCodingControlInfoKHR,
8588    ),
8589>;
8590///[`vkCmdEndVideoCodingKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndVideoCodingKHR.html)
8591/**
8592Provided by **VK_KHR_video_queue**.*/
8593///
8594///# Thread Safety
8595///- `commandBuffer` must be externally synchronized
8596pub type PFN_vkCmdEndVideoCodingKHR = Option<
8597    unsafe extern "system" fn(
8598        command_buffer: CommandBuffer,
8599        p_end_coding_info: *const VideoEndCodingInfoKHR,
8600    ),
8601>;
8602///[`vkCmdEncodeVideoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEncodeVideoKHR.html)
8603/**
8604Provided by **VK_KHR_video_encode_queue**.*/
8605///
8606///# Thread Safety
8607///- `commandBuffer` must be externally synchronized
8608pub type PFN_vkCmdEncodeVideoKHR = Option<
8609    unsafe extern "system" fn(
8610        command_buffer: CommandBuffer,
8611        p_encode_info: *const VideoEncodeInfoKHR,
8612    ),
8613>;
8614///[`vkCmdDecompressMemoryNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDecompressMemoryNV.html)
8615/**
8616Provided by **VK_NV_memory_decompression**.*/
8617///
8618///# Thread Safety
8619///- `commandBuffer` must be externally synchronized
8620pub type PFN_vkCmdDecompressMemoryNV = Option<
8621    unsafe extern "system" fn(
8622        command_buffer: CommandBuffer,
8623        decompress_region_count: u32,
8624        p_decompress_memory_regions: *const DecompressMemoryRegionNV,
8625    ),
8626>;
8627///[`vkCmdDecompressMemoryIndirectCountNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDecompressMemoryIndirectCountNV.html)
8628/**
8629Provided by **VK_NV_memory_decompression**.*/
8630///
8631///# Thread Safety
8632///- `commandBuffer` must be externally synchronized
8633pub type PFN_vkCmdDecompressMemoryIndirectCountNV = Option<
8634    unsafe extern "system" fn(
8635        command_buffer: CommandBuffer,
8636        indirect_commands_address: u64,
8637        indirect_commands_count_address: u64,
8638        stride: u32,
8639    ),
8640>;
8641///[`vkGetPartitionedAccelerationStructuresBuildSizesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPartitionedAccelerationStructuresBuildSizesNV.html)
8642/**
8643Provided by **VK_NV_partitioned_acceleration_structure**.*/
8644pub type PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV = Option<
8645    unsafe extern "system" fn(
8646        device: Device,
8647        p_info: *const PartitionedAccelerationStructureInstancesInputNV,
8648        p_size_info: *mut AccelerationStructureBuildSizesInfoKHR,
8649    ),
8650>;
8651///[`vkCmdBuildPartitionedAccelerationStructuresNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBuildPartitionedAccelerationStructuresNV.html)
8652/**
8653Provided by **VK_NV_partitioned_acceleration_structure**.*/
8654///
8655///# Thread Safety
8656///- `commandBuffer` must be externally synchronized
8657pub type PFN_vkCmdBuildPartitionedAccelerationStructuresNV = Option<
8658    unsafe extern "system" fn(
8659        command_buffer: CommandBuffer,
8660        p_build_info: *const BuildPartitionedAccelerationStructureInfoNV,
8661    ),
8662>;
8663///[`vkCmdDecompressMemoryEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDecompressMemoryEXT.html)
8664/**
8665Provided by **VK_EXT_memory_decompression**.*/
8666///
8667///# Thread Safety
8668///- `commandBuffer` must be externally synchronized
8669pub type PFN_vkCmdDecompressMemoryEXT = Option<
8670    unsafe extern "system" fn(
8671        command_buffer: CommandBuffer,
8672        p_decompress_memory_info_ext: *const DecompressMemoryInfoEXT,
8673    ),
8674>;
8675///[`vkCmdDecompressMemoryIndirectCountEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDecompressMemoryIndirectCountEXT.html)
8676/**
8677Provided by **VK_EXT_memory_decompression**.*/
8678///
8679///# Thread Safety
8680///- `commandBuffer` must be externally synchronized
8681pub type PFN_vkCmdDecompressMemoryIndirectCountEXT = Option<
8682    unsafe extern "system" fn(
8683        command_buffer: CommandBuffer,
8684        decompression_method: MemoryDecompressionMethodFlagsEXT,
8685        indirect_commands_address: u64,
8686        indirect_commands_count_address: u64,
8687        max_decompression_count: u32,
8688        stride: u32,
8689    ),
8690>;
8691///[`vkCreateCuModuleNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCuModuleNVX.html)
8692/**
8693Provided by **VK_NVX_binary_import**.*/
8694///
8695///# Success Codes
8696///- `VK_SUCCESS`
8697///
8698///# Error Codes
8699///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8700///- `VK_ERROR_INITIALIZATION_FAILED`
8701///- `VK_ERROR_UNKNOWN`
8702///- `VK_ERROR_VALIDATION_FAILED`
8703pub type PFN_vkCreateCuModuleNVX = Option<
8704    unsafe extern "system" fn(
8705        device: Device,
8706        p_create_info: *const CuModuleCreateInfoNVX,
8707        p_allocator: *const AllocationCallbacks,
8708        p_module: *mut CuModuleNVX,
8709    ) -> Result,
8710>;
8711///[`vkCreateCuFunctionNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCuFunctionNVX.html)
8712/**
8713Provided by **VK_NVX_binary_import**.*/
8714///
8715///# Success Codes
8716///- `VK_SUCCESS`
8717///
8718///# Error Codes
8719///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8720///- `VK_ERROR_INITIALIZATION_FAILED`
8721///- `VK_ERROR_UNKNOWN`
8722///- `VK_ERROR_VALIDATION_FAILED`
8723pub type PFN_vkCreateCuFunctionNVX = Option<
8724    unsafe extern "system" fn(
8725        device: Device,
8726        p_create_info: *const CuFunctionCreateInfoNVX,
8727        p_allocator: *const AllocationCallbacks,
8728        p_function: *mut CuFunctionNVX,
8729    ) -> Result,
8730>;
8731///[`vkDestroyCuModuleNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCuModuleNVX.html)
8732/**
8733Provided by **VK_NVX_binary_import**.*/
8734pub type PFN_vkDestroyCuModuleNVX = Option<
8735    unsafe extern "system" fn(
8736        device: Device,
8737        module: CuModuleNVX,
8738        p_allocator: *const AllocationCallbacks,
8739    ),
8740>;
8741///[`vkDestroyCuFunctionNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCuFunctionNVX.html)
8742/**
8743Provided by **VK_NVX_binary_import**.*/
8744pub type PFN_vkDestroyCuFunctionNVX = Option<
8745    unsafe extern "system" fn(
8746        device: Device,
8747        function: CuFunctionNVX,
8748        p_allocator: *const AllocationCallbacks,
8749    ),
8750>;
8751///[`vkCmdCuLaunchKernelNVX`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCuLaunchKernelNVX.html)
8752/**
8753Provided by **VK_NVX_binary_import**.*/
8754pub type PFN_vkCmdCuLaunchKernelNVX = Option<
8755    unsafe extern "system" fn(
8756        command_buffer: CommandBuffer,
8757        p_launch_info: *const CuLaunchInfoNVX,
8758    ),
8759>;
8760///[`vkGetDescriptorSetLayoutSizeEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorSetLayoutSizeEXT.html)
8761/**
8762Provided by **VK_EXT_descriptor_buffer**.*/
8763pub type PFN_vkGetDescriptorSetLayoutSizeEXT = Option<
8764    unsafe extern "system" fn(
8765        device: Device,
8766        layout: DescriptorSetLayout,
8767        p_layout_size_in_bytes: *mut u64,
8768    ),
8769>;
8770///[`vkGetDescriptorSetLayoutBindingOffsetEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorSetLayoutBindingOffsetEXT.html)
8771/**
8772Provided by **VK_EXT_descriptor_buffer**.*/
8773pub type PFN_vkGetDescriptorSetLayoutBindingOffsetEXT = Option<
8774    unsafe extern "system" fn(
8775        device: Device,
8776        layout: DescriptorSetLayout,
8777        binding: u32,
8778        p_offset: *mut u64,
8779    ),
8780>;
8781///[`vkGetDescriptorEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorEXT.html)
8782/**
8783Provided by **VK_EXT_descriptor_buffer**.*/
8784pub type PFN_vkGetDescriptorEXT = Option<
8785    unsafe extern "system" fn(
8786        device: Device,
8787        p_descriptor_info: *const DescriptorGetInfoEXT,
8788        data_size: usize,
8789        p_descriptor: *mut core::ffi::c_void,
8790    ),
8791>;
8792///[`vkCmdBindDescriptorBuffersEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindDescriptorBuffersEXT.html)
8793/**
8794Provided by **VK_EXT_descriptor_buffer**.*/
8795///
8796///# Thread Safety
8797///- `commandBuffer` must be externally synchronized
8798pub type PFN_vkCmdBindDescriptorBuffersEXT = Option<
8799    unsafe extern "system" fn(
8800        command_buffer: CommandBuffer,
8801        buffer_count: u32,
8802        p_binding_infos: *const DescriptorBufferBindingInfoEXT,
8803    ),
8804>;
8805///[`vkCmdSetDescriptorBufferOffsetsEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDescriptorBufferOffsetsEXT.html)
8806/**
8807Provided by **VK_EXT_descriptor_buffer**.*/
8808///
8809///# Thread Safety
8810///- `commandBuffer` must be externally synchronized
8811pub type PFN_vkCmdSetDescriptorBufferOffsetsEXT = Option<
8812    unsafe extern "system" fn(
8813        command_buffer: CommandBuffer,
8814        pipeline_bind_point: PipelineBindPoint,
8815        layout: PipelineLayout,
8816        first_set: u32,
8817        set_count: u32,
8818        p_buffer_indices: *const u32,
8819        p_offsets: *const u64,
8820    ),
8821>;
8822///[`vkCmdBindDescriptorBufferEmbeddedSamplersEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindDescriptorBufferEmbeddedSamplersEXT.html)
8823/**
8824Provided by **VK_EXT_descriptor_buffer**.*/
8825///
8826///# Thread Safety
8827///- `commandBuffer` must be externally synchronized
8828pub type PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT = Option<
8829    unsafe extern "system" fn(
8830        command_buffer: CommandBuffer,
8831        pipeline_bind_point: PipelineBindPoint,
8832        layout: PipelineLayout,
8833        set: u32,
8834    ),
8835>;
8836///[`vkGetBufferOpaqueCaptureDescriptorDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferOpaqueCaptureDescriptorDataEXT.html)
8837/**
8838Provided by **VK_EXT_descriptor_buffer**.*/
8839///
8840///# Success Codes
8841///- `VK_SUCCESS`
8842///
8843///# Error Codes
8844///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8845///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
8846///- `VK_ERROR_UNKNOWN`
8847///- `VK_ERROR_VALIDATION_FAILED`
8848pub type PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT = Option<
8849    unsafe extern "system" fn(
8850        device: Device,
8851        p_info: *const BufferCaptureDescriptorDataInfoEXT,
8852        p_data: *mut core::ffi::c_void,
8853    ) -> Result,
8854>;
8855///[`vkGetImageOpaqueCaptureDescriptorDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageOpaqueCaptureDescriptorDataEXT.html)
8856/**
8857Provided by **VK_EXT_descriptor_buffer**.*/
8858///
8859///# Success Codes
8860///- `VK_SUCCESS`
8861///
8862///# Error Codes
8863///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8864///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
8865///- `VK_ERROR_UNKNOWN`
8866///- `VK_ERROR_VALIDATION_FAILED`
8867pub type PFN_vkGetImageOpaqueCaptureDescriptorDataEXT = Option<
8868    unsafe extern "system" fn(
8869        device: Device,
8870        p_info: *const ImageCaptureDescriptorDataInfoEXT,
8871        p_data: *mut core::ffi::c_void,
8872    ) -> Result,
8873>;
8874///[`vkGetImageViewOpaqueCaptureDescriptorDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageViewOpaqueCaptureDescriptorDataEXT.html)
8875/**
8876Provided by **VK_EXT_descriptor_buffer**.*/
8877///
8878///# Success Codes
8879///- `VK_SUCCESS`
8880///
8881///# Error Codes
8882///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8883///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
8884///- `VK_ERROR_UNKNOWN`
8885///- `VK_ERROR_VALIDATION_FAILED`
8886pub type PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT = Option<
8887    unsafe extern "system" fn(
8888        device: Device,
8889        p_info: *const ImageViewCaptureDescriptorDataInfoEXT,
8890        p_data: *mut core::ffi::c_void,
8891    ) -> Result,
8892>;
8893///[`vkGetSamplerOpaqueCaptureDescriptorDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSamplerOpaqueCaptureDescriptorDataEXT.html)
8894/**
8895Provided by **VK_EXT_descriptor_buffer**.*/
8896///
8897///# Success Codes
8898///- `VK_SUCCESS`
8899///
8900///# Error Codes
8901///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8902///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
8903///- `VK_ERROR_UNKNOWN`
8904///- `VK_ERROR_VALIDATION_FAILED`
8905pub type PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT = Option<
8906    unsafe extern "system" fn(
8907        device: Device,
8908        p_info: *const SamplerCaptureDescriptorDataInfoEXT,
8909        p_data: *mut core::ffi::c_void,
8910    ) -> Result,
8911>;
8912///[`vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT.html)
8913/**
8914Provided by **VK_EXT_descriptor_buffer**.*/
8915///
8916///# Success Codes
8917///- `VK_SUCCESS`
8918///
8919///# Error Codes
8920///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8921///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
8922///- `VK_ERROR_UNKNOWN`
8923///- `VK_ERROR_VALIDATION_FAILED`
8924pub type PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = Option<
8925    unsafe extern "system" fn(
8926        device: Device,
8927        p_info: *const AccelerationStructureCaptureDescriptorDataInfoEXT,
8928        p_data: *mut core::ffi::c_void,
8929    ) -> Result,
8930>;
8931///[`vkSetDeviceMemoryPriorityEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetDeviceMemoryPriorityEXT.html)
8932/**
8933Provided by **VK_EXT_pageable_device_local_memory**.*/
8934pub type PFN_vkSetDeviceMemoryPriorityEXT = Option<
8935    unsafe extern "system" fn(device: Device, memory: DeviceMemory, priority: f32),
8936>;
8937///[`vkAcquireDrmDisplayEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireDrmDisplayEXT.html)
8938/**
8939Provided by **VK_EXT_acquire_drm_display**.*/
8940///
8941///# Success Codes
8942///- `VK_SUCCESS`
8943///
8944///# Error Codes
8945///- `VK_ERROR_INITIALIZATION_FAILED`
8946///- `VK_ERROR_UNKNOWN`
8947///- `VK_ERROR_VALIDATION_FAILED`
8948pub type PFN_vkAcquireDrmDisplayEXT = Option<
8949    unsafe extern "system" fn(
8950        physical_device: PhysicalDevice,
8951        drm_fd: i32,
8952        display: DisplayKHR,
8953    ) -> Result,
8954>;
8955///[`vkGetDrmDisplayEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDrmDisplayEXT.html)
8956/**
8957Provided by **VK_EXT_acquire_drm_display**.*/
8958///
8959///# Success Codes
8960///- `VK_SUCCESS`
8961///
8962///# Error Codes
8963///- `VK_ERROR_INITIALIZATION_FAILED`
8964///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8965///- `VK_ERROR_UNKNOWN`
8966///- `VK_ERROR_VALIDATION_FAILED`
8967pub type PFN_vkGetDrmDisplayEXT = Option<
8968    unsafe extern "system" fn(
8969        physical_device: PhysicalDevice,
8970        drm_fd: i32,
8971        connector_id: u32,
8972        display: *mut DisplayKHR,
8973    ) -> Result,
8974>;
8975///[`vkWaitForPresent2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitForPresent2KHR.html)
8976/**
8977Provided by **VK_KHR_present_wait2**.*/
8978///
8979///# Success Codes
8980///- `VK_SUCCESS`
8981///- `VK_TIMEOUT`
8982///- `VK_SUBOPTIMAL_KHR`
8983///
8984///# Error Codes
8985///- `VK_ERROR_OUT_OF_HOST_MEMORY`
8986///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
8987///- `VK_ERROR_DEVICE_LOST`
8988///- `VK_ERROR_OUT_OF_DATE_KHR`
8989///- `VK_ERROR_SURFACE_LOST_KHR`
8990///- `VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT`
8991///- `VK_ERROR_UNKNOWN`
8992///- `VK_ERROR_VALIDATION_FAILED`
8993///
8994///# Thread Safety
8995///- `swapchain` must be externally synchronized
8996pub type PFN_vkWaitForPresent2KHR = Option<
8997    unsafe extern "system" fn(
8998        device: Device,
8999        swapchain: SwapchainKHR,
9000        p_present_wait2_info: *const PresentWait2InfoKHR,
9001    ) -> Result,
9002>;
9003///[`vkWaitForPresentKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitForPresentKHR.html)
9004/**
9005Provided by **VK_KHR_present_wait**.*/
9006///
9007///# Success Codes
9008///- `VK_SUCCESS`
9009///- `VK_TIMEOUT`
9010///- `VK_SUBOPTIMAL_KHR`
9011///
9012///# Error Codes
9013///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9014///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
9015///- `VK_ERROR_DEVICE_LOST`
9016///- `VK_ERROR_OUT_OF_DATE_KHR`
9017///- `VK_ERROR_SURFACE_LOST_KHR`
9018///- `VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT`
9019///- `VK_ERROR_UNKNOWN`
9020///- `VK_ERROR_VALIDATION_FAILED`
9021///
9022///# Thread Safety
9023///- `swapchain` must be externally synchronized
9024pub type PFN_vkWaitForPresentKHR = Option<
9025    unsafe extern "system" fn(
9026        device: Device,
9027        swapchain: SwapchainKHR,
9028        present_id: u64,
9029        timeout: u64,
9030    ) -> Result,
9031>;
9032///[`vkCreateBufferCollectionFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateBufferCollectionFUCHSIA.html)
9033/**
9034Provided by **VK_FUCHSIA_buffer_collection**.*/
9035///
9036///# Success Codes
9037///- `VK_SUCCESS`
9038///
9039///# Error Codes
9040///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9041///- `VK_ERROR_INVALID_EXTERNAL_HANDLE`
9042///- `VK_ERROR_INITIALIZATION_FAILED`
9043///- `VK_ERROR_UNKNOWN`
9044///- `VK_ERROR_VALIDATION_FAILED`
9045pub type PFN_vkCreateBufferCollectionFUCHSIA = Option<
9046    unsafe extern "system" fn(
9047        device: Device,
9048        p_create_info: *const BufferCollectionCreateInfoFUCHSIA,
9049        p_allocator: *const AllocationCallbacks,
9050        p_collection: *mut BufferCollectionFUCHSIA,
9051    ) -> Result,
9052>;
9053///[`vkSetBufferCollectionBufferConstraintsFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetBufferCollectionBufferConstraintsFUCHSIA.html)
9054/**
9055Provided by **VK_FUCHSIA_buffer_collection**.*/
9056///
9057///# Success Codes
9058///- `VK_SUCCESS`
9059///
9060///# Error Codes
9061///- `VK_ERROR_INITIALIZATION_FAILED`
9062///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9063///- `VK_ERROR_FORMAT_NOT_SUPPORTED`
9064///- `VK_ERROR_UNKNOWN`
9065///- `VK_ERROR_VALIDATION_FAILED`
9066pub type PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA = Option<
9067    unsafe extern "system" fn(
9068        device: Device,
9069        collection: BufferCollectionFUCHSIA,
9070        p_buffer_constraints_info: *const BufferConstraintsInfoFUCHSIA,
9071    ) -> Result,
9072>;
9073///[`vkSetBufferCollectionImageConstraintsFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetBufferCollectionImageConstraintsFUCHSIA.html)
9074/**
9075Provided by **VK_FUCHSIA_buffer_collection**.*/
9076///
9077///# Success Codes
9078///- `VK_SUCCESS`
9079///
9080///# Error Codes
9081///- `VK_ERROR_INITIALIZATION_FAILED`
9082///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9083///- `VK_ERROR_FORMAT_NOT_SUPPORTED`
9084///- `VK_ERROR_UNKNOWN`
9085///- `VK_ERROR_VALIDATION_FAILED`
9086pub type PFN_vkSetBufferCollectionImageConstraintsFUCHSIA = Option<
9087    unsafe extern "system" fn(
9088        device: Device,
9089        collection: BufferCollectionFUCHSIA,
9090        p_image_constraints_info: *const ImageConstraintsInfoFUCHSIA,
9091    ) -> Result,
9092>;
9093///[`vkDestroyBufferCollectionFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyBufferCollectionFUCHSIA.html)
9094/**
9095Provided by **VK_FUCHSIA_buffer_collection**.*/
9096pub type PFN_vkDestroyBufferCollectionFUCHSIA = Option<
9097    unsafe extern "system" fn(
9098        device: Device,
9099        collection: BufferCollectionFUCHSIA,
9100        p_allocator: *const AllocationCallbacks,
9101    ),
9102>;
9103///[`vkGetBufferCollectionPropertiesFUCHSIA`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferCollectionPropertiesFUCHSIA.html)
9104/**
9105Provided by **VK_FUCHSIA_buffer_collection**.*/
9106///
9107///# Success Codes
9108///- `VK_SUCCESS`
9109///
9110///# Error Codes
9111///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9112///- `VK_ERROR_INITIALIZATION_FAILED`
9113///- `VK_ERROR_UNKNOWN`
9114///- `VK_ERROR_VALIDATION_FAILED`
9115pub type PFN_vkGetBufferCollectionPropertiesFUCHSIA = Option<
9116    unsafe extern "system" fn(
9117        device: Device,
9118        collection: BufferCollectionFUCHSIA,
9119        p_properties: *mut BufferCollectionPropertiesFUCHSIA,
9120    ) -> Result,
9121>;
9122///[`vkCreateCudaModuleNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCudaModuleNV.html)
9123/**
9124Provided by **VK_NV_cuda_kernel_launch**.*/
9125///
9126///# Success Codes
9127///- `VK_SUCCESS`
9128///
9129///# Error Codes
9130///- `VK_ERROR_INITIALIZATION_FAILED`
9131///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9132///- `VK_ERROR_UNKNOWN`
9133///- `VK_ERROR_VALIDATION_FAILED`
9134pub type PFN_vkCreateCudaModuleNV = Option<
9135    unsafe extern "system" fn(
9136        device: Device,
9137        p_create_info: *const CudaModuleCreateInfoNV,
9138        p_allocator: *const AllocationCallbacks,
9139        p_module: *mut CudaModuleNV,
9140    ) -> Result,
9141>;
9142///[`vkGetCudaModuleCacheNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCudaModuleCacheNV.html)
9143/**
9144Provided by **VK_NV_cuda_kernel_launch**.*/
9145///
9146///# Success Codes
9147///- `VK_SUCCESS`
9148///- `VK_INCOMPLETE`
9149///
9150///# Error Codes
9151///- `VK_ERROR_INITIALIZATION_FAILED`
9152///- `VK_ERROR_UNKNOWN`
9153///- `VK_ERROR_VALIDATION_FAILED`
9154pub type PFN_vkGetCudaModuleCacheNV = Option<
9155    unsafe extern "system" fn(
9156        device: Device,
9157        module: CudaModuleNV,
9158        p_cache_size: *mut usize,
9159        p_cache_data: *mut core::ffi::c_void,
9160    ) -> Result,
9161>;
9162///[`vkCreateCudaFunctionNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCudaFunctionNV.html)
9163/**
9164Provided by **VK_NV_cuda_kernel_launch**.*/
9165///
9166///# Success Codes
9167///- `VK_SUCCESS`
9168///
9169///# Error Codes
9170///- `VK_ERROR_INITIALIZATION_FAILED`
9171///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9172///- `VK_ERROR_UNKNOWN`
9173///- `VK_ERROR_VALIDATION_FAILED`
9174pub type PFN_vkCreateCudaFunctionNV = Option<
9175    unsafe extern "system" fn(
9176        device: Device,
9177        p_create_info: *const CudaFunctionCreateInfoNV,
9178        p_allocator: *const AllocationCallbacks,
9179        p_function: *mut CudaFunctionNV,
9180    ) -> Result,
9181>;
9182///[`vkDestroyCudaModuleNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCudaModuleNV.html)
9183/**
9184Provided by **VK_NV_cuda_kernel_launch**.*/
9185pub type PFN_vkDestroyCudaModuleNV = Option<
9186    unsafe extern "system" fn(
9187        device: Device,
9188        module: CudaModuleNV,
9189        p_allocator: *const AllocationCallbacks,
9190    ),
9191>;
9192///[`vkDestroyCudaFunctionNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCudaFunctionNV.html)
9193/**
9194Provided by **VK_NV_cuda_kernel_launch**.*/
9195pub type PFN_vkDestroyCudaFunctionNV = Option<
9196    unsafe extern "system" fn(
9197        device: Device,
9198        function: CudaFunctionNV,
9199        p_allocator: *const AllocationCallbacks,
9200    ),
9201>;
9202///[`vkCmdCudaLaunchKernelNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCudaLaunchKernelNV.html)
9203/**
9204Provided by **VK_NV_cuda_kernel_launch**.*/
9205pub type PFN_vkCmdCudaLaunchKernelNV = Option<
9206    unsafe extern "system" fn(
9207        command_buffer: CommandBuffer,
9208        p_launch_info: *const CudaLaunchInfoNV,
9209    ),
9210>;
9211///[`vkCmdBeginRendering`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginRendering.html)
9212/**
9213Provided by **VK_GRAPHICS_VERSION_1_3**.*/
9214///
9215///# Thread Safety
9216///- `commandBuffer` must be externally synchronized
9217pub type PFN_vkCmdBeginRendering = Option<
9218    unsafe extern "system" fn(
9219        command_buffer: CommandBuffer,
9220        p_rendering_info: *const RenderingInfo,
9221    ),
9222>;
9223///[`vkCmdEndRendering`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndRendering.html)
9224/**
9225Provided by **VK_GRAPHICS_VERSION_1_3**.*/
9226///
9227///# Thread Safety
9228///- `commandBuffer` must be externally synchronized
9229pub type PFN_vkCmdEndRendering = Option<
9230    unsafe extern "system" fn(command_buffer: CommandBuffer),
9231>;
9232///[`vkCmdEndRendering2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndRendering2KHR.html)
9233/**
9234Provided by **VK_KHR_maintenance10**.*/
9235///
9236///# Thread Safety
9237///- `commandBuffer` must be externally synchronized
9238pub type PFN_vkCmdEndRendering2KHR = Option<
9239    unsafe extern "system" fn(
9240        command_buffer: CommandBuffer,
9241        p_rendering_end_info: *const RenderingEndInfoKHR,
9242    ),
9243>;
9244///[`vkGetDescriptorSetLayoutHostMappingInfoVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorSetLayoutHostMappingInfoVALVE.html)
9245/**
9246Provided by **VK_VALVE_descriptor_set_host_mapping**.*/
9247pub type PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE = Option<
9248    unsafe extern "system" fn(
9249        device: Device,
9250        p_binding_reference: *const DescriptorSetBindingReferenceVALVE,
9251        p_host_mapping: *mut DescriptorSetLayoutHostMappingInfoVALVE,
9252    ),
9253>;
9254///[`vkGetDescriptorSetHostMappingVALVE`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorSetHostMappingVALVE.html)
9255/**
9256Provided by **VK_VALVE_descriptor_set_host_mapping**.*/
9257pub type PFN_vkGetDescriptorSetHostMappingVALVE = Option<
9258    unsafe extern "system" fn(
9259        device: Device,
9260        descriptor_set: DescriptorSet,
9261        pp_data: *mut *mut core::ffi::c_void,
9262    ),
9263>;
9264///[`vkCreateMicromapEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateMicromapEXT.html)
9265/**
9266Provided by **VK_EXT_opacity_micromap**.*/
9267///
9268///# Success Codes
9269///- `VK_SUCCESS`
9270///
9271///# Error Codes
9272///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9273///- `VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR`
9274///- `VK_ERROR_UNKNOWN`
9275///- `VK_ERROR_VALIDATION_FAILED`
9276pub type PFN_vkCreateMicromapEXT = Option<
9277    unsafe extern "system" fn(
9278        device: Device,
9279        p_create_info: *const MicromapCreateInfoEXT,
9280        p_allocator: *const AllocationCallbacks,
9281        p_micromap: *mut MicromapEXT,
9282    ) -> Result,
9283>;
9284///[`vkCmdBuildMicromapsEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBuildMicromapsEXT.html)
9285/**
9286Provided by **VK_EXT_opacity_micromap**.*/
9287///
9288///# Thread Safety
9289///- `commandBuffer` must be externally synchronized
9290pub type PFN_vkCmdBuildMicromapsEXT = Option<
9291    unsafe extern "system" fn(
9292        command_buffer: CommandBuffer,
9293        info_count: u32,
9294        p_infos: *const MicromapBuildInfoEXT,
9295    ),
9296>;
9297///[`vkBuildMicromapsEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkBuildMicromapsEXT.html)
9298/**
9299Provided by **VK_EXT_opacity_micromap**.*/
9300///
9301///# Success Codes
9302///- `VK_SUCCESS`
9303///- `VK_OPERATION_DEFERRED_KHR`
9304///- `VK_OPERATION_NOT_DEFERRED_KHR`
9305///
9306///# Error Codes
9307///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9308///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
9309///- `VK_ERROR_UNKNOWN`
9310///- `VK_ERROR_VALIDATION_FAILED`
9311pub type PFN_vkBuildMicromapsEXT = Option<
9312    unsafe extern "system" fn(
9313        device: Device,
9314        deferred_operation: DeferredOperationKHR,
9315        info_count: u32,
9316        p_infos: *const MicromapBuildInfoEXT,
9317    ) -> Result,
9318>;
9319///[`vkDestroyMicromapEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyMicromapEXT.html)
9320/**
9321Provided by **VK_EXT_opacity_micromap**.*/
9322///
9323///# Thread Safety
9324///- `micromap` must be externally synchronized
9325pub type PFN_vkDestroyMicromapEXT = Option<
9326    unsafe extern "system" fn(
9327        device: Device,
9328        micromap: MicromapEXT,
9329        p_allocator: *const AllocationCallbacks,
9330    ),
9331>;
9332///[`vkCmdCopyMicromapEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMicromapEXT.html)
9333/**
9334Provided by **VK_EXT_opacity_micromap**.*/
9335///
9336///# Thread Safety
9337///- `commandBuffer` must be externally synchronized
9338pub type PFN_vkCmdCopyMicromapEXT = Option<
9339    unsafe extern "system" fn(
9340        command_buffer: CommandBuffer,
9341        p_info: *const CopyMicromapInfoEXT,
9342    ),
9343>;
9344///[`vkCopyMicromapEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMicromapEXT.html)
9345/**
9346Provided by **VK_EXT_opacity_micromap**.*/
9347///
9348///# Success Codes
9349///- `VK_SUCCESS`
9350///- `VK_OPERATION_DEFERRED_KHR`
9351///- `VK_OPERATION_NOT_DEFERRED_KHR`
9352///
9353///# Error Codes
9354///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9355///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
9356///- `VK_ERROR_UNKNOWN`
9357///- `VK_ERROR_VALIDATION_FAILED`
9358pub type PFN_vkCopyMicromapEXT = Option<
9359    unsafe extern "system" fn(
9360        device: Device,
9361        deferred_operation: DeferredOperationKHR,
9362        p_info: *const CopyMicromapInfoEXT,
9363    ) -> Result,
9364>;
9365///[`vkCmdCopyMicromapToMemoryEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMicromapToMemoryEXT.html)
9366/**
9367Provided by **VK_EXT_opacity_micromap**.*/
9368///
9369///# Thread Safety
9370///- `commandBuffer` must be externally synchronized
9371pub type PFN_vkCmdCopyMicromapToMemoryEXT = Option<
9372    unsafe extern "system" fn(
9373        command_buffer: CommandBuffer,
9374        p_info: *const CopyMicromapToMemoryInfoEXT,
9375    ),
9376>;
9377///[`vkCopyMicromapToMemoryEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMicromapToMemoryEXT.html)
9378/**
9379Provided by **VK_EXT_opacity_micromap**.*/
9380///
9381///# Success Codes
9382///- `VK_SUCCESS`
9383///- `VK_OPERATION_DEFERRED_KHR`
9384///- `VK_OPERATION_NOT_DEFERRED_KHR`
9385///
9386///# Error Codes
9387///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9388///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
9389///- `VK_ERROR_UNKNOWN`
9390///- `VK_ERROR_VALIDATION_FAILED`
9391pub type PFN_vkCopyMicromapToMemoryEXT = Option<
9392    unsafe extern "system" fn(
9393        device: Device,
9394        deferred_operation: DeferredOperationKHR,
9395        p_info: *const CopyMicromapToMemoryInfoEXT,
9396    ) -> Result,
9397>;
9398///[`vkCmdCopyMemoryToMicromapEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryToMicromapEXT.html)
9399/**
9400Provided by **VK_EXT_opacity_micromap**.*/
9401///
9402///# Thread Safety
9403///- `commandBuffer` must be externally synchronized
9404pub type PFN_vkCmdCopyMemoryToMicromapEXT = Option<
9405    unsafe extern "system" fn(
9406        command_buffer: CommandBuffer,
9407        p_info: *const CopyMemoryToMicromapInfoEXT,
9408    ),
9409>;
9410///[`vkCopyMemoryToMicromapEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMemoryToMicromapEXT.html)
9411/**
9412Provided by **VK_EXT_opacity_micromap**.*/
9413///
9414///# Success Codes
9415///- `VK_SUCCESS`
9416///- `VK_OPERATION_DEFERRED_KHR`
9417///- `VK_OPERATION_NOT_DEFERRED_KHR`
9418///
9419///# Error Codes
9420///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9421///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
9422///- `VK_ERROR_UNKNOWN`
9423///- `VK_ERROR_VALIDATION_FAILED`
9424pub type PFN_vkCopyMemoryToMicromapEXT = Option<
9425    unsafe extern "system" fn(
9426        device: Device,
9427        deferred_operation: DeferredOperationKHR,
9428        p_info: *const CopyMemoryToMicromapInfoEXT,
9429    ) -> Result,
9430>;
9431///[`vkCmdWriteMicromapsPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWriteMicromapsPropertiesEXT.html)
9432/**
9433Provided by **VK_EXT_opacity_micromap**.*/
9434///
9435///# Thread Safety
9436///- `commandBuffer` must be externally synchronized
9437pub type PFN_vkCmdWriteMicromapsPropertiesEXT = Option<
9438    unsafe extern "system" fn(
9439        command_buffer: CommandBuffer,
9440        micromap_count: u32,
9441        p_micromaps: *const MicromapEXT,
9442        query_type: QueryType,
9443        query_pool: QueryPool,
9444        first_query: u32,
9445    ),
9446>;
9447///[`vkWriteMicromapsPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkWriteMicromapsPropertiesEXT.html)
9448/**
9449Provided by **VK_EXT_opacity_micromap**.*/
9450///
9451///# Success Codes
9452///- `VK_SUCCESS`
9453///
9454///# Error Codes
9455///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9456///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
9457///- `VK_ERROR_UNKNOWN`
9458///- `VK_ERROR_VALIDATION_FAILED`
9459pub type PFN_vkWriteMicromapsPropertiesEXT = Option<
9460    unsafe extern "system" fn(
9461        device: Device,
9462        micromap_count: u32,
9463        p_micromaps: *const MicromapEXT,
9464        query_type: QueryType,
9465        data_size: usize,
9466        p_data: *mut core::ffi::c_void,
9467        stride: usize,
9468    ) -> Result,
9469>;
9470///[`vkGetDeviceMicromapCompatibilityEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceMicromapCompatibilityEXT.html)
9471/**
9472Provided by **VK_EXT_opacity_micromap**.*/
9473pub type PFN_vkGetDeviceMicromapCompatibilityEXT = Option<
9474    unsafe extern "system" fn(
9475        device: Device,
9476        p_version_info: *const MicromapVersionInfoEXT,
9477        p_compatibility: *mut AccelerationStructureCompatibilityKHR,
9478    ),
9479>;
9480///[`vkGetMicromapBuildSizesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMicromapBuildSizesEXT.html)
9481/**
9482Provided by **VK_EXT_opacity_micromap**.*/
9483pub type PFN_vkGetMicromapBuildSizesEXT = Option<
9484    unsafe extern "system" fn(
9485        device: Device,
9486        build_type: AccelerationStructureBuildTypeKHR,
9487        p_build_info: *const MicromapBuildInfoEXT,
9488        p_size_info: *mut MicromapBuildSizesInfoEXT,
9489    ),
9490>;
9491///[`vkGetShaderModuleIdentifierEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderModuleIdentifierEXT.html)
9492/**
9493Provided by **VK_EXT_shader_module_identifier**.*/
9494pub type PFN_vkGetShaderModuleIdentifierEXT = Option<
9495    unsafe extern "system" fn(
9496        device: Device,
9497        shader_module: ShaderModule,
9498        p_identifier: *mut ShaderModuleIdentifierEXT,
9499    ),
9500>;
9501///[`vkGetShaderModuleCreateInfoIdentifierEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderModuleCreateInfoIdentifierEXT.html)
9502/**
9503Provided by **VK_EXT_shader_module_identifier**.*/
9504pub type PFN_vkGetShaderModuleCreateInfoIdentifierEXT = Option<
9505    unsafe extern "system" fn(
9506        device: Device,
9507        p_create_info: *const ShaderModuleCreateInfo,
9508        p_identifier: *mut ShaderModuleIdentifierEXT,
9509    ),
9510>;
9511///[`vkGetImageSubresourceLayout2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSubresourceLayout2.html)
9512/**
9513Provided by **VK_BASE_VERSION_1_4**.*/
9514pub type PFN_vkGetImageSubresourceLayout2 = Option<
9515    unsafe extern "system" fn(
9516        device: Device,
9517        image: Image,
9518        p_subresource: *const ImageSubresource2,
9519        p_layout: *mut SubresourceLayout2,
9520    ),
9521>;
9522///[`vkGetPipelinePropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelinePropertiesEXT.html)
9523/**
9524Provided by **VK_EXT_pipeline_properties**.*/
9525///
9526///# Success Codes
9527///- `VK_SUCCESS`
9528///
9529///# Error Codes
9530///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9531///- `VK_ERROR_UNKNOWN`
9532///- `VK_ERROR_VALIDATION_FAILED`
9533pub type PFN_vkGetPipelinePropertiesEXT = Option<
9534    unsafe extern "system" fn(
9535        device: Device,
9536        p_pipeline_info: *const PipelineInfoEXT,
9537        p_pipeline_properties: *mut BaseOutStructure,
9538    ) -> Result,
9539>;
9540///[`vkExportMetalObjectsEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkExportMetalObjectsEXT.html)
9541/**
9542Provided by **VK_EXT_metal_objects**.*/
9543pub type PFN_vkExportMetalObjectsEXT = Option<
9544    unsafe extern "system" fn(
9545        device: Device,
9546        p_metal_objects_info: *mut ExportMetalObjectsInfoEXT,
9547    ),
9548>;
9549///[`vkCmdBindTileMemoryQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindTileMemoryQCOM.html)
9550/**
9551Provided by **VK_QCOM_tile_memory_heap**.*/
9552///
9553///# Thread Safety
9554///- `commandBuffer` must be externally synchronized
9555pub type PFN_vkCmdBindTileMemoryQCOM = Option<
9556    unsafe extern "system" fn(
9557        command_buffer: CommandBuffer,
9558        p_tile_memory_bind_info: *const TileMemoryBindInfoQCOM,
9559    ),
9560>;
9561///[`vkGetFramebufferTilePropertiesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFramebufferTilePropertiesQCOM.html)
9562/**
9563Provided by **VK_QCOM_tile_properties**.*/
9564///
9565///# Success Codes
9566///- `VK_SUCCESS`
9567///- `VK_INCOMPLETE`
9568///
9569///# Error Codes
9570///- `VK_ERROR_UNKNOWN`
9571///- `VK_ERROR_VALIDATION_FAILED`
9572pub type PFN_vkGetFramebufferTilePropertiesQCOM = Option<
9573    unsafe extern "system" fn(
9574        device: Device,
9575        framebuffer: Framebuffer,
9576        p_properties_count: *mut u32,
9577        p_properties: *mut TilePropertiesQCOM,
9578    ) -> Result,
9579>;
9580///[`vkGetDynamicRenderingTilePropertiesQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDynamicRenderingTilePropertiesQCOM.html)
9581/**
9582Provided by **VK_QCOM_tile_properties**.*/
9583///
9584///# Success Codes
9585///- `VK_SUCCESS`
9586///
9587///# Error Codes
9588///- `VK_ERROR_UNKNOWN`
9589///- `VK_ERROR_VALIDATION_FAILED`
9590pub type PFN_vkGetDynamicRenderingTilePropertiesQCOM = Option<
9591    unsafe extern "system" fn(
9592        device: Device,
9593        p_rendering_info: *const RenderingInfo,
9594        p_properties: *mut TilePropertiesQCOM,
9595    ) -> Result,
9596>;
9597///[`vkGetPhysicalDeviceOpticalFlowImageFormatsNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceOpticalFlowImageFormatsNV.html)
9598/**
9599Provided by **VK_NV_optical_flow**.*/
9600///
9601///# Success Codes
9602///- `VK_SUCCESS`
9603///- `VK_INCOMPLETE`
9604///
9605///# Error Codes
9606///- `VK_ERROR_EXTENSION_NOT_PRESENT`
9607///- `VK_ERROR_INITIALIZATION_FAILED`
9608///- `VK_ERROR_FORMAT_NOT_SUPPORTED`
9609///- `VK_ERROR_UNKNOWN`
9610///- `VK_ERROR_VALIDATION_FAILED`
9611pub type PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV = Option<
9612    unsafe extern "system" fn(
9613        physical_device: PhysicalDevice,
9614        p_optical_flow_image_format_info: *const OpticalFlowImageFormatInfoNV,
9615        p_format_count: *mut u32,
9616        p_image_format_properties: *mut OpticalFlowImageFormatPropertiesNV,
9617    ) -> Result,
9618>;
9619///[`vkCreateOpticalFlowSessionNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateOpticalFlowSessionNV.html)
9620/**
9621Provided by **VK_NV_optical_flow**.*/
9622///
9623///# Success Codes
9624///- `VK_SUCCESS`
9625///
9626///# Error Codes
9627///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9628///- `VK_ERROR_INITIALIZATION_FAILED`
9629///- `VK_ERROR_UNKNOWN`
9630///- `VK_ERROR_VALIDATION_FAILED`
9631pub type PFN_vkCreateOpticalFlowSessionNV = Option<
9632    unsafe extern "system" fn(
9633        device: Device,
9634        p_create_info: *const OpticalFlowSessionCreateInfoNV,
9635        p_allocator: *const AllocationCallbacks,
9636        p_session: *mut OpticalFlowSessionNV,
9637    ) -> Result,
9638>;
9639///[`vkDestroyOpticalFlowSessionNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyOpticalFlowSessionNV.html)
9640/**
9641Provided by **VK_NV_optical_flow**.*/
9642pub type PFN_vkDestroyOpticalFlowSessionNV = Option<
9643    unsafe extern "system" fn(
9644        device: Device,
9645        session: OpticalFlowSessionNV,
9646        p_allocator: *const AllocationCallbacks,
9647    ),
9648>;
9649///[`vkBindOpticalFlowSessionImageNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindOpticalFlowSessionImageNV.html)
9650/**
9651Provided by **VK_NV_optical_flow**.*/
9652///
9653///# Success Codes
9654///- `VK_SUCCESS`
9655///
9656///# Error Codes
9657///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9658///- `VK_ERROR_INITIALIZATION_FAILED`
9659///- `VK_ERROR_UNKNOWN`
9660///- `VK_ERROR_VALIDATION_FAILED`
9661pub type PFN_vkBindOpticalFlowSessionImageNV = Option<
9662    unsafe extern "system" fn(
9663        device: Device,
9664        session: OpticalFlowSessionNV,
9665        binding_point: OpticalFlowSessionBindingPointNV,
9666        view: ImageView,
9667        layout: ImageLayout,
9668    ) -> Result,
9669>;
9670///[`vkCmdOpticalFlowExecuteNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdOpticalFlowExecuteNV.html)
9671/**
9672Provided by **VK_NV_optical_flow**.*/
9673pub type PFN_vkCmdOpticalFlowExecuteNV = Option<
9674    unsafe extern "system" fn(
9675        command_buffer: CommandBuffer,
9676        session: OpticalFlowSessionNV,
9677        p_execute_info: *const OpticalFlowExecuteInfoNV,
9678    ),
9679>;
9680///[`vkGetDeviceFaultInfoEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceFaultInfoEXT.html)
9681/**
9682Provided by **VK_EXT_device_fault**.*/
9683///
9684///# Success Codes
9685///- `VK_SUCCESS`
9686///- `VK_INCOMPLETE`
9687///
9688///# Error Codes
9689///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9690///- `VK_ERROR_UNKNOWN`
9691///- `VK_ERROR_VALIDATION_FAILED`
9692pub type PFN_vkGetDeviceFaultInfoEXT = Option<
9693    unsafe extern "system" fn(
9694        device: Device,
9695        p_fault_counts: *mut DeviceFaultCountsEXT,
9696        p_fault_info: *mut DeviceFaultInfoEXT,
9697    ) -> Result,
9698>;
9699///[`vkGetDeviceFaultReportsKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceFaultReportsKHR.html)
9700/**
9701Provided by **VK_KHR_device_fault**.*/
9702///
9703///# Success Codes
9704///- `VK_SUCCESS`
9705///- `VK_INCOMPLETE`
9706///- `VK_TIMEOUT`
9707///
9708///# Error Codes
9709///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9710///- `VK_ERROR_UNKNOWN`
9711///- `VK_ERROR_VALIDATION_FAILED`
9712pub type PFN_vkGetDeviceFaultReportsKHR = Option<
9713    unsafe extern "system" fn(
9714        device: Device,
9715        timeout: u64,
9716        p_fault_counts: *mut u32,
9717        p_fault_info: *mut DeviceFaultInfoKHR,
9718    ) -> Result,
9719>;
9720///[`vkGetDeviceFaultDebugInfoKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceFaultDebugInfoKHR.html)
9721/**
9722Provided by **VK_KHR_device_fault**.*/
9723///
9724///# Success Codes
9725///- `VK_SUCCESS`
9726///- `VK_INCOMPLETE`
9727///
9728///# Error Codes
9729///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9730///- `VK_ERROR_NOT_ENOUGH_SPACE_KHR`
9731///- `VK_ERROR_UNKNOWN`
9732///- `VK_ERROR_VALIDATION_FAILED`
9733pub type PFN_vkGetDeviceFaultDebugInfoKHR = Option<
9734    unsafe extern "system" fn(
9735        device: Device,
9736        p_debug_info: *mut DeviceFaultDebugInfoKHR,
9737    ) -> Result,
9738>;
9739///[`vkCmdSetDepthBias2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthBias2EXT.html)
9740/**
9741Provided by **VK_EXT_depth_bias_control**.*/
9742///
9743///# Thread Safety
9744///- `commandBuffer` must be externally synchronized
9745pub type PFN_vkCmdSetDepthBias2EXT = Option<
9746    unsafe extern "system" fn(
9747        command_buffer: CommandBuffer,
9748        p_depth_bias_info: *const DepthBiasInfoEXT,
9749    ),
9750>;
9751///[`vkReleaseSwapchainImagesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseSwapchainImagesKHR.html)
9752/**
9753Provided by **VK_KHR_swapchain_maintenance1**.*/
9754///
9755///# Success Codes
9756///- `VK_SUCCESS`
9757///
9758///# Error Codes
9759///- `VK_ERROR_SURFACE_LOST_KHR`
9760///- `VK_ERROR_UNKNOWN`
9761///- `VK_ERROR_VALIDATION_FAILED`
9762pub type PFN_vkReleaseSwapchainImagesKHR = Option<
9763    unsafe extern "system" fn(
9764        device: Device,
9765        p_release_info: *const ReleaseSwapchainImagesInfoKHR,
9766    ) -> Result,
9767>;
9768///[`vkGetDeviceImageSubresourceLayout`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageSubresourceLayout.html)
9769/**
9770Provided by **VK_BASE_VERSION_1_4**.*/
9771pub type PFN_vkGetDeviceImageSubresourceLayout = Option<
9772    unsafe extern "system" fn(
9773        device: Device,
9774        p_info: *const DeviceImageSubresourceInfo,
9775        p_layout: *mut SubresourceLayout2,
9776    ),
9777>;
9778///[`vkMapMemory2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkMapMemory2.html)
9779/**
9780Provided by **VK_BASE_VERSION_1_4**.*/
9781///
9782///# Success Codes
9783///- `VK_SUCCESS`
9784///
9785///# Error Codes
9786///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9787///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
9788///- `VK_ERROR_MEMORY_MAP_FAILED`
9789///- `VK_ERROR_UNKNOWN`
9790///- `VK_ERROR_VALIDATION_FAILED`
9791pub type PFN_vkMapMemory2 = Option<
9792    unsafe extern "system" fn(
9793        device: Device,
9794        p_memory_map_info: *const MemoryMapInfo,
9795        pp_data: *mut *mut core::ffi::c_void,
9796    ) -> Result,
9797>;
9798///[`vkUnmapMemory2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkUnmapMemory2.html)
9799/**
9800Provided by **VK_BASE_VERSION_1_4**.*/
9801///
9802///# Success Codes
9803///- `VK_SUCCESS`
9804///
9805///# Error Codes
9806///- `VK_ERROR_MEMORY_MAP_FAILED`
9807///- `VK_ERROR_UNKNOWN`
9808///- `VK_ERROR_VALIDATION_FAILED`
9809pub type PFN_vkUnmapMemory2 = Option<
9810    unsafe extern "system" fn(
9811        device: Device,
9812        p_memory_unmap_info: *const MemoryUnmapInfo,
9813    ) -> Result,
9814>;
9815///[`vkCreateShadersEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateShadersEXT.html)
9816/**
9817Provided by **VK_EXT_shader_object**.*/
9818///
9819///# Success Codes
9820///- `VK_SUCCESS`
9821///- `VK_INCOMPATIBLE_SHADER_BINARY_EXT`
9822///
9823///# Error Codes
9824///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9825///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
9826///- `VK_ERROR_INITIALIZATION_FAILED`
9827///- `VK_ERROR_UNKNOWN`
9828///- `VK_ERROR_VALIDATION_FAILED`
9829pub type PFN_vkCreateShadersEXT = Option<
9830    unsafe extern "system" fn(
9831        device: Device,
9832        create_info_count: u32,
9833        p_create_infos: *const ShaderCreateInfoEXT,
9834        p_allocator: *const AllocationCallbacks,
9835        p_shaders: *mut ShaderEXT,
9836    ) -> Result,
9837>;
9838///[`vkDestroyShaderEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyShaderEXT.html)
9839/**
9840Provided by **VK_EXT_shader_object**.*/
9841///
9842///# Thread Safety
9843///- `shader` must be externally synchronized
9844pub type PFN_vkDestroyShaderEXT = Option<
9845    unsafe extern "system" fn(
9846        device: Device,
9847        shader: ShaderEXT,
9848        p_allocator: *const AllocationCallbacks,
9849    ),
9850>;
9851///[`vkGetShaderBinaryDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderBinaryDataEXT.html)
9852/**
9853Provided by **VK_EXT_shader_object**.*/
9854///
9855///# Success Codes
9856///- `VK_SUCCESS`
9857///- `VK_INCOMPLETE`
9858///
9859///# Error Codes
9860///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9861///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
9862///- `VK_ERROR_UNKNOWN`
9863///- `VK_ERROR_VALIDATION_FAILED`
9864pub type PFN_vkGetShaderBinaryDataEXT = Option<
9865    unsafe extern "system" fn(
9866        device: Device,
9867        shader: ShaderEXT,
9868        p_data_size: *mut usize,
9869        p_data: *mut core::ffi::c_void,
9870    ) -> Result,
9871>;
9872///[`vkCmdBindShadersEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindShadersEXT.html)
9873/**
9874Provided by **VK_EXT_shader_object**.*/
9875///
9876///# Thread Safety
9877///- `commandBuffer` must be externally synchronized
9878pub type PFN_vkCmdBindShadersEXT = Option<
9879    unsafe extern "system" fn(
9880        command_buffer: CommandBuffer,
9881        stage_count: u32,
9882        p_stages: *const ShaderStageFlagBits,
9883        p_shaders: *const ShaderEXT,
9884    ),
9885>;
9886///[`vkSetSwapchainPresentTimingQueueSizeEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetSwapchainPresentTimingQueueSizeEXT.html)
9887/**
9888Provided by **VK_EXT_present_timing**.*/
9889///
9890///# Success Codes
9891///- `VK_SUCCESS`
9892///- `VK_NOT_READY`
9893///
9894///# Error Codes
9895///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9896///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
9897///- `VK_ERROR_UNKNOWN`
9898///- `VK_ERROR_VALIDATION_FAILED`
9899///
9900///# Thread Safety
9901///- `swapchain` must be externally synchronized
9902pub type PFN_vkSetSwapchainPresentTimingQueueSizeEXT = Option<
9903    unsafe extern "system" fn(
9904        device: Device,
9905        swapchain: SwapchainKHR,
9906        size: u32,
9907    ) -> Result,
9908>;
9909///[`vkGetSwapchainTimingPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSwapchainTimingPropertiesEXT.html)
9910/**
9911Provided by **VK_EXT_present_timing**.*/
9912///
9913///# Success Codes
9914///- `VK_SUCCESS`
9915///- `VK_NOT_READY`
9916///
9917///# Error Codes
9918///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9919///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
9920///- `VK_ERROR_SURFACE_LOST_KHR`
9921///- `VK_ERROR_UNKNOWN`
9922///- `VK_ERROR_VALIDATION_FAILED`
9923///
9924///# Thread Safety
9925///- `swapchain` must be externally synchronized
9926pub type PFN_vkGetSwapchainTimingPropertiesEXT = Option<
9927    unsafe extern "system" fn(
9928        device: Device,
9929        swapchain: SwapchainKHR,
9930        p_swapchain_timing_properties: *mut SwapchainTimingPropertiesEXT,
9931        p_swapchain_timing_properties_counter: *mut u64,
9932    ) -> Result,
9933>;
9934///[`vkGetSwapchainTimeDomainPropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSwapchainTimeDomainPropertiesEXT.html)
9935/**
9936Provided by **VK_EXT_present_timing**.*/
9937///
9938///# Success Codes
9939///- `VK_SUCCESS`
9940///- `VK_INCOMPLETE`
9941///
9942///# Error Codes
9943///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9944///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
9945///- `VK_ERROR_SURFACE_LOST_KHR`
9946///- `VK_ERROR_UNKNOWN`
9947///- `VK_ERROR_VALIDATION_FAILED`
9948///
9949///# Thread Safety
9950///- `swapchain` must be externally synchronized
9951pub type PFN_vkGetSwapchainTimeDomainPropertiesEXT = Option<
9952    unsafe extern "system" fn(
9953        device: Device,
9954        swapchain: SwapchainKHR,
9955        p_swapchain_time_domain_properties: *mut SwapchainTimeDomainPropertiesEXT,
9956        p_time_domains_counter: *mut u64,
9957    ) -> Result,
9958>;
9959///[`vkGetPastPresentationTimingEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPastPresentationTimingEXT.html)
9960/**
9961Provided by **VK_EXT_present_timing**.*/
9962///
9963///# Success Codes
9964///- `VK_SUCCESS`
9965///- `VK_INCOMPLETE`
9966///
9967///# Error Codes
9968///- `VK_ERROR_DEVICE_LOST`
9969///- `VK_ERROR_OUT_OF_DATE_KHR`
9970///- `VK_ERROR_SURFACE_LOST_KHR`
9971///- `VK_ERROR_UNKNOWN`
9972///- `VK_ERROR_VALIDATION_FAILED`
9973pub type PFN_vkGetPastPresentationTimingEXT = Option<
9974    unsafe extern "system" fn(
9975        device: Device,
9976        p_past_presentation_timing_info: *const PastPresentationTimingInfoEXT,
9977        p_past_presentation_timing_properties: *mut PastPresentationTimingPropertiesEXT,
9978    ) -> Result,
9979>;
9980///[`vkGetScreenBufferPropertiesQNX`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetScreenBufferPropertiesQNX.html)
9981/**
9982Provided by **VK_QNX_external_memory_screen_buffer**.*/
9983///
9984///# Success Codes
9985///- `VK_SUCCESS`
9986///
9987///# Error Codes
9988///- `VK_ERROR_OUT_OF_HOST_MEMORY`
9989///- `VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR`
9990///- `VK_ERROR_UNKNOWN`
9991///- `VK_ERROR_VALIDATION_FAILED`
9992pub type PFN_vkGetScreenBufferPropertiesQNX = Option<
9993    unsafe extern "system" fn(
9994        device: Device,
9995        buffer: *const core::ffi::c_void,
9996        p_properties: *mut ScreenBufferPropertiesQNX,
9997    ) -> Result,
9998>;
9999///[`vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR.html)
10000/**
10001Provided by **VK_KHR_cooperative_matrix**.*/
10002///
10003///# Success Codes
10004///- `VK_SUCCESS`
10005///- `VK_INCOMPLETE`
10006///
10007///# Error Codes
10008///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10009///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
10010///- `VK_ERROR_UNKNOWN`
10011///- `VK_ERROR_VALIDATION_FAILED`
10012pub type PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = Option<
10013    unsafe extern "system" fn(
10014        physical_device: PhysicalDevice,
10015        p_property_count: *mut u32,
10016        p_properties: *mut CooperativeMatrixPropertiesKHR,
10017    ) -> Result,
10018>;
10019///[`vkGetExecutionGraphPipelineScratchSizeAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetExecutionGraphPipelineScratchSizeAMDX.html)
10020/**
10021Provided by **VK_AMDX_shader_enqueue**.*/
10022///
10023///# Success Codes
10024///- `VK_SUCCESS`
10025///
10026///# Error Codes
10027///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10028///- `VK_ERROR_UNKNOWN`
10029///- `VK_ERROR_VALIDATION_FAILED`
10030pub type PFN_vkGetExecutionGraphPipelineScratchSizeAMDX = Option<
10031    unsafe extern "system" fn(
10032        device: Device,
10033        execution_graph: Pipeline,
10034        p_size_info: *mut ExecutionGraphPipelineScratchSizeAMDX,
10035    ) -> Result,
10036>;
10037///[`vkGetExecutionGraphPipelineNodeIndexAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetExecutionGraphPipelineNodeIndexAMDX.html)
10038/**
10039Provided by **VK_AMDX_shader_enqueue**.*/
10040///
10041///# Success Codes
10042///- `VK_SUCCESS`
10043///
10044///# Error Codes
10045///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10046///- `VK_ERROR_UNKNOWN`
10047///- `VK_ERROR_VALIDATION_FAILED`
10048pub type PFN_vkGetExecutionGraphPipelineNodeIndexAMDX = Option<
10049    unsafe extern "system" fn(
10050        device: Device,
10051        execution_graph: Pipeline,
10052        p_node_info: *const PipelineShaderStageNodeCreateInfoAMDX,
10053        p_node_index: *mut u32,
10054    ) -> Result,
10055>;
10056///[`vkCreateExecutionGraphPipelinesAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateExecutionGraphPipelinesAMDX.html)
10057/**
10058Provided by **VK_AMDX_shader_enqueue**.*/
10059///
10060///# Success Codes
10061///- `VK_SUCCESS`
10062///- `VK_PIPELINE_COMPILE_REQUIRED_EXT`
10063///
10064///# Error Codes
10065///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10066///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
10067///- `VK_ERROR_UNKNOWN`
10068///- `VK_ERROR_VALIDATION_FAILED`
10069///
10070///# Thread Safety
10071///- `pipelineCache` must be externally synchronized
10072pub type PFN_vkCreateExecutionGraphPipelinesAMDX = Option<
10073    unsafe extern "system" fn(
10074        device: Device,
10075        pipeline_cache: PipelineCache,
10076        create_info_count: u32,
10077        p_create_infos: *const ExecutionGraphPipelineCreateInfoAMDX,
10078        p_allocator: *const AllocationCallbacks,
10079        p_pipelines: *mut Pipeline,
10080    ) -> Result,
10081>;
10082///[`vkCmdInitializeGraphScratchMemoryAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdInitializeGraphScratchMemoryAMDX.html)
10083/**
10084Provided by **VK_AMDX_shader_enqueue**.*/
10085pub type PFN_vkCmdInitializeGraphScratchMemoryAMDX = Option<
10086    unsafe extern "system" fn(
10087        command_buffer: CommandBuffer,
10088        execution_graph: Pipeline,
10089        scratch: u64,
10090        scratch_size: u64,
10091    ),
10092>;
10093///[`vkCmdDispatchGraphAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDispatchGraphAMDX.html)
10094/**
10095Provided by **VK_AMDX_shader_enqueue**.*/
10096pub type PFN_vkCmdDispatchGraphAMDX = Option<
10097    unsafe extern "system" fn(
10098        command_buffer: CommandBuffer,
10099        scratch: u64,
10100        scratch_size: u64,
10101        p_count_info: *const DispatchGraphCountInfoAMDX,
10102    ),
10103>;
10104///[`vkCmdDispatchGraphIndirectAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDispatchGraphIndirectAMDX.html)
10105/**
10106Provided by **VK_AMDX_shader_enqueue**.*/
10107pub type PFN_vkCmdDispatchGraphIndirectAMDX = Option<
10108    unsafe extern "system" fn(
10109        command_buffer: CommandBuffer,
10110        scratch: u64,
10111        scratch_size: u64,
10112        p_count_info: *const DispatchGraphCountInfoAMDX,
10113    ),
10114>;
10115///[`vkCmdDispatchGraphIndirectCountAMDX`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDispatchGraphIndirectCountAMDX.html)
10116/**
10117Provided by **VK_AMDX_shader_enqueue**.*/
10118pub type PFN_vkCmdDispatchGraphIndirectCountAMDX = Option<
10119    unsafe extern "system" fn(
10120        command_buffer: CommandBuffer,
10121        scratch: u64,
10122        scratch_size: u64,
10123        count_info: u64,
10124    ),
10125>;
10126///[`vkCmdBindDescriptorSets2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindDescriptorSets2.html)
10127/**
10128Provided by **VK_COMPUTE_VERSION_1_4**.*/
10129///
10130///# Thread Safety
10131///- `commandBuffer` must be externally synchronized
10132pub type PFN_vkCmdBindDescriptorSets2 = Option<
10133    unsafe extern "system" fn(
10134        command_buffer: CommandBuffer,
10135        p_bind_descriptor_sets_info: *const BindDescriptorSetsInfo,
10136    ),
10137>;
10138///[`vkCmdPushConstants2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushConstants2.html)
10139/**
10140Provided by **VK_COMPUTE_VERSION_1_4**.*/
10141///
10142///# Thread Safety
10143///- `commandBuffer` must be externally synchronized
10144pub type PFN_vkCmdPushConstants2 = Option<
10145    unsafe extern "system" fn(
10146        command_buffer: CommandBuffer,
10147        p_push_constants_info: *const PushConstantsInfo,
10148    ),
10149>;
10150///[`vkCmdPushDescriptorSet2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDescriptorSet2.html)
10151/**
10152Provided by **VK_COMPUTE_VERSION_1_4**.*/
10153///
10154///# Thread Safety
10155///- `commandBuffer` must be externally synchronized
10156pub type PFN_vkCmdPushDescriptorSet2 = Option<
10157    unsafe extern "system" fn(
10158        command_buffer: CommandBuffer,
10159        p_push_descriptor_set_info: *const PushDescriptorSetInfo,
10160    ),
10161>;
10162///[`vkCmdPushDescriptorSetWithTemplate2`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDescriptorSetWithTemplate2.html)
10163/**
10164Provided by **VK_COMPUTE_VERSION_1_4**.*/
10165///
10166///# Thread Safety
10167///- `commandBuffer` must be externally synchronized
10168pub type PFN_vkCmdPushDescriptorSetWithTemplate2 = Option<
10169    unsafe extern "system" fn(
10170        command_buffer: CommandBuffer,
10171        p_push_descriptor_set_with_template_info: *const PushDescriptorSetWithTemplateInfo,
10172    ),
10173>;
10174///[`vkCmdSetDescriptorBufferOffsets2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDescriptorBufferOffsets2EXT.html)
10175/**
10176Provided by **VK_KHR_maintenance6**.*/
10177///
10178///# Thread Safety
10179///- `commandBuffer` must be externally synchronized
10180pub type PFN_vkCmdSetDescriptorBufferOffsets2EXT = Option<
10181    unsafe extern "system" fn(
10182        command_buffer: CommandBuffer,
10183        p_set_descriptor_buffer_offsets_info: *const SetDescriptorBufferOffsetsInfoEXT,
10184    ),
10185>;
10186///[`vkCmdBindDescriptorBufferEmbeddedSamplers2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindDescriptorBufferEmbeddedSamplers2EXT.html)
10187/**
10188Provided by **VK_KHR_maintenance6**.*/
10189///
10190///# Thread Safety
10191///- `commandBuffer` must be externally synchronized
10192pub type PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT = Option<
10193    unsafe extern "system" fn(
10194        command_buffer: CommandBuffer,
10195        p_bind_descriptor_buffer_embedded_samplers_info: *const BindDescriptorBufferEmbeddedSamplersInfoEXT,
10196    ),
10197>;
10198///[`vkSetLatencySleepModeNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLatencySleepModeNV.html)
10199/**
10200Provided by **VK_NV_low_latency2**.*/
10201///
10202///# Success Codes
10203///- `VK_SUCCESS`
10204///
10205///# Error Codes
10206///- `VK_ERROR_INITIALIZATION_FAILED`
10207///- `VK_ERROR_UNKNOWN`
10208///- `VK_ERROR_VALIDATION_FAILED`
10209pub type PFN_vkSetLatencySleepModeNV = Option<
10210    unsafe extern "system" fn(
10211        device: Device,
10212        swapchain: SwapchainKHR,
10213        p_sleep_mode_info: *const LatencySleepModeInfoNV,
10214    ) -> Result,
10215>;
10216///[`vkLatencySleepNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkLatencySleepNV.html)
10217/**
10218Provided by **VK_NV_low_latency2**.*/
10219///
10220///# Success Codes
10221///- `VK_SUCCESS`
10222///
10223///# Error Codes
10224///- `VK_ERROR_UNKNOWN`
10225///- `VK_ERROR_VALIDATION_FAILED`
10226pub type PFN_vkLatencySleepNV = Option<
10227    unsafe extern "system" fn(
10228        device: Device,
10229        swapchain: SwapchainKHR,
10230        p_sleep_info: *const LatencySleepInfoNV,
10231    ) -> Result,
10232>;
10233///[`vkSetLatencyMarkerNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLatencyMarkerNV.html)
10234/**
10235Provided by **VK_NV_low_latency2**.*/
10236pub type PFN_vkSetLatencyMarkerNV = Option<
10237    unsafe extern "system" fn(
10238        device: Device,
10239        swapchain: SwapchainKHR,
10240        p_latency_marker_info: *const SetLatencyMarkerInfoNV,
10241    ),
10242>;
10243///[`vkGetLatencyTimingsNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetLatencyTimingsNV.html)
10244/**
10245Provided by **VK_NV_low_latency2**.*/
10246pub type PFN_vkGetLatencyTimingsNV = Option<
10247    unsafe extern "system" fn(
10248        device: Device,
10249        swapchain: SwapchainKHR,
10250        p_latency_marker_info: *mut GetLatencyMarkerInfoNV,
10251    ),
10252>;
10253///[`vkQueueNotifyOutOfBandNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueNotifyOutOfBandNV.html)
10254/**
10255Provided by **VK_NV_low_latency2**.*/
10256pub type PFN_vkQueueNotifyOutOfBandNV = Option<
10257    unsafe extern "system" fn(
10258        queue: Queue,
10259        p_queue_type_info: *const OutOfBandQueueTypeInfoNV,
10260    ),
10261>;
10262///[`vkCmdSetRenderingAttachmentLocations`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRenderingAttachmentLocations.html)
10263/**
10264Provided by **VK_GRAPHICS_VERSION_1_4**.*/
10265///
10266///# Thread Safety
10267///- `commandBuffer` must be externally synchronized
10268pub type PFN_vkCmdSetRenderingAttachmentLocations = Option<
10269    unsafe extern "system" fn(
10270        command_buffer: CommandBuffer,
10271        p_location_info: *const RenderingAttachmentLocationInfo,
10272    ),
10273>;
10274///[`vkCmdSetRenderingInputAttachmentIndices`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRenderingInputAttachmentIndices.html)
10275/**
10276Provided by **VK_GRAPHICS_VERSION_1_4**.*/
10277///
10278///# Thread Safety
10279///- `commandBuffer` must be externally synchronized
10280pub type PFN_vkCmdSetRenderingInputAttachmentIndices = Option<
10281    unsafe extern "system" fn(
10282        command_buffer: CommandBuffer,
10283        p_input_attachment_index_info: *const RenderingInputAttachmentIndexInfo,
10284    ),
10285>;
10286///[`vkCmdSetDepthClampRangeEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthClampRangeEXT.html)
10287/**
10288Provided by **VK_EXT_shader_object**.*/
10289///
10290///# Thread Safety
10291///- `commandBuffer` must be externally synchronized
10292pub type PFN_vkCmdSetDepthClampRangeEXT = Option<
10293    unsafe extern "system" fn(
10294        command_buffer: CommandBuffer,
10295        depth_clamp_mode: DepthClampModeEXT,
10296        p_depth_clamp_range: *const DepthClampRangeEXT,
10297    ),
10298>;
10299///[`vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV.html)
10300/**
10301Provided by **VK_NV_cooperative_matrix2**.*/
10302///
10303///# Success Codes
10304///- `VK_SUCCESS`
10305///- `VK_INCOMPLETE`
10306///
10307///# Error Codes
10308///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10309///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
10310///- `VK_ERROR_UNKNOWN`
10311///- `VK_ERROR_VALIDATION_FAILED`
10312pub type PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = Option<
10313    unsafe extern "system" fn(
10314        physical_device: PhysicalDevice,
10315        p_property_count: *mut u32,
10316        p_properties: *mut CooperativeMatrixFlexibleDimensionsPropertiesNV,
10317    ) -> Result,
10318>;
10319///[`vkGetMemoryMetalHandleEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryMetalHandleEXT.html)
10320/**
10321Provided by **VK_EXT_external_memory_metal**.*/
10322///
10323///# Success Codes
10324///- `VK_SUCCESS`
10325///
10326///# Error Codes
10327///- `VK_ERROR_TOO_MANY_OBJECTS`
10328///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10329///- `VK_ERROR_UNKNOWN`
10330///- `VK_ERROR_VALIDATION_FAILED`
10331pub type PFN_vkGetMemoryMetalHandleEXT = Option<
10332    unsafe extern "system" fn(
10333        device: Device,
10334        p_get_metal_handle_info: *const MemoryGetMetalHandleInfoEXT,
10335        p_handle: *mut *mut core::ffi::c_void,
10336    ) -> Result,
10337>;
10338///[`vkGetMemoryMetalHandlePropertiesEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryMetalHandlePropertiesEXT.html)
10339/**
10340Provided by **VK_EXT_external_memory_metal**.*/
10341///
10342///# Success Codes
10343///- `VK_SUCCESS`
10344///
10345///# Error Codes
10346///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10347///- `VK_ERROR_INVALID_EXTERNAL_HANDLE`
10348///- `VK_ERROR_UNKNOWN`
10349///- `VK_ERROR_VALIDATION_FAILED`
10350pub type PFN_vkGetMemoryMetalHandlePropertiesEXT = Option<
10351    unsafe extern "system" fn(
10352        device: Device,
10353        handle_type: ExternalMemoryHandleTypeFlagBits,
10354        p_handle: *const core::ffi::c_void,
10355        p_memory_metal_handle_properties: *mut MemoryMetalHandlePropertiesEXT,
10356    ) -> Result,
10357>;
10358///[`vkGetPhysicalDeviceCooperativeVectorPropertiesNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeVectorPropertiesNV.html)
10359/**
10360Provided by **VK_NV_cooperative_vector**.*/
10361///
10362///# Success Codes
10363///- `VK_SUCCESS`
10364///- `VK_INCOMPLETE`
10365///
10366///# Error Codes
10367///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10368///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
10369///- `VK_ERROR_UNKNOWN`
10370///- `VK_ERROR_VALIDATION_FAILED`
10371pub type PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV = Option<
10372    unsafe extern "system" fn(
10373        physical_device: PhysicalDevice,
10374        p_property_count: *mut u32,
10375        p_properties: *mut CooperativeVectorPropertiesNV,
10376    ) -> Result,
10377>;
10378///[`vkConvertCooperativeVectorMatrixNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkConvertCooperativeVectorMatrixNV.html)
10379/**
10380Provided by **VK_NV_cooperative_vector**.*/
10381///
10382///# Success Codes
10383///- `VK_SUCCESS`
10384///- `VK_INCOMPLETE`
10385///
10386///# Error Codes
10387///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10388///- `VK_ERROR_UNKNOWN`
10389///- `VK_ERROR_VALIDATION_FAILED`
10390pub type PFN_vkConvertCooperativeVectorMatrixNV = Option<
10391    unsafe extern "system" fn(
10392        device: Device,
10393        p_info: *const ConvertCooperativeVectorMatrixInfoNV,
10394    ) -> Result,
10395>;
10396///[`vkCmdConvertCooperativeVectorMatrixNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdConvertCooperativeVectorMatrixNV.html)
10397/**
10398Provided by **VK_NV_cooperative_vector**.*/
10399///
10400///# Thread Safety
10401///- `commandBuffer` must be externally synchronized
10402pub type PFN_vkCmdConvertCooperativeVectorMatrixNV = Option<
10403    unsafe extern "system" fn(
10404        command_buffer: CommandBuffer,
10405        info_count: u32,
10406        p_infos: *const ConvertCooperativeVectorMatrixInfoNV,
10407    ),
10408>;
10409///[`vkCmdDispatchTileQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDispatchTileQCOM.html)
10410/**
10411Provided by **VK_QCOM_tile_shading**.*/
10412pub type PFN_vkCmdDispatchTileQCOM = Option<
10413    unsafe extern "system" fn(
10414        command_buffer: CommandBuffer,
10415        p_dispatch_tile_info: *const DispatchTileInfoQCOM,
10416    ),
10417>;
10418///[`vkCmdBeginPerTileExecutionQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginPerTileExecutionQCOM.html)
10419/**
10420Provided by **VK_QCOM_tile_shading**.*/
10421pub type PFN_vkCmdBeginPerTileExecutionQCOM = Option<
10422    unsafe extern "system" fn(
10423        command_buffer: CommandBuffer,
10424        p_per_tile_begin_info: *const PerTileBeginInfoQCOM,
10425    ),
10426>;
10427///[`vkCmdEndPerTileExecutionQCOM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndPerTileExecutionQCOM.html)
10428/**
10429Provided by **VK_QCOM_tile_shading**.*/
10430pub type PFN_vkCmdEndPerTileExecutionQCOM = Option<
10431    unsafe extern "system" fn(
10432        command_buffer: CommandBuffer,
10433        p_per_tile_end_info: *const PerTileEndInfoQCOM,
10434    ),
10435>;
10436///[`vkCreateExternalComputeQueueNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateExternalComputeQueueNV.html)
10437/**
10438Provided by **VK_NV_external_compute_queue**.*/
10439///
10440///# Success Codes
10441///- `VK_SUCCESS`
10442///
10443///# Error Codes
10444///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10445///- `VK_ERROR_TOO_MANY_OBJECTS`
10446///- `VK_ERROR_UNKNOWN`
10447///- `VK_ERROR_VALIDATION_FAILED`
10448pub type PFN_vkCreateExternalComputeQueueNV = Option<
10449    unsafe extern "system" fn(
10450        device: Device,
10451        p_create_info: *const ExternalComputeQueueCreateInfoNV,
10452        p_allocator: *const AllocationCallbacks,
10453        p_external_queue: *mut ExternalComputeQueueNV,
10454    ) -> Result,
10455>;
10456///[`vkDestroyExternalComputeQueueNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyExternalComputeQueueNV.html)
10457/**
10458Provided by **VK_NV_external_compute_queue**.*/
10459pub type PFN_vkDestroyExternalComputeQueueNV = Option<
10460    unsafe extern "system" fn(
10461        device: Device,
10462        external_queue: ExternalComputeQueueNV,
10463        p_allocator: *const AllocationCallbacks,
10464    ),
10465>;
10466///[`vkGetExternalComputeQueueDataNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetExternalComputeQueueDataNV.html)
10467/**
10468Provided by **VK_NV_external_compute_queue**.*/
10469pub type PFN_vkGetExternalComputeQueueDataNV = Option<
10470    unsafe extern "system" fn(
10471        external_queue: ExternalComputeQueueNV,
10472        params: *mut ExternalComputeQueueDataParamsNV,
10473        p_data: *mut core::ffi::c_void,
10474    ),
10475>;
10476///[`vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM.html)
10477/**
10478Provided by **VK_ARM_shader_instrumentation**.*/
10479///
10480///# Success Codes
10481///- `VK_SUCCESS`
10482///- `VK_INCOMPLETE`
10483///
10484///# Error Codes
10485///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10486///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
10487///- `VK_ERROR_INITIALIZATION_FAILED`
10488///- `VK_ERROR_UNKNOWN`
10489///- `VK_ERROR_VALIDATION_FAILED`
10490pub type PFN_vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM = Option<
10491    unsafe extern "system" fn(
10492        physical_device: PhysicalDevice,
10493        p_description_count: *mut u32,
10494        p_descriptions: *mut ShaderInstrumentationMetricDescriptionARM,
10495    ) -> Result,
10496>;
10497///[`vkCreateShaderInstrumentationARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateShaderInstrumentationARM.html)
10498/**
10499Provided by **VK_ARM_shader_instrumentation**.*/
10500///
10501///# Success Codes
10502///- `VK_SUCCESS`
10503///
10504///# Error Codes
10505///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10506///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
10507///- `VK_ERROR_UNKNOWN`
10508///- `VK_ERROR_VALIDATION_FAILED`
10509pub type PFN_vkCreateShaderInstrumentationARM = Option<
10510    unsafe extern "system" fn(
10511        device: Device,
10512        p_create_info: *const ShaderInstrumentationCreateInfoARM,
10513        p_allocator: *const AllocationCallbacks,
10514        p_instrumentation: *mut ShaderInstrumentationARM,
10515    ) -> Result,
10516>;
10517///[`vkDestroyShaderInstrumentationARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyShaderInstrumentationARM.html)
10518/**
10519Provided by **VK_ARM_shader_instrumentation**.*/
10520///
10521///# Thread Safety
10522///- `instrumentation` must be externally synchronized
10523pub type PFN_vkDestroyShaderInstrumentationARM = Option<
10524    unsafe extern "system" fn(
10525        device: Device,
10526        instrumentation: ShaderInstrumentationARM,
10527        p_allocator: *const AllocationCallbacks,
10528    ),
10529>;
10530///[`vkCmdBeginShaderInstrumentationARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginShaderInstrumentationARM.html)
10531/**
10532Provided by **VK_ARM_shader_instrumentation**.*/
10533///
10534///# Thread Safety
10535///- `commandBuffer` must be externally synchronized
10536///- `instrumentation` must be externally synchronized
10537pub type PFN_vkCmdBeginShaderInstrumentationARM = Option<
10538    unsafe extern "system" fn(
10539        command_buffer: CommandBuffer,
10540        instrumentation: ShaderInstrumentationARM,
10541    ),
10542>;
10543///[`vkCmdEndShaderInstrumentationARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndShaderInstrumentationARM.html)
10544/**
10545Provided by **VK_ARM_shader_instrumentation**.*/
10546///
10547///# Thread Safety
10548///- `commandBuffer` must be externally synchronized
10549pub type PFN_vkCmdEndShaderInstrumentationARM = Option<
10550    unsafe extern "system" fn(command_buffer: CommandBuffer),
10551>;
10552///[`vkGetShaderInstrumentationValuesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderInstrumentationValuesARM.html)
10553/**
10554Provided by **VK_ARM_shader_instrumentation**.*/
10555///
10556///# Success Codes
10557///- `VK_SUCCESS`
10558///- `VK_INCOMPLETE`
10559///
10560///# Error Codes
10561///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10562///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
10563///- `VK_ERROR_UNKNOWN`
10564///- `VK_ERROR_VALIDATION_FAILED`
10565pub type PFN_vkGetShaderInstrumentationValuesARM = Option<
10566    unsafe extern "system" fn(
10567        device: Device,
10568        instrumentation: ShaderInstrumentationARM,
10569        p_metric_block_count: *mut u32,
10570        p_metric_values: *mut core::ffi::c_void,
10571        flags: ShaderInstrumentationValuesFlagsARM,
10572    ) -> Result,
10573>;
10574///[`vkClearShaderInstrumentationMetricsARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkClearShaderInstrumentationMetricsARM.html)
10575/**
10576Provided by **VK_ARM_shader_instrumentation**.*/
10577pub type PFN_vkClearShaderInstrumentationMetricsARM = Option<
10578    unsafe extern "system" fn(device: Device, instrumentation: ShaderInstrumentationARM),
10579>;
10580///[`vkCreateTensorARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorARM.html)
10581/**
10582Provided by **VK_ARM_tensors**.*/
10583///
10584///# Success Codes
10585///- `VK_SUCCESS`
10586///
10587///# Error Codes
10588///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10589///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
10590///- `VK_ERROR_UNKNOWN`
10591///- `VK_ERROR_VALIDATION_FAILED`
10592pub type PFN_vkCreateTensorARM = Option<
10593    unsafe extern "system" fn(
10594        device: Device,
10595        p_create_info: *const TensorCreateInfoARM,
10596        p_allocator: *const AllocationCallbacks,
10597        p_tensor: *mut TensorARM,
10598    ) -> Result,
10599>;
10600///[`vkDestroyTensorARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyTensorARM.html)
10601/**
10602Provided by **VK_ARM_tensors**.*/
10603///
10604///# Thread Safety
10605///- `tensor` must be externally synchronized
10606pub type PFN_vkDestroyTensorARM = Option<
10607    unsafe extern "system" fn(
10608        device: Device,
10609        tensor: TensorARM,
10610        p_allocator: *const AllocationCallbacks,
10611    ),
10612>;
10613///[`vkCreateTensorViewARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorViewARM.html)
10614/**
10615Provided by **VK_ARM_tensors**.*/
10616///
10617///# Success Codes
10618///- `VK_SUCCESS`
10619///
10620///# Error Codes
10621///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10622///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
10623///- `VK_ERROR_UNKNOWN`
10624///- `VK_ERROR_VALIDATION_FAILED`
10625pub type PFN_vkCreateTensorViewARM = Option<
10626    unsafe extern "system" fn(
10627        device: Device,
10628        p_create_info: *const TensorViewCreateInfoARM,
10629        p_allocator: *const AllocationCallbacks,
10630        p_view: *mut TensorViewARM,
10631    ) -> Result,
10632>;
10633///[`vkDestroyTensorViewARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyTensorViewARM.html)
10634/**
10635Provided by **VK_ARM_tensors**.*/
10636///
10637///# Thread Safety
10638///- `tensorView` must be externally synchronized
10639pub type PFN_vkDestroyTensorViewARM = Option<
10640    unsafe extern "system" fn(
10641        device: Device,
10642        tensor_view: TensorViewARM,
10643        p_allocator: *const AllocationCallbacks,
10644    ),
10645>;
10646///[`vkGetTensorMemoryRequirementsARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorMemoryRequirementsARM.html)
10647/**
10648Provided by **VK_ARM_tensors**.*/
10649pub type PFN_vkGetTensorMemoryRequirementsARM = Option<
10650    unsafe extern "system" fn(
10651        device: Device,
10652        p_info: *const TensorMemoryRequirementsInfoARM,
10653        p_memory_requirements: *mut MemoryRequirements2,
10654    ),
10655>;
10656///[`vkBindTensorMemoryARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindTensorMemoryARM.html)
10657/**
10658Provided by **VK_ARM_tensors**.*/
10659///
10660///# Success Codes
10661///- `VK_SUCCESS`
10662///
10663///# Error Codes
10664///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10665///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
10666///- `VK_ERROR_UNKNOWN`
10667///- `VK_ERROR_VALIDATION_FAILED`
10668pub type PFN_vkBindTensorMemoryARM = Option<
10669    unsafe extern "system" fn(
10670        device: Device,
10671        bind_info_count: u32,
10672        p_bind_infos: *const BindTensorMemoryInfoARM,
10673    ) -> Result,
10674>;
10675///[`vkGetDeviceTensorMemoryRequirementsARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceTensorMemoryRequirementsARM.html)
10676/**
10677Provided by **VK_ARM_tensors**.*/
10678pub type PFN_vkGetDeviceTensorMemoryRequirementsARM = Option<
10679    unsafe extern "system" fn(
10680        device: Device,
10681        p_info: *const DeviceTensorMemoryRequirementsARM,
10682        p_memory_requirements: *mut MemoryRequirements2,
10683    ),
10684>;
10685///[`vkCmdCopyTensorARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyTensorARM.html)
10686/**
10687Provided by **VK_ARM_tensors**.*/
10688///
10689///# Thread Safety
10690///- `commandBuffer` must be externally synchronized
10691pub type PFN_vkCmdCopyTensorARM = Option<
10692    unsafe extern "system" fn(
10693        command_buffer: CommandBuffer,
10694        p_copy_tensor_info: *const CopyTensorInfoARM,
10695    ),
10696>;
10697///[`vkGetTensorOpaqueCaptureDescriptorDataARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorOpaqueCaptureDescriptorDataARM.html)
10698/**
10699Provided by **VK_ARM_tensors**.*/
10700///
10701///# Success Codes
10702///- `VK_SUCCESS`
10703///
10704///# Error Codes
10705///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10706///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
10707///- `VK_ERROR_UNKNOWN`
10708///- `VK_ERROR_VALIDATION_FAILED`
10709pub type PFN_vkGetTensorOpaqueCaptureDescriptorDataARM = Option<
10710    unsafe extern "system" fn(
10711        device: Device,
10712        p_info: *const TensorCaptureDescriptorDataInfoARM,
10713        p_data: *mut core::ffi::c_void,
10714    ) -> Result,
10715>;
10716///[`vkGetTensorViewOpaqueCaptureDescriptorDataARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorViewOpaqueCaptureDescriptorDataARM.html)
10717/**
10718Provided by **VK_ARM_tensors**.*/
10719///
10720///# Success Codes
10721///- `VK_SUCCESS`
10722///
10723///# Error Codes
10724///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10725///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
10726///- `VK_ERROR_UNKNOWN`
10727///- `VK_ERROR_VALIDATION_FAILED`
10728pub type PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM = Option<
10729    unsafe extern "system" fn(
10730        device: Device,
10731        p_info: *const TensorViewCaptureDescriptorDataInfoARM,
10732        p_data: *mut core::ffi::c_void,
10733    ) -> Result,
10734>;
10735///[`vkGetPhysicalDeviceExternalTensorPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalTensorPropertiesARM.html)
10736/**
10737Provided by **VK_ARM_tensors**.*/
10738pub type PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM = Option<
10739    unsafe extern "system" fn(
10740        physical_device: PhysicalDevice,
10741        p_external_tensor_info: *const PhysicalDeviceExternalTensorInfoARM,
10742        p_external_tensor_properties: *mut ExternalTensorPropertiesARM,
10743    ),
10744>;
10745///[`vkCreateDataGraphPipelinesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDataGraphPipelinesARM.html)
10746/**
10747Provided by **VK_ARM_data_graph**.*/
10748///
10749///# Success Codes
10750///- `VK_SUCCESS`
10751///- `VK_PIPELINE_COMPILE_REQUIRED_EXT`
10752///
10753///# Error Codes
10754///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10755///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
10756///- `VK_ERROR_UNKNOWN`
10757///- `VK_ERROR_VALIDATION_FAILED`
10758pub type PFN_vkCreateDataGraphPipelinesARM = Option<
10759    unsafe extern "system" fn(
10760        device: Device,
10761        deferred_operation: DeferredOperationKHR,
10762        pipeline_cache: PipelineCache,
10763        create_info_count: u32,
10764        p_create_infos: *const DataGraphPipelineCreateInfoARM,
10765        p_allocator: *const AllocationCallbacks,
10766        p_pipelines: *mut Pipeline,
10767    ) -> Result,
10768>;
10769///[`vkCreateDataGraphPipelineSessionARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDataGraphPipelineSessionARM.html)
10770/**
10771Provided by **VK_ARM_data_graph**.*/
10772///
10773///# Success Codes
10774///- `VK_SUCCESS`
10775///
10776///# Error Codes
10777///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10778///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
10779///- `VK_ERROR_UNKNOWN`
10780///- `VK_ERROR_VALIDATION_FAILED`
10781pub type PFN_vkCreateDataGraphPipelineSessionARM = Option<
10782    unsafe extern "system" fn(
10783        device: Device,
10784        p_create_info: *const DataGraphPipelineSessionCreateInfoARM,
10785        p_allocator: *const AllocationCallbacks,
10786        p_session: *mut DataGraphPipelineSessionARM,
10787    ) -> Result,
10788>;
10789///[`vkGetDataGraphPipelineSessionBindPointRequirementsARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDataGraphPipelineSessionBindPointRequirementsARM.html)
10790/**
10791Provided by **VK_ARM_data_graph**.*/
10792///
10793///# Success Codes
10794///- `VK_SUCCESS`
10795///- `VK_INCOMPLETE`
10796///
10797///# Error Codes
10798///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10799///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
10800///- `VK_ERROR_UNKNOWN`
10801///- `VK_ERROR_VALIDATION_FAILED`
10802pub type PFN_vkGetDataGraphPipelineSessionBindPointRequirementsARM = Option<
10803    unsafe extern "system" fn(
10804        device: Device,
10805        p_info: *const DataGraphPipelineSessionBindPointRequirementsInfoARM,
10806        p_bind_point_requirement_count: *mut u32,
10807        p_bind_point_requirements: *mut DataGraphPipelineSessionBindPointRequirementARM,
10808    ) -> Result,
10809>;
10810///[`vkGetDataGraphPipelineSessionMemoryRequirementsARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDataGraphPipelineSessionMemoryRequirementsARM.html)
10811/**
10812Provided by **VK_ARM_data_graph**.*/
10813pub type PFN_vkGetDataGraphPipelineSessionMemoryRequirementsARM = Option<
10814    unsafe extern "system" fn(
10815        device: Device,
10816        p_info: *const DataGraphPipelineSessionMemoryRequirementsInfoARM,
10817        p_memory_requirements: *mut MemoryRequirements2,
10818    ),
10819>;
10820///[`vkBindDataGraphPipelineSessionMemoryARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindDataGraphPipelineSessionMemoryARM.html)
10821/**
10822Provided by **VK_ARM_data_graph**.*/
10823///
10824///# Success Codes
10825///- `VK_SUCCESS`
10826///
10827///# Error Codes
10828///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10829///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
10830///- `VK_ERROR_UNKNOWN`
10831///- `VK_ERROR_VALIDATION_FAILED`
10832pub type PFN_vkBindDataGraphPipelineSessionMemoryARM = Option<
10833    unsafe extern "system" fn(
10834        device: Device,
10835        bind_info_count: u32,
10836        p_bind_infos: *const BindDataGraphPipelineSessionMemoryInfoARM,
10837    ) -> Result,
10838>;
10839///[`vkDestroyDataGraphPipelineSessionARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDataGraphPipelineSessionARM.html)
10840/**
10841Provided by **VK_ARM_data_graph**.*/
10842///
10843///# Thread Safety
10844///- `session` must be externally synchronized
10845pub type PFN_vkDestroyDataGraphPipelineSessionARM = Option<
10846    unsafe extern "system" fn(
10847        device: Device,
10848        session: DataGraphPipelineSessionARM,
10849        p_allocator: *const AllocationCallbacks,
10850    ),
10851>;
10852///[`vkCmdDispatchDataGraphARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDispatchDataGraphARM.html)
10853/**
10854Provided by **VK_ARM_data_graph**.*/
10855///
10856///# Thread Safety
10857///- `commandBuffer` must be externally synchronized
10858pub type PFN_vkCmdDispatchDataGraphARM = Option<
10859    unsafe extern "system" fn(
10860        command_buffer: CommandBuffer,
10861        session: DataGraphPipelineSessionARM,
10862        p_info: *const DataGraphPipelineDispatchInfoARM,
10863    ),
10864>;
10865///[`vkGetDataGraphPipelineAvailablePropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDataGraphPipelineAvailablePropertiesARM.html)
10866/**
10867Provided by **VK_ARM_data_graph**.*/
10868///
10869///# Success Codes
10870///- `VK_SUCCESS`
10871///- `VK_INCOMPLETE`
10872///
10873///# Error Codes
10874///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10875///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
10876///- `VK_ERROR_UNKNOWN`
10877///- `VK_ERROR_VALIDATION_FAILED`
10878pub type PFN_vkGetDataGraphPipelineAvailablePropertiesARM = Option<
10879    unsafe extern "system" fn(
10880        device: Device,
10881        p_pipeline_info: *const DataGraphPipelineInfoARM,
10882        p_properties_count: *mut u32,
10883        p_properties: *mut DataGraphPipelinePropertyARM,
10884    ) -> Result,
10885>;
10886///[`vkGetDataGraphPipelinePropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDataGraphPipelinePropertiesARM.html)
10887/**
10888Provided by **VK_ARM_data_graph**.*/
10889///
10890///# Success Codes
10891///- `VK_SUCCESS`
10892///- `VK_INCOMPLETE`
10893///
10894///# Error Codes
10895///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10896///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
10897///- `VK_ERROR_UNKNOWN`
10898///- `VK_ERROR_VALIDATION_FAILED`
10899pub type PFN_vkGetDataGraphPipelinePropertiesARM = Option<
10900    unsafe extern "system" fn(
10901        device: Device,
10902        p_pipeline_info: *const DataGraphPipelineInfoARM,
10903        properties_count: u32,
10904        p_properties: *mut DataGraphPipelinePropertyQueryResultARM,
10905    ) -> Result,
10906>;
10907///[`vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM.html)
10908/**
10909Provided by **VK_ARM_data_graph**.*/
10910///
10911///# Success Codes
10912///- `VK_SUCCESS`
10913///- `VK_INCOMPLETE`
10914///
10915///# Error Codes
10916///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10917///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
10918///- `VK_ERROR_UNKNOWN`
10919///- `VK_ERROR_VALIDATION_FAILED`
10920pub type PFN_vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM = Option<
10921    unsafe extern "system" fn(
10922        physical_device: PhysicalDevice,
10923        queue_family_index: u32,
10924        p_queue_family_data_graph_property_count: *mut u32,
10925        p_queue_family_data_graph_properties: *mut QueueFamilyDataGraphPropertiesARM,
10926    ) -> Result,
10927>;
10928///[`vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM.html)
10929/**
10930Provided by **VK_ARM_data_graph**.*/
10931pub type PFN_vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM = Option<
10932    unsafe extern "system" fn(
10933        physical_device: PhysicalDevice,
10934        p_queue_family_data_graph_processing_engine_info: *const PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM,
10935        p_queue_family_data_graph_processing_engine_properties: *mut QueueFamilyDataGraphProcessingEnginePropertiesARM,
10936    ),
10937>;
10938///[`vkGetNativeBufferPropertiesOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetNativeBufferPropertiesOHOS.html)
10939/**
10940Provided by **VK_OHOS_external_memory**.*/
10941///
10942///# Success Codes
10943///- `VK_SUCCESS`
10944///
10945///# Error Codes
10946///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
10947///- `VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR`
10948///- `VK_ERROR_UNKNOWN`
10949///- `VK_ERROR_VALIDATION_FAILED`
10950pub type PFN_vkGetNativeBufferPropertiesOHOS = Option<
10951    unsafe extern "system" fn(
10952        device: Device,
10953        buffer: *const core::ffi::c_void,
10954        p_properties: *mut NativeBufferPropertiesOHOS,
10955    ) -> Result,
10956>;
10957///[`vkGetMemoryNativeBufferOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryNativeBufferOHOS.html)
10958/**
10959Provided by **VK_OHOS_external_memory**.*/
10960///
10961///# Success Codes
10962///- `VK_SUCCESS`
10963///
10964///# Error Codes
10965///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10966///- `VK_ERROR_UNKNOWN`
10967///- `VK_ERROR_VALIDATION_FAILED`
10968pub type PFN_vkGetMemoryNativeBufferOHOS = Option<
10969    unsafe extern "system" fn(
10970        device: Device,
10971        p_info: *const MemoryGetNativeBufferInfoOHOS,
10972        p_buffer: *mut *mut core::ffi::c_void,
10973    ) -> Result,
10974>;
10975///[`vkGetSwapchainGrallocUsageOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSwapchainGrallocUsageOHOS.html)
10976///
10977///# Success Codes
10978///- `VK_SUCCESS`
10979///
10980///# Error Codes
10981///- `VK_ERROR_INITIALIZATION_FAILED`
10982///- `VK_ERROR_UNKNOWN`
10983///- `VK_ERROR_VALIDATION_FAILED`
10984pub type PFN_vkGetSwapchainGrallocUsageOHOS = Option<
10985    unsafe extern "system" fn(
10986        device: Device,
10987        format: Format,
10988        image_usage: ImageUsageFlags,
10989        gralloc_usage: *mut u64,
10990    ) -> Result,
10991>;
10992///[`vkAcquireImageOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireImageOHOS.html)
10993///
10994///# Success Codes
10995///- `VK_SUCCESS`
10996///
10997///# Error Codes
10998///- `VK_ERROR_OUT_OF_HOST_MEMORY`
10999///- `VK_ERROR_UNKNOWN`
11000///- `VK_ERROR_VALIDATION_FAILED`
11001pub type PFN_vkAcquireImageOHOS = Option<
11002    unsafe extern "system" fn(
11003        device: Device,
11004        image: Image,
11005        native_fence_fd: i32,
11006        semaphore: Semaphore,
11007        fence: Fence,
11008    ) -> Result,
11009>;
11010///[`vkQueueSignalReleaseImageOHOS`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSignalReleaseImageOHOS.html)
11011///
11012///# Success Codes
11013///- `VK_SUCCESS`
11014///
11015///# Error Codes
11016///- `VK_ERROR_INITIALIZATION_FAILED`
11017///- `VK_ERROR_UNKNOWN`
11018///- `VK_ERROR_VALIDATION_FAILED`
11019pub type PFN_vkQueueSignalReleaseImageOHOS = Option<
11020    unsafe extern "system" fn(
11021        queue: Queue,
11022        wait_semaphore_count: u32,
11023        p_wait_semaphores: *const Semaphore,
11024        image: Image,
11025        p_native_fence_fd: *mut i32,
11026    ) -> Result,
11027>;
11028///[`vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM.html)
11029/**
11030Provided by **VK_ARM_performance_counters_by_region**.*/
11031///
11032///# Success Codes
11033///- `VK_SUCCESS`
11034///- `VK_INCOMPLETE`
11035///
11036///# Error Codes
11037///- `VK_ERROR_OUT_OF_HOST_MEMORY`
11038///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
11039///- `VK_ERROR_INITIALIZATION_FAILED`
11040///- `VK_ERROR_UNKNOWN`
11041///- `VK_ERROR_VALIDATION_FAILED`
11042pub type PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM = Option<
11043    unsafe extern "system" fn(
11044        physical_device: PhysicalDevice,
11045        queue_family_index: u32,
11046        p_counter_count: *mut u32,
11047        p_counters: *mut PerformanceCounterARM,
11048        p_counter_descriptions: *mut PerformanceCounterDescriptionARM,
11049    ) -> Result,
11050>;
11051///[`vkCmdSetComputeOccupancyPriorityNV`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetComputeOccupancyPriorityNV.html)
11052/**
11053Provided by **VK_NV_compute_occupancy_priority**.*/
11054pub type PFN_vkCmdSetComputeOccupancyPriorityNV = Option<
11055    unsafe extern "system" fn(
11056        command_buffer: CommandBuffer,
11057        p_parameters: *const ComputeOccupancyPriorityParametersNV,
11058    ),
11059>;
11060///[`vkWriteSamplerDescriptorsEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkWriteSamplerDescriptorsEXT.html)
11061/**
11062Provided by **VK_EXT_descriptor_heap**.*/
11063///
11064///# Success Codes
11065///- `VK_SUCCESS`
11066///
11067///# Error Codes
11068///- `VK_ERROR_OUT_OF_HOST_MEMORY`
11069///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
11070///- `VK_ERROR_UNKNOWN`
11071///- `VK_ERROR_VALIDATION_FAILED`
11072pub type PFN_vkWriteSamplerDescriptorsEXT = Option<
11073    unsafe extern "system" fn(
11074        device: Device,
11075        sampler_count: u32,
11076        p_samplers: *const SamplerCreateInfo,
11077        p_descriptors: *const HostAddressRangeEXT,
11078    ) -> Result,
11079>;
11080///[`vkWriteResourceDescriptorsEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkWriteResourceDescriptorsEXT.html)
11081/**
11082Provided by **VK_EXT_descriptor_heap**.*/
11083///
11084///# Success Codes
11085///- `VK_SUCCESS`
11086///
11087///# Error Codes
11088///- `VK_ERROR_OUT_OF_HOST_MEMORY`
11089///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
11090///- `VK_ERROR_UNKNOWN`
11091///- `VK_ERROR_VALIDATION_FAILED`
11092pub type PFN_vkWriteResourceDescriptorsEXT = Option<
11093    unsafe extern "system" fn(
11094        device: Device,
11095        resource_count: u32,
11096        p_resources: *const ResourceDescriptorInfoEXT,
11097        p_descriptors: *const HostAddressRangeEXT,
11098    ) -> Result,
11099>;
11100///[`vkCmdBindSamplerHeapEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindSamplerHeapEXT.html)
11101/**
11102Provided by **VK_EXT_descriptor_heap**.*/
11103///
11104///# Thread Safety
11105///- `commandBuffer` must be externally synchronized
11106pub type PFN_vkCmdBindSamplerHeapEXT = Option<
11107    unsafe extern "system" fn(
11108        command_buffer: CommandBuffer,
11109        p_bind_info: *const BindHeapInfoEXT,
11110    ),
11111>;
11112///[`vkCmdBindResourceHeapEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindResourceHeapEXT.html)
11113/**
11114Provided by **VK_EXT_descriptor_heap**.*/
11115///
11116///# Thread Safety
11117///- `commandBuffer` must be externally synchronized
11118pub type PFN_vkCmdBindResourceHeapEXT = Option<
11119    unsafe extern "system" fn(
11120        command_buffer: CommandBuffer,
11121        p_bind_info: *const BindHeapInfoEXT,
11122    ),
11123>;
11124///[`vkCmdPushDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDataEXT.html)
11125/**
11126Provided by **VK_EXT_descriptor_heap**.*/
11127///
11128///# Thread Safety
11129///- `commandBuffer` must be externally synchronized
11130pub type PFN_vkCmdPushDataEXT = Option<
11131    unsafe extern "system" fn(
11132        command_buffer: CommandBuffer,
11133        p_push_data_info: *const PushDataInfoEXT,
11134    ),
11135>;
11136///[`vkRegisterCustomBorderColorEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkRegisterCustomBorderColorEXT.html)
11137/**
11138Provided by **VK_EXT_descriptor_heap**.*/
11139///
11140///# Success Codes
11141///- `VK_SUCCESS`
11142///
11143///# Error Codes
11144///- `VK_ERROR_OUT_OF_HOST_MEMORY`
11145///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
11146///- `VK_ERROR_TOO_MANY_OBJECTS`
11147///- `VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS`
11148///- `VK_ERROR_UNKNOWN`
11149///- `VK_ERROR_VALIDATION_FAILED`
11150pub type PFN_vkRegisterCustomBorderColorEXT = Option<
11151    unsafe extern "system" fn(
11152        device: Device,
11153        p_border_color: *const SamplerCustomBorderColorCreateInfoEXT,
11154        request_index: u32,
11155        p_index: *mut u32,
11156    ) -> Result,
11157>;
11158///[`vkUnregisterCustomBorderColorEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkUnregisterCustomBorderColorEXT.html)
11159/**
11160Provided by **VK_EXT_descriptor_heap**.*/
11161pub type PFN_vkUnregisterCustomBorderColorEXT = Option<
11162    unsafe extern "system" fn(device: Device, index: u32),
11163>;
11164///[`vkGetImageOpaqueCaptureDataEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageOpaqueCaptureDataEXT.html)
11165/**
11166Provided by **VK_EXT_descriptor_heap**.*/
11167///
11168///# Success Codes
11169///- `VK_SUCCESS`
11170///
11171///# Error Codes
11172///- `VK_ERROR_OUT_OF_HOST_MEMORY`
11173///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
11174///- `VK_ERROR_UNKNOWN`
11175///- `VK_ERROR_VALIDATION_FAILED`
11176pub type PFN_vkGetImageOpaqueCaptureDataEXT = Option<
11177    unsafe extern "system" fn(
11178        device: Device,
11179        image_count: u32,
11180        p_images: *const Image,
11181        p_datas: *mut HostAddressRangeEXT,
11182    ) -> Result,
11183>;
11184///[`vkGetPhysicalDeviceDescriptorSizeEXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDescriptorSizeEXT.html)
11185/**
11186Provided by **VK_EXT_descriptor_heap**.*/
11187pub type PFN_vkGetPhysicalDeviceDescriptorSizeEXT = Option<
11188    unsafe extern "system" fn(
11189        physical_device: PhysicalDevice,
11190        descriptor_type: DescriptorType,
11191    ) -> u64,
11192>;
11193///[`vkGetTensorOpaqueCaptureDataARM`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorOpaqueCaptureDataARM.html)
11194/**
11195Provided by **VK_EXT_descriptor_heap**.*/
11196///
11197///# Success Codes
11198///- `VK_SUCCESS`
11199///
11200///# Error Codes
11201///- `VK_ERROR_OUT_OF_HOST_MEMORY`
11202///- `VK_ERROR_OUT_OF_DEVICE_MEMORY`
11203///- `VK_ERROR_UNKNOWN`
11204///- `VK_ERROR_VALIDATION_FAILED`
11205pub type PFN_vkGetTensorOpaqueCaptureDataARM = Option<
11206    unsafe extern "system" fn(
11207        device: Device,
11208        tensor_count: u32,
11209        p_tensors: *const TensorARM,
11210        p_datas: *mut HostAddressRangeEXT,
11211    ) -> Result,
11212>;
11213///[`vkCmdCopyMemoryKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryKHR.html)
11214/**
11215Provided by **VK_KHR_device_address_commands**.*/
11216///
11217///# Thread Safety
11218///- `commandBuffer` must be externally synchronized
11219pub type PFN_vkCmdCopyMemoryKHR = Option<
11220    unsafe extern "system" fn(
11221        command_buffer: CommandBuffer,
11222        p_copy_memory_info: *const CopyDeviceMemoryInfoKHR,
11223    ),
11224>;
11225///[`vkCmdCopyMemoryToImageKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryToImageKHR.html)
11226/**
11227Provided by **VK_KHR_device_address_commands**.*/
11228///
11229///# Thread Safety
11230///- `commandBuffer` must be externally synchronized
11231pub type PFN_vkCmdCopyMemoryToImageKHR = Option<
11232    unsafe extern "system" fn(
11233        command_buffer: CommandBuffer,
11234        p_copy_memory_info: *const CopyDeviceMemoryImageInfoKHR,
11235    ),
11236>;
11237///[`vkCmdCopyImageToMemoryKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyImageToMemoryKHR.html)
11238/**
11239Provided by **VK_KHR_device_address_commands**.*/
11240///
11241///# Thread Safety
11242///- `commandBuffer` must be externally synchronized
11243pub type PFN_vkCmdCopyImageToMemoryKHR = Option<
11244    unsafe extern "system" fn(
11245        command_buffer: CommandBuffer,
11246        p_copy_memory_info: *const CopyDeviceMemoryImageInfoKHR,
11247    ),
11248>;
11249///[`vkCmdUpdateMemoryKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdUpdateMemoryKHR.html)
11250/**
11251Provided by **VK_KHR_device_address_commands**.*/
11252///
11253///# Thread Safety
11254///- `commandBuffer` must be externally synchronized
11255pub type PFN_vkCmdUpdateMemoryKHR = Option<
11256    unsafe extern "system" fn(
11257        command_buffer: CommandBuffer,
11258        p_dst_range: *const DeviceAddressRangeKHR,
11259        dst_flags: AddressCommandFlagsKHR,
11260        data_size: u64,
11261        p_data: *const core::ffi::c_void,
11262    ),
11263>;
11264///[`vkCmdFillMemoryKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdFillMemoryKHR.html)
11265/**
11266Provided by **VK_KHR_device_address_commands**.*/
11267///
11268///# Thread Safety
11269///- `commandBuffer` must be externally synchronized
11270pub type PFN_vkCmdFillMemoryKHR = Option<
11271    unsafe extern "system" fn(
11272        command_buffer: CommandBuffer,
11273        p_dst_range: *const DeviceAddressRangeKHR,
11274        dst_flags: AddressCommandFlagsKHR,
11275        data: u32,
11276    ),
11277>;
11278///[`vkCmdCopyQueryPoolResultsToMemoryKHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyQueryPoolResultsToMemoryKHR.html)
11279/**
11280Provided by **VK_KHR_device_address_commands**.*/
11281///
11282///# Thread Safety
11283///- `commandBuffer` must be externally synchronized
11284pub type PFN_vkCmdCopyQueryPoolResultsToMemoryKHR = Option<
11285    unsafe extern "system" fn(
11286        command_buffer: CommandBuffer,
11287        query_pool: QueryPool,
11288        first_query: u32,
11289        query_count: u32,
11290        p_dst_range: *const StridedDeviceAddressRangeKHR,
11291        dst_flags: AddressCommandFlagsKHR,
11292        query_result_flags: QueryResultFlags,
11293    ),
11294>;
11295///[`vkCmdBeginConditionalRendering2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginConditionalRendering2EXT.html)
11296/**
11297Provided by **VK_KHR_device_address_commands**.*/
11298///
11299///# Thread Safety
11300///- `commandBuffer` must be externally synchronized
11301pub type PFN_vkCmdBeginConditionalRendering2EXT = Option<
11302    unsafe extern "system" fn(
11303        command_buffer: CommandBuffer,
11304        p_conditional_rendering_begin: *const ConditionalRenderingBeginInfo2EXT,
11305    ),
11306>;
11307///[`vkCmdBindTransformFeedbackBuffers2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindTransformFeedbackBuffers2EXT.html)
11308/**
11309Provided by **VK_KHR_device_address_commands**.*/
11310///
11311///# Thread Safety
11312///- `commandBuffer` must be externally synchronized
11313pub type PFN_vkCmdBindTransformFeedbackBuffers2EXT = Option<
11314    unsafe extern "system" fn(
11315        command_buffer: CommandBuffer,
11316        first_binding: u32,
11317        binding_count: u32,
11318        p_binding_infos: *const BindTransformFeedbackBuffer2InfoEXT,
11319    ),
11320>;
11321///[`vkCmdBeginTransformFeedback2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginTransformFeedback2EXT.html)
11322/**
11323Provided by **VK_KHR_device_address_commands**.*/
11324///
11325///# Thread Safety
11326///- `commandBuffer` must be externally synchronized
11327pub type PFN_vkCmdBeginTransformFeedback2EXT = Option<
11328    unsafe extern "system" fn(
11329        command_buffer: CommandBuffer,
11330        first_counter_range: u32,
11331        counter_range_count: u32,
11332        p_counter_infos: *const BindTransformFeedbackBuffer2InfoEXT,
11333    ),
11334>;
11335///[`vkCmdEndTransformFeedback2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndTransformFeedback2EXT.html)
11336/**
11337Provided by **VK_KHR_device_address_commands**.*/
11338///
11339///# Thread Safety
11340///- `commandBuffer` must be externally synchronized
11341pub type PFN_vkCmdEndTransformFeedback2EXT = Option<
11342    unsafe extern "system" fn(
11343        command_buffer: CommandBuffer,
11344        first_counter_range: u32,
11345        counter_range_count: u32,
11346        p_counter_infos: *const BindTransformFeedbackBuffer2InfoEXT,
11347    ),
11348>;
11349///[`vkCmdDrawIndirectByteCount2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndirectByteCount2EXT.html)
11350/**
11351Provided by **VK_KHR_device_address_commands**.*/
11352///
11353///# Thread Safety
11354///- `commandBuffer` must be externally synchronized
11355pub type PFN_vkCmdDrawIndirectByteCount2EXT = Option<
11356    unsafe extern "system" fn(
11357        command_buffer: CommandBuffer,
11358        instance_count: u32,
11359        first_instance: u32,
11360        p_counter_info: *const BindTransformFeedbackBuffer2InfoEXT,
11361        counter_offset: u32,
11362        vertex_stride: u32,
11363    ),
11364>;
11365///[`vkCmdWriteMarkerToMemoryAMD`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWriteMarkerToMemoryAMD.html)
11366/**
11367Provided by **VK_KHR_device_address_commands**.*/
11368///
11369///# Thread Safety
11370///- `commandBuffer` must be externally synchronized
11371pub type PFN_vkCmdWriteMarkerToMemoryAMD = Option<
11372    unsafe extern "system" fn(
11373        command_buffer: CommandBuffer,
11374        p_info: *const MemoryMarkerInfoAMD,
11375    ),
11376>;
11377///[`vkCmdBindIndexBuffer3KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindIndexBuffer3KHR.html)
11378/**
11379Provided by **VK_KHR_device_address_commands**.*/
11380///
11381///# Thread Safety
11382///- `commandBuffer` must be externally synchronized
11383pub type PFN_vkCmdBindIndexBuffer3KHR = Option<
11384    unsafe extern "system" fn(
11385        command_buffer: CommandBuffer,
11386        p_info: *const BindIndexBuffer3InfoKHR,
11387    ),
11388>;
11389///[`vkCmdBindVertexBuffers3KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindVertexBuffers3KHR.html)
11390/**
11391Provided by **VK_KHR_device_address_commands**.*/
11392///
11393///# Thread Safety
11394///- `commandBuffer` must be externally synchronized
11395pub type PFN_vkCmdBindVertexBuffers3KHR = Option<
11396    unsafe extern "system" fn(
11397        command_buffer: CommandBuffer,
11398        first_binding: u32,
11399        binding_count: u32,
11400        p_binding_infos: *const BindVertexBuffer3InfoKHR,
11401    ),
11402>;
11403///[`vkCmdDrawIndirect2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndirect2KHR.html)
11404/**
11405Provided by **VK_KHR_device_address_commands**.*/
11406///
11407///# Thread Safety
11408///- `commandBuffer` must be externally synchronized
11409pub type PFN_vkCmdDrawIndirect2KHR = Option<
11410    unsafe extern "system" fn(
11411        command_buffer: CommandBuffer,
11412        p_info: *const DrawIndirect2InfoKHR,
11413    ),
11414>;
11415///[`vkCmdDrawIndexedIndirect2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndexedIndirect2KHR.html)
11416/**
11417Provided by **VK_KHR_device_address_commands**.*/
11418///
11419///# Thread Safety
11420///- `commandBuffer` must be externally synchronized
11421pub type PFN_vkCmdDrawIndexedIndirect2KHR = Option<
11422    unsafe extern "system" fn(
11423        command_buffer: CommandBuffer,
11424        p_info: *const DrawIndirect2InfoKHR,
11425    ),
11426>;
11427///[`vkCmdDrawIndirectCount2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndirectCount2KHR.html)
11428/**
11429Provided by **VK_KHR_device_address_commands**.*/
11430///
11431///# Thread Safety
11432///- `commandBuffer` must be externally synchronized
11433pub type PFN_vkCmdDrawIndirectCount2KHR = Option<
11434    unsafe extern "system" fn(
11435        command_buffer: CommandBuffer,
11436        p_info: *const DrawIndirectCount2InfoKHR,
11437    ),
11438>;
11439///[`vkCmdDrawIndexedIndirectCount2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndexedIndirectCount2KHR.html)
11440/**
11441Provided by **VK_KHR_device_address_commands**.*/
11442///
11443///# Thread Safety
11444///- `commandBuffer` must be externally synchronized
11445pub type PFN_vkCmdDrawIndexedIndirectCount2KHR = Option<
11446    unsafe extern "system" fn(
11447        command_buffer: CommandBuffer,
11448        p_info: *const DrawIndirectCount2InfoKHR,
11449    ),
11450>;
11451///[`vkCmdDrawMeshTasksIndirect2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawMeshTasksIndirect2EXT.html)
11452/**
11453Provided by **VK_KHR_device_address_commands**.*/
11454///
11455///# Thread Safety
11456///- `commandBuffer` must be externally synchronized
11457pub type PFN_vkCmdDrawMeshTasksIndirect2EXT = Option<
11458    unsafe extern "system" fn(
11459        command_buffer: CommandBuffer,
11460        p_info: *const DrawIndirect2InfoKHR,
11461    ),
11462>;
11463///[`vkCmdDrawMeshTasksIndirectCount2EXT`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawMeshTasksIndirectCount2EXT.html)
11464/**
11465Provided by **VK_KHR_device_address_commands**.*/
11466///
11467///# Thread Safety
11468///- `commandBuffer` must be externally synchronized
11469pub type PFN_vkCmdDrawMeshTasksIndirectCount2EXT = Option<
11470    unsafe extern "system" fn(
11471        command_buffer: CommandBuffer,
11472        p_info: *const DrawIndirectCount2InfoKHR,
11473    ),
11474>;
11475///[`vkCmdDispatchIndirect2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDispatchIndirect2KHR.html)
11476/**
11477Provided by **VK_KHR_device_address_commands**.*/
11478///
11479///# Thread Safety
11480///- `commandBuffer` must be externally synchronized
11481pub type PFN_vkCmdDispatchIndirect2KHR = Option<
11482    unsafe extern "system" fn(
11483        command_buffer: CommandBuffer,
11484        p_info: *const DispatchIndirect2InfoKHR,
11485    ),
11486>;
11487///[`vkCreateAccelerationStructure2KHR`](https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateAccelerationStructure2KHR.html)
11488/**
11489Provided by **VK_KHR_device_address_commands**.*/
11490///
11491///# Success Codes
11492///- `VK_SUCCESS`
11493///
11494///# Error Codes
11495///- `VK_ERROR_OUT_OF_HOST_MEMORY`
11496///- `VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR`
11497///- `VK_ERROR_VALIDATION_FAILED`
11498///- `VK_ERROR_UNKNOWN`
11499pub type PFN_vkCreateAccelerationStructure2KHR = Option<
11500    unsafe extern "system" fn(
11501        device: Device,
11502        p_create_info: *const AccelerationStructureCreateInfo2KHR,
11503        p_allocator: *const AllocationCallbacks,
11504        p_acceleration_structure: *mut AccelerationStructureKHR,
11505    ) -> Result,
11506>;
11507pub type PFN_vkResetQueryPoolEXT = PFN_vkResetQueryPool;
11508pub type PFN_vkGetRenderingAreaGranularityKHR = PFN_vkGetRenderingAreaGranularity;
11509pub type PFN_vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2;
11510pub type PFN_vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2;
11511pub type PFN_vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2;
11512pub type PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2;
11513pub type PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2;
11514pub type PFN_vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2;
11515pub type PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2;
11516pub type PFN_vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSet;
11517pub type PFN_vkTrimCommandPoolKHR = PFN_vkTrimCommandPool;
11518pub type PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferProperties;
11519pub type PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties;
11520pub type PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFenceProperties;
11521pub type PFN_vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroups;
11522pub type PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeatures;
11523pub type PFN_vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2;
11524pub type PFN_vkBindImageMemory2KHR = PFN_vkBindImageMemory2;
11525pub type PFN_vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMask;
11526pub type PFN_vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBase;
11527pub type PFN_vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplate;
11528pub type PFN_vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplate;
11529pub type PFN_vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplate;
11530pub type PFN_vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplate;
11531pub type PFN_vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2;
11532pub type PFN_vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2;
11533pub type PFN_vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2;
11534pub type PFN_vkGetDeviceBufferMemoryRequirementsKHR = PFN_vkGetDeviceBufferMemoryRequirements;
11535pub type PFN_vkGetDeviceImageMemoryRequirementsKHR = PFN_vkGetDeviceImageMemoryRequirements;
11536pub type PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = PFN_vkGetDeviceImageSparseMemoryRequirements;
11537pub type PFN_vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversion;
11538pub type PFN_vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversion;
11539pub type PFN_vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupport;
11540pub type PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR;
11541pub type PFN_vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsKHR;
11542pub type PFN_vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2;
11543pub type PFN_vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2;
11544pub type PFN_vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2;
11545pub type PFN_vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2;
11546pub type PFN_vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValue;
11547pub type PFN_vkWaitSemaphoresKHR = PFN_vkWaitSemaphores;
11548pub type PFN_vkSignalSemaphoreKHR = PFN_vkSignalSemaphore;
11549pub type PFN_vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCount;
11550pub type PFN_vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCount;
11551pub type PFN_vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCount;
11552pub type PFN_vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCount;
11553pub type PFN_vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesKHR;
11554pub type PFN_vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddress;
11555pub type PFN_vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddress;
11556pub type PFN_vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddress;
11557pub type PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddress;
11558pub type PFN_vkCmdSetLineStippleKHR = PFN_vkCmdSetLineStipple;
11559pub type PFN_vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStipple;
11560pub type PFN_vkGetPhysicalDeviceToolPropertiesEXT = PFN_vkGetPhysicalDeviceToolProperties;
11561pub type PFN_vkCmdSetCullModeEXT = PFN_vkCmdSetCullMode;
11562pub type PFN_vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFace;
11563pub type PFN_vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopology;
11564pub type PFN_vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCount;
11565pub type PFN_vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCount;
11566pub type PFN_vkCmdBindIndexBuffer2KHR = PFN_vkCmdBindIndexBuffer2;
11567pub type PFN_vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2;
11568pub type PFN_vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnable;
11569pub type PFN_vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnable;
11570pub type PFN_vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOp;
11571pub type PFN_vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnable;
11572pub type PFN_vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnable;
11573pub type PFN_vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOp;
11574pub type PFN_vkCmdSetRasterizerDiscardEnableEXT = PFN_vkCmdSetRasterizerDiscardEnable;
11575pub type PFN_vkCmdSetDepthBiasEnableEXT = PFN_vkCmdSetDepthBiasEnable;
11576pub type PFN_vkCmdSetPrimitiveRestartEnableEXT = PFN_vkCmdSetPrimitiveRestartEnable;
11577pub type PFN_vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlot;
11578pub type PFN_vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlot;
11579pub type PFN_vkSetPrivateDataEXT = PFN_vkSetPrivateData;
11580pub type PFN_vkGetPrivateDataEXT = PFN_vkGetPrivateData;
11581pub type PFN_vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2;
11582pub type PFN_vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2;
11583pub type PFN_vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2;
11584pub type PFN_vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2;
11585pub type PFN_vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2;
11586pub type PFN_vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2;
11587pub type PFN_vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2;
11588pub type PFN_vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2;
11589pub type PFN_vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2;
11590pub type PFN_vkCmdPipelineBarrier2KHR = PFN_vkCmdPipelineBarrier2;
11591pub type PFN_vkQueueSubmit2KHR = PFN_vkQueueSubmit2;
11592pub type PFN_vkCmdWriteTimestamp2KHR = PFN_vkCmdWriteTimestamp2;
11593pub type PFN_vkCopyMemoryToImageEXT = PFN_vkCopyMemoryToImage;
11594pub type PFN_vkCopyImageToMemoryEXT = PFN_vkCopyImageToMemory;
11595pub type PFN_vkCopyImageToImageEXT = PFN_vkCopyImageToImage;
11596pub type PFN_vkTransitionImageLayoutEXT = PFN_vkTransitionImageLayout;
11597pub type PFN_vkCmdBeginRenderingKHR = PFN_vkCmdBeginRendering;
11598pub type PFN_vkCmdEndRendering2EXT = PFN_vkCmdEndRendering2KHR;
11599pub type PFN_vkCmdEndRenderingKHR = PFN_vkCmdEndRendering;
11600pub type PFN_vkGetImageSubresourceLayout2KHR = PFN_vkGetImageSubresourceLayout2;
11601pub type PFN_vkGetImageSubresourceLayout2EXT = PFN_vkGetImageSubresourceLayout2;
11602pub type PFN_vkReleaseSwapchainImagesEXT = PFN_vkReleaseSwapchainImagesKHR;
11603pub type PFN_vkGetDeviceImageSubresourceLayoutKHR = PFN_vkGetDeviceImageSubresourceLayout;
11604pub type PFN_vkMapMemory2KHR = PFN_vkMapMemory2;
11605pub type PFN_vkUnmapMemory2KHR = PFN_vkUnmapMemory2;
11606pub type PFN_vkCmdBindDescriptorSets2KHR = PFN_vkCmdBindDescriptorSets2;
11607pub type PFN_vkCmdPushConstants2KHR = PFN_vkCmdPushConstants2;
11608pub type PFN_vkCmdPushDescriptorSet2KHR = PFN_vkCmdPushDescriptorSet2;
11609pub type PFN_vkCmdPushDescriptorSetWithTemplate2KHR = PFN_vkCmdPushDescriptorSetWithTemplate2;
11610pub type PFN_vkCmdSetRenderingAttachmentLocationsKHR = PFN_vkCmdSetRenderingAttachmentLocations;
11611pub type PFN_vkCmdSetRenderingInputAttachmentIndicesKHR = PFN_vkCmdSetRenderingInputAttachmentIndices;
11612pub struct EntryCommands {
11613    pub create_instance: PFN_vkCreateInstance,
11614    pub enumerate_instance_version: PFN_vkEnumerateInstanceVersion,
11615    pub enumerate_instance_layer_properties: PFN_vkEnumerateInstanceLayerProperties,
11616    pub enumerate_instance_extension_properties: PFN_vkEnumerateInstanceExtensionProperties,
11617    pub get_external_compute_queue_data_nv: PFN_vkGetExternalComputeQueueDataNV,
11618}
11619impl Default for EntryCommands {
11620    #[inline]
11621    fn default() -> Self {
11622        unsafe { core::mem::zeroed() }
11623    }
11624}
11625impl EntryCommands {
11626    /// Load all function pointers from the given loader callback.
11627    ///
11628    /// Load all function pointers from the given loader callback.
11629    ///
11630    /// # Safety
11631    ///
11632    /// The loader must return valid function pointers compatible with
11633    /// each command's signature, or null for unavailable commands.
11634    pub unsafe fn load(
11635        mut f: impl FnMut(&core::ffi::CStr) -> *const core::ffi::c_void,
11636    ) -> Self {
11637        unsafe {
11638            let mut cmd = Self::default();
11639            cmd.create_instance = core::mem::transmute(
11640                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateInstance\0")),
11641            );
11642            cmd.enumerate_instance_version = core::mem::transmute(
11643                f(
11644                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11645                        b"vkEnumerateInstanceVersion\0",
11646                    ),
11647                ),
11648            );
11649            cmd.enumerate_instance_layer_properties = core::mem::transmute(
11650                f(
11651                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11652                        b"vkEnumerateInstanceLayerProperties\0",
11653                    ),
11654                ),
11655            );
11656            cmd.enumerate_instance_extension_properties = core::mem::transmute(
11657                f(
11658                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11659                        b"vkEnumerateInstanceExtensionProperties\0",
11660                    ),
11661                ),
11662            );
11663            cmd.get_external_compute_queue_data_nv = core::mem::transmute(
11664                f(
11665                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11666                        b"vkGetExternalComputeQueueDataNV\0",
11667                    ),
11668                ),
11669            );
11670            cmd
11671        }
11672    }
11673}
11674pub struct InstanceCommands {
11675    pub destroy_instance: PFN_vkDestroyInstance,
11676    pub enumerate_physical_devices: PFN_vkEnumeratePhysicalDevices,
11677    pub get_instance_proc_addr: PFN_vkGetInstanceProcAddr,
11678    pub get_physical_device_properties: PFN_vkGetPhysicalDeviceProperties,
11679    pub get_physical_device_queue_family_properties: PFN_vkGetPhysicalDeviceQueueFamilyProperties,
11680    pub get_physical_device_memory_properties: PFN_vkGetPhysicalDeviceMemoryProperties,
11681    pub get_physical_device_features: PFN_vkGetPhysicalDeviceFeatures,
11682    pub get_physical_device_format_properties: PFN_vkGetPhysicalDeviceFormatProperties,
11683    pub get_physical_device_image_format_properties: PFN_vkGetPhysicalDeviceImageFormatProperties,
11684    pub create_device: PFN_vkCreateDevice,
11685    pub enumerate_device_layer_properties: PFN_vkEnumerateDeviceLayerProperties,
11686    pub enumerate_device_extension_properties: PFN_vkEnumerateDeviceExtensionProperties,
11687    pub get_physical_device_sparse_image_format_properties: PFN_vkGetPhysicalDeviceSparseImageFormatProperties,
11688    pub create_android_surface_khr: PFN_vkCreateAndroidSurfaceKHR,
11689    pub create_surface_ohos: PFN_vkCreateSurfaceOHOS,
11690    pub get_physical_device_display_properties_khr: PFN_vkGetPhysicalDeviceDisplayPropertiesKHR,
11691    pub get_physical_device_display_plane_properties_khr: PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR,
11692    pub get_display_plane_supported_displays_khr: PFN_vkGetDisplayPlaneSupportedDisplaysKHR,
11693    pub get_display_mode_properties_khr: PFN_vkGetDisplayModePropertiesKHR,
11694    pub create_display_mode_khr: PFN_vkCreateDisplayModeKHR,
11695    pub get_display_plane_capabilities_khr: PFN_vkGetDisplayPlaneCapabilitiesKHR,
11696    pub create_display_plane_surface_khr: PFN_vkCreateDisplayPlaneSurfaceKHR,
11697    pub destroy_surface_khr: PFN_vkDestroySurfaceKHR,
11698    pub get_physical_device_surface_support_khr: PFN_vkGetPhysicalDeviceSurfaceSupportKHR,
11699    pub get_physical_device_surface_capabilities_khr: PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR,
11700    pub get_physical_device_surface_formats_khr: PFN_vkGetPhysicalDeviceSurfaceFormatsKHR,
11701    pub get_physical_device_surface_present_modes_khr: PFN_vkGetPhysicalDeviceSurfacePresentModesKHR,
11702    pub create_vi_surface_nn: PFN_vkCreateViSurfaceNN,
11703    pub create_wayland_surface_khr: PFN_vkCreateWaylandSurfaceKHR,
11704    pub get_physical_device_wayland_presentation_support_khr: PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR,
11705    pub create_ubm_surface_sec: PFN_vkCreateUbmSurfaceSEC,
11706    pub get_physical_device_ubm_presentation_support_sec: PFN_vkGetPhysicalDeviceUbmPresentationSupportSEC,
11707    pub create_win32_surface_khr: PFN_vkCreateWin32SurfaceKHR,
11708    pub get_physical_device_win32_presentation_support_khr: PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR,
11709    pub create_xlib_surface_khr: PFN_vkCreateXlibSurfaceKHR,
11710    pub get_physical_device_xlib_presentation_support_khr: PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR,
11711    pub create_xcb_surface_khr: PFN_vkCreateXcbSurfaceKHR,
11712    pub get_physical_device_xcb_presentation_support_khr: PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR,
11713    pub create_direct_fb_surface_ext: PFN_vkCreateDirectFBSurfaceEXT,
11714    pub get_physical_device_direct_fb_presentation_support_ext: PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT,
11715    pub create_image_pipe_surface_fuchsia: PFN_vkCreateImagePipeSurfaceFUCHSIA,
11716    pub create_stream_descriptor_surface_ggp: PFN_vkCreateStreamDescriptorSurfaceGGP,
11717    pub create_screen_surface_qnx: PFN_vkCreateScreenSurfaceQNX,
11718    pub get_physical_device_screen_presentation_support_qnx: PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX,
11719    pub create_debug_report_callback_ext: PFN_vkCreateDebugReportCallbackEXT,
11720    pub destroy_debug_report_callback_ext: PFN_vkDestroyDebugReportCallbackEXT,
11721    pub debug_report_message_ext: PFN_vkDebugReportMessageEXT,
11722    pub get_physical_device_external_image_format_properties_nv: PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV,
11723    pub get_physical_device_features2: PFN_vkGetPhysicalDeviceFeatures2,
11724    pub get_physical_device_properties2: PFN_vkGetPhysicalDeviceProperties2,
11725    pub get_physical_device_format_properties2: PFN_vkGetPhysicalDeviceFormatProperties2,
11726    pub get_physical_device_image_format_properties2: PFN_vkGetPhysicalDeviceImageFormatProperties2,
11727    pub get_physical_device_queue_family_properties2: PFN_vkGetPhysicalDeviceQueueFamilyProperties2,
11728    pub get_physical_device_memory_properties2: PFN_vkGetPhysicalDeviceMemoryProperties2,
11729    pub get_physical_device_sparse_image_format_properties2: PFN_vkGetPhysicalDeviceSparseImageFormatProperties2,
11730    pub get_physical_device_external_buffer_properties: PFN_vkGetPhysicalDeviceExternalBufferProperties,
11731    pub get_physical_device_external_memory_sci_buf_properties_nv: PFN_vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV,
11732    pub get_physical_device_sci_buf_attributes_nv: PFN_vkGetPhysicalDeviceSciBufAttributesNV,
11733    pub get_physical_device_external_semaphore_properties: PFN_vkGetPhysicalDeviceExternalSemaphoreProperties,
11734    pub get_physical_device_external_fence_properties: PFN_vkGetPhysicalDeviceExternalFenceProperties,
11735    pub get_physical_device_sci_sync_attributes_nv: PFN_vkGetPhysicalDeviceSciSyncAttributesNV,
11736    pub release_display_ext: PFN_vkReleaseDisplayEXT,
11737    pub acquire_xlib_display_ext: PFN_vkAcquireXlibDisplayEXT,
11738    pub get_rand_r_output_display_ext: PFN_vkGetRandROutputDisplayEXT,
11739    pub acquire_winrt_display_nv: PFN_vkAcquireWinrtDisplayNV,
11740    pub get_winrt_display_nv: PFN_vkGetWinrtDisplayNV,
11741    pub get_physical_device_surface_capabilities2_ext: PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT,
11742    pub enumerate_physical_device_groups: PFN_vkEnumeratePhysicalDeviceGroups,
11743    pub get_physical_device_present_rectangles_khr: PFN_vkGetPhysicalDevicePresentRectanglesKHR,
11744    pub create_ios_surface_mvk: PFN_vkCreateIOSSurfaceMVK,
11745    pub create_mac_os_surface_mvk: PFN_vkCreateMacOSSurfaceMVK,
11746    pub create_metal_surface_ext: PFN_vkCreateMetalSurfaceEXT,
11747    pub get_physical_device_multisample_properties_ext: PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT,
11748    pub get_physical_device_surface_capabilities2_khr: PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR,
11749    pub get_physical_device_surface_formats2_khr: PFN_vkGetPhysicalDeviceSurfaceFormats2KHR,
11750    pub get_physical_device_display_properties2_khr: PFN_vkGetPhysicalDeviceDisplayProperties2KHR,
11751    pub get_physical_device_display_plane_properties2_khr: PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR,
11752    pub get_display_mode_properties2_khr: PFN_vkGetDisplayModeProperties2KHR,
11753    pub get_display_plane_capabilities2_khr: PFN_vkGetDisplayPlaneCapabilities2KHR,
11754    pub get_physical_device_calibrateable_time_domains_khr: PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR,
11755    pub create_debug_utils_messenger_ext: PFN_vkCreateDebugUtilsMessengerEXT,
11756    pub destroy_debug_utils_messenger_ext: PFN_vkDestroyDebugUtilsMessengerEXT,
11757    pub submit_debug_utils_message_ext: PFN_vkSubmitDebugUtilsMessageEXT,
11758    pub get_physical_device_cooperative_matrix_properties_nv: PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV,
11759    pub get_physical_device_surface_present_modes2_ext: PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT,
11760    pub enumerate_physical_device_queue_family_performance_query_counters_khr: PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,
11761    pub get_physical_device_queue_family_performance_query_passes_khr: PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR,
11762    pub create_headless_surface_ext: PFN_vkCreateHeadlessSurfaceEXT,
11763    pub get_physical_device_supported_framebuffer_mixed_samples_combinations_nv: PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV,
11764    pub get_physical_device_tool_properties: PFN_vkGetPhysicalDeviceToolProperties,
11765    pub get_physical_device_refreshable_object_types_khr: PFN_vkGetPhysicalDeviceRefreshableObjectTypesKHR,
11766    pub get_physical_device_fragment_shading_rates_khr: PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR,
11767    pub get_physical_device_video_capabilities_khr: PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR,
11768    pub get_physical_device_video_format_properties_khr: PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR,
11769    pub get_physical_device_video_encode_quality_level_properties_khr: PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR,
11770    pub acquire_drm_display_ext: PFN_vkAcquireDrmDisplayEXT,
11771    pub get_drm_display_ext: PFN_vkGetDrmDisplayEXT,
11772    pub get_physical_device_optical_flow_image_formats_nv: PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV,
11773    pub get_physical_device_cooperative_matrix_properties_khr: PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR,
11774    pub get_physical_device_cooperative_matrix_flexible_dimensions_properties_nv: PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV,
11775    pub get_physical_device_cooperative_vector_properties_nv: PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV,
11776    pub enumerate_physical_device_shader_instrumentation_metrics_arm: PFN_vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM,
11777    pub get_physical_device_external_tensor_properties_arm: PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM,
11778    pub get_physical_device_queue_family_data_graph_properties_arm: PFN_vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM,
11779    pub get_physical_device_queue_family_data_graph_processing_engine_properties_arm: PFN_vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM,
11780    pub enumerate_physical_device_queue_family_performance_counters_by_region_arm: PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM,
11781    pub get_physical_device_descriptor_size_ext: PFN_vkGetPhysicalDeviceDescriptorSizeEXT,
11782}
11783impl Default for InstanceCommands {
11784    #[inline]
11785    fn default() -> Self {
11786        unsafe { core::mem::zeroed() }
11787    }
11788}
11789impl InstanceCommands {
11790    /// Load all function pointers from the given loader callback.
11791    ///
11792    /// Load all function pointers from the given loader callback.
11793    ///
11794    /// # Safety
11795    ///
11796    /// The loader must return valid function pointers compatible with
11797    /// each command's signature, or null for unavailable commands.
11798    pub unsafe fn load(
11799        mut f: impl FnMut(&core::ffi::CStr) -> *const core::ffi::c_void,
11800    ) -> Self {
11801        unsafe {
11802            let mut cmd = Self::default();
11803            cmd.destroy_instance = core::mem::transmute(
11804                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroyInstance\0")),
11805            );
11806            cmd.enumerate_physical_devices = core::mem::transmute(
11807                f(
11808                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11809                        b"vkEnumeratePhysicalDevices\0",
11810                    ),
11811                ),
11812            );
11813            cmd.get_instance_proc_addr = core::mem::transmute(
11814                f(
11815                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11816                        b"vkGetInstanceProcAddr\0",
11817                    ),
11818                ),
11819            );
11820            cmd.get_physical_device_properties = core::mem::transmute(
11821                f(
11822                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11823                        b"vkGetPhysicalDeviceProperties\0",
11824                    ),
11825                ),
11826            );
11827            cmd.get_physical_device_queue_family_properties = core::mem::transmute(
11828                f(
11829                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11830                        b"vkGetPhysicalDeviceQueueFamilyProperties\0",
11831                    ),
11832                ),
11833            );
11834            cmd.get_physical_device_memory_properties = core::mem::transmute(
11835                f(
11836                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11837                        b"vkGetPhysicalDeviceMemoryProperties\0",
11838                    ),
11839                ),
11840            );
11841            cmd.get_physical_device_features = core::mem::transmute(
11842                f(
11843                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11844                        b"vkGetPhysicalDeviceFeatures\0",
11845                    ),
11846                ),
11847            );
11848            cmd.get_physical_device_format_properties = core::mem::transmute(
11849                f(
11850                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11851                        b"vkGetPhysicalDeviceFormatProperties\0",
11852                    ),
11853                ),
11854            );
11855            cmd.get_physical_device_image_format_properties = core::mem::transmute(
11856                f(
11857                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11858                        b"vkGetPhysicalDeviceImageFormatProperties\0",
11859                    ),
11860                ),
11861            );
11862            cmd.create_device = core::mem::transmute(
11863                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateDevice\0")),
11864            );
11865            cmd.enumerate_device_layer_properties = core::mem::transmute(
11866                f(
11867                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11868                        b"vkEnumerateDeviceLayerProperties\0",
11869                    ),
11870                ),
11871            );
11872            cmd.enumerate_device_extension_properties = core::mem::transmute(
11873                f(
11874                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11875                        b"vkEnumerateDeviceExtensionProperties\0",
11876                    ),
11877                ),
11878            );
11879            cmd.get_physical_device_sparse_image_format_properties = core::mem::transmute(
11880                f(
11881                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11882                        b"vkGetPhysicalDeviceSparseImageFormatProperties\0",
11883                    ),
11884                ),
11885            );
11886            cmd.create_android_surface_khr = core::mem::transmute(
11887                f(
11888                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11889                        b"vkCreateAndroidSurfaceKHR\0",
11890                    ),
11891                ),
11892            );
11893            cmd.create_surface_ohos = core::mem::transmute(
11894                f(
11895                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11896                        b"vkCreateSurfaceOHOS\0",
11897                    ),
11898                ),
11899            );
11900            cmd.get_physical_device_display_properties_khr = core::mem::transmute(
11901                f(
11902                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11903                        b"vkGetPhysicalDeviceDisplayPropertiesKHR\0",
11904                    ),
11905                ),
11906            );
11907            cmd.get_physical_device_display_plane_properties_khr = core::mem::transmute(
11908                f(
11909                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11910                        b"vkGetPhysicalDeviceDisplayPlanePropertiesKHR\0",
11911                    ),
11912                ),
11913            );
11914            cmd.get_display_plane_supported_displays_khr = core::mem::transmute(
11915                f(
11916                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11917                        b"vkGetDisplayPlaneSupportedDisplaysKHR\0",
11918                    ),
11919                ),
11920            );
11921            cmd.get_display_mode_properties_khr = core::mem::transmute(
11922                f(
11923                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11924                        b"vkGetDisplayModePropertiesKHR\0",
11925                    ),
11926                ),
11927            );
11928            cmd.create_display_mode_khr = core::mem::transmute(
11929                f(
11930                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11931                        b"vkCreateDisplayModeKHR\0",
11932                    ),
11933                ),
11934            );
11935            cmd.get_display_plane_capabilities_khr = core::mem::transmute(
11936                f(
11937                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11938                        b"vkGetDisplayPlaneCapabilitiesKHR\0",
11939                    ),
11940                ),
11941            );
11942            cmd.create_display_plane_surface_khr = core::mem::transmute(
11943                f(
11944                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11945                        b"vkCreateDisplayPlaneSurfaceKHR\0",
11946                    ),
11947                ),
11948            );
11949            cmd.destroy_surface_khr = core::mem::transmute(
11950                f(
11951                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11952                        b"vkDestroySurfaceKHR\0",
11953                    ),
11954                ),
11955            );
11956            cmd.get_physical_device_surface_support_khr = core::mem::transmute(
11957                f(
11958                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11959                        b"vkGetPhysicalDeviceSurfaceSupportKHR\0",
11960                    ),
11961                ),
11962            );
11963            cmd.get_physical_device_surface_capabilities_khr = core::mem::transmute(
11964                f(
11965                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11966                        b"vkGetPhysicalDeviceSurfaceCapabilitiesKHR\0",
11967                    ),
11968                ),
11969            );
11970            cmd.get_physical_device_surface_formats_khr = core::mem::transmute(
11971                f(
11972                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11973                        b"vkGetPhysicalDeviceSurfaceFormatsKHR\0",
11974                    ),
11975                ),
11976            );
11977            cmd.get_physical_device_surface_present_modes_khr = core::mem::transmute(
11978                f(
11979                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11980                        b"vkGetPhysicalDeviceSurfacePresentModesKHR\0",
11981                    ),
11982                ),
11983            );
11984            cmd.create_vi_surface_nn = core::mem::transmute(
11985                f(
11986                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11987                        b"vkCreateViSurfaceNN\0",
11988                    ),
11989                ),
11990            );
11991            cmd.create_wayland_surface_khr = core::mem::transmute(
11992                f(
11993                    core::ffi::CStr::from_bytes_with_nul_unchecked(
11994                        b"vkCreateWaylandSurfaceKHR\0",
11995                    ),
11996                ),
11997            );
11998            cmd.get_physical_device_wayland_presentation_support_khr = core::mem::transmute(
11999                f(
12000                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12001                        b"vkGetPhysicalDeviceWaylandPresentationSupportKHR\0",
12002                    ),
12003                ),
12004            );
12005            cmd.create_ubm_surface_sec = core::mem::transmute(
12006                f(
12007                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12008                        b"vkCreateUbmSurfaceSEC\0",
12009                    ),
12010                ),
12011            );
12012            cmd.get_physical_device_ubm_presentation_support_sec = core::mem::transmute(
12013                f(
12014                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12015                        b"vkGetPhysicalDeviceUbmPresentationSupportSEC\0",
12016                    ),
12017                ),
12018            );
12019            cmd.create_win32_surface_khr = core::mem::transmute(
12020                f(
12021                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12022                        b"vkCreateWin32SurfaceKHR\0",
12023                    ),
12024                ),
12025            );
12026            cmd.get_physical_device_win32_presentation_support_khr = core::mem::transmute(
12027                f(
12028                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12029                        b"vkGetPhysicalDeviceWin32PresentationSupportKHR\0",
12030                    ),
12031                ),
12032            );
12033            cmd.create_xlib_surface_khr = core::mem::transmute(
12034                f(
12035                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12036                        b"vkCreateXlibSurfaceKHR\0",
12037                    ),
12038                ),
12039            );
12040            cmd.get_physical_device_xlib_presentation_support_khr = core::mem::transmute(
12041                f(
12042                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12043                        b"vkGetPhysicalDeviceXlibPresentationSupportKHR\0",
12044                    ),
12045                ),
12046            );
12047            cmd.create_xcb_surface_khr = core::mem::transmute(
12048                f(
12049                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12050                        b"vkCreateXcbSurfaceKHR\0",
12051                    ),
12052                ),
12053            );
12054            cmd.get_physical_device_xcb_presentation_support_khr = core::mem::transmute(
12055                f(
12056                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12057                        b"vkGetPhysicalDeviceXcbPresentationSupportKHR\0",
12058                    ),
12059                ),
12060            );
12061            cmd.create_direct_fb_surface_ext = core::mem::transmute(
12062                f(
12063                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12064                        b"vkCreateDirectFBSurfaceEXT\0",
12065                    ),
12066                ),
12067            );
12068            cmd.get_physical_device_direct_fb_presentation_support_ext = core::mem::transmute(
12069                f(
12070                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12071                        b"vkGetPhysicalDeviceDirectFBPresentationSupportEXT\0",
12072                    ),
12073                ),
12074            );
12075            cmd.create_image_pipe_surface_fuchsia = core::mem::transmute(
12076                f(
12077                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12078                        b"vkCreateImagePipeSurfaceFUCHSIA\0",
12079                    ),
12080                ),
12081            );
12082            cmd.create_stream_descriptor_surface_ggp = core::mem::transmute(
12083                f(
12084                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12085                        b"vkCreateStreamDescriptorSurfaceGGP\0",
12086                    ),
12087                ),
12088            );
12089            cmd.create_screen_surface_qnx = core::mem::transmute(
12090                f(
12091                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12092                        b"vkCreateScreenSurfaceQNX\0",
12093                    ),
12094                ),
12095            );
12096            cmd.get_physical_device_screen_presentation_support_qnx = core::mem::transmute(
12097                f(
12098                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12099                        b"vkGetPhysicalDeviceScreenPresentationSupportQNX\0",
12100                    ),
12101                ),
12102            );
12103            cmd.create_debug_report_callback_ext = core::mem::transmute(
12104                f(
12105                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12106                        b"vkCreateDebugReportCallbackEXT\0",
12107                    ),
12108                ),
12109            );
12110            cmd.destroy_debug_report_callback_ext = core::mem::transmute(
12111                f(
12112                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12113                        b"vkDestroyDebugReportCallbackEXT\0",
12114                    ),
12115                ),
12116            );
12117            cmd.debug_report_message_ext = core::mem::transmute(
12118                f(
12119                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12120                        b"vkDebugReportMessageEXT\0",
12121                    ),
12122                ),
12123            );
12124            cmd.get_physical_device_external_image_format_properties_nv = core::mem::transmute(
12125                f(
12126                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12127                        b"vkGetPhysicalDeviceExternalImageFormatPropertiesNV\0",
12128                    ),
12129                ),
12130            );
12131            cmd.get_physical_device_features2 = core::mem::transmute(
12132                f(
12133                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12134                        b"vkGetPhysicalDeviceFeatures2\0",
12135                    ),
12136                ),
12137            );
12138            if cmd.get_physical_device_features2.is_none() {
12139                cmd.get_physical_device_features2 = core::mem::transmute(
12140                    f(
12141                        core::ffi::CStr::from_bytes_with_nul_unchecked(
12142                            b"vkGetPhysicalDeviceFeatures2KHR\0",
12143                        ),
12144                    ),
12145                );
12146            }
12147            cmd.get_physical_device_properties2 = core::mem::transmute(
12148                f(
12149                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12150                        b"vkGetPhysicalDeviceProperties2\0",
12151                    ),
12152                ),
12153            );
12154            if cmd.get_physical_device_properties2.is_none() {
12155                cmd.get_physical_device_properties2 = core::mem::transmute(
12156                    f(
12157                        core::ffi::CStr::from_bytes_with_nul_unchecked(
12158                            b"vkGetPhysicalDeviceProperties2KHR\0",
12159                        ),
12160                    ),
12161                );
12162            }
12163            cmd.get_physical_device_format_properties2 = core::mem::transmute(
12164                f(
12165                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12166                        b"vkGetPhysicalDeviceFormatProperties2\0",
12167                    ),
12168                ),
12169            );
12170            if cmd.get_physical_device_format_properties2.is_none() {
12171                cmd.get_physical_device_format_properties2 = core::mem::transmute(
12172                    f(
12173                        core::ffi::CStr::from_bytes_with_nul_unchecked(
12174                            b"vkGetPhysicalDeviceFormatProperties2KHR\0",
12175                        ),
12176                    ),
12177                );
12178            }
12179            cmd.get_physical_device_image_format_properties2 = core::mem::transmute(
12180                f(
12181                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12182                        b"vkGetPhysicalDeviceImageFormatProperties2\0",
12183                    ),
12184                ),
12185            );
12186            if cmd.get_physical_device_image_format_properties2.is_none() {
12187                cmd.get_physical_device_image_format_properties2 = core::mem::transmute(
12188                    f(
12189                        core::ffi::CStr::from_bytes_with_nul_unchecked(
12190                            b"vkGetPhysicalDeviceImageFormatProperties2KHR\0",
12191                        ),
12192                    ),
12193                );
12194            }
12195            cmd.get_physical_device_queue_family_properties2 = core::mem::transmute(
12196                f(
12197                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12198                        b"vkGetPhysicalDeviceQueueFamilyProperties2\0",
12199                    ),
12200                ),
12201            );
12202            if cmd.get_physical_device_queue_family_properties2.is_none() {
12203                cmd.get_physical_device_queue_family_properties2 = core::mem::transmute(
12204                    f(
12205                        core::ffi::CStr::from_bytes_with_nul_unchecked(
12206                            b"vkGetPhysicalDeviceQueueFamilyProperties2KHR\0",
12207                        ),
12208                    ),
12209                );
12210            }
12211            cmd.get_physical_device_memory_properties2 = core::mem::transmute(
12212                f(
12213                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12214                        b"vkGetPhysicalDeviceMemoryProperties2\0",
12215                    ),
12216                ),
12217            );
12218            if cmd.get_physical_device_memory_properties2.is_none() {
12219                cmd.get_physical_device_memory_properties2 = core::mem::transmute(
12220                    f(
12221                        core::ffi::CStr::from_bytes_with_nul_unchecked(
12222                            b"vkGetPhysicalDeviceMemoryProperties2KHR\0",
12223                        ),
12224                    ),
12225                );
12226            }
12227            cmd.get_physical_device_sparse_image_format_properties2 = core::mem::transmute(
12228                f(
12229                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12230                        b"vkGetPhysicalDeviceSparseImageFormatProperties2\0",
12231                    ),
12232                ),
12233            );
12234            if cmd.get_physical_device_sparse_image_format_properties2.is_none() {
12235                cmd.get_physical_device_sparse_image_format_properties2 = core::mem::transmute(
12236                    f(
12237                        core::ffi::CStr::from_bytes_with_nul_unchecked(
12238                            b"vkGetPhysicalDeviceSparseImageFormatProperties2KHR\0",
12239                        ),
12240                    ),
12241                );
12242            }
12243            cmd.get_physical_device_external_buffer_properties = core::mem::transmute(
12244                f(
12245                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12246                        b"vkGetPhysicalDeviceExternalBufferProperties\0",
12247                    ),
12248                ),
12249            );
12250            if cmd.get_physical_device_external_buffer_properties.is_none() {
12251                cmd.get_physical_device_external_buffer_properties = core::mem::transmute(
12252                    f(
12253                        core::ffi::CStr::from_bytes_with_nul_unchecked(
12254                            b"vkGetPhysicalDeviceExternalBufferPropertiesKHR\0",
12255                        ),
12256                    ),
12257                );
12258            }
12259            cmd.get_physical_device_external_memory_sci_buf_properties_nv = core::mem::transmute(
12260                f(
12261                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12262                        b"vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV\0",
12263                    ),
12264                ),
12265            );
12266            cmd.get_physical_device_sci_buf_attributes_nv = core::mem::transmute(
12267                f(
12268                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12269                        b"vkGetPhysicalDeviceSciBufAttributesNV\0",
12270                    ),
12271                ),
12272            );
12273            cmd.get_physical_device_external_semaphore_properties = core::mem::transmute(
12274                f(
12275                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12276                        b"vkGetPhysicalDeviceExternalSemaphoreProperties\0",
12277                    ),
12278                ),
12279            );
12280            if cmd.get_physical_device_external_semaphore_properties.is_none() {
12281                cmd.get_physical_device_external_semaphore_properties = core::mem::transmute(
12282                    f(
12283                        core::ffi::CStr::from_bytes_with_nul_unchecked(
12284                            b"vkGetPhysicalDeviceExternalSemaphorePropertiesKHR\0",
12285                        ),
12286                    ),
12287                );
12288            }
12289            cmd.get_physical_device_external_fence_properties = core::mem::transmute(
12290                f(
12291                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12292                        b"vkGetPhysicalDeviceExternalFenceProperties\0",
12293                    ),
12294                ),
12295            );
12296            if cmd.get_physical_device_external_fence_properties.is_none() {
12297                cmd.get_physical_device_external_fence_properties = core::mem::transmute(
12298                    f(
12299                        core::ffi::CStr::from_bytes_with_nul_unchecked(
12300                            b"vkGetPhysicalDeviceExternalFencePropertiesKHR\0",
12301                        ),
12302                    ),
12303                );
12304            }
12305            cmd.get_physical_device_sci_sync_attributes_nv = core::mem::transmute(
12306                f(
12307                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12308                        b"vkGetPhysicalDeviceSciSyncAttributesNV\0",
12309                    ),
12310                ),
12311            );
12312            cmd.release_display_ext = core::mem::transmute(
12313                f(
12314                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12315                        b"vkReleaseDisplayEXT\0",
12316                    ),
12317                ),
12318            );
12319            cmd.acquire_xlib_display_ext = core::mem::transmute(
12320                f(
12321                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12322                        b"vkAcquireXlibDisplayEXT\0",
12323                    ),
12324                ),
12325            );
12326            cmd.get_rand_r_output_display_ext = core::mem::transmute(
12327                f(
12328                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12329                        b"vkGetRandROutputDisplayEXT\0",
12330                    ),
12331                ),
12332            );
12333            cmd.acquire_winrt_display_nv = core::mem::transmute(
12334                f(
12335                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12336                        b"vkAcquireWinrtDisplayNV\0",
12337                    ),
12338                ),
12339            );
12340            cmd.get_winrt_display_nv = core::mem::transmute(
12341                f(
12342                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12343                        b"vkGetWinrtDisplayNV\0",
12344                    ),
12345                ),
12346            );
12347            cmd.get_physical_device_surface_capabilities2_ext = core::mem::transmute(
12348                f(
12349                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12350                        b"vkGetPhysicalDeviceSurfaceCapabilities2EXT\0",
12351                    ),
12352                ),
12353            );
12354            cmd.enumerate_physical_device_groups = core::mem::transmute(
12355                f(
12356                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12357                        b"vkEnumeratePhysicalDeviceGroups\0",
12358                    ),
12359                ),
12360            );
12361            if cmd.enumerate_physical_device_groups.is_none() {
12362                cmd.enumerate_physical_device_groups = core::mem::transmute(
12363                    f(
12364                        core::ffi::CStr::from_bytes_with_nul_unchecked(
12365                            b"vkEnumeratePhysicalDeviceGroupsKHR\0",
12366                        ),
12367                    ),
12368                );
12369            }
12370            cmd.get_physical_device_present_rectangles_khr = core::mem::transmute(
12371                f(
12372                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12373                        b"vkGetPhysicalDevicePresentRectanglesKHR\0",
12374                    ),
12375                ),
12376            );
12377            cmd.create_ios_surface_mvk = core::mem::transmute(
12378                f(
12379                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12380                        b"vkCreateIOSSurfaceMVK\0",
12381                    ),
12382                ),
12383            );
12384            cmd.create_mac_os_surface_mvk = core::mem::transmute(
12385                f(
12386                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12387                        b"vkCreateMacOSSurfaceMVK\0",
12388                    ),
12389                ),
12390            );
12391            cmd.create_metal_surface_ext = core::mem::transmute(
12392                f(
12393                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12394                        b"vkCreateMetalSurfaceEXT\0",
12395                    ),
12396                ),
12397            );
12398            cmd.get_physical_device_multisample_properties_ext = core::mem::transmute(
12399                f(
12400                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12401                        b"vkGetPhysicalDeviceMultisamplePropertiesEXT\0",
12402                    ),
12403                ),
12404            );
12405            cmd.get_physical_device_surface_capabilities2_khr = core::mem::transmute(
12406                f(
12407                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12408                        b"vkGetPhysicalDeviceSurfaceCapabilities2KHR\0",
12409                    ),
12410                ),
12411            );
12412            cmd.get_physical_device_surface_formats2_khr = core::mem::transmute(
12413                f(
12414                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12415                        b"vkGetPhysicalDeviceSurfaceFormats2KHR\0",
12416                    ),
12417                ),
12418            );
12419            cmd.get_physical_device_display_properties2_khr = core::mem::transmute(
12420                f(
12421                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12422                        b"vkGetPhysicalDeviceDisplayProperties2KHR\0",
12423                    ),
12424                ),
12425            );
12426            cmd.get_physical_device_display_plane_properties2_khr = core::mem::transmute(
12427                f(
12428                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12429                        b"vkGetPhysicalDeviceDisplayPlaneProperties2KHR\0",
12430                    ),
12431                ),
12432            );
12433            cmd.get_display_mode_properties2_khr = core::mem::transmute(
12434                f(
12435                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12436                        b"vkGetDisplayModeProperties2KHR\0",
12437                    ),
12438                ),
12439            );
12440            cmd.get_display_plane_capabilities2_khr = core::mem::transmute(
12441                f(
12442                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12443                        b"vkGetDisplayPlaneCapabilities2KHR\0",
12444                    ),
12445                ),
12446            );
12447            cmd.get_physical_device_calibrateable_time_domains_khr = core::mem::transmute(
12448                f(
12449                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12450                        b"vkGetPhysicalDeviceCalibrateableTimeDomainsKHR\0",
12451                    ),
12452                ),
12453            );
12454            if cmd.get_physical_device_calibrateable_time_domains_khr.is_none() {
12455                cmd.get_physical_device_calibrateable_time_domains_khr = core::mem::transmute(
12456                    f(
12457                        core::ffi::CStr::from_bytes_with_nul_unchecked(
12458                            b"vkGetPhysicalDeviceCalibrateableTimeDomainsEXT\0",
12459                        ),
12460                    ),
12461                );
12462            }
12463            cmd.create_debug_utils_messenger_ext = core::mem::transmute(
12464                f(
12465                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12466                        b"vkCreateDebugUtilsMessengerEXT\0",
12467                    ),
12468                ),
12469            );
12470            cmd.destroy_debug_utils_messenger_ext = core::mem::transmute(
12471                f(
12472                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12473                        b"vkDestroyDebugUtilsMessengerEXT\0",
12474                    ),
12475                ),
12476            );
12477            cmd.submit_debug_utils_message_ext = core::mem::transmute(
12478                f(
12479                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12480                        b"vkSubmitDebugUtilsMessageEXT\0",
12481                    ),
12482                ),
12483            );
12484            cmd.get_physical_device_cooperative_matrix_properties_nv = core::mem::transmute(
12485                f(
12486                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12487                        b"vkGetPhysicalDeviceCooperativeMatrixPropertiesNV\0",
12488                    ),
12489                ),
12490            );
12491            cmd.get_physical_device_surface_present_modes2_ext = core::mem::transmute(
12492                f(
12493                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12494                        b"vkGetPhysicalDeviceSurfacePresentModes2EXT\0",
12495                    ),
12496                ),
12497            );
12498            cmd.enumerate_physical_device_queue_family_performance_query_counters_khr = core::mem::transmute(
12499                f(
12500                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12501                        b"vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR\0",
12502                    ),
12503                ),
12504            );
12505            cmd.get_physical_device_queue_family_performance_query_passes_khr = core::mem::transmute(
12506                f(
12507                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12508                        b"vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR\0",
12509                    ),
12510                ),
12511            );
12512            cmd.create_headless_surface_ext = core::mem::transmute(
12513                f(
12514                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12515                        b"vkCreateHeadlessSurfaceEXT\0",
12516                    ),
12517                ),
12518            );
12519            cmd
12520                .get_physical_device_supported_framebuffer_mixed_samples_combinations_nv = core::mem::transmute(
12521                f(
12522                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12523                        b"vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\0",
12524                    ),
12525                ),
12526            );
12527            cmd.get_physical_device_tool_properties = core::mem::transmute(
12528                f(
12529                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12530                        b"vkGetPhysicalDeviceToolProperties\0",
12531                    ),
12532                ),
12533            );
12534            if cmd.get_physical_device_tool_properties.is_none() {
12535                cmd.get_physical_device_tool_properties = core::mem::transmute(
12536                    f(
12537                        core::ffi::CStr::from_bytes_with_nul_unchecked(
12538                            b"vkGetPhysicalDeviceToolPropertiesEXT\0",
12539                        ),
12540                    ),
12541                );
12542            }
12543            cmd.get_physical_device_refreshable_object_types_khr = core::mem::transmute(
12544                f(
12545                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12546                        b"vkGetPhysicalDeviceRefreshableObjectTypesKHR\0",
12547                    ),
12548                ),
12549            );
12550            cmd.get_physical_device_fragment_shading_rates_khr = core::mem::transmute(
12551                f(
12552                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12553                        b"vkGetPhysicalDeviceFragmentShadingRatesKHR\0",
12554                    ),
12555                ),
12556            );
12557            cmd.get_physical_device_video_capabilities_khr = core::mem::transmute(
12558                f(
12559                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12560                        b"vkGetPhysicalDeviceVideoCapabilitiesKHR\0",
12561                    ),
12562                ),
12563            );
12564            cmd.get_physical_device_video_format_properties_khr = core::mem::transmute(
12565                f(
12566                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12567                        b"vkGetPhysicalDeviceVideoFormatPropertiesKHR\0",
12568                    ),
12569                ),
12570            );
12571            cmd.get_physical_device_video_encode_quality_level_properties_khr = core::mem::transmute(
12572                f(
12573                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12574                        b"vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR\0",
12575                    ),
12576                ),
12577            );
12578            cmd.acquire_drm_display_ext = core::mem::transmute(
12579                f(
12580                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12581                        b"vkAcquireDrmDisplayEXT\0",
12582                    ),
12583                ),
12584            );
12585            cmd.get_drm_display_ext = core::mem::transmute(
12586                f(
12587                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12588                        b"vkGetDrmDisplayEXT\0",
12589                    ),
12590                ),
12591            );
12592            cmd.get_physical_device_optical_flow_image_formats_nv = core::mem::transmute(
12593                f(
12594                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12595                        b"vkGetPhysicalDeviceOpticalFlowImageFormatsNV\0",
12596                    ),
12597                ),
12598            );
12599            cmd.get_physical_device_cooperative_matrix_properties_khr = core::mem::transmute(
12600                f(
12601                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12602                        b"vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR\0",
12603                    ),
12604                ),
12605            );
12606            cmd
12607                .get_physical_device_cooperative_matrix_flexible_dimensions_properties_nv = core::mem::transmute(
12608                f(
12609                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12610                        b"vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV\0",
12611                    ),
12612                ),
12613            );
12614            cmd.get_physical_device_cooperative_vector_properties_nv = core::mem::transmute(
12615                f(
12616                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12617                        b"vkGetPhysicalDeviceCooperativeVectorPropertiesNV\0",
12618                    ),
12619                ),
12620            );
12621            cmd.enumerate_physical_device_shader_instrumentation_metrics_arm = core::mem::transmute(
12622                f(
12623                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12624                        b"vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM\0",
12625                    ),
12626                ),
12627            );
12628            cmd.get_physical_device_external_tensor_properties_arm = core::mem::transmute(
12629                f(
12630                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12631                        b"vkGetPhysicalDeviceExternalTensorPropertiesARM\0",
12632                    ),
12633                ),
12634            );
12635            cmd.get_physical_device_queue_family_data_graph_properties_arm = core::mem::transmute(
12636                f(
12637                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12638                        b"vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM\0",
12639                    ),
12640                ),
12641            );
12642            cmd
12643                .get_physical_device_queue_family_data_graph_processing_engine_properties_arm = core::mem::transmute(
12644                f(
12645                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12646                        b"vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM\0",
12647                    ),
12648                ),
12649            );
12650            cmd
12651                .enumerate_physical_device_queue_family_performance_counters_by_region_arm = core::mem::transmute(
12652                f(
12653                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12654                        b"vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM\0",
12655                    ),
12656                ),
12657            );
12658            cmd.get_physical_device_descriptor_size_ext = core::mem::transmute(
12659                f(
12660                    core::ffi::CStr::from_bytes_with_nul_unchecked(
12661                        b"vkGetPhysicalDeviceDescriptorSizeEXT\0",
12662                    ),
12663                ),
12664            );
12665            cmd
12666        }
12667    }
12668}
12669pub struct DeviceCommands {
12670    pub get_device_proc_addr: PFN_vkGetDeviceProcAddr,
12671    pub destroy_device: PFN_vkDestroyDevice,
12672    pub get_device_queue: PFN_vkGetDeviceQueue,
12673    pub queue_submit: PFN_vkQueueSubmit,
12674    pub queue_wait_idle: PFN_vkQueueWaitIdle,
12675    pub device_wait_idle: PFN_vkDeviceWaitIdle,
12676    pub allocate_memory: PFN_vkAllocateMemory,
12677    pub free_memory: PFN_vkFreeMemory,
12678    pub map_memory: PFN_vkMapMemory,
12679    pub unmap_memory: PFN_vkUnmapMemory,
12680    pub flush_mapped_memory_ranges: PFN_vkFlushMappedMemoryRanges,
12681    pub invalidate_mapped_memory_ranges: PFN_vkInvalidateMappedMemoryRanges,
12682    pub get_device_memory_commitment: PFN_vkGetDeviceMemoryCommitment,
12683    pub get_buffer_memory_requirements: PFN_vkGetBufferMemoryRequirements,
12684    pub bind_buffer_memory: PFN_vkBindBufferMemory,
12685    pub get_image_memory_requirements: PFN_vkGetImageMemoryRequirements,
12686    pub bind_image_memory: PFN_vkBindImageMemory,
12687    pub get_image_sparse_memory_requirements: PFN_vkGetImageSparseMemoryRequirements,
12688    pub queue_bind_sparse: PFN_vkQueueBindSparse,
12689    pub create_fence: PFN_vkCreateFence,
12690    pub destroy_fence: PFN_vkDestroyFence,
12691    pub reset_fences: PFN_vkResetFences,
12692    pub get_fence_status: PFN_vkGetFenceStatus,
12693    pub wait_for_fences: PFN_vkWaitForFences,
12694    pub create_semaphore: PFN_vkCreateSemaphore,
12695    pub destroy_semaphore: PFN_vkDestroySemaphore,
12696    pub create_event: PFN_vkCreateEvent,
12697    pub destroy_event: PFN_vkDestroyEvent,
12698    pub get_event_status: PFN_vkGetEventStatus,
12699    pub set_event: PFN_vkSetEvent,
12700    pub reset_event: PFN_vkResetEvent,
12701    pub create_query_pool: PFN_vkCreateQueryPool,
12702    pub destroy_query_pool: PFN_vkDestroyQueryPool,
12703    pub get_query_pool_results: PFN_vkGetQueryPoolResults,
12704    pub reset_query_pool: PFN_vkResetQueryPool,
12705    pub create_buffer: PFN_vkCreateBuffer,
12706    pub destroy_buffer: PFN_vkDestroyBuffer,
12707    pub create_buffer_view: PFN_vkCreateBufferView,
12708    pub destroy_buffer_view: PFN_vkDestroyBufferView,
12709    pub create_image: PFN_vkCreateImage,
12710    pub destroy_image: PFN_vkDestroyImage,
12711    pub get_image_subresource_layout: PFN_vkGetImageSubresourceLayout,
12712    pub create_image_view: PFN_vkCreateImageView,
12713    pub destroy_image_view: PFN_vkDestroyImageView,
12714    pub create_shader_module: PFN_vkCreateShaderModule,
12715    pub destroy_shader_module: PFN_vkDestroyShaderModule,
12716    pub create_pipeline_cache: PFN_vkCreatePipelineCache,
12717    pub destroy_pipeline_cache: PFN_vkDestroyPipelineCache,
12718    pub get_pipeline_cache_data: PFN_vkGetPipelineCacheData,
12719    pub merge_pipeline_caches: PFN_vkMergePipelineCaches,
12720    pub create_pipeline_binaries_khr: PFN_vkCreatePipelineBinariesKHR,
12721    pub destroy_pipeline_binary_khr: PFN_vkDestroyPipelineBinaryKHR,
12722    pub get_pipeline_key_khr: PFN_vkGetPipelineKeyKHR,
12723    pub get_pipeline_binary_data_khr: PFN_vkGetPipelineBinaryDataKHR,
12724    pub release_captured_pipeline_data_khr: PFN_vkReleaseCapturedPipelineDataKHR,
12725    pub create_graphics_pipelines: PFN_vkCreateGraphicsPipelines,
12726    pub create_compute_pipelines: PFN_vkCreateComputePipelines,
12727    pub get_device_subpass_shading_max_workgroup_size_huawei: PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI,
12728    pub destroy_pipeline: PFN_vkDestroyPipeline,
12729    pub create_pipeline_layout: PFN_vkCreatePipelineLayout,
12730    pub destroy_pipeline_layout: PFN_vkDestroyPipelineLayout,
12731    pub create_sampler: PFN_vkCreateSampler,
12732    pub destroy_sampler: PFN_vkDestroySampler,
12733    pub create_descriptor_set_layout: PFN_vkCreateDescriptorSetLayout,
12734    pub destroy_descriptor_set_layout: PFN_vkDestroyDescriptorSetLayout,
12735    pub create_descriptor_pool: PFN_vkCreateDescriptorPool,
12736    pub destroy_descriptor_pool: PFN_vkDestroyDescriptorPool,
12737    pub reset_descriptor_pool: PFN_vkResetDescriptorPool,
12738    pub allocate_descriptor_sets: PFN_vkAllocateDescriptorSets,
12739    pub free_descriptor_sets: PFN_vkFreeDescriptorSets,
12740    pub update_descriptor_sets: PFN_vkUpdateDescriptorSets,
12741    pub create_framebuffer: PFN_vkCreateFramebuffer,
12742    pub destroy_framebuffer: PFN_vkDestroyFramebuffer,
12743    pub create_render_pass: PFN_vkCreateRenderPass,
12744    pub destroy_render_pass: PFN_vkDestroyRenderPass,
12745    pub get_render_area_granularity: PFN_vkGetRenderAreaGranularity,
12746    pub get_rendering_area_granularity: PFN_vkGetRenderingAreaGranularity,
12747    pub create_command_pool: PFN_vkCreateCommandPool,
12748    pub destroy_command_pool: PFN_vkDestroyCommandPool,
12749    pub reset_command_pool: PFN_vkResetCommandPool,
12750    pub allocate_command_buffers: PFN_vkAllocateCommandBuffers,
12751    pub free_command_buffers: PFN_vkFreeCommandBuffers,
12752    pub begin_command_buffer: PFN_vkBeginCommandBuffer,
12753    pub end_command_buffer: PFN_vkEndCommandBuffer,
12754    pub reset_command_buffer: PFN_vkResetCommandBuffer,
12755    pub cmd_bind_pipeline: PFN_vkCmdBindPipeline,
12756    pub cmd_set_attachment_feedback_loop_enable_ext: PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT,
12757    pub cmd_set_viewport: PFN_vkCmdSetViewport,
12758    pub cmd_set_scissor: PFN_vkCmdSetScissor,
12759    pub cmd_set_line_width: PFN_vkCmdSetLineWidth,
12760    pub cmd_set_depth_bias: PFN_vkCmdSetDepthBias,
12761    pub cmd_set_blend_constants: PFN_vkCmdSetBlendConstants,
12762    pub cmd_set_depth_bounds: PFN_vkCmdSetDepthBounds,
12763    pub cmd_set_stencil_compare_mask: PFN_vkCmdSetStencilCompareMask,
12764    pub cmd_set_stencil_write_mask: PFN_vkCmdSetStencilWriteMask,
12765    pub cmd_set_stencil_reference: PFN_vkCmdSetStencilReference,
12766    pub cmd_bind_descriptor_sets: PFN_vkCmdBindDescriptorSets,
12767    pub cmd_bind_index_buffer: PFN_vkCmdBindIndexBuffer,
12768    pub cmd_bind_vertex_buffers: PFN_vkCmdBindVertexBuffers,
12769    pub cmd_draw: PFN_vkCmdDraw,
12770    pub cmd_draw_indexed: PFN_vkCmdDrawIndexed,
12771    pub cmd_draw_multi_ext: PFN_vkCmdDrawMultiEXT,
12772    pub cmd_draw_multi_indexed_ext: PFN_vkCmdDrawMultiIndexedEXT,
12773    pub cmd_draw_indirect: PFN_vkCmdDrawIndirect,
12774    pub cmd_draw_indexed_indirect: PFN_vkCmdDrawIndexedIndirect,
12775    pub cmd_dispatch: PFN_vkCmdDispatch,
12776    pub cmd_dispatch_indirect: PFN_vkCmdDispatchIndirect,
12777    pub cmd_subpass_shading_huawei: PFN_vkCmdSubpassShadingHUAWEI,
12778    pub cmd_draw_cluster_huawei: PFN_vkCmdDrawClusterHUAWEI,
12779    pub cmd_draw_cluster_indirect_huawei: PFN_vkCmdDrawClusterIndirectHUAWEI,
12780    pub cmd_update_pipeline_indirect_buffer_nv: PFN_vkCmdUpdatePipelineIndirectBufferNV,
12781    pub cmd_copy_buffer: PFN_vkCmdCopyBuffer,
12782    pub cmd_copy_image: PFN_vkCmdCopyImage,
12783    pub cmd_blit_image: PFN_vkCmdBlitImage,
12784    pub cmd_copy_buffer_to_image: PFN_vkCmdCopyBufferToImage,
12785    pub cmd_copy_image_to_buffer: PFN_vkCmdCopyImageToBuffer,
12786    pub cmd_copy_memory_indirect_nv: PFN_vkCmdCopyMemoryIndirectNV,
12787    pub cmd_copy_memory_indirect_khr: PFN_vkCmdCopyMemoryIndirectKHR,
12788    pub cmd_copy_memory_to_image_indirect_nv: PFN_vkCmdCopyMemoryToImageIndirectNV,
12789    pub cmd_copy_memory_to_image_indirect_khr: PFN_vkCmdCopyMemoryToImageIndirectKHR,
12790    pub cmd_update_buffer: PFN_vkCmdUpdateBuffer,
12791    pub cmd_fill_buffer: PFN_vkCmdFillBuffer,
12792    pub cmd_clear_color_image: PFN_vkCmdClearColorImage,
12793    pub cmd_clear_depth_stencil_image: PFN_vkCmdClearDepthStencilImage,
12794    pub cmd_clear_attachments: PFN_vkCmdClearAttachments,
12795    pub cmd_resolve_image: PFN_vkCmdResolveImage,
12796    pub cmd_set_event: PFN_vkCmdSetEvent,
12797    pub cmd_reset_event: PFN_vkCmdResetEvent,
12798    pub cmd_wait_events: PFN_vkCmdWaitEvents,
12799    pub cmd_pipeline_barrier: PFN_vkCmdPipelineBarrier,
12800    pub cmd_begin_query: PFN_vkCmdBeginQuery,
12801    pub cmd_end_query: PFN_vkCmdEndQuery,
12802    pub cmd_begin_conditional_rendering_ext: PFN_vkCmdBeginConditionalRenderingEXT,
12803    pub cmd_end_conditional_rendering_ext: PFN_vkCmdEndConditionalRenderingEXT,
12804    pub cmd_begin_custom_resolve_ext: PFN_vkCmdBeginCustomResolveEXT,
12805    pub cmd_reset_query_pool: PFN_vkCmdResetQueryPool,
12806    pub cmd_write_timestamp: PFN_vkCmdWriteTimestamp,
12807    pub cmd_copy_query_pool_results: PFN_vkCmdCopyQueryPoolResults,
12808    pub cmd_push_constants: PFN_vkCmdPushConstants,
12809    pub cmd_begin_render_pass: PFN_vkCmdBeginRenderPass,
12810    pub cmd_next_subpass: PFN_vkCmdNextSubpass,
12811    pub cmd_end_render_pass: PFN_vkCmdEndRenderPass,
12812    pub cmd_execute_commands: PFN_vkCmdExecuteCommands,
12813    pub create_shared_swapchains_khr: PFN_vkCreateSharedSwapchainsKHR,
12814    pub create_swapchain_khr: PFN_vkCreateSwapchainKHR,
12815    pub destroy_swapchain_khr: PFN_vkDestroySwapchainKHR,
12816    pub get_swapchain_images_khr: PFN_vkGetSwapchainImagesKHR,
12817    pub acquire_next_image_khr: PFN_vkAcquireNextImageKHR,
12818    pub queue_present_khr: PFN_vkQueuePresentKHR,
12819    pub debug_marker_set_object_name_ext: PFN_vkDebugMarkerSetObjectNameEXT,
12820    pub debug_marker_set_object_tag_ext: PFN_vkDebugMarkerSetObjectTagEXT,
12821    pub cmd_debug_marker_begin_ext: PFN_vkCmdDebugMarkerBeginEXT,
12822    pub cmd_debug_marker_end_ext: PFN_vkCmdDebugMarkerEndEXT,
12823    pub cmd_debug_marker_insert_ext: PFN_vkCmdDebugMarkerInsertEXT,
12824    pub get_memory_win32_handle_nv: PFN_vkGetMemoryWin32HandleNV,
12825    pub cmd_execute_generated_commands_nv: PFN_vkCmdExecuteGeneratedCommandsNV,
12826    pub cmd_preprocess_generated_commands_nv: PFN_vkCmdPreprocessGeneratedCommandsNV,
12827    pub cmd_bind_pipeline_shader_group_nv: PFN_vkCmdBindPipelineShaderGroupNV,
12828    pub get_generated_commands_memory_requirements_nv: PFN_vkGetGeneratedCommandsMemoryRequirementsNV,
12829    pub create_indirect_commands_layout_nv: PFN_vkCreateIndirectCommandsLayoutNV,
12830    pub destroy_indirect_commands_layout_nv: PFN_vkDestroyIndirectCommandsLayoutNV,
12831    pub cmd_execute_generated_commands_ext: PFN_vkCmdExecuteGeneratedCommandsEXT,
12832    pub cmd_preprocess_generated_commands_ext: PFN_vkCmdPreprocessGeneratedCommandsEXT,
12833    pub get_generated_commands_memory_requirements_ext: PFN_vkGetGeneratedCommandsMemoryRequirementsEXT,
12834    pub create_indirect_commands_layout_ext: PFN_vkCreateIndirectCommandsLayoutEXT,
12835    pub destroy_indirect_commands_layout_ext: PFN_vkDestroyIndirectCommandsLayoutEXT,
12836    pub create_indirect_execution_set_ext: PFN_vkCreateIndirectExecutionSetEXT,
12837    pub destroy_indirect_execution_set_ext: PFN_vkDestroyIndirectExecutionSetEXT,
12838    pub update_indirect_execution_set_pipeline_ext: PFN_vkUpdateIndirectExecutionSetPipelineEXT,
12839    pub update_indirect_execution_set_shader_ext: PFN_vkUpdateIndirectExecutionSetShaderEXT,
12840    pub cmd_push_descriptor_set: PFN_vkCmdPushDescriptorSet,
12841    pub trim_command_pool: PFN_vkTrimCommandPool,
12842    pub get_memory_win32_handle_khr: PFN_vkGetMemoryWin32HandleKHR,
12843    pub get_memory_win32_handle_properties_khr: PFN_vkGetMemoryWin32HandlePropertiesKHR,
12844    pub get_memory_fd_khr: PFN_vkGetMemoryFdKHR,
12845    pub get_memory_fd_properties_khr: PFN_vkGetMemoryFdPropertiesKHR,
12846    pub get_memory_zircon_handle_fuchsia: PFN_vkGetMemoryZirconHandleFUCHSIA,
12847    pub get_memory_zircon_handle_properties_fuchsia: PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA,
12848    pub get_memory_remote_address_nv: PFN_vkGetMemoryRemoteAddressNV,
12849    pub get_memory_sci_buf_nv: PFN_vkGetMemorySciBufNV,
12850    pub get_semaphore_win32_handle_khr: PFN_vkGetSemaphoreWin32HandleKHR,
12851    pub import_semaphore_win32_handle_khr: PFN_vkImportSemaphoreWin32HandleKHR,
12852    pub get_semaphore_fd_khr: PFN_vkGetSemaphoreFdKHR,
12853    pub import_semaphore_fd_khr: PFN_vkImportSemaphoreFdKHR,
12854    pub get_semaphore_zircon_handle_fuchsia: PFN_vkGetSemaphoreZirconHandleFUCHSIA,
12855    pub import_semaphore_zircon_handle_fuchsia: PFN_vkImportSemaphoreZirconHandleFUCHSIA,
12856    pub get_fence_win32_handle_khr: PFN_vkGetFenceWin32HandleKHR,
12857    pub import_fence_win32_handle_khr: PFN_vkImportFenceWin32HandleKHR,
12858    pub get_fence_fd_khr: PFN_vkGetFenceFdKHR,
12859    pub import_fence_fd_khr: PFN_vkImportFenceFdKHR,
12860    pub get_fence_sci_sync_fence_nv: PFN_vkGetFenceSciSyncFenceNV,
12861    pub get_fence_sci_sync_obj_nv: PFN_vkGetFenceSciSyncObjNV,
12862    pub import_fence_sci_sync_fence_nv: PFN_vkImportFenceSciSyncFenceNV,
12863    pub import_fence_sci_sync_obj_nv: PFN_vkImportFenceSciSyncObjNV,
12864    pub get_semaphore_sci_sync_obj_nv: PFN_vkGetSemaphoreSciSyncObjNV,
12865    pub import_semaphore_sci_sync_obj_nv: PFN_vkImportSemaphoreSciSyncObjNV,
12866    pub create_semaphore_sci_sync_pool_nv: PFN_vkCreateSemaphoreSciSyncPoolNV,
12867    pub destroy_semaphore_sci_sync_pool_nv: PFN_vkDestroySemaphoreSciSyncPoolNV,
12868    pub display_power_control_ext: PFN_vkDisplayPowerControlEXT,
12869    pub register_device_event_ext: PFN_vkRegisterDeviceEventEXT,
12870    pub register_display_event_ext: PFN_vkRegisterDisplayEventEXT,
12871    pub get_swapchain_counter_ext: PFN_vkGetSwapchainCounterEXT,
12872    pub get_device_group_peer_memory_features: PFN_vkGetDeviceGroupPeerMemoryFeatures,
12873    pub bind_buffer_memory2: PFN_vkBindBufferMemory2,
12874    pub bind_image_memory2: PFN_vkBindImageMemory2,
12875    pub cmd_set_device_mask: PFN_vkCmdSetDeviceMask,
12876    pub get_device_group_present_capabilities_khr: PFN_vkGetDeviceGroupPresentCapabilitiesKHR,
12877    pub get_device_group_surface_present_modes_khr: PFN_vkGetDeviceGroupSurfacePresentModesKHR,
12878    pub acquire_next_image2_khr: PFN_vkAcquireNextImage2KHR,
12879    pub cmd_dispatch_base: PFN_vkCmdDispatchBase,
12880    pub create_descriptor_update_template: PFN_vkCreateDescriptorUpdateTemplate,
12881    pub destroy_descriptor_update_template: PFN_vkDestroyDescriptorUpdateTemplate,
12882    pub update_descriptor_set_with_template: PFN_vkUpdateDescriptorSetWithTemplate,
12883    pub cmd_push_descriptor_set_with_template: PFN_vkCmdPushDescriptorSetWithTemplate,
12884    pub set_hdr_metadata_ext: PFN_vkSetHdrMetadataEXT,
12885    pub get_swapchain_status_khr: PFN_vkGetSwapchainStatusKHR,
12886    pub get_refresh_cycle_duration_google: PFN_vkGetRefreshCycleDurationGOOGLE,
12887    pub get_past_presentation_timing_google: PFN_vkGetPastPresentationTimingGOOGLE,
12888    pub cmd_set_viewport_w_scaling_nv: PFN_vkCmdSetViewportWScalingNV,
12889    pub cmd_set_discard_rectangle_ext: PFN_vkCmdSetDiscardRectangleEXT,
12890    pub cmd_set_discard_rectangle_enable_ext: PFN_vkCmdSetDiscardRectangleEnableEXT,
12891    pub cmd_set_discard_rectangle_mode_ext: PFN_vkCmdSetDiscardRectangleModeEXT,
12892    pub cmd_set_sample_locations_ext: PFN_vkCmdSetSampleLocationsEXT,
12893    pub get_buffer_memory_requirements2: PFN_vkGetBufferMemoryRequirements2,
12894    pub get_image_memory_requirements2: PFN_vkGetImageMemoryRequirements2,
12895    pub get_image_sparse_memory_requirements2: PFN_vkGetImageSparseMemoryRequirements2,
12896    pub get_device_buffer_memory_requirements: PFN_vkGetDeviceBufferMemoryRequirements,
12897    pub get_device_image_memory_requirements: PFN_vkGetDeviceImageMemoryRequirements,
12898    pub get_device_image_sparse_memory_requirements: PFN_vkGetDeviceImageSparseMemoryRequirements,
12899    pub create_sampler_ycbcr_conversion: PFN_vkCreateSamplerYcbcrConversion,
12900    pub destroy_sampler_ycbcr_conversion: PFN_vkDestroySamplerYcbcrConversion,
12901    pub get_device_queue2: PFN_vkGetDeviceQueue2,
12902    pub create_validation_cache_ext: PFN_vkCreateValidationCacheEXT,
12903    pub destroy_validation_cache_ext: PFN_vkDestroyValidationCacheEXT,
12904    pub get_validation_cache_data_ext: PFN_vkGetValidationCacheDataEXT,
12905    pub merge_validation_caches_ext: PFN_vkMergeValidationCachesEXT,
12906    pub get_descriptor_set_layout_support: PFN_vkGetDescriptorSetLayoutSupport,
12907    pub get_swapchain_gralloc_usage_android: PFN_vkGetSwapchainGrallocUsageANDROID,
12908    pub get_swapchain_gralloc_usage2_android: PFN_vkGetSwapchainGrallocUsage2ANDROID,
12909    pub acquire_image_android: PFN_vkAcquireImageANDROID,
12910    pub queue_signal_release_image_android: PFN_vkQueueSignalReleaseImageANDROID,
12911    pub get_shader_info_amd: PFN_vkGetShaderInfoAMD,
12912    pub set_local_dimming_amd: PFN_vkSetLocalDimmingAMD,
12913    pub get_calibrated_timestamps_khr: PFN_vkGetCalibratedTimestampsKHR,
12914    pub set_debug_utils_object_name_ext: PFN_vkSetDebugUtilsObjectNameEXT,
12915    pub set_debug_utils_object_tag_ext: PFN_vkSetDebugUtilsObjectTagEXT,
12916    pub queue_begin_debug_utils_label_ext: PFN_vkQueueBeginDebugUtilsLabelEXT,
12917    pub queue_end_debug_utils_label_ext: PFN_vkQueueEndDebugUtilsLabelEXT,
12918    pub queue_insert_debug_utils_label_ext: PFN_vkQueueInsertDebugUtilsLabelEXT,
12919    pub cmd_begin_debug_utils_label_ext: PFN_vkCmdBeginDebugUtilsLabelEXT,
12920    pub cmd_end_debug_utils_label_ext: PFN_vkCmdEndDebugUtilsLabelEXT,
12921    pub cmd_insert_debug_utils_label_ext: PFN_vkCmdInsertDebugUtilsLabelEXT,
12922    pub get_memory_host_pointer_properties_ext: PFN_vkGetMemoryHostPointerPropertiesEXT,
12923    pub cmd_write_buffer_marker_amd: PFN_vkCmdWriteBufferMarkerAMD,
12924    pub create_render_pass2: PFN_vkCreateRenderPass2,
12925    pub cmd_begin_render_pass2: PFN_vkCmdBeginRenderPass2,
12926    pub cmd_next_subpass2: PFN_vkCmdNextSubpass2,
12927    pub cmd_end_render_pass2: PFN_vkCmdEndRenderPass2,
12928    pub get_semaphore_counter_value: PFN_vkGetSemaphoreCounterValue,
12929    pub wait_semaphores: PFN_vkWaitSemaphores,
12930    pub signal_semaphore: PFN_vkSignalSemaphore,
12931    pub get_android_hardware_buffer_properties_android: PFN_vkGetAndroidHardwareBufferPropertiesANDROID,
12932    pub get_memory_android_hardware_buffer_android: PFN_vkGetMemoryAndroidHardwareBufferANDROID,
12933    pub cmd_draw_indirect_count: PFN_vkCmdDrawIndirectCount,
12934    pub cmd_draw_indexed_indirect_count: PFN_vkCmdDrawIndexedIndirectCount,
12935    pub cmd_set_checkpoint_nv: PFN_vkCmdSetCheckpointNV,
12936    pub get_queue_checkpoint_data_nv: PFN_vkGetQueueCheckpointDataNV,
12937    pub cmd_bind_transform_feedback_buffers_ext: PFN_vkCmdBindTransformFeedbackBuffersEXT,
12938    pub cmd_begin_transform_feedback_ext: PFN_vkCmdBeginTransformFeedbackEXT,
12939    pub cmd_end_transform_feedback_ext: PFN_vkCmdEndTransformFeedbackEXT,
12940    pub cmd_begin_query_indexed_ext: PFN_vkCmdBeginQueryIndexedEXT,
12941    pub cmd_end_query_indexed_ext: PFN_vkCmdEndQueryIndexedEXT,
12942    pub cmd_draw_indirect_byte_count_ext: PFN_vkCmdDrawIndirectByteCountEXT,
12943    pub cmd_set_exclusive_scissor_nv: PFN_vkCmdSetExclusiveScissorNV,
12944    pub cmd_set_exclusive_scissor_enable_nv: PFN_vkCmdSetExclusiveScissorEnableNV,
12945    pub cmd_bind_shading_rate_image_nv: PFN_vkCmdBindShadingRateImageNV,
12946    pub cmd_set_viewport_shading_rate_palette_nv: PFN_vkCmdSetViewportShadingRatePaletteNV,
12947    pub cmd_set_coarse_sample_order_nv: PFN_vkCmdSetCoarseSampleOrderNV,
12948    pub cmd_draw_mesh_tasks_nv: PFN_vkCmdDrawMeshTasksNV,
12949    pub cmd_draw_mesh_tasks_indirect_nv: PFN_vkCmdDrawMeshTasksIndirectNV,
12950    pub cmd_draw_mesh_tasks_indirect_count_nv: PFN_vkCmdDrawMeshTasksIndirectCountNV,
12951    pub cmd_draw_mesh_tasks_ext: PFN_vkCmdDrawMeshTasksEXT,
12952    pub cmd_draw_mesh_tasks_indirect_ext: PFN_vkCmdDrawMeshTasksIndirectEXT,
12953    pub cmd_draw_mesh_tasks_indirect_count_ext: PFN_vkCmdDrawMeshTasksIndirectCountEXT,
12954    pub compile_deferred_nv: PFN_vkCompileDeferredNV,
12955    pub create_acceleration_structure_nv: PFN_vkCreateAccelerationStructureNV,
12956    pub cmd_bind_invocation_mask_huawei: PFN_vkCmdBindInvocationMaskHUAWEI,
12957    pub destroy_acceleration_structure_khr: PFN_vkDestroyAccelerationStructureKHR,
12958    pub destroy_acceleration_structure_nv: PFN_vkDestroyAccelerationStructureNV,
12959    pub get_acceleration_structure_memory_requirements_nv: PFN_vkGetAccelerationStructureMemoryRequirementsNV,
12960    pub bind_acceleration_structure_memory_nv: PFN_vkBindAccelerationStructureMemoryNV,
12961    pub cmd_copy_acceleration_structure_nv: PFN_vkCmdCopyAccelerationStructureNV,
12962    pub cmd_copy_acceleration_structure_khr: PFN_vkCmdCopyAccelerationStructureKHR,
12963    pub copy_acceleration_structure_khr: PFN_vkCopyAccelerationStructureKHR,
12964    pub cmd_copy_acceleration_structure_to_memory_khr: PFN_vkCmdCopyAccelerationStructureToMemoryKHR,
12965    pub copy_acceleration_structure_to_memory_khr: PFN_vkCopyAccelerationStructureToMemoryKHR,
12966    pub cmd_copy_memory_to_acceleration_structure_khr: PFN_vkCmdCopyMemoryToAccelerationStructureKHR,
12967    pub copy_memory_to_acceleration_structure_khr: PFN_vkCopyMemoryToAccelerationStructureKHR,
12968    pub cmd_write_acceleration_structures_properties_khr: PFN_vkCmdWriteAccelerationStructuresPropertiesKHR,
12969    pub cmd_write_acceleration_structures_properties_nv: PFN_vkCmdWriteAccelerationStructuresPropertiesNV,
12970    pub cmd_build_acceleration_structure_nv: PFN_vkCmdBuildAccelerationStructureNV,
12971    pub write_acceleration_structures_properties_khr: PFN_vkWriteAccelerationStructuresPropertiesKHR,
12972    pub cmd_trace_rays_khr: PFN_vkCmdTraceRaysKHR,
12973    pub cmd_trace_rays_nv: PFN_vkCmdTraceRaysNV,
12974    pub get_ray_tracing_shader_group_handles_khr: PFN_vkGetRayTracingShaderGroupHandlesKHR,
12975    pub get_ray_tracing_capture_replay_shader_group_handles_khr: PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR,
12976    pub get_acceleration_structure_handle_nv: PFN_vkGetAccelerationStructureHandleNV,
12977    pub create_ray_tracing_pipelines_nv: PFN_vkCreateRayTracingPipelinesNV,
12978    pub create_ray_tracing_pipelines_khr: PFN_vkCreateRayTracingPipelinesKHR,
12979    pub cmd_trace_rays_indirect_khr: PFN_vkCmdTraceRaysIndirectKHR,
12980    pub cmd_trace_rays_indirect2_khr: PFN_vkCmdTraceRaysIndirect2KHR,
12981    pub get_cluster_acceleration_structure_build_sizes_nv: PFN_vkGetClusterAccelerationStructureBuildSizesNV,
12982    pub cmd_build_cluster_acceleration_structure_indirect_nv: PFN_vkCmdBuildClusterAccelerationStructureIndirectNV,
12983    pub get_device_acceleration_structure_compatibility_khr: PFN_vkGetDeviceAccelerationStructureCompatibilityKHR,
12984    pub get_ray_tracing_shader_group_stack_size_khr: PFN_vkGetRayTracingShaderGroupStackSizeKHR,
12985    pub cmd_set_ray_tracing_pipeline_stack_size_khr: PFN_vkCmdSetRayTracingPipelineStackSizeKHR,
12986    pub get_image_view_handle_nvx: PFN_vkGetImageViewHandleNVX,
12987    pub get_image_view_handle64_nvx: PFN_vkGetImageViewHandle64NVX,
12988    pub get_image_view_address_nvx: PFN_vkGetImageViewAddressNVX,
12989    pub get_device_combined_image_sampler_index_nvx: PFN_vkGetDeviceCombinedImageSamplerIndexNVX,
12990    pub get_device_group_surface_present_modes2_ext: PFN_vkGetDeviceGroupSurfacePresentModes2EXT,
12991    pub acquire_full_screen_exclusive_mode_ext: PFN_vkAcquireFullScreenExclusiveModeEXT,
12992    pub release_full_screen_exclusive_mode_ext: PFN_vkReleaseFullScreenExclusiveModeEXT,
12993    pub acquire_profiling_lock_khr: PFN_vkAcquireProfilingLockKHR,
12994    pub release_profiling_lock_khr: PFN_vkReleaseProfilingLockKHR,
12995    pub get_image_drm_format_modifier_properties_ext: PFN_vkGetImageDrmFormatModifierPropertiesEXT,
12996    pub get_buffer_opaque_capture_address: PFN_vkGetBufferOpaqueCaptureAddress,
12997    pub get_buffer_device_address: PFN_vkGetBufferDeviceAddress,
12998    pub initialize_performance_api_intel: PFN_vkInitializePerformanceApiINTEL,
12999    pub uninitialize_performance_api_intel: PFN_vkUninitializePerformanceApiINTEL,
13000    pub cmd_set_performance_marker_intel: PFN_vkCmdSetPerformanceMarkerINTEL,
13001    pub cmd_set_performance_stream_marker_intel: PFN_vkCmdSetPerformanceStreamMarkerINTEL,
13002    pub cmd_set_performance_override_intel: PFN_vkCmdSetPerformanceOverrideINTEL,
13003    pub acquire_performance_configuration_intel: PFN_vkAcquirePerformanceConfigurationINTEL,
13004    pub release_performance_configuration_intel: PFN_vkReleasePerformanceConfigurationINTEL,
13005    pub queue_set_performance_configuration_intel: PFN_vkQueueSetPerformanceConfigurationINTEL,
13006    pub get_performance_parameter_intel: PFN_vkGetPerformanceParameterINTEL,
13007    pub get_device_memory_opaque_capture_address: PFN_vkGetDeviceMemoryOpaqueCaptureAddress,
13008    pub get_pipeline_executable_properties_khr: PFN_vkGetPipelineExecutablePropertiesKHR,
13009    pub get_pipeline_executable_statistics_khr: PFN_vkGetPipelineExecutableStatisticsKHR,
13010    pub get_pipeline_executable_internal_representations_khr: PFN_vkGetPipelineExecutableInternalRepresentationsKHR,
13011    pub cmd_set_line_stipple: PFN_vkCmdSetLineStipple,
13012    pub get_fault_data: PFN_vkGetFaultData,
13013    pub create_acceleration_structure_khr: PFN_vkCreateAccelerationStructureKHR,
13014    pub cmd_build_acceleration_structures_khr: PFN_vkCmdBuildAccelerationStructuresKHR,
13015    pub cmd_build_acceleration_structures_indirect_khr: PFN_vkCmdBuildAccelerationStructuresIndirectKHR,
13016    pub build_acceleration_structures_khr: PFN_vkBuildAccelerationStructuresKHR,
13017    pub get_acceleration_structure_device_address_khr: PFN_vkGetAccelerationStructureDeviceAddressKHR,
13018    pub create_deferred_operation_khr: PFN_vkCreateDeferredOperationKHR,
13019    pub destroy_deferred_operation_khr: PFN_vkDestroyDeferredOperationKHR,
13020    pub get_deferred_operation_max_concurrency_khr: PFN_vkGetDeferredOperationMaxConcurrencyKHR,
13021    pub get_deferred_operation_result_khr: PFN_vkGetDeferredOperationResultKHR,
13022    pub deferred_operation_join_khr: PFN_vkDeferredOperationJoinKHR,
13023    pub get_pipeline_indirect_memory_requirements_nv: PFN_vkGetPipelineIndirectMemoryRequirementsNV,
13024    pub get_pipeline_indirect_device_address_nv: PFN_vkGetPipelineIndirectDeviceAddressNV,
13025    pub anti_lag_update_amd: PFN_vkAntiLagUpdateAMD,
13026    pub cmd_set_cull_mode: PFN_vkCmdSetCullMode,
13027    pub cmd_set_front_face: PFN_vkCmdSetFrontFace,
13028    pub cmd_set_primitive_topology: PFN_vkCmdSetPrimitiveTopology,
13029    pub cmd_set_viewport_with_count: PFN_vkCmdSetViewportWithCount,
13030    pub cmd_set_scissor_with_count: PFN_vkCmdSetScissorWithCount,
13031    pub cmd_bind_index_buffer2: PFN_vkCmdBindIndexBuffer2,
13032    pub cmd_bind_vertex_buffers2: PFN_vkCmdBindVertexBuffers2,
13033    pub cmd_set_depth_test_enable: PFN_vkCmdSetDepthTestEnable,
13034    pub cmd_set_depth_write_enable: PFN_vkCmdSetDepthWriteEnable,
13035    pub cmd_set_depth_compare_op: PFN_vkCmdSetDepthCompareOp,
13036    pub cmd_set_depth_bounds_test_enable: PFN_vkCmdSetDepthBoundsTestEnable,
13037    pub cmd_set_stencil_test_enable: PFN_vkCmdSetStencilTestEnable,
13038    pub cmd_set_stencil_op: PFN_vkCmdSetStencilOp,
13039    pub cmd_set_patch_control_points_ext: PFN_vkCmdSetPatchControlPointsEXT,
13040    pub cmd_set_rasterizer_discard_enable: PFN_vkCmdSetRasterizerDiscardEnable,
13041    pub cmd_set_depth_bias_enable: PFN_vkCmdSetDepthBiasEnable,
13042    pub cmd_set_logic_op_ext: PFN_vkCmdSetLogicOpEXT,
13043    pub cmd_set_primitive_restart_enable: PFN_vkCmdSetPrimitiveRestartEnable,
13044    pub cmd_set_tessellation_domain_origin_ext: PFN_vkCmdSetTessellationDomainOriginEXT,
13045    pub cmd_set_depth_clamp_enable_ext: PFN_vkCmdSetDepthClampEnableEXT,
13046    pub cmd_set_polygon_mode_ext: PFN_vkCmdSetPolygonModeEXT,
13047    pub cmd_set_rasterization_samples_ext: PFN_vkCmdSetRasterizationSamplesEXT,
13048    pub cmd_set_sample_mask_ext: PFN_vkCmdSetSampleMaskEXT,
13049    pub cmd_set_alpha_to_coverage_enable_ext: PFN_vkCmdSetAlphaToCoverageEnableEXT,
13050    pub cmd_set_alpha_to_one_enable_ext: PFN_vkCmdSetAlphaToOneEnableEXT,
13051    pub cmd_set_logic_op_enable_ext: PFN_vkCmdSetLogicOpEnableEXT,
13052    pub cmd_set_color_blend_enable_ext: PFN_vkCmdSetColorBlendEnableEXT,
13053    pub cmd_set_color_blend_equation_ext: PFN_vkCmdSetColorBlendEquationEXT,
13054    pub cmd_set_color_write_mask_ext: PFN_vkCmdSetColorWriteMaskEXT,
13055    pub cmd_set_rasterization_stream_ext: PFN_vkCmdSetRasterizationStreamEXT,
13056    pub cmd_set_conservative_rasterization_mode_ext: PFN_vkCmdSetConservativeRasterizationModeEXT,
13057    pub cmd_set_extra_primitive_overestimation_size_ext: PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT,
13058    pub cmd_set_depth_clip_enable_ext: PFN_vkCmdSetDepthClipEnableEXT,
13059    pub cmd_set_sample_locations_enable_ext: PFN_vkCmdSetSampleLocationsEnableEXT,
13060    pub cmd_set_color_blend_advanced_ext: PFN_vkCmdSetColorBlendAdvancedEXT,
13061    pub cmd_set_provoking_vertex_mode_ext: PFN_vkCmdSetProvokingVertexModeEXT,
13062    pub cmd_set_line_rasterization_mode_ext: PFN_vkCmdSetLineRasterizationModeEXT,
13063    pub cmd_set_line_stipple_enable_ext: PFN_vkCmdSetLineStippleEnableEXT,
13064    pub cmd_set_depth_clip_negative_one_to_one_ext: PFN_vkCmdSetDepthClipNegativeOneToOneEXT,
13065    pub cmd_set_viewport_w_scaling_enable_nv: PFN_vkCmdSetViewportWScalingEnableNV,
13066    pub cmd_set_viewport_swizzle_nv: PFN_vkCmdSetViewportSwizzleNV,
13067    pub cmd_set_coverage_to_color_enable_nv: PFN_vkCmdSetCoverageToColorEnableNV,
13068    pub cmd_set_coverage_to_color_location_nv: PFN_vkCmdSetCoverageToColorLocationNV,
13069    pub cmd_set_coverage_modulation_mode_nv: PFN_vkCmdSetCoverageModulationModeNV,
13070    pub cmd_set_coverage_modulation_table_enable_nv: PFN_vkCmdSetCoverageModulationTableEnableNV,
13071    pub cmd_set_coverage_modulation_table_nv: PFN_vkCmdSetCoverageModulationTableNV,
13072    pub cmd_set_shading_rate_image_enable_nv: PFN_vkCmdSetShadingRateImageEnableNV,
13073    pub cmd_set_coverage_reduction_mode_nv: PFN_vkCmdSetCoverageReductionModeNV,
13074    pub cmd_set_representative_fragment_test_enable_nv: PFN_vkCmdSetRepresentativeFragmentTestEnableNV,
13075    pub create_private_data_slot: PFN_vkCreatePrivateDataSlot,
13076    pub destroy_private_data_slot: PFN_vkDestroyPrivateDataSlot,
13077    pub set_private_data: PFN_vkSetPrivateData,
13078    pub get_private_data: PFN_vkGetPrivateData,
13079    pub cmd_copy_buffer2: PFN_vkCmdCopyBuffer2,
13080    pub cmd_copy_image2: PFN_vkCmdCopyImage2,
13081    pub cmd_blit_image2: PFN_vkCmdBlitImage2,
13082    pub cmd_copy_buffer_to_image2: PFN_vkCmdCopyBufferToImage2,
13083    pub cmd_copy_image_to_buffer2: PFN_vkCmdCopyImageToBuffer2,
13084    pub cmd_resolve_image2: PFN_vkCmdResolveImage2,
13085    pub cmd_refresh_objects_khr: PFN_vkCmdRefreshObjectsKHR,
13086    pub cmd_set_fragment_shading_rate_khr: PFN_vkCmdSetFragmentShadingRateKHR,
13087    pub cmd_set_fragment_shading_rate_enum_nv: PFN_vkCmdSetFragmentShadingRateEnumNV,
13088    pub get_acceleration_structure_build_sizes_khr: PFN_vkGetAccelerationStructureBuildSizesKHR,
13089    pub cmd_set_vertex_input_ext: PFN_vkCmdSetVertexInputEXT,
13090    pub cmd_set_color_write_enable_ext: PFN_vkCmdSetColorWriteEnableEXT,
13091    pub cmd_set_event2: PFN_vkCmdSetEvent2,
13092    pub cmd_reset_event2: PFN_vkCmdResetEvent2,
13093    pub cmd_wait_events2: PFN_vkCmdWaitEvents2,
13094    pub cmd_pipeline_barrier2: PFN_vkCmdPipelineBarrier2,
13095    pub queue_submit2: PFN_vkQueueSubmit2,
13096    pub cmd_write_timestamp2: PFN_vkCmdWriteTimestamp2,
13097    pub cmd_write_buffer_marker2_amd: PFN_vkCmdWriteBufferMarker2AMD,
13098    pub get_queue_checkpoint_data2_nv: PFN_vkGetQueueCheckpointData2NV,
13099    pub copy_memory_to_image: PFN_vkCopyMemoryToImage,
13100    pub copy_image_to_memory: PFN_vkCopyImageToMemory,
13101    pub copy_image_to_image: PFN_vkCopyImageToImage,
13102    pub transition_image_layout: PFN_vkTransitionImageLayout,
13103    pub get_command_pool_memory_consumption: PFN_vkGetCommandPoolMemoryConsumption,
13104    pub create_video_session_khr: PFN_vkCreateVideoSessionKHR,
13105    pub destroy_video_session_khr: PFN_vkDestroyVideoSessionKHR,
13106    pub create_video_session_parameters_khr: PFN_vkCreateVideoSessionParametersKHR,
13107    pub update_video_session_parameters_khr: PFN_vkUpdateVideoSessionParametersKHR,
13108    pub get_encoded_video_session_parameters_khr: PFN_vkGetEncodedVideoSessionParametersKHR,
13109    pub destroy_video_session_parameters_khr: PFN_vkDestroyVideoSessionParametersKHR,
13110    pub get_video_session_memory_requirements_khr: PFN_vkGetVideoSessionMemoryRequirementsKHR,
13111    pub bind_video_session_memory_khr: PFN_vkBindVideoSessionMemoryKHR,
13112    pub cmd_decode_video_khr: PFN_vkCmdDecodeVideoKHR,
13113    pub cmd_begin_video_coding_khr: PFN_vkCmdBeginVideoCodingKHR,
13114    pub cmd_control_video_coding_khr: PFN_vkCmdControlVideoCodingKHR,
13115    pub cmd_end_video_coding_khr: PFN_vkCmdEndVideoCodingKHR,
13116    pub cmd_encode_video_khr: PFN_vkCmdEncodeVideoKHR,
13117    pub cmd_decompress_memory_nv: PFN_vkCmdDecompressMemoryNV,
13118    pub cmd_decompress_memory_indirect_count_nv: PFN_vkCmdDecompressMemoryIndirectCountNV,
13119    pub get_partitioned_acceleration_structures_build_sizes_nv: PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV,
13120    pub cmd_build_partitioned_acceleration_structures_nv: PFN_vkCmdBuildPartitionedAccelerationStructuresNV,
13121    pub cmd_decompress_memory_ext: PFN_vkCmdDecompressMemoryEXT,
13122    pub cmd_decompress_memory_indirect_count_ext: PFN_vkCmdDecompressMemoryIndirectCountEXT,
13123    pub create_cu_module_nvx: PFN_vkCreateCuModuleNVX,
13124    pub create_cu_function_nvx: PFN_vkCreateCuFunctionNVX,
13125    pub destroy_cu_module_nvx: PFN_vkDestroyCuModuleNVX,
13126    pub destroy_cu_function_nvx: PFN_vkDestroyCuFunctionNVX,
13127    pub cmd_cu_launch_kernel_nvx: PFN_vkCmdCuLaunchKernelNVX,
13128    pub get_descriptor_set_layout_size_ext: PFN_vkGetDescriptorSetLayoutSizeEXT,
13129    pub get_descriptor_set_layout_binding_offset_ext: PFN_vkGetDescriptorSetLayoutBindingOffsetEXT,
13130    pub get_descriptor_ext: PFN_vkGetDescriptorEXT,
13131    pub cmd_bind_descriptor_buffers_ext: PFN_vkCmdBindDescriptorBuffersEXT,
13132    pub cmd_set_descriptor_buffer_offsets_ext: PFN_vkCmdSetDescriptorBufferOffsetsEXT,
13133    pub cmd_bind_descriptor_buffer_embedded_samplers_ext: PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT,
13134    pub get_buffer_opaque_capture_descriptor_data_ext: PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT,
13135    pub get_image_opaque_capture_descriptor_data_ext: PFN_vkGetImageOpaqueCaptureDescriptorDataEXT,
13136    pub get_image_view_opaque_capture_descriptor_data_ext: PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT,
13137    pub get_sampler_opaque_capture_descriptor_data_ext: PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT,
13138    pub get_acceleration_structure_opaque_capture_descriptor_data_ext: PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT,
13139    pub set_device_memory_priority_ext: PFN_vkSetDeviceMemoryPriorityEXT,
13140    pub wait_for_present2_khr: PFN_vkWaitForPresent2KHR,
13141    pub wait_for_present_khr: PFN_vkWaitForPresentKHR,
13142    pub create_buffer_collection_fuchsia: PFN_vkCreateBufferCollectionFUCHSIA,
13143    pub set_buffer_collection_buffer_constraints_fuchsia: PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA,
13144    pub set_buffer_collection_image_constraints_fuchsia: PFN_vkSetBufferCollectionImageConstraintsFUCHSIA,
13145    pub destroy_buffer_collection_fuchsia: PFN_vkDestroyBufferCollectionFUCHSIA,
13146    pub get_buffer_collection_properties_fuchsia: PFN_vkGetBufferCollectionPropertiesFUCHSIA,
13147    pub create_cuda_module_nv: PFN_vkCreateCudaModuleNV,
13148    pub get_cuda_module_cache_nv: PFN_vkGetCudaModuleCacheNV,
13149    pub create_cuda_function_nv: PFN_vkCreateCudaFunctionNV,
13150    pub destroy_cuda_module_nv: PFN_vkDestroyCudaModuleNV,
13151    pub destroy_cuda_function_nv: PFN_vkDestroyCudaFunctionNV,
13152    pub cmd_cuda_launch_kernel_nv: PFN_vkCmdCudaLaunchKernelNV,
13153    pub cmd_begin_rendering: PFN_vkCmdBeginRendering,
13154    pub cmd_end_rendering: PFN_vkCmdEndRendering,
13155    pub cmd_end_rendering2_khr: PFN_vkCmdEndRendering2KHR,
13156    pub get_descriptor_set_layout_host_mapping_info_valve: PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE,
13157    pub get_descriptor_set_host_mapping_valve: PFN_vkGetDescriptorSetHostMappingVALVE,
13158    pub create_micromap_ext: PFN_vkCreateMicromapEXT,
13159    pub cmd_build_micromaps_ext: PFN_vkCmdBuildMicromapsEXT,
13160    pub build_micromaps_ext: PFN_vkBuildMicromapsEXT,
13161    pub destroy_micromap_ext: PFN_vkDestroyMicromapEXT,
13162    pub cmd_copy_micromap_ext: PFN_vkCmdCopyMicromapEXT,
13163    pub copy_micromap_ext: PFN_vkCopyMicromapEXT,
13164    pub cmd_copy_micromap_to_memory_ext: PFN_vkCmdCopyMicromapToMemoryEXT,
13165    pub copy_micromap_to_memory_ext: PFN_vkCopyMicromapToMemoryEXT,
13166    pub cmd_copy_memory_to_micromap_ext: PFN_vkCmdCopyMemoryToMicromapEXT,
13167    pub copy_memory_to_micromap_ext: PFN_vkCopyMemoryToMicromapEXT,
13168    pub cmd_write_micromaps_properties_ext: PFN_vkCmdWriteMicromapsPropertiesEXT,
13169    pub write_micromaps_properties_ext: PFN_vkWriteMicromapsPropertiesEXT,
13170    pub get_device_micromap_compatibility_ext: PFN_vkGetDeviceMicromapCompatibilityEXT,
13171    pub get_micromap_build_sizes_ext: PFN_vkGetMicromapBuildSizesEXT,
13172    pub get_shader_module_identifier_ext: PFN_vkGetShaderModuleIdentifierEXT,
13173    pub get_shader_module_create_info_identifier_ext: PFN_vkGetShaderModuleCreateInfoIdentifierEXT,
13174    pub get_image_subresource_layout2: PFN_vkGetImageSubresourceLayout2,
13175    pub get_pipeline_properties_ext: PFN_vkGetPipelinePropertiesEXT,
13176    pub export_metal_objects_ext: PFN_vkExportMetalObjectsEXT,
13177    pub cmd_bind_tile_memory_qcom: PFN_vkCmdBindTileMemoryQCOM,
13178    pub get_framebuffer_tile_properties_qcom: PFN_vkGetFramebufferTilePropertiesQCOM,
13179    pub get_dynamic_rendering_tile_properties_qcom: PFN_vkGetDynamicRenderingTilePropertiesQCOM,
13180    pub create_optical_flow_session_nv: PFN_vkCreateOpticalFlowSessionNV,
13181    pub destroy_optical_flow_session_nv: PFN_vkDestroyOpticalFlowSessionNV,
13182    pub bind_optical_flow_session_image_nv: PFN_vkBindOpticalFlowSessionImageNV,
13183    pub cmd_optical_flow_execute_nv: PFN_vkCmdOpticalFlowExecuteNV,
13184    pub get_device_fault_info_ext: PFN_vkGetDeviceFaultInfoEXT,
13185    pub get_device_fault_reports_khr: PFN_vkGetDeviceFaultReportsKHR,
13186    pub get_device_fault_debug_info_khr: PFN_vkGetDeviceFaultDebugInfoKHR,
13187    pub cmd_set_depth_bias2_ext: PFN_vkCmdSetDepthBias2EXT,
13188    pub release_swapchain_images_khr: PFN_vkReleaseSwapchainImagesKHR,
13189    pub get_device_image_subresource_layout: PFN_vkGetDeviceImageSubresourceLayout,
13190    pub map_memory2: PFN_vkMapMemory2,
13191    pub unmap_memory2: PFN_vkUnmapMemory2,
13192    pub create_shaders_ext: PFN_vkCreateShadersEXT,
13193    pub destroy_shader_ext: PFN_vkDestroyShaderEXT,
13194    pub get_shader_binary_data_ext: PFN_vkGetShaderBinaryDataEXT,
13195    pub cmd_bind_shaders_ext: PFN_vkCmdBindShadersEXT,
13196    pub set_swapchain_present_timing_queue_size_ext: PFN_vkSetSwapchainPresentTimingQueueSizeEXT,
13197    pub get_swapchain_timing_properties_ext: PFN_vkGetSwapchainTimingPropertiesEXT,
13198    pub get_swapchain_time_domain_properties_ext: PFN_vkGetSwapchainTimeDomainPropertiesEXT,
13199    pub get_past_presentation_timing_ext: PFN_vkGetPastPresentationTimingEXT,
13200    pub get_screen_buffer_properties_qnx: PFN_vkGetScreenBufferPropertiesQNX,
13201    pub get_execution_graph_pipeline_scratch_size_amdx: PFN_vkGetExecutionGraphPipelineScratchSizeAMDX,
13202    pub get_execution_graph_pipeline_node_index_amdx: PFN_vkGetExecutionGraphPipelineNodeIndexAMDX,
13203    pub create_execution_graph_pipelines_amdx: PFN_vkCreateExecutionGraphPipelinesAMDX,
13204    pub cmd_initialize_graph_scratch_memory_amdx: PFN_vkCmdInitializeGraphScratchMemoryAMDX,
13205    pub cmd_dispatch_graph_amdx: PFN_vkCmdDispatchGraphAMDX,
13206    pub cmd_dispatch_graph_indirect_amdx: PFN_vkCmdDispatchGraphIndirectAMDX,
13207    pub cmd_dispatch_graph_indirect_count_amdx: PFN_vkCmdDispatchGraphIndirectCountAMDX,
13208    pub cmd_bind_descriptor_sets2: PFN_vkCmdBindDescriptorSets2,
13209    pub cmd_push_constants2: PFN_vkCmdPushConstants2,
13210    pub cmd_push_descriptor_set2: PFN_vkCmdPushDescriptorSet2,
13211    pub cmd_push_descriptor_set_with_template2: PFN_vkCmdPushDescriptorSetWithTemplate2,
13212    pub cmd_set_descriptor_buffer_offsets2_ext: PFN_vkCmdSetDescriptorBufferOffsets2EXT,
13213    pub cmd_bind_descriptor_buffer_embedded_samplers2_ext: PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT,
13214    pub set_latency_sleep_mode_nv: PFN_vkSetLatencySleepModeNV,
13215    pub latency_sleep_nv: PFN_vkLatencySleepNV,
13216    pub set_latency_marker_nv: PFN_vkSetLatencyMarkerNV,
13217    pub get_latency_timings_nv: PFN_vkGetLatencyTimingsNV,
13218    pub queue_notify_out_of_band_nv: PFN_vkQueueNotifyOutOfBandNV,
13219    pub cmd_set_rendering_attachment_locations: PFN_vkCmdSetRenderingAttachmentLocations,
13220    pub cmd_set_rendering_input_attachment_indices: PFN_vkCmdSetRenderingInputAttachmentIndices,
13221    pub cmd_set_depth_clamp_range_ext: PFN_vkCmdSetDepthClampRangeEXT,
13222    pub get_memory_metal_handle_ext: PFN_vkGetMemoryMetalHandleEXT,
13223    pub get_memory_metal_handle_properties_ext: PFN_vkGetMemoryMetalHandlePropertiesEXT,
13224    pub convert_cooperative_vector_matrix_nv: PFN_vkConvertCooperativeVectorMatrixNV,
13225    pub cmd_convert_cooperative_vector_matrix_nv: PFN_vkCmdConvertCooperativeVectorMatrixNV,
13226    pub cmd_dispatch_tile_qcom: PFN_vkCmdDispatchTileQCOM,
13227    pub cmd_begin_per_tile_execution_qcom: PFN_vkCmdBeginPerTileExecutionQCOM,
13228    pub cmd_end_per_tile_execution_qcom: PFN_vkCmdEndPerTileExecutionQCOM,
13229    pub create_external_compute_queue_nv: PFN_vkCreateExternalComputeQueueNV,
13230    pub destroy_external_compute_queue_nv: PFN_vkDestroyExternalComputeQueueNV,
13231    pub create_shader_instrumentation_arm: PFN_vkCreateShaderInstrumentationARM,
13232    pub destroy_shader_instrumentation_arm: PFN_vkDestroyShaderInstrumentationARM,
13233    pub cmd_begin_shader_instrumentation_arm: PFN_vkCmdBeginShaderInstrumentationARM,
13234    pub cmd_end_shader_instrumentation_arm: PFN_vkCmdEndShaderInstrumentationARM,
13235    pub get_shader_instrumentation_values_arm: PFN_vkGetShaderInstrumentationValuesARM,
13236    pub clear_shader_instrumentation_metrics_arm: PFN_vkClearShaderInstrumentationMetricsARM,
13237    pub create_tensor_arm: PFN_vkCreateTensorARM,
13238    pub destroy_tensor_arm: PFN_vkDestroyTensorARM,
13239    pub create_tensor_view_arm: PFN_vkCreateTensorViewARM,
13240    pub destroy_tensor_view_arm: PFN_vkDestroyTensorViewARM,
13241    pub get_tensor_memory_requirements_arm: PFN_vkGetTensorMemoryRequirementsARM,
13242    pub bind_tensor_memory_arm: PFN_vkBindTensorMemoryARM,
13243    pub get_device_tensor_memory_requirements_arm: PFN_vkGetDeviceTensorMemoryRequirementsARM,
13244    pub cmd_copy_tensor_arm: PFN_vkCmdCopyTensorARM,
13245    pub get_tensor_opaque_capture_descriptor_data_arm: PFN_vkGetTensorOpaqueCaptureDescriptorDataARM,
13246    pub get_tensor_view_opaque_capture_descriptor_data_arm: PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM,
13247    pub create_data_graph_pipelines_arm: PFN_vkCreateDataGraphPipelinesARM,
13248    pub create_data_graph_pipeline_session_arm: PFN_vkCreateDataGraphPipelineSessionARM,
13249    pub get_data_graph_pipeline_session_bind_point_requirements_arm: PFN_vkGetDataGraphPipelineSessionBindPointRequirementsARM,
13250    pub get_data_graph_pipeline_session_memory_requirements_arm: PFN_vkGetDataGraphPipelineSessionMemoryRequirementsARM,
13251    pub bind_data_graph_pipeline_session_memory_arm: PFN_vkBindDataGraphPipelineSessionMemoryARM,
13252    pub destroy_data_graph_pipeline_session_arm: PFN_vkDestroyDataGraphPipelineSessionARM,
13253    pub cmd_dispatch_data_graph_arm: PFN_vkCmdDispatchDataGraphARM,
13254    pub get_data_graph_pipeline_available_properties_arm: PFN_vkGetDataGraphPipelineAvailablePropertiesARM,
13255    pub get_data_graph_pipeline_properties_arm: PFN_vkGetDataGraphPipelinePropertiesARM,
13256    pub get_native_buffer_properties_ohos: PFN_vkGetNativeBufferPropertiesOHOS,
13257    pub get_memory_native_buffer_ohos: PFN_vkGetMemoryNativeBufferOHOS,
13258    pub get_swapchain_gralloc_usage_ohos: PFN_vkGetSwapchainGrallocUsageOHOS,
13259    pub acquire_image_ohos: PFN_vkAcquireImageOHOS,
13260    pub queue_signal_release_image_ohos: PFN_vkQueueSignalReleaseImageOHOS,
13261    pub cmd_set_compute_occupancy_priority_nv: PFN_vkCmdSetComputeOccupancyPriorityNV,
13262    pub write_sampler_descriptors_ext: PFN_vkWriteSamplerDescriptorsEXT,
13263    pub write_resource_descriptors_ext: PFN_vkWriteResourceDescriptorsEXT,
13264    pub cmd_bind_sampler_heap_ext: PFN_vkCmdBindSamplerHeapEXT,
13265    pub cmd_bind_resource_heap_ext: PFN_vkCmdBindResourceHeapEXT,
13266    pub cmd_push_data_ext: PFN_vkCmdPushDataEXT,
13267    pub register_custom_border_color_ext: PFN_vkRegisterCustomBorderColorEXT,
13268    pub unregister_custom_border_color_ext: PFN_vkUnregisterCustomBorderColorEXT,
13269    pub get_image_opaque_capture_data_ext: PFN_vkGetImageOpaqueCaptureDataEXT,
13270    pub get_tensor_opaque_capture_data_arm: PFN_vkGetTensorOpaqueCaptureDataARM,
13271    pub cmd_copy_memory_khr: PFN_vkCmdCopyMemoryKHR,
13272    pub cmd_copy_memory_to_image_khr: PFN_vkCmdCopyMemoryToImageKHR,
13273    pub cmd_copy_image_to_memory_khr: PFN_vkCmdCopyImageToMemoryKHR,
13274    pub cmd_update_memory_khr: PFN_vkCmdUpdateMemoryKHR,
13275    pub cmd_fill_memory_khr: PFN_vkCmdFillMemoryKHR,
13276    pub cmd_copy_query_pool_results_to_memory_khr: PFN_vkCmdCopyQueryPoolResultsToMemoryKHR,
13277    pub cmd_begin_conditional_rendering2_ext: PFN_vkCmdBeginConditionalRendering2EXT,
13278    pub cmd_bind_transform_feedback_buffers2_ext: PFN_vkCmdBindTransformFeedbackBuffers2EXT,
13279    pub cmd_begin_transform_feedback2_ext: PFN_vkCmdBeginTransformFeedback2EXT,
13280    pub cmd_end_transform_feedback2_ext: PFN_vkCmdEndTransformFeedback2EXT,
13281    pub cmd_draw_indirect_byte_count2_ext: PFN_vkCmdDrawIndirectByteCount2EXT,
13282    pub cmd_write_marker_to_memory_amd: PFN_vkCmdWriteMarkerToMemoryAMD,
13283    pub cmd_bind_index_buffer3_khr: PFN_vkCmdBindIndexBuffer3KHR,
13284    pub cmd_bind_vertex_buffers3_khr: PFN_vkCmdBindVertexBuffers3KHR,
13285    pub cmd_draw_indirect2_khr: PFN_vkCmdDrawIndirect2KHR,
13286    pub cmd_draw_indexed_indirect2_khr: PFN_vkCmdDrawIndexedIndirect2KHR,
13287    pub cmd_draw_indirect_count2_khr: PFN_vkCmdDrawIndirectCount2KHR,
13288    pub cmd_draw_indexed_indirect_count2_khr: PFN_vkCmdDrawIndexedIndirectCount2KHR,
13289    pub cmd_draw_mesh_tasks_indirect2_ext: PFN_vkCmdDrawMeshTasksIndirect2EXT,
13290    pub cmd_draw_mesh_tasks_indirect_count2_ext: PFN_vkCmdDrawMeshTasksIndirectCount2EXT,
13291    pub cmd_dispatch_indirect2_khr: PFN_vkCmdDispatchIndirect2KHR,
13292    pub create_acceleration_structure2_khr: PFN_vkCreateAccelerationStructure2KHR,
13293}
13294impl Default for DeviceCommands {
13295    #[inline]
13296    fn default() -> Self {
13297        unsafe { core::mem::zeroed() }
13298    }
13299}
13300impl DeviceCommands {
13301    /// Load all function pointers from the given loader callback.
13302    ///
13303    /// Load all function pointers from the given loader callback.
13304    ///
13305    /// # Safety
13306    ///
13307    /// The loader must return valid function pointers compatible with
13308    /// each command's signature, or null for unavailable commands.
13309    pub unsafe fn load(
13310        mut f: impl FnMut(&core::ffi::CStr) -> *const core::ffi::c_void,
13311    ) -> Self {
13312        unsafe {
13313            let mut cmd = Self::default();
13314            cmd.get_device_proc_addr = core::mem::transmute(
13315                f(
13316                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13317                        b"vkGetDeviceProcAddr\0",
13318                    ),
13319                ),
13320            );
13321            cmd.destroy_device = core::mem::transmute(
13322                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroyDevice\0")),
13323            );
13324            cmd.get_device_queue = core::mem::transmute(
13325                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceQueue\0")),
13326            );
13327            cmd.queue_submit = core::mem::transmute(
13328                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkQueueSubmit\0")),
13329            );
13330            cmd.queue_wait_idle = core::mem::transmute(
13331                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkQueueWaitIdle\0")),
13332            );
13333            cmd.device_wait_idle = core::mem::transmute(
13334                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDeviceWaitIdle\0")),
13335            );
13336            cmd.allocate_memory = core::mem::transmute(
13337                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAllocateMemory\0")),
13338            );
13339            cmd.free_memory = core::mem::transmute(
13340                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkFreeMemory\0")),
13341            );
13342            cmd.map_memory = core::mem::transmute(
13343                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkMapMemory\0")),
13344            );
13345            cmd.unmap_memory = core::mem::transmute(
13346                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkUnmapMemory\0")),
13347            );
13348            cmd.flush_mapped_memory_ranges = core::mem::transmute(
13349                f(
13350                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13351                        b"vkFlushMappedMemoryRanges\0",
13352                    ),
13353                ),
13354            );
13355            cmd.invalidate_mapped_memory_ranges = core::mem::transmute(
13356                f(
13357                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13358                        b"vkInvalidateMappedMemoryRanges\0",
13359                    ),
13360                ),
13361            );
13362            cmd.get_device_memory_commitment = core::mem::transmute(
13363                f(
13364                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13365                        b"vkGetDeviceMemoryCommitment\0",
13366                    ),
13367                ),
13368            );
13369            cmd.get_buffer_memory_requirements = core::mem::transmute(
13370                f(
13371                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13372                        b"vkGetBufferMemoryRequirements\0",
13373                    ),
13374                ),
13375            );
13376            cmd.bind_buffer_memory = core::mem::transmute(
13377                f(
13378                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13379                        b"vkBindBufferMemory\0",
13380                    ),
13381                ),
13382            );
13383            cmd.get_image_memory_requirements = core::mem::transmute(
13384                f(
13385                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13386                        b"vkGetImageMemoryRequirements\0",
13387                    ),
13388                ),
13389            );
13390            cmd.bind_image_memory = core::mem::transmute(
13391                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkBindImageMemory\0")),
13392            );
13393            cmd.get_image_sparse_memory_requirements = core::mem::transmute(
13394                f(
13395                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13396                        b"vkGetImageSparseMemoryRequirements\0",
13397                    ),
13398                ),
13399            );
13400            cmd.queue_bind_sparse = core::mem::transmute(
13401                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkQueueBindSparse\0")),
13402            );
13403            cmd.create_fence = core::mem::transmute(
13404                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateFence\0")),
13405            );
13406            cmd.destroy_fence = core::mem::transmute(
13407                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroyFence\0")),
13408            );
13409            cmd.reset_fences = core::mem::transmute(
13410                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkResetFences\0")),
13411            );
13412            cmd.get_fence_status = core::mem::transmute(
13413                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetFenceStatus\0")),
13414            );
13415            cmd.wait_for_fences = core::mem::transmute(
13416                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkWaitForFences\0")),
13417            );
13418            cmd.create_semaphore = core::mem::transmute(
13419                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateSemaphore\0")),
13420            );
13421            cmd.destroy_semaphore = core::mem::transmute(
13422                f(
13423                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13424                        b"vkDestroySemaphore\0",
13425                    ),
13426                ),
13427            );
13428            cmd.create_event = core::mem::transmute(
13429                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateEvent\0")),
13430            );
13431            cmd.destroy_event = core::mem::transmute(
13432                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroyEvent\0")),
13433            );
13434            cmd.get_event_status = core::mem::transmute(
13435                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetEventStatus\0")),
13436            );
13437            cmd.set_event = core::mem::transmute(
13438                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkSetEvent\0")),
13439            );
13440            cmd.reset_event = core::mem::transmute(
13441                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkResetEvent\0")),
13442            );
13443            cmd.create_query_pool = core::mem::transmute(
13444                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateQueryPool\0")),
13445            );
13446            cmd.destroy_query_pool = core::mem::transmute(
13447                f(
13448                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13449                        b"vkDestroyQueryPool\0",
13450                    ),
13451                ),
13452            );
13453            cmd.get_query_pool_results = core::mem::transmute(
13454                f(
13455                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13456                        b"vkGetQueryPoolResults\0",
13457                    ),
13458                ),
13459            );
13460            cmd.reset_query_pool = core::mem::transmute(
13461                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkResetQueryPool\0")),
13462            );
13463            if cmd.reset_query_pool.is_none() {
13464                cmd.reset_query_pool = core::mem::transmute(
13465                    f(
13466                        core::ffi::CStr::from_bytes_with_nul_unchecked(
13467                            b"vkResetQueryPoolEXT\0",
13468                        ),
13469                    ),
13470                );
13471            }
13472            cmd.create_buffer = core::mem::transmute(
13473                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateBuffer\0")),
13474            );
13475            cmd.destroy_buffer = core::mem::transmute(
13476                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroyBuffer\0")),
13477            );
13478            cmd.create_buffer_view = core::mem::transmute(
13479                f(
13480                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13481                        b"vkCreateBufferView\0",
13482                    ),
13483                ),
13484            );
13485            cmd.destroy_buffer_view = core::mem::transmute(
13486                f(
13487                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13488                        b"vkDestroyBufferView\0",
13489                    ),
13490                ),
13491            );
13492            cmd.create_image = core::mem::transmute(
13493                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateImage\0")),
13494            );
13495            cmd.destroy_image = core::mem::transmute(
13496                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroyImage\0")),
13497            );
13498            cmd.get_image_subresource_layout = core::mem::transmute(
13499                f(
13500                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13501                        b"vkGetImageSubresourceLayout\0",
13502                    ),
13503                ),
13504            );
13505            cmd.create_image_view = core::mem::transmute(
13506                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateImageView\0")),
13507            );
13508            cmd.destroy_image_view = core::mem::transmute(
13509                f(
13510                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13511                        b"vkDestroyImageView\0",
13512                    ),
13513                ),
13514            );
13515            cmd.create_shader_module = core::mem::transmute(
13516                f(
13517                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13518                        b"vkCreateShaderModule\0",
13519                    ),
13520                ),
13521            );
13522            cmd.destroy_shader_module = core::mem::transmute(
13523                f(
13524                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13525                        b"vkDestroyShaderModule\0",
13526                    ),
13527                ),
13528            );
13529            cmd.create_pipeline_cache = core::mem::transmute(
13530                f(
13531                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13532                        b"vkCreatePipelineCache\0",
13533                    ),
13534                ),
13535            );
13536            cmd.destroy_pipeline_cache = core::mem::transmute(
13537                f(
13538                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13539                        b"vkDestroyPipelineCache\0",
13540                    ),
13541                ),
13542            );
13543            cmd.get_pipeline_cache_data = core::mem::transmute(
13544                f(
13545                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13546                        b"vkGetPipelineCacheData\0",
13547                    ),
13548                ),
13549            );
13550            cmd.merge_pipeline_caches = core::mem::transmute(
13551                f(
13552                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13553                        b"vkMergePipelineCaches\0",
13554                    ),
13555                ),
13556            );
13557            cmd.create_pipeline_binaries_khr = core::mem::transmute(
13558                f(
13559                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13560                        b"vkCreatePipelineBinariesKHR\0",
13561                    ),
13562                ),
13563            );
13564            cmd.destroy_pipeline_binary_khr = core::mem::transmute(
13565                f(
13566                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13567                        b"vkDestroyPipelineBinaryKHR\0",
13568                    ),
13569                ),
13570            );
13571            cmd.get_pipeline_key_khr = core::mem::transmute(
13572                f(
13573                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13574                        b"vkGetPipelineKeyKHR\0",
13575                    ),
13576                ),
13577            );
13578            cmd.get_pipeline_binary_data_khr = core::mem::transmute(
13579                f(
13580                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13581                        b"vkGetPipelineBinaryDataKHR\0",
13582                    ),
13583                ),
13584            );
13585            cmd.release_captured_pipeline_data_khr = core::mem::transmute(
13586                f(
13587                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13588                        b"vkReleaseCapturedPipelineDataKHR\0",
13589                    ),
13590                ),
13591            );
13592            cmd.create_graphics_pipelines = core::mem::transmute(
13593                f(
13594                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13595                        b"vkCreateGraphicsPipelines\0",
13596                    ),
13597                ),
13598            );
13599            cmd.create_compute_pipelines = core::mem::transmute(
13600                f(
13601                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13602                        b"vkCreateComputePipelines\0",
13603                    ),
13604                ),
13605            );
13606            cmd.get_device_subpass_shading_max_workgroup_size_huawei = core::mem::transmute(
13607                f(
13608                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13609                        b"vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI\0",
13610                    ),
13611                ),
13612            );
13613            cmd.destroy_pipeline = core::mem::transmute(
13614                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroyPipeline\0")),
13615            );
13616            cmd.create_pipeline_layout = core::mem::transmute(
13617                f(
13618                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13619                        b"vkCreatePipelineLayout\0",
13620                    ),
13621                ),
13622            );
13623            cmd.destroy_pipeline_layout = core::mem::transmute(
13624                f(
13625                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13626                        b"vkDestroyPipelineLayout\0",
13627                    ),
13628                ),
13629            );
13630            cmd.create_sampler = core::mem::transmute(
13631                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateSampler\0")),
13632            );
13633            cmd.destroy_sampler = core::mem::transmute(
13634                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroySampler\0")),
13635            );
13636            cmd.create_descriptor_set_layout = core::mem::transmute(
13637                f(
13638                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13639                        b"vkCreateDescriptorSetLayout\0",
13640                    ),
13641                ),
13642            );
13643            cmd.destroy_descriptor_set_layout = core::mem::transmute(
13644                f(
13645                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13646                        b"vkDestroyDescriptorSetLayout\0",
13647                    ),
13648                ),
13649            );
13650            cmd.create_descriptor_pool = core::mem::transmute(
13651                f(
13652                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13653                        b"vkCreateDescriptorPool\0",
13654                    ),
13655                ),
13656            );
13657            cmd.destroy_descriptor_pool = core::mem::transmute(
13658                f(
13659                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13660                        b"vkDestroyDescriptorPool\0",
13661                    ),
13662                ),
13663            );
13664            cmd.reset_descriptor_pool = core::mem::transmute(
13665                f(
13666                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13667                        b"vkResetDescriptorPool\0",
13668                    ),
13669                ),
13670            );
13671            cmd.allocate_descriptor_sets = core::mem::transmute(
13672                f(
13673                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13674                        b"vkAllocateDescriptorSets\0",
13675                    ),
13676                ),
13677            );
13678            cmd.free_descriptor_sets = core::mem::transmute(
13679                f(
13680                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13681                        b"vkFreeDescriptorSets\0",
13682                    ),
13683                ),
13684            );
13685            cmd.update_descriptor_sets = core::mem::transmute(
13686                f(
13687                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13688                        b"vkUpdateDescriptorSets\0",
13689                    ),
13690                ),
13691            );
13692            cmd.create_framebuffer = core::mem::transmute(
13693                f(
13694                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13695                        b"vkCreateFramebuffer\0",
13696                    ),
13697                ),
13698            );
13699            cmd.destroy_framebuffer = core::mem::transmute(
13700                f(
13701                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13702                        b"vkDestroyFramebuffer\0",
13703                    ),
13704                ),
13705            );
13706            cmd.create_render_pass = core::mem::transmute(
13707                f(
13708                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13709                        b"vkCreateRenderPass\0",
13710                    ),
13711                ),
13712            );
13713            cmd.destroy_render_pass = core::mem::transmute(
13714                f(
13715                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13716                        b"vkDestroyRenderPass\0",
13717                    ),
13718                ),
13719            );
13720            cmd.get_render_area_granularity = core::mem::transmute(
13721                f(
13722                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13723                        b"vkGetRenderAreaGranularity\0",
13724                    ),
13725                ),
13726            );
13727            cmd.get_rendering_area_granularity = core::mem::transmute(
13728                f(
13729                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13730                        b"vkGetRenderingAreaGranularity\0",
13731                    ),
13732                ),
13733            );
13734            if cmd.get_rendering_area_granularity.is_none() {
13735                cmd.get_rendering_area_granularity = core::mem::transmute(
13736                    f(
13737                        core::ffi::CStr::from_bytes_with_nul_unchecked(
13738                            b"vkGetRenderingAreaGranularityKHR\0",
13739                        ),
13740                    ),
13741                );
13742            }
13743            cmd.create_command_pool = core::mem::transmute(
13744                f(
13745                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13746                        b"vkCreateCommandPool\0",
13747                    ),
13748                ),
13749            );
13750            cmd.destroy_command_pool = core::mem::transmute(
13751                f(
13752                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13753                        b"vkDestroyCommandPool\0",
13754                    ),
13755                ),
13756            );
13757            cmd.reset_command_pool = core::mem::transmute(
13758                f(
13759                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13760                        b"vkResetCommandPool\0",
13761                    ),
13762                ),
13763            );
13764            cmd.allocate_command_buffers = core::mem::transmute(
13765                f(
13766                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13767                        b"vkAllocateCommandBuffers\0",
13768                    ),
13769                ),
13770            );
13771            cmd.free_command_buffers = core::mem::transmute(
13772                f(
13773                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13774                        b"vkFreeCommandBuffers\0",
13775                    ),
13776                ),
13777            );
13778            cmd.begin_command_buffer = core::mem::transmute(
13779                f(
13780                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13781                        b"vkBeginCommandBuffer\0",
13782                    ),
13783                ),
13784            );
13785            cmd.end_command_buffer = core::mem::transmute(
13786                f(
13787                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13788                        b"vkEndCommandBuffer\0",
13789                    ),
13790                ),
13791            );
13792            cmd.reset_command_buffer = core::mem::transmute(
13793                f(
13794                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13795                        b"vkResetCommandBuffer\0",
13796                    ),
13797                ),
13798            );
13799            cmd.cmd_bind_pipeline = core::mem::transmute(
13800                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdBindPipeline\0")),
13801            );
13802            cmd.cmd_set_attachment_feedback_loop_enable_ext = core::mem::transmute(
13803                f(
13804                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13805                        b"vkCmdSetAttachmentFeedbackLoopEnableEXT\0",
13806                    ),
13807                ),
13808            );
13809            cmd.cmd_set_viewport = core::mem::transmute(
13810                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetViewport\0")),
13811            );
13812            cmd.cmd_set_scissor = core::mem::transmute(
13813                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetScissor\0")),
13814            );
13815            cmd.cmd_set_line_width = core::mem::transmute(
13816                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLineWidth\0")),
13817            );
13818            cmd.cmd_set_depth_bias = core::mem::transmute(
13819                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthBias\0")),
13820            );
13821            cmd.cmd_set_blend_constants = core::mem::transmute(
13822                f(
13823                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13824                        b"vkCmdSetBlendConstants\0",
13825                    ),
13826                ),
13827            );
13828            cmd.cmd_set_depth_bounds = core::mem::transmute(
13829                f(
13830                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13831                        b"vkCmdSetDepthBounds\0",
13832                    ),
13833                ),
13834            );
13835            cmd.cmd_set_stencil_compare_mask = core::mem::transmute(
13836                f(
13837                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13838                        b"vkCmdSetStencilCompareMask\0",
13839                    ),
13840                ),
13841            );
13842            cmd.cmd_set_stencil_write_mask = core::mem::transmute(
13843                f(
13844                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13845                        b"vkCmdSetStencilWriteMask\0",
13846                    ),
13847                ),
13848            );
13849            cmd.cmd_set_stencil_reference = core::mem::transmute(
13850                f(
13851                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13852                        b"vkCmdSetStencilReference\0",
13853                    ),
13854                ),
13855            );
13856            cmd.cmd_bind_descriptor_sets = core::mem::transmute(
13857                f(
13858                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13859                        b"vkCmdBindDescriptorSets\0",
13860                    ),
13861                ),
13862            );
13863            cmd.cmd_bind_index_buffer = core::mem::transmute(
13864                f(
13865                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13866                        b"vkCmdBindIndexBuffer\0",
13867                    ),
13868                ),
13869            );
13870            cmd.cmd_bind_vertex_buffers = core::mem::transmute(
13871                f(
13872                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13873                        b"vkCmdBindVertexBuffers\0",
13874                    ),
13875                ),
13876            );
13877            cmd.cmd_draw = core::mem::transmute(
13878                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDraw\0")),
13879            );
13880            cmd.cmd_draw_indexed = core::mem::transmute(
13881                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndexed\0")),
13882            );
13883            cmd.cmd_draw_multi_ext = core::mem::transmute(
13884                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMultiEXT\0")),
13885            );
13886            cmd.cmd_draw_multi_indexed_ext = core::mem::transmute(
13887                f(
13888                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13889                        b"vkCmdDrawMultiIndexedEXT\0",
13890                    ),
13891                ),
13892            );
13893            cmd.cmd_draw_indirect = core::mem::transmute(
13894                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirect\0")),
13895            );
13896            cmd.cmd_draw_indexed_indirect = core::mem::transmute(
13897                f(
13898                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13899                        b"vkCmdDrawIndexedIndirect\0",
13900                    ),
13901                ),
13902            );
13903            cmd.cmd_dispatch = core::mem::transmute(
13904                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDispatch\0")),
13905            );
13906            cmd.cmd_dispatch_indirect = core::mem::transmute(
13907                f(
13908                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13909                        b"vkCmdDispatchIndirect\0",
13910                    ),
13911                ),
13912            );
13913            cmd.cmd_subpass_shading_huawei = core::mem::transmute(
13914                f(
13915                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13916                        b"vkCmdSubpassShadingHUAWEI\0",
13917                    ),
13918                ),
13919            );
13920            cmd.cmd_draw_cluster_huawei = core::mem::transmute(
13921                f(
13922                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13923                        b"vkCmdDrawClusterHUAWEI\0",
13924                    ),
13925                ),
13926            );
13927            cmd.cmd_draw_cluster_indirect_huawei = core::mem::transmute(
13928                f(
13929                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13930                        b"vkCmdDrawClusterIndirectHUAWEI\0",
13931                    ),
13932                ),
13933            );
13934            cmd.cmd_update_pipeline_indirect_buffer_nv = core::mem::transmute(
13935                f(
13936                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13937                        b"vkCmdUpdatePipelineIndirectBufferNV\0",
13938                    ),
13939                ),
13940            );
13941            cmd.cmd_copy_buffer = core::mem::transmute(
13942                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyBuffer\0")),
13943            );
13944            cmd.cmd_copy_image = core::mem::transmute(
13945                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyImage\0")),
13946            );
13947            cmd.cmd_blit_image = core::mem::transmute(
13948                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdBlitImage\0")),
13949            );
13950            cmd.cmd_copy_buffer_to_image = core::mem::transmute(
13951                f(
13952                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13953                        b"vkCmdCopyBufferToImage\0",
13954                    ),
13955                ),
13956            );
13957            cmd.cmd_copy_image_to_buffer = core::mem::transmute(
13958                f(
13959                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13960                        b"vkCmdCopyImageToBuffer\0",
13961                    ),
13962                ),
13963            );
13964            cmd.cmd_copy_memory_indirect_nv = core::mem::transmute(
13965                f(
13966                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13967                        b"vkCmdCopyMemoryIndirectNV\0",
13968                    ),
13969                ),
13970            );
13971            cmd.cmd_copy_memory_indirect_khr = core::mem::transmute(
13972                f(
13973                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13974                        b"vkCmdCopyMemoryIndirectKHR\0",
13975                    ),
13976                ),
13977            );
13978            cmd.cmd_copy_memory_to_image_indirect_nv = core::mem::transmute(
13979                f(
13980                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13981                        b"vkCmdCopyMemoryToImageIndirectNV\0",
13982                    ),
13983                ),
13984            );
13985            cmd.cmd_copy_memory_to_image_indirect_khr = core::mem::transmute(
13986                f(
13987                    core::ffi::CStr::from_bytes_with_nul_unchecked(
13988                        b"vkCmdCopyMemoryToImageIndirectKHR\0",
13989                    ),
13990                ),
13991            );
13992            cmd.cmd_update_buffer = core::mem::transmute(
13993                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdUpdateBuffer\0")),
13994            );
13995            cmd.cmd_fill_buffer = core::mem::transmute(
13996                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdFillBuffer\0")),
13997            );
13998            cmd.cmd_clear_color_image = core::mem::transmute(
13999                f(
14000                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14001                        b"vkCmdClearColorImage\0",
14002                    ),
14003                ),
14004            );
14005            cmd.cmd_clear_depth_stencil_image = core::mem::transmute(
14006                f(
14007                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14008                        b"vkCmdClearDepthStencilImage\0",
14009                    ),
14010                ),
14011            );
14012            cmd.cmd_clear_attachments = core::mem::transmute(
14013                f(
14014                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14015                        b"vkCmdClearAttachments\0",
14016                    ),
14017                ),
14018            );
14019            cmd.cmd_resolve_image = core::mem::transmute(
14020                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdResolveImage\0")),
14021            );
14022            cmd.cmd_set_event = core::mem::transmute(
14023                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetEvent\0")),
14024            );
14025            cmd.cmd_reset_event = core::mem::transmute(
14026                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdResetEvent\0")),
14027            );
14028            cmd.cmd_wait_events = core::mem::transmute(
14029                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdWaitEvents\0")),
14030            );
14031            cmd.cmd_pipeline_barrier = core::mem::transmute(
14032                f(
14033                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14034                        b"vkCmdPipelineBarrier\0",
14035                    ),
14036                ),
14037            );
14038            cmd.cmd_begin_query = core::mem::transmute(
14039                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginQuery\0")),
14040            );
14041            cmd.cmd_end_query = core::mem::transmute(
14042                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdEndQuery\0")),
14043            );
14044            cmd.cmd_begin_conditional_rendering_ext = core::mem::transmute(
14045                f(
14046                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14047                        b"vkCmdBeginConditionalRenderingEXT\0",
14048                    ),
14049                ),
14050            );
14051            cmd.cmd_end_conditional_rendering_ext = core::mem::transmute(
14052                f(
14053                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14054                        b"vkCmdEndConditionalRenderingEXT\0",
14055                    ),
14056                ),
14057            );
14058            cmd.cmd_begin_custom_resolve_ext = core::mem::transmute(
14059                f(
14060                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14061                        b"vkCmdBeginCustomResolveEXT\0",
14062                    ),
14063                ),
14064            );
14065            cmd.cmd_reset_query_pool = core::mem::transmute(
14066                f(
14067                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14068                        b"vkCmdResetQueryPool\0",
14069                    ),
14070                ),
14071            );
14072            cmd.cmd_write_timestamp = core::mem::transmute(
14073                f(
14074                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14075                        b"vkCmdWriteTimestamp\0",
14076                    ),
14077                ),
14078            );
14079            cmd.cmd_copy_query_pool_results = core::mem::transmute(
14080                f(
14081                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14082                        b"vkCmdCopyQueryPoolResults\0",
14083                    ),
14084                ),
14085            );
14086            cmd.cmd_push_constants = core::mem::transmute(
14087                f(
14088                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14089                        b"vkCmdPushConstants\0",
14090                    ),
14091                ),
14092            );
14093            cmd.cmd_begin_render_pass = core::mem::transmute(
14094                f(
14095                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14096                        b"vkCmdBeginRenderPass\0",
14097                    ),
14098                ),
14099            );
14100            cmd.cmd_next_subpass = core::mem::transmute(
14101                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdNextSubpass\0")),
14102            );
14103            cmd.cmd_end_render_pass = core::mem::transmute(
14104                f(
14105                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14106                        b"vkCmdEndRenderPass\0",
14107                    ),
14108                ),
14109            );
14110            cmd.cmd_execute_commands = core::mem::transmute(
14111                f(
14112                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14113                        b"vkCmdExecuteCommands\0",
14114                    ),
14115                ),
14116            );
14117            cmd.create_shared_swapchains_khr = core::mem::transmute(
14118                f(
14119                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14120                        b"vkCreateSharedSwapchainsKHR\0",
14121                    ),
14122                ),
14123            );
14124            cmd.create_swapchain_khr = core::mem::transmute(
14125                f(
14126                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14127                        b"vkCreateSwapchainKHR\0",
14128                    ),
14129                ),
14130            );
14131            cmd.destroy_swapchain_khr = core::mem::transmute(
14132                f(
14133                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14134                        b"vkDestroySwapchainKHR\0",
14135                    ),
14136                ),
14137            );
14138            cmd.get_swapchain_images_khr = core::mem::transmute(
14139                f(
14140                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14141                        b"vkGetSwapchainImagesKHR\0",
14142                    ),
14143                ),
14144            );
14145            cmd.acquire_next_image_khr = core::mem::transmute(
14146                f(
14147                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14148                        b"vkAcquireNextImageKHR\0",
14149                    ),
14150                ),
14151            );
14152            cmd.queue_present_khr = core::mem::transmute(
14153                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkQueuePresentKHR\0")),
14154            );
14155            cmd.debug_marker_set_object_name_ext = core::mem::transmute(
14156                f(
14157                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14158                        b"vkDebugMarkerSetObjectNameEXT\0",
14159                    ),
14160                ),
14161            );
14162            cmd.debug_marker_set_object_tag_ext = core::mem::transmute(
14163                f(
14164                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14165                        b"vkDebugMarkerSetObjectTagEXT\0",
14166                    ),
14167                ),
14168            );
14169            cmd.cmd_debug_marker_begin_ext = core::mem::transmute(
14170                f(
14171                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14172                        b"vkCmdDebugMarkerBeginEXT\0",
14173                    ),
14174                ),
14175            );
14176            cmd.cmd_debug_marker_end_ext = core::mem::transmute(
14177                f(
14178                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14179                        b"vkCmdDebugMarkerEndEXT\0",
14180                    ),
14181                ),
14182            );
14183            cmd.cmd_debug_marker_insert_ext = core::mem::transmute(
14184                f(
14185                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14186                        b"vkCmdDebugMarkerInsertEXT\0",
14187                    ),
14188                ),
14189            );
14190            cmd.get_memory_win32_handle_nv = core::mem::transmute(
14191                f(
14192                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14193                        b"vkGetMemoryWin32HandleNV\0",
14194                    ),
14195                ),
14196            );
14197            cmd.cmd_execute_generated_commands_nv = core::mem::transmute(
14198                f(
14199                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14200                        b"vkCmdExecuteGeneratedCommandsNV\0",
14201                    ),
14202                ),
14203            );
14204            cmd.cmd_preprocess_generated_commands_nv = core::mem::transmute(
14205                f(
14206                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14207                        b"vkCmdPreprocessGeneratedCommandsNV\0",
14208                    ),
14209                ),
14210            );
14211            cmd.cmd_bind_pipeline_shader_group_nv = core::mem::transmute(
14212                f(
14213                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14214                        b"vkCmdBindPipelineShaderGroupNV\0",
14215                    ),
14216                ),
14217            );
14218            cmd.get_generated_commands_memory_requirements_nv = core::mem::transmute(
14219                f(
14220                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14221                        b"vkGetGeneratedCommandsMemoryRequirementsNV\0",
14222                    ),
14223                ),
14224            );
14225            cmd.create_indirect_commands_layout_nv = core::mem::transmute(
14226                f(
14227                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14228                        b"vkCreateIndirectCommandsLayoutNV\0",
14229                    ),
14230                ),
14231            );
14232            cmd.destroy_indirect_commands_layout_nv = core::mem::transmute(
14233                f(
14234                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14235                        b"vkDestroyIndirectCommandsLayoutNV\0",
14236                    ),
14237                ),
14238            );
14239            cmd.cmd_execute_generated_commands_ext = core::mem::transmute(
14240                f(
14241                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14242                        b"vkCmdExecuteGeneratedCommandsEXT\0",
14243                    ),
14244                ),
14245            );
14246            cmd.cmd_preprocess_generated_commands_ext = core::mem::transmute(
14247                f(
14248                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14249                        b"vkCmdPreprocessGeneratedCommandsEXT\0",
14250                    ),
14251                ),
14252            );
14253            cmd.get_generated_commands_memory_requirements_ext = core::mem::transmute(
14254                f(
14255                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14256                        b"vkGetGeneratedCommandsMemoryRequirementsEXT\0",
14257                    ),
14258                ),
14259            );
14260            cmd.create_indirect_commands_layout_ext = core::mem::transmute(
14261                f(
14262                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14263                        b"vkCreateIndirectCommandsLayoutEXT\0",
14264                    ),
14265                ),
14266            );
14267            cmd.destroy_indirect_commands_layout_ext = core::mem::transmute(
14268                f(
14269                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14270                        b"vkDestroyIndirectCommandsLayoutEXT\0",
14271                    ),
14272                ),
14273            );
14274            cmd.create_indirect_execution_set_ext = core::mem::transmute(
14275                f(
14276                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14277                        b"vkCreateIndirectExecutionSetEXT\0",
14278                    ),
14279                ),
14280            );
14281            cmd.destroy_indirect_execution_set_ext = core::mem::transmute(
14282                f(
14283                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14284                        b"vkDestroyIndirectExecutionSetEXT\0",
14285                    ),
14286                ),
14287            );
14288            cmd.update_indirect_execution_set_pipeline_ext = core::mem::transmute(
14289                f(
14290                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14291                        b"vkUpdateIndirectExecutionSetPipelineEXT\0",
14292                    ),
14293                ),
14294            );
14295            cmd.update_indirect_execution_set_shader_ext = core::mem::transmute(
14296                f(
14297                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14298                        b"vkUpdateIndirectExecutionSetShaderEXT\0",
14299                    ),
14300                ),
14301            );
14302            cmd.cmd_push_descriptor_set = core::mem::transmute(
14303                f(
14304                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14305                        b"vkCmdPushDescriptorSet\0",
14306                    ),
14307                ),
14308            );
14309            if cmd.cmd_push_descriptor_set.is_none() {
14310                cmd.cmd_push_descriptor_set = core::mem::transmute(
14311                    f(
14312                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14313                            b"vkCmdPushDescriptorSetKHR\0",
14314                        ),
14315                    ),
14316                );
14317            }
14318            cmd.trim_command_pool = core::mem::transmute(
14319                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkTrimCommandPool\0")),
14320            );
14321            if cmd.trim_command_pool.is_none() {
14322                cmd.trim_command_pool = core::mem::transmute(
14323                    f(
14324                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14325                            b"vkTrimCommandPoolKHR\0",
14326                        ),
14327                    ),
14328                );
14329            }
14330            cmd.get_memory_win32_handle_khr = core::mem::transmute(
14331                f(
14332                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14333                        b"vkGetMemoryWin32HandleKHR\0",
14334                    ),
14335                ),
14336            );
14337            cmd.get_memory_win32_handle_properties_khr = core::mem::transmute(
14338                f(
14339                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14340                        b"vkGetMemoryWin32HandlePropertiesKHR\0",
14341                    ),
14342                ),
14343            );
14344            cmd.get_memory_fd_khr = core::mem::transmute(
14345                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryFdKHR\0")),
14346            );
14347            cmd.get_memory_fd_properties_khr = core::mem::transmute(
14348                f(
14349                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14350                        b"vkGetMemoryFdPropertiesKHR\0",
14351                    ),
14352                ),
14353            );
14354            cmd.get_memory_zircon_handle_fuchsia = core::mem::transmute(
14355                f(
14356                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14357                        b"vkGetMemoryZirconHandleFUCHSIA\0",
14358                    ),
14359                ),
14360            );
14361            cmd.get_memory_zircon_handle_properties_fuchsia = core::mem::transmute(
14362                f(
14363                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14364                        b"vkGetMemoryZirconHandlePropertiesFUCHSIA\0",
14365                    ),
14366                ),
14367            );
14368            cmd.get_memory_remote_address_nv = core::mem::transmute(
14369                f(
14370                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14371                        b"vkGetMemoryRemoteAddressNV\0",
14372                    ),
14373                ),
14374            );
14375            cmd.get_memory_sci_buf_nv = core::mem::transmute(
14376                f(
14377                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14378                        b"vkGetMemorySciBufNV\0",
14379                    ),
14380                ),
14381            );
14382            cmd.get_semaphore_win32_handle_khr = core::mem::transmute(
14383                f(
14384                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14385                        b"vkGetSemaphoreWin32HandleKHR\0",
14386                    ),
14387                ),
14388            );
14389            cmd.import_semaphore_win32_handle_khr = core::mem::transmute(
14390                f(
14391                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14392                        b"vkImportSemaphoreWin32HandleKHR\0",
14393                    ),
14394                ),
14395            );
14396            cmd.get_semaphore_fd_khr = core::mem::transmute(
14397                f(
14398                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14399                        b"vkGetSemaphoreFdKHR\0",
14400                    ),
14401                ),
14402            );
14403            cmd.import_semaphore_fd_khr = core::mem::transmute(
14404                f(
14405                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14406                        b"vkImportSemaphoreFdKHR\0",
14407                    ),
14408                ),
14409            );
14410            cmd.get_semaphore_zircon_handle_fuchsia = core::mem::transmute(
14411                f(
14412                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14413                        b"vkGetSemaphoreZirconHandleFUCHSIA\0",
14414                    ),
14415                ),
14416            );
14417            cmd.import_semaphore_zircon_handle_fuchsia = core::mem::transmute(
14418                f(
14419                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14420                        b"vkImportSemaphoreZirconHandleFUCHSIA\0",
14421                    ),
14422                ),
14423            );
14424            cmd.get_fence_win32_handle_khr = core::mem::transmute(
14425                f(
14426                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14427                        b"vkGetFenceWin32HandleKHR\0",
14428                    ),
14429                ),
14430            );
14431            cmd.import_fence_win32_handle_khr = core::mem::transmute(
14432                f(
14433                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14434                        b"vkImportFenceWin32HandleKHR\0",
14435                    ),
14436                ),
14437            );
14438            cmd.get_fence_fd_khr = core::mem::transmute(
14439                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetFenceFdKHR\0")),
14440            );
14441            cmd.import_fence_fd_khr = core::mem::transmute(
14442                f(
14443                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14444                        b"vkImportFenceFdKHR\0",
14445                    ),
14446                ),
14447            );
14448            cmd.get_fence_sci_sync_fence_nv = core::mem::transmute(
14449                f(
14450                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14451                        b"vkGetFenceSciSyncFenceNV\0",
14452                    ),
14453                ),
14454            );
14455            cmd.get_fence_sci_sync_obj_nv = core::mem::transmute(
14456                f(
14457                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14458                        b"vkGetFenceSciSyncObjNV\0",
14459                    ),
14460                ),
14461            );
14462            cmd.import_fence_sci_sync_fence_nv = core::mem::transmute(
14463                f(
14464                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14465                        b"vkImportFenceSciSyncFenceNV\0",
14466                    ),
14467                ),
14468            );
14469            cmd.import_fence_sci_sync_obj_nv = core::mem::transmute(
14470                f(
14471                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14472                        b"vkImportFenceSciSyncObjNV\0",
14473                    ),
14474                ),
14475            );
14476            cmd.get_semaphore_sci_sync_obj_nv = core::mem::transmute(
14477                f(
14478                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14479                        b"vkGetSemaphoreSciSyncObjNV\0",
14480                    ),
14481                ),
14482            );
14483            cmd.import_semaphore_sci_sync_obj_nv = core::mem::transmute(
14484                f(
14485                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14486                        b"vkImportSemaphoreSciSyncObjNV\0",
14487                    ),
14488                ),
14489            );
14490            cmd.create_semaphore_sci_sync_pool_nv = core::mem::transmute(
14491                f(
14492                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14493                        b"vkCreateSemaphoreSciSyncPoolNV\0",
14494                    ),
14495                ),
14496            );
14497            cmd.destroy_semaphore_sci_sync_pool_nv = core::mem::transmute(
14498                f(
14499                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14500                        b"vkDestroySemaphoreSciSyncPoolNV\0",
14501                    ),
14502                ),
14503            );
14504            cmd.display_power_control_ext = core::mem::transmute(
14505                f(
14506                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14507                        b"vkDisplayPowerControlEXT\0",
14508                    ),
14509                ),
14510            );
14511            cmd.register_device_event_ext = core::mem::transmute(
14512                f(
14513                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14514                        b"vkRegisterDeviceEventEXT\0",
14515                    ),
14516                ),
14517            );
14518            cmd.register_display_event_ext = core::mem::transmute(
14519                f(
14520                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14521                        b"vkRegisterDisplayEventEXT\0",
14522                    ),
14523                ),
14524            );
14525            cmd.get_swapchain_counter_ext = core::mem::transmute(
14526                f(
14527                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14528                        b"vkGetSwapchainCounterEXT\0",
14529                    ),
14530                ),
14531            );
14532            cmd.get_device_group_peer_memory_features = core::mem::transmute(
14533                f(
14534                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14535                        b"vkGetDeviceGroupPeerMemoryFeatures\0",
14536                    ),
14537                ),
14538            );
14539            if cmd.get_device_group_peer_memory_features.is_none() {
14540                cmd.get_device_group_peer_memory_features = core::mem::transmute(
14541                    f(
14542                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14543                            b"vkGetDeviceGroupPeerMemoryFeaturesKHR\0",
14544                        ),
14545                    ),
14546                );
14547            }
14548            cmd.bind_buffer_memory2 = core::mem::transmute(
14549                f(
14550                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14551                        b"vkBindBufferMemory2\0",
14552                    ),
14553                ),
14554            );
14555            if cmd.bind_buffer_memory2.is_none() {
14556                cmd.bind_buffer_memory2 = core::mem::transmute(
14557                    f(
14558                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14559                            b"vkBindBufferMemory2KHR\0",
14560                        ),
14561                    ),
14562                );
14563            }
14564            cmd.bind_image_memory2 = core::mem::transmute(
14565                f(
14566                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14567                        b"vkBindImageMemory2\0",
14568                    ),
14569                ),
14570            );
14571            if cmd.bind_image_memory2.is_none() {
14572                cmd.bind_image_memory2 = core::mem::transmute(
14573                    f(
14574                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14575                            b"vkBindImageMemory2KHR\0",
14576                        ),
14577                    ),
14578                );
14579            }
14580            cmd.cmd_set_device_mask = core::mem::transmute(
14581                f(
14582                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14583                        b"vkCmdSetDeviceMask\0",
14584                    ),
14585                ),
14586            );
14587            if cmd.cmd_set_device_mask.is_none() {
14588                cmd.cmd_set_device_mask = core::mem::transmute(
14589                    f(
14590                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14591                            b"vkCmdSetDeviceMaskKHR\0",
14592                        ),
14593                    ),
14594                );
14595            }
14596            cmd.get_device_group_present_capabilities_khr = core::mem::transmute(
14597                f(
14598                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14599                        b"vkGetDeviceGroupPresentCapabilitiesKHR\0",
14600                    ),
14601                ),
14602            );
14603            cmd.get_device_group_surface_present_modes_khr = core::mem::transmute(
14604                f(
14605                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14606                        b"vkGetDeviceGroupSurfacePresentModesKHR\0",
14607                    ),
14608                ),
14609            );
14610            cmd.acquire_next_image2_khr = core::mem::transmute(
14611                f(
14612                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14613                        b"vkAcquireNextImage2KHR\0",
14614                    ),
14615                ),
14616            );
14617            cmd.cmd_dispatch_base = core::mem::transmute(
14618                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDispatchBase\0")),
14619            );
14620            if cmd.cmd_dispatch_base.is_none() {
14621                cmd.cmd_dispatch_base = core::mem::transmute(
14622                    f(
14623                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14624                            b"vkCmdDispatchBaseKHR\0",
14625                        ),
14626                    ),
14627                );
14628            }
14629            cmd.create_descriptor_update_template = core::mem::transmute(
14630                f(
14631                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14632                        b"vkCreateDescriptorUpdateTemplate\0",
14633                    ),
14634                ),
14635            );
14636            if cmd.create_descriptor_update_template.is_none() {
14637                cmd.create_descriptor_update_template = core::mem::transmute(
14638                    f(
14639                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14640                            b"vkCreateDescriptorUpdateTemplateKHR\0",
14641                        ),
14642                    ),
14643                );
14644            }
14645            cmd.destroy_descriptor_update_template = core::mem::transmute(
14646                f(
14647                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14648                        b"vkDestroyDescriptorUpdateTemplate\0",
14649                    ),
14650                ),
14651            );
14652            if cmd.destroy_descriptor_update_template.is_none() {
14653                cmd.destroy_descriptor_update_template = core::mem::transmute(
14654                    f(
14655                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14656                            b"vkDestroyDescriptorUpdateTemplateKHR\0",
14657                        ),
14658                    ),
14659                );
14660            }
14661            cmd.update_descriptor_set_with_template = core::mem::transmute(
14662                f(
14663                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14664                        b"vkUpdateDescriptorSetWithTemplate\0",
14665                    ),
14666                ),
14667            );
14668            if cmd.update_descriptor_set_with_template.is_none() {
14669                cmd.update_descriptor_set_with_template = core::mem::transmute(
14670                    f(
14671                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14672                            b"vkUpdateDescriptorSetWithTemplateKHR\0",
14673                        ),
14674                    ),
14675                );
14676            }
14677            cmd.cmd_push_descriptor_set_with_template = core::mem::transmute(
14678                f(
14679                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14680                        b"vkCmdPushDescriptorSetWithTemplate\0",
14681                    ),
14682                ),
14683            );
14684            if cmd.cmd_push_descriptor_set_with_template.is_none() {
14685                cmd.cmd_push_descriptor_set_with_template = core::mem::transmute(
14686                    f(
14687                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14688                            b"vkCmdPushDescriptorSetWithTemplateKHR\0",
14689                        ),
14690                    ),
14691                );
14692            }
14693            cmd.set_hdr_metadata_ext = core::mem::transmute(
14694                f(
14695                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14696                        b"vkSetHdrMetadataEXT\0",
14697                    ),
14698                ),
14699            );
14700            cmd.get_swapchain_status_khr = core::mem::transmute(
14701                f(
14702                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14703                        b"vkGetSwapchainStatusKHR\0",
14704                    ),
14705                ),
14706            );
14707            cmd.get_refresh_cycle_duration_google = core::mem::transmute(
14708                f(
14709                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14710                        b"vkGetRefreshCycleDurationGOOGLE\0",
14711                    ),
14712                ),
14713            );
14714            cmd.get_past_presentation_timing_google = core::mem::transmute(
14715                f(
14716                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14717                        b"vkGetPastPresentationTimingGOOGLE\0",
14718                    ),
14719                ),
14720            );
14721            cmd.cmd_set_viewport_w_scaling_nv = core::mem::transmute(
14722                f(
14723                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14724                        b"vkCmdSetViewportWScalingNV\0",
14725                    ),
14726                ),
14727            );
14728            cmd.cmd_set_discard_rectangle_ext = core::mem::transmute(
14729                f(
14730                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14731                        b"vkCmdSetDiscardRectangleEXT\0",
14732                    ),
14733                ),
14734            );
14735            cmd.cmd_set_discard_rectangle_enable_ext = core::mem::transmute(
14736                f(
14737                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14738                        b"vkCmdSetDiscardRectangleEnableEXT\0",
14739                    ),
14740                ),
14741            );
14742            cmd.cmd_set_discard_rectangle_mode_ext = core::mem::transmute(
14743                f(
14744                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14745                        b"vkCmdSetDiscardRectangleModeEXT\0",
14746                    ),
14747                ),
14748            );
14749            cmd.cmd_set_sample_locations_ext = core::mem::transmute(
14750                f(
14751                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14752                        b"vkCmdSetSampleLocationsEXT\0",
14753                    ),
14754                ),
14755            );
14756            cmd.get_buffer_memory_requirements2 = core::mem::transmute(
14757                f(
14758                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14759                        b"vkGetBufferMemoryRequirements2\0",
14760                    ),
14761                ),
14762            );
14763            if cmd.get_buffer_memory_requirements2.is_none() {
14764                cmd.get_buffer_memory_requirements2 = core::mem::transmute(
14765                    f(
14766                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14767                            b"vkGetBufferMemoryRequirements2KHR\0",
14768                        ),
14769                    ),
14770                );
14771            }
14772            cmd.get_image_memory_requirements2 = core::mem::transmute(
14773                f(
14774                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14775                        b"vkGetImageMemoryRequirements2\0",
14776                    ),
14777                ),
14778            );
14779            if cmd.get_image_memory_requirements2.is_none() {
14780                cmd.get_image_memory_requirements2 = core::mem::transmute(
14781                    f(
14782                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14783                            b"vkGetImageMemoryRequirements2KHR\0",
14784                        ),
14785                    ),
14786                );
14787            }
14788            cmd.get_image_sparse_memory_requirements2 = core::mem::transmute(
14789                f(
14790                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14791                        b"vkGetImageSparseMemoryRequirements2\0",
14792                    ),
14793                ),
14794            );
14795            if cmd.get_image_sparse_memory_requirements2.is_none() {
14796                cmd.get_image_sparse_memory_requirements2 = core::mem::transmute(
14797                    f(
14798                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14799                            b"vkGetImageSparseMemoryRequirements2KHR\0",
14800                        ),
14801                    ),
14802                );
14803            }
14804            cmd.get_device_buffer_memory_requirements = core::mem::transmute(
14805                f(
14806                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14807                        b"vkGetDeviceBufferMemoryRequirements\0",
14808                    ),
14809                ),
14810            );
14811            if cmd.get_device_buffer_memory_requirements.is_none() {
14812                cmd.get_device_buffer_memory_requirements = core::mem::transmute(
14813                    f(
14814                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14815                            b"vkGetDeviceBufferMemoryRequirementsKHR\0",
14816                        ),
14817                    ),
14818                );
14819            }
14820            cmd.get_device_image_memory_requirements = core::mem::transmute(
14821                f(
14822                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14823                        b"vkGetDeviceImageMemoryRequirements\0",
14824                    ),
14825                ),
14826            );
14827            if cmd.get_device_image_memory_requirements.is_none() {
14828                cmd.get_device_image_memory_requirements = core::mem::transmute(
14829                    f(
14830                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14831                            b"vkGetDeviceImageMemoryRequirementsKHR\0",
14832                        ),
14833                    ),
14834                );
14835            }
14836            cmd.get_device_image_sparse_memory_requirements = core::mem::transmute(
14837                f(
14838                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14839                        b"vkGetDeviceImageSparseMemoryRequirements\0",
14840                    ),
14841                ),
14842            );
14843            if cmd.get_device_image_sparse_memory_requirements.is_none() {
14844                cmd.get_device_image_sparse_memory_requirements = core::mem::transmute(
14845                    f(
14846                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14847                            b"vkGetDeviceImageSparseMemoryRequirementsKHR\0",
14848                        ),
14849                    ),
14850                );
14851            }
14852            cmd.create_sampler_ycbcr_conversion = core::mem::transmute(
14853                f(
14854                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14855                        b"vkCreateSamplerYcbcrConversion\0",
14856                    ),
14857                ),
14858            );
14859            if cmd.create_sampler_ycbcr_conversion.is_none() {
14860                cmd.create_sampler_ycbcr_conversion = core::mem::transmute(
14861                    f(
14862                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14863                            b"vkCreateSamplerYcbcrConversionKHR\0",
14864                        ),
14865                    ),
14866                );
14867            }
14868            cmd.destroy_sampler_ycbcr_conversion = core::mem::transmute(
14869                f(
14870                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14871                        b"vkDestroySamplerYcbcrConversion\0",
14872                    ),
14873                ),
14874            );
14875            if cmd.destroy_sampler_ycbcr_conversion.is_none() {
14876                cmd.destroy_sampler_ycbcr_conversion = core::mem::transmute(
14877                    f(
14878                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14879                            b"vkDestroySamplerYcbcrConversionKHR\0",
14880                        ),
14881                    ),
14882                );
14883            }
14884            cmd.get_device_queue2 = core::mem::transmute(
14885                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetDeviceQueue2\0")),
14886            );
14887            cmd.create_validation_cache_ext = core::mem::transmute(
14888                f(
14889                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14890                        b"vkCreateValidationCacheEXT\0",
14891                    ),
14892                ),
14893            );
14894            cmd.destroy_validation_cache_ext = core::mem::transmute(
14895                f(
14896                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14897                        b"vkDestroyValidationCacheEXT\0",
14898                    ),
14899                ),
14900            );
14901            cmd.get_validation_cache_data_ext = core::mem::transmute(
14902                f(
14903                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14904                        b"vkGetValidationCacheDataEXT\0",
14905                    ),
14906                ),
14907            );
14908            cmd.merge_validation_caches_ext = core::mem::transmute(
14909                f(
14910                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14911                        b"vkMergeValidationCachesEXT\0",
14912                    ),
14913                ),
14914            );
14915            cmd.get_descriptor_set_layout_support = core::mem::transmute(
14916                f(
14917                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14918                        b"vkGetDescriptorSetLayoutSupport\0",
14919                    ),
14920                ),
14921            );
14922            if cmd.get_descriptor_set_layout_support.is_none() {
14923                cmd.get_descriptor_set_layout_support = core::mem::transmute(
14924                    f(
14925                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14926                            b"vkGetDescriptorSetLayoutSupportKHR\0",
14927                        ),
14928                    ),
14929                );
14930            }
14931            cmd.get_swapchain_gralloc_usage_android = core::mem::transmute(
14932                f(
14933                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14934                        b"vkGetSwapchainGrallocUsageANDROID\0",
14935                    ),
14936                ),
14937            );
14938            cmd.get_swapchain_gralloc_usage2_android = core::mem::transmute(
14939                f(
14940                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14941                        b"vkGetSwapchainGrallocUsage2ANDROID\0",
14942                    ),
14943                ),
14944            );
14945            cmd.acquire_image_android = core::mem::transmute(
14946                f(
14947                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14948                        b"vkAcquireImageANDROID\0",
14949                    ),
14950                ),
14951            );
14952            cmd.queue_signal_release_image_android = core::mem::transmute(
14953                f(
14954                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14955                        b"vkQueueSignalReleaseImageANDROID\0",
14956                    ),
14957                ),
14958            );
14959            cmd.get_shader_info_amd = core::mem::transmute(
14960                f(
14961                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14962                        b"vkGetShaderInfoAMD\0",
14963                    ),
14964                ),
14965            );
14966            cmd.set_local_dimming_amd = core::mem::transmute(
14967                f(
14968                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14969                        b"vkSetLocalDimmingAMD\0",
14970                    ),
14971                ),
14972            );
14973            cmd.get_calibrated_timestamps_khr = core::mem::transmute(
14974                f(
14975                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14976                        b"vkGetCalibratedTimestampsKHR\0",
14977                    ),
14978                ),
14979            );
14980            if cmd.get_calibrated_timestamps_khr.is_none() {
14981                cmd.get_calibrated_timestamps_khr = core::mem::transmute(
14982                    f(
14983                        core::ffi::CStr::from_bytes_with_nul_unchecked(
14984                            b"vkGetCalibratedTimestampsEXT\0",
14985                        ),
14986                    ),
14987                );
14988            }
14989            cmd.set_debug_utils_object_name_ext = core::mem::transmute(
14990                f(
14991                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14992                        b"vkSetDebugUtilsObjectNameEXT\0",
14993                    ),
14994                ),
14995            );
14996            cmd.set_debug_utils_object_tag_ext = core::mem::transmute(
14997                f(
14998                    core::ffi::CStr::from_bytes_with_nul_unchecked(
14999                        b"vkSetDebugUtilsObjectTagEXT\0",
15000                    ),
15001                ),
15002            );
15003            cmd.queue_begin_debug_utils_label_ext = core::mem::transmute(
15004                f(
15005                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15006                        b"vkQueueBeginDebugUtilsLabelEXT\0",
15007                    ),
15008                ),
15009            );
15010            cmd.queue_end_debug_utils_label_ext = core::mem::transmute(
15011                f(
15012                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15013                        b"vkQueueEndDebugUtilsLabelEXT\0",
15014                    ),
15015                ),
15016            );
15017            cmd.queue_insert_debug_utils_label_ext = core::mem::transmute(
15018                f(
15019                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15020                        b"vkQueueInsertDebugUtilsLabelEXT\0",
15021                    ),
15022                ),
15023            );
15024            cmd.cmd_begin_debug_utils_label_ext = core::mem::transmute(
15025                f(
15026                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15027                        b"vkCmdBeginDebugUtilsLabelEXT\0",
15028                    ),
15029                ),
15030            );
15031            cmd.cmd_end_debug_utils_label_ext = core::mem::transmute(
15032                f(
15033                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15034                        b"vkCmdEndDebugUtilsLabelEXT\0",
15035                    ),
15036                ),
15037            );
15038            cmd.cmd_insert_debug_utils_label_ext = core::mem::transmute(
15039                f(
15040                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15041                        b"vkCmdInsertDebugUtilsLabelEXT\0",
15042                    ),
15043                ),
15044            );
15045            cmd.get_memory_host_pointer_properties_ext = core::mem::transmute(
15046                f(
15047                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15048                        b"vkGetMemoryHostPointerPropertiesEXT\0",
15049                    ),
15050                ),
15051            );
15052            cmd.cmd_write_buffer_marker_amd = core::mem::transmute(
15053                f(
15054                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15055                        b"vkCmdWriteBufferMarkerAMD\0",
15056                    ),
15057                ),
15058            );
15059            cmd.create_render_pass2 = core::mem::transmute(
15060                f(
15061                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15062                        b"vkCreateRenderPass2\0",
15063                    ),
15064                ),
15065            );
15066            if cmd.create_render_pass2.is_none() {
15067                cmd.create_render_pass2 = core::mem::transmute(
15068                    f(
15069                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15070                            b"vkCreateRenderPass2KHR\0",
15071                        ),
15072                    ),
15073                );
15074            }
15075            cmd.cmd_begin_render_pass2 = core::mem::transmute(
15076                f(
15077                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15078                        b"vkCmdBeginRenderPass2\0",
15079                    ),
15080                ),
15081            );
15082            if cmd.cmd_begin_render_pass2.is_none() {
15083                cmd.cmd_begin_render_pass2 = core::mem::transmute(
15084                    f(
15085                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15086                            b"vkCmdBeginRenderPass2KHR\0",
15087                        ),
15088                    ),
15089                );
15090            }
15091            cmd.cmd_next_subpass2 = core::mem::transmute(
15092                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdNextSubpass2\0")),
15093            );
15094            if cmd.cmd_next_subpass2.is_none() {
15095                cmd.cmd_next_subpass2 = core::mem::transmute(
15096                    f(
15097                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15098                            b"vkCmdNextSubpass2KHR\0",
15099                        ),
15100                    ),
15101                );
15102            }
15103            cmd.cmd_end_render_pass2 = core::mem::transmute(
15104                f(
15105                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15106                        b"vkCmdEndRenderPass2\0",
15107                    ),
15108                ),
15109            );
15110            if cmd.cmd_end_render_pass2.is_none() {
15111                cmd.cmd_end_render_pass2 = core::mem::transmute(
15112                    f(
15113                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15114                            b"vkCmdEndRenderPass2KHR\0",
15115                        ),
15116                    ),
15117                );
15118            }
15119            cmd.get_semaphore_counter_value = core::mem::transmute(
15120                f(
15121                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15122                        b"vkGetSemaphoreCounterValue\0",
15123                    ),
15124                ),
15125            );
15126            if cmd.get_semaphore_counter_value.is_none() {
15127                cmd.get_semaphore_counter_value = core::mem::transmute(
15128                    f(
15129                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15130                            b"vkGetSemaphoreCounterValueKHR\0",
15131                        ),
15132                    ),
15133                );
15134            }
15135            cmd.wait_semaphores = core::mem::transmute(
15136                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkWaitSemaphores\0")),
15137            );
15138            if cmd.wait_semaphores.is_none() {
15139                cmd.wait_semaphores = core::mem::transmute(
15140                    f(
15141                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15142                            b"vkWaitSemaphoresKHR\0",
15143                        ),
15144                    ),
15145                );
15146            }
15147            cmd.signal_semaphore = core::mem::transmute(
15148                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkSignalSemaphore\0")),
15149            );
15150            if cmd.signal_semaphore.is_none() {
15151                cmd.signal_semaphore = core::mem::transmute(
15152                    f(
15153                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15154                            b"vkSignalSemaphoreKHR\0",
15155                        ),
15156                    ),
15157                );
15158            }
15159            cmd.get_android_hardware_buffer_properties_android = core::mem::transmute(
15160                f(
15161                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15162                        b"vkGetAndroidHardwareBufferPropertiesANDROID\0",
15163                    ),
15164                ),
15165            );
15166            cmd.get_memory_android_hardware_buffer_android = core::mem::transmute(
15167                f(
15168                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15169                        b"vkGetMemoryAndroidHardwareBufferANDROID\0",
15170                    ),
15171                ),
15172            );
15173            cmd.cmd_draw_indirect_count = core::mem::transmute(
15174                f(
15175                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15176                        b"vkCmdDrawIndirectCount\0",
15177                    ),
15178                ),
15179            );
15180            if cmd.cmd_draw_indirect_count.is_none() {
15181                cmd.cmd_draw_indirect_count = core::mem::transmute(
15182                    f(
15183                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15184                            b"vkCmdDrawIndirectCountKHR\0",
15185                        ),
15186                    ),
15187                );
15188            }
15189            if cmd.cmd_draw_indirect_count.is_none() {
15190                cmd.cmd_draw_indirect_count = core::mem::transmute(
15191                    f(
15192                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15193                            b"vkCmdDrawIndirectCountAMD\0",
15194                        ),
15195                    ),
15196                );
15197            }
15198            cmd.cmd_draw_indexed_indirect_count = core::mem::transmute(
15199                f(
15200                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15201                        b"vkCmdDrawIndexedIndirectCount\0",
15202                    ),
15203                ),
15204            );
15205            if cmd.cmd_draw_indexed_indirect_count.is_none() {
15206                cmd.cmd_draw_indexed_indirect_count = core::mem::transmute(
15207                    f(
15208                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15209                            b"vkCmdDrawIndexedIndirectCountKHR\0",
15210                        ),
15211                    ),
15212                );
15213            }
15214            if cmd.cmd_draw_indexed_indirect_count.is_none() {
15215                cmd.cmd_draw_indexed_indirect_count = core::mem::transmute(
15216                    f(
15217                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15218                            b"vkCmdDrawIndexedIndirectCountAMD\0",
15219                        ),
15220                    ),
15221                );
15222            }
15223            cmd.cmd_set_checkpoint_nv = core::mem::transmute(
15224                f(
15225                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15226                        b"vkCmdSetCheckpointNV\0",
15227                    ),
15228                ),
15229            );
15230            cmd.get_queue_checkpoint_data_nv = core::mem::transmute(
15231                f(
15232                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15233                        b"vkGetQueueCheckpointDataNV\0",
15234                    ),
15235                ),
15236            );
15237            cmd.cmd_bind_transform_feedback_buffers_ext = core::mem::transmute(
15238                f(
15239                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15240                        b"vkCmdBindTransformFeedbackBuffersEXT\0",
15241                    ),
15242                ),
15243            );
15244            cmd.cmd_begin_transform_feedback_ext = core::mem::transmute(
15245                f(
15246                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15247                        b"vkCmdBeginTransformFeedbackEXT\0",
15248                    ),
15249                ),
15250            );
15251            cmd.cmd_end_transform_feedback_ext = core::mem::transmute(
15252                f(
15253                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15254                        b"vkCmdEndTransformFeedbackEXT\0",
15255                    ),
15256                ),
15257            );
15258            cmd.cmd_begin_query_indexed_ext = core::mem::transmute(
15259                f(
15260                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15261                        b"vkCmdBeginQueryIndexedEXT\0",
15262                    ),
15263                ),
15264            );
15265            cmd.cmd_end_query_indexed_ext = core::mem::transmute(
15266                f(
15267                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15268                        b"vkCmdEndQueryIndexedEXT\0",
15269                    ),
15270                ),
15271            );
15272            cmd.cmd_draw_indirect_byte_count_ext = core::mem::transmute(
15273                f(
15274                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15275                        b"vkCmdDrawIndirectByteCountEXT\0",
15276                    ),
15277                ),
15278            );
15279            cmd.cmd_set_exclusive_scissor_nv = core::mem::transmute(
15280                f(
15281                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15282                        b"vkCmdSetExclusiveScissorNV\0",
15283                    ),
15284                ),
15285            );
15286            cmd.cmd_set_exclusive_scissor_enable_nv = core::mem::transmute(
15287                f(
15288                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15289                        b"vkCmdSetExclusiveScissorEnableNV\0",
15290                    ),
15291                ),
15292            );
15293            cmd.cmd_bind_shading_rate_image_nv = core::mem::transmute(
15294                f(
15295                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15296                        b"vkCmdBindShadingRateImageNV\0",
15297                    ),
15298                ),
15299            );
15300            cmd.cmd_set_viewport_shading_rate_palette_nv = core::mem::transmute(
15301                f(
15302                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15303                        b"vkCmdSetViewportShadingRatePaletteNV\0",
15304                    ),
15305                ),
15306            );
15307            cmd.cmd_set_coarse_sample_order_nv = core::mem::transmute(
15308                f(
15309                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15310                        b"vkCmdSetCoarseSampleOrderNV\0",
15311                    ),
15312                ),
15313            );
15314            cmd.cmd_draw_mesh_tasks_nv = core::mem::transmute(
15315                f(
15316                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15317                        b"vkCmdDrawMeshTasksNV\0",
15318                    ),
15319                ),
15320            );
15321            cmd.cmd_draw_mesh_tasks_indirect_nv = core::mem::transmute(
15322                f(
15323                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15324                        b"vkCmdDrawMeshTasksIndirectNV\0",
15325                    ),
15326                ),
15327            );
15328            cmd.cmd_draw_mesh_tasks_indirect_count_nv = core::mem::transmute(
15329                f(
15330                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15331                        b"vkCmdDrawMeshTasksIndirectCountNV\0",
15332                    ),
15333                ),
15334            );
15335            cmd.cmd_draw_mesh_tasks_ext = core::mem::transmute(
15336                f(
15337                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15338                        b"vkCmdDrawMeshTasksEXT\0",
15339                    ),
15340                ),
15341            );
15342            cmd.cmd_draw_mesh_tasks_indirect_ext = core::mem::transmute(
15343                f(
15344                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15345                        b"vkCmdDrawMeshTasksIndirectEXT\0",
15346                    ),
15347                ),
15348            );
15349            cmd.cmd_draw_mesh_tasks_indirect_count_ext = core::mem::transmute(
15350                f(
15351                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15352                        b"vkCmdDrawMeshTasksIndirectCountEXT\0",
15353                    ),
15354                ),
15355            );
15356            cmd.compile_deferred_nv = core::mem::transmute(
15357                f(
15358                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15359                        b"vkCompileDeferredNV\0",
15360                    ),
15361                ),
15362            );
15363            cmd.create_acceleration_structure_nv = core::mem::transmute(
15364                f(
15365                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15366                        b"vkCreateAccelerationStructureNV\0",
15367                    ),
15368                ),
15369            );
15370            cmd.cmd_bind_invocation_mask_huawei = core::mem::transmute(
15371                f(
15372                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15373                        b"vkCmdBindInvocationMaskHUAWEI\0",
15374                    ),
15375                ),
15376            );
15377            cmd.destroy_acceleration_structure_khr = core::mem::transmute(
15378                f(
15379                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15380                        b"vkDestroyAccelerationStructureKHR\0",
15381                    ),
15382                ),
15383            );
15384            cmd.destroy_acceleration_structure_nv = core::mem::transmute(
15385                f(
15386                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15387                        b"vkDestroyAccelerationStructureNV\0",
15388                    ),
15389                ),
15390            );
15391            cmd.get_acceleration_structure_memory_requirements_nv = core::mem::transmute(
15392                f(
15393                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15394                        b"vkGetAccelerationStructureMemoryRequirementsNV\0",
15395                    ),
15396                ),
15397            );
15398            cmd.bind_acceleration_structure_memory_nv = core::mem::transmute(
15399                f(
15400                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15401                        b"vkBindAccelerationStructureMemoryNV\0",
15402                    ),
15403                ),
15404            );
15405            cmd.cmd_copy_acceleration_structure_nv = core::mem::transmute(
15406                f(
15407                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15408                        b"vkCmdCopyAccelerationStructureNV\0",
15409                    ),
15410                ),
15411            );
15412            cmd.cmd_copy_acceleration_structure_khr = core::mem::transmute(
15413                f(
15414                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15415                        b"vkCmdCopyAccelerationStructureKHR\0",
15416                    ),
15417                ),
15418            );
15419            cmd.copy_acceleration_structure_khr = core::mem::transmute(
15420                f(
15421                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15422                        b"vkCopyAccelerationStructureKHR\0",
15423                    ),
15424                ),
15425            );
15426            cmd.cmd_copy_acceleration_structure_to_memory_khr = core::mem::transmute(
15427                f(
15428                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15429                        b"vkCmdCopyAccelerationStructureToMemoryKHR\0",
15430                    ),
15431                ),
15432            );
15433            cmd.copy_acceleration_structure_to_memory_khr = core::mem::transmute(
15434                f(
15435                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15436                        b"vkCopyAccelerationStructureToMemoryKHR\0",
15437                    ),
15438                ),
15439            );
15440            cmd.cmd_copy_memory_to_acceleration_structure_khr = core::mem::transmute(
15441                f(
15442                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15443                        b"vkCmdCopyMemoryToAccelerationStructureKHR\0",
15444                    ),
15445                ),
15446            );
15447            cmd.copy_memory_to_acceleration_structure_khr = core::mem::transmute(
15448                f(
15449                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15450                        b"vkCopyMemoryToAccelerationStructureKHR\0",
15451                    ),
15452                ),
15453            );
15454            cmd.cmd_write_acceleration_structures_properties_khr = core::mem::transmute(
15455                f(
15456                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15457                        b"vkCmdWriteAccelerationStructuresPropertiesKHR\0",
15458                    ),
15459                ),
15460            );
15461            cmd.cmd_write_acceleration_structures_properties_nv = core::mem::transmute(
15462                f(
15463                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15464                        b"vkCmdWriteAccelerationStructuresPropertiesNV\0",
15465                    ),
15466                ),
15467            );
15468            cmd.cmd_build_acceleration_structure_nv = core::mem::transmute(
15469                f(
15470                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15471                        b"vkCmdBuildAccelerationStructureNV\0",
15472                    ),
15473                ),
15474            );
15475            cmd.write_acceleration_structures_properties_khr = core::mem::transmute(
15476                f(
15477                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15478                        b"vkWriteAccelerationStructuresPropertiesKHR\0",
15479                    ),
15480                ),
15481            );
15482            cmd.cmd_trace_rays_khr = core::mem::transmute(
15483                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysKHR\0")),
15484            );
15485            cmd.cmd_trace_rays_nv = core::mem::transmute(
15486                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysNV\0")),
15487            );
15488            cmd.get_ray_tracing_shader_group_handles_khr = core::mem::transmute(
15489                f(
15490                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15491                        b"vkGetRayTracingShaderGroupHandlesKHR\0",
15492                    ),
15493                ),
15494            );
15495            if cmd.get_ray_tracing_shader_group_handles_khr.is_none() {
15496                cmd.get_ray_tracing_shader_group_handles_khr = core::mem::transmute(
15497                    f(
15498                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15499                            b"vkGetRayTracingShaderGroupHandlesNV\0",
15500                        ),
15501                    ),
15502                );
15503            }
15504            cmd.get_ray_tracing_capture_replay_shader_group_handles_khr = core::mem::transmute(
15505                f(
15506                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15507                        b"vkGetRayTracingCaptureReplayShaderGroupHandlesKHR\0",
15508                    ),
15509                ),
15510            );
15511            cmd.get_acceleration_structure_handle_nv = core::mem::transmute(
15512                f(
15513                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15514                        b"vkGetAccelerationStructureHandleNV\0",
15515                    ),
15516                ),
15517            );
15518            cmd.create_ray_tracing_pipelines_nv = core::mem::transmute(
15519                f(
15520                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15521                        b"vkCreateRayTracingPipelinesNV\0",
15522                    ),
15523                ),
15524            );
15525            cmd.create_ray_tracing_pipelines_khr = core::mem::transmute(
15526                f(
15527                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15528                        b"vkCreateRayTracingPipelinesKHR\0",
15529                    ),
15530                ),
15531            );
15532            cmd.cmd_trace_rays_indirect_khr = core::mem::transmute(
15533                f(
15534                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15535                        b"vkCmdTraceRaysIndirectKHR\0",
15536                    ),
15537                ),
15538            );
15539            cmd.cmd_trace_rays_indirect2_khr = core::mem::transmute(
15540                f(
15541                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15542                        b"vkCmdTraceRaysIndirect2KHR\0",
15543                    ),
15544                ),
15545            );
15546            cmd.get_cluster_acceleration_structure_build_sizes_nv = core::mem::transmute(
15547                f(
15548                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15549                        b"vkGetClusterAccelerationStructureBuildSizesNV\0",
15550                    ),
15551                ),
15552            );
15553            cmd.cmd_build_cluster_acceleration_structure_indirect_nv = core::mem::transmute(
15554                f(
15555                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15556                        b"vkCmdBuildClusterAccelerationStructureIndirectNV\0",
15557                    ),
15558                ),
15559            );
15560            cmd.get_device_acceleration_structure_compatibility_khr = core::mem::transmute(
15561                f(
15562                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15563                        b"vkGetDeviceAccelerationStructureCompatibilityKHR\0",
15564                    ),
15565                ),
15566            );
15567            cmd.get_ray_tracing_shader_group_stack_size_khr = core::mem::transmute(
15568                f(
15569                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15570                        b"vkGetRayTracingShaderGroupStackSizeKHR\0",
15571                    ),
15572                ),
15573            );
15574            cmd.cmd_set_ray_tracing_pipeline_stack_size_khr = core::mem::transmute(
15575                f(
15576                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15577                        b"vkCmdSetRayTracingPipelineStackSizeKHR\0",
15578                    ),
15579                ),
15580            );
15581            cmd.get_image_view_handle_nvx = core::mem::transmute(
15582                f(
15583                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15584                        b"vkGetImageViewHandleNVX\0",
15585                    ),
15586                ),
15587            );
15588            cmd.get_image_view_handle64_nvx = core::mem::transmute(
15589                f(
15590                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15591                        b"vkGetImageViewHandle64NVX\0",
15592                    ),
15593                ),
15594            );
15595            cmd.get_image_view_address_nvx = core::mem::transmute(
15596                f(
15597                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15598                        b"vkGetImageViewAddressNVX\0",
15599                    ),
15600                ),
15601            );
15602            cmd.get_device_combined_image_sampler_index_nvx = core::mem::transmute(
15603                f(
15604                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15605                        b"vkGetDeviceCombinedImageSamplerIndexNVX\0",
15606                    ),
15607                ),
15608            );
15609            cmd.get_device_group_surface_present_modes2_ext = core::mem::transmute(
15610                f(
15611                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15612                        b"vkGetDeviceGroupSurfacePresentModes2EXT\0",
15613                    ),
15614                ),
15615            );
15616            cmd.acquire_full_screen_exclusive_mode_ext = core::mem::transmute(
15617                f(
15618                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15619                        b"vkAcquireFullScreenExclusiveModeEXT\0",
15620                    ),
15621                ),
15622            );
15623            cmd.release_full_screen_exclusive_mode_ext = core::mem::transmute(
15624                f(
15625                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15626                        b"vkReleaseFullScreenExclusiveModeEXT\0",
15627                    ),
15628                ),
15629            );
15630            cmd.acquire_profiling_lock_khr = core::mem::transmute(
15631                f(
15632                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15633                        b"vkAcquireProfilingLockKHR\0",
15634                    ),
15635                ),
15636            );
15637            cmd.release_profiling_lock_khr = core::mem::transmute(
15638                f(
15639                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15640                        b"vkReleaseProfilingLockKHR\0",
15641                    ),
15642                ),
15643            );
15644            cmd.get_image_drm_format_modifier_properties_ext = core::mem::transmute(
15645                f(
15646                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15647                        b"vkGetImageDrmFormatModifierPropertiesEXT\0",
15648                    ),
15649                ),
15650            );
15651            cmd.get_buffer_opaque_capture_address = core::mem::transmute(
15652                f(
15653                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15654                        b"vkGetBufferOpaqueCaptureAddress\0",
15655                    ),
15656                ),
15657            );
15658            if cmd.get_buffer_opaque_capture_address.is_none() {
15659                cmd.get_buffer_opaque_capture_address = core::mem::transmute(
15660                    f(
15661                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15662                            b"vkGetBufferOpaqueCaptureAddressKHR\0",
15663                        ),
15664                    ),
15665                );
15666            }
15667            cmd.get_buffer_device_address = core::mem::transmute(
15668                f(
15669                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15670                        b"vkGetBufferDeviceAddress\0",
15671                    ),
15672                ),
15673            );
15674            if cmd.get_buffer_device_address.is_none() {
15675                cmd.get_buffer_device_address = core::mem::transmute(
15676                    f(
15677                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15678                            b"vkGetBufferDeviceAddressKHR\0",
15679                        ),
15680                    ),
15681                );
15682            }
15683            if cmd.get_buffer_device_address.is_none() {
15684                cmd.get_buffer_device_address = core::mem::transmute(
15685                    f(
15686                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15687                            b"vkGetBufferDeviceAddressEXT\0",
15688                        ),
15689                    ),
15690                );
15691            }
15692            cmd.initialize_performance_api_intel = core::mem::transmute(
15693                f(
15694                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15695                        b"vkInitializePerformanceApiINTEL\0",
15696                    ),
15697                ),
15698            );
15699            cmd.uninitialize_performance_api_intel = core::mem::transmute(
15700                f(
15701                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15702                        b"vkUninitializePerformanceApiINTEL\0",
15703                    ),
15704                ),
15705            );
15706            cmd.cmd_set_performance_marker_intel = core::mem::transmute(
15707                f(
15708                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15709                        b"vkCmdSetPerformanceMarkerINTEL\0",
15710                    ),
15711                ),
15712            );
15713            cmd.cmd_set_performance_stream_marker_intel = core::mem::transmute(
15714                f(
15715                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15716                        b"vkCmdSetPerformanceStreamMarkerINTEL\0",
15717                    ),
15718                ),
15719            );
15720            cmd.cmd_set_performance_override_intel = core::mem::transmute(
15721                f(
15722                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15723                        b"vkCmdSetPerformanceOverrideINTEL\0",
15724                    ),
15725                ),
15726            );
15727            cmd.acquire_performance_configuration_intel = core::mem::transmute(
15728                f(
15729                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15730                        b"vkAcquirePerformanceConfigurationINTEL\0",
15731                    ),
15732                ),
15733            );
15734            cmd.release_performance_configuration_intel = core::mem::transmute(
15735                f(
15736                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15737                        b"vkReleasePerformanceConfigurationINTEL\0",
15738                    ),
15739                ),
15740            );
15741            cmd.queue_set_performance_configuration_intel = core::mem::transmute(
15742                f(
15743                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15744                        b"vkQueueSetPerformanceConfigurationINTEL\0",
15745                    ),
15746                ),
15747            );
15748            cmd.get_performance_parameter_intel = core::mem::transmute(
15749                f(
15750                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15751                        b"vkGetPerformanceParameterINTEL\0",
15752                    ),
15753                ),
15754            );
15755            cmd.get_device_memory_opaque_capture_address = core::mem::transmute(
15756                f(
15757                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15758                        b"vkGetDeviceMemoryOpaqueCaptureAddress\0",
15759                    ),
15760                ),
15761            );
15762            if cmd.get_device_memory_opaque_capture_address.is_none() {
15763                cmd.get_device_memory_opaque_capture_address = core::mem::transmute(
15764                    f(
15765                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15766                            b"vkGetDeviceMemoryOpaqueCaptureAddressKHR\0",
15767                        ),
15768                    ),
15769                );
15770            }
15771            cmd.get_pipeline_executable_properties_khr = core::mem::transmute(
15772                f(
15773                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15774                        b"vkGetPipelineExecutablePropertiesKHR\0",
15775                    ),
15776                ),
15777            );
15778            cmd.get_pipeline_executable_statistics_khr = core::mem::transmute(
15779                f(
15780                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15781                        b"vkGetPipelineExecutableStatisticsKHR\0",
15782                    ),
15783                ),
15784            );
15785            cmd.get_pipeline_executable_internal_representations_khr = core::mem::transmute(
15786                f(
15787                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15788                        b"vkGetPipelineExecutableInternalRepresentationsKHR\0",
15789                    ),
15790                ),
15791            );
15792            cmd.cmd_set_line_stipple = core::mem::transmute(
15793                f(
15794                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15795                        b"vkCmdSetLineStipple\0",
15796                    ),
15797                ),
15798            );
15799            if cmd.cmd_set_line_stipple.is_none() {
15800                cmd.cmd_set_line_stipple = core::mem::transmute(
15801                    f(
15802                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15803                            b"vkCmdSetLineStippleKHR\0",
15804                        ),
15805                    ),
15806                );
15807            }
15808            if cmd.cmd_set_line_stipple.is_none() {
15809                cmd.cmd_set_line_stipple = core::mem::transmute(
15810                    f(
15811                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15812                            b"vkCmdSetLineStippleEXT\0",
15813                        ),
15814                    ),
15815                );
15816            }
15817            cmd.get_fault_data = core::mem::transmute(
15818                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetFaultData\0")),
15819            );
15820            cmd.create_acceleration_structure_khr = core::mem::transmute(
15821                f(
15822                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15823                        b"vkCreateAccelerationStructureKHR\0",
15824                    ),
15825                ),
15826            );
15827            cmd.cmd_build_acceleration_structures_khr = core::mem::transmute(
15828                f(
15829                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15830                        b"vkCmdBuildAccelerationStructuresKHR\0",
15831                    ),
15832                ),
15833            );
15834            cmd.cmd_build_acceleration_structures_indirect_khr = core::mem::transmute(
15835                f(
15836                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15837                        b"vkCmdBuildAccelerationStructuresIndirectKHR\0",
15838                    ),
15839                ),
15840            );
15841            cmd.build_acceleration_structures_khr = core::mem::transmute(
15842                f(
15843                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15844                        b"vkBuildAccelerationStructuresKHR\0",
15845                    ),
15846                ),
15847            );
15848            cmd.get_acceleration_structure_device_address_khr = core::mem::transmute(
15849                f(
15850                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15851                        b"vkGetAccelerationStructureDeviceAddressKHR\0",
15852                    ),
15853                ),
15854            );
15855            cmd.create_deferred_operation_khr = core::mem::transmute(
15856                f(
15857                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15858                        b"vkCreateDeferredOperationKHR\0",
15859                    ),
15860                ),
15861            );
15862            cmd.destroy_deferred_operation_khr = core::mem::transmute(
15863                f(
15864                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15865                        b"vkDestroyDeferredOperationKHR\0",
15866                    ),
15867                ),
15868            );
15869            cmd.get_deferred_operation_max_concurrency_khr = core::mem::transmute(
15870                f(
15871                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15872                        b"vkGetDeferredOperationMaxConcurrencyKHR\0",
15873                    ),
15874                ),
15875            );
15876            cmd.get_deferred_operation_result_khr = core::mem::transmute(
15877                f(
15878                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15879                        b"vkGetDeferredOperationResultKHR\0",
15880                    ),
15881                ),
15882            );
15883            cmd.deferred_operation_join_khr = core::mem::transmute(
15884                f(
15885                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15886                        b"vkDeferredOperationJoinKHR\0",
15887                    ),
15888                ),
15889            );
15890            cmd.get_pipeline_indirect_memory_requirements_nv = core::mem::transmute(
15891                f(
15892                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15893                        b"vkGetPipelineIndirectMemoryRequirementsNV\0",
15894                    ),
15895                ),
15896            );
15897            cmd.get_pipeline_indirect_device_address_nv = core::mem::transmute(
15898                f(
15899                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15900                        b"vkGetPipelineIndirectDeviceAddressNV\0",
15901                    ),
15902                ),
15903            );
15904            cmd.anti_lag_update_amd = core::mem::transmute(
15905                f(
15906                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15907                        b"vkAntiLagUpdateAMD\0",
15908                    ),
15909                ),
15910            );
15911            cmd.cmd_set_cull_mode = core::mem::transmute(
15912                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCullMode\0")),
15913            );
15914            if cmd.cmd_set_cull_mode.is_none() {
15915                cmd.cmd_set_cull_mode = core::mem::transmute(
15916                    f(
15917                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15918                            b"vkCmdSetCullModeEXT\0",
15919                        ),
15920                    ),
15921                );
15922            }
15923            cmd.cmd_set_front_face = core::mem::transmute(
15924                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetFrontFace\0")),
15925            );
15926            if cmd.cmd_set_front_face.is_none() {
15927                cmd.cmd_set_front_face = core::mem::transmute(
15928                    f(
15929                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15930                            b"vkCmdSetFrontFaceEXT\0",
15931                        ),
15932                    ),
15933                );
15934            }
15935            cmd.cmd_set_primitive_topology = core::mem::transmute(
15936                f(
15937                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15938                        b"vkCmdSetPrimitiveTopology\0",
15939                    ),
15940                ),
15941            );
15942            if cmd.cmd_set_primitive_topology.is_none() {
15943                cmd.cmd_set_primitive_topology = core::mem::transmute(
15944                    f(
15945                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15946                            b"vkCmdSetPrimitiveTopologyEXT\0",
15947                        ),
15948                    ),
15949                );
15950            }
15951            cmd.cmd_set_viewport_with_count = core::mem::transmute(
15952                f(
15953                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15954                        b"vkCmdSetViewportWithCount\0",
15955                    ),
15956                ),
15957            );
15958            if cmd.cmd_set_viewport_with_count.is_none() {
15959                cmd.cmd_set_viewport_with_count = core::mem::transmute(
15960                    f(
15961                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15962                            b"vkCmdSetViewportWithCountEXT\0",
15963                        ),
15964                    ),
15965                );
15966            }
15967            cmd.cmd_set_scissor_with_count = core::mem::transmute(
15968                f(
15969                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15970                        b"vkCmdSetScissorWithCount\0",
15971                    ),
15972                ),
15973            );
15974            if cmd.cmd_set_scissor_with_count.is_none() {
15975                cmd.cmd_set_scissor_with_count = core::mem::transmute(
15976                    f(
15977                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15978                            b"vkCmdSetScissorWithCountEXT\0",
15979                        ),
15980                    ),
15981                );
15982            }
15983            cmd.cmd_bind_index_buffer2 = core::mem::transmute(
15984                f(
15985                    core::ffi::CStr::from_bytes_with_nul_unchecked(
15986                        b"vkCmdBindIndexBuffer2\0",
15987                    ),
15988                ),
15989            );
15990            if cmd.cmd_bind_index_buffer2.is_none() {
15991                cmd.cmd_bind_index_buffer2 = core::mem::transmute(
15992                    f(
15993                        core::ffi::CStr::from_bytes_with_nul_unchecked(
15994                            b"vkCmdBindIndexBuffer2KHR\0",
15995                        ),
15996                    ),
15997                );
15998            }
15999            cmd.cmd_bind_vertex_buffers2 = core::mem::transmute(
16000                f(
16001                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16002                        b"vkCmdBindVertexBuffers2\0",
16003                    ),
16004                ),
16005            );
16006            if cmd.cmd_bind_vertex_buffers2.is_none() {
16007                cmd.cmd_bind_vertex_buffers2 = core::mem::transmute(
16008                    f(
16009                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16010                            b"vkCmdBindVertexBuffers2EXT\0",
16011                        ),
16012                    ),
16013                );
16014            }
16015            cmd.cmd_set_depth_test_enable = core::mem::transmute(
16016                f(
16017                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16018                        b"vkCmdSetDepthTestEnable\0",
16019                    ),
16020                ),
16021            );
16022            if cmd.cmd_set_depth_test_enable.is_none() {
16023                cmd.cmd_set_depth_test_enable = core::mem::transmute(
16024                    f(
16025                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16026                            b"vkCmdSetDepthTestEnableEXT\0",
16027                        ),
16028                    ),
16029                );
16030            }
16031            cmd.cmd_set_depth_write_enable = core::mem::transmute(
16032                f(
16033                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16034                        b"vkCmdSetDepthWriteEnable\0",
16035                    ),
16036                ),
16037            );
16038            if cmd.cmd_set_depth_write_enable.is_none() {
16039                cmd.cmd_set_depth_write_enable = core::mem::transmute(
16040                    f(
16041                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16042                            b"vkCmdSetDepthWriteEnableEXT\0",
16043                        ),
16044                    ),
16045                );
16046            }
16047            cmd.cmd_set_depth_compare_op = core::mem::transmute(
16048                f(
16049                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16050                        b"vkCmdSetDepthCompareOp\0",
16051                    ),
16052                ),
16053            );
16054            if cmd.cmd_set_depth_compare_op.is_none() {
16055                cmd.cmd_set_depth_compare_op = core::mem::transmute(
16056                    f(
16057                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16058                            b"vkCmdSetDepthCompareOpEXT\0",
16059                        ),
16060                    ),
16061                );
16062            }
16063            cmd.cmd_set_depth_bounds_test_enable = core::mem::transmute(
16064                f(
16065                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16066                        b"vkCmdSetDepthBoundsTestEnable\0",
16067                    ),
16068                ),
16069            );
16070            if cmd.cmd_set_depth_bounds_test_enable.is_none() {
16071                cmd.cmd_set_depth_bounds_test_enable = core::mem::transmute(
16072                    f(
16073                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16074                            b"vkCmdSetDepthBoundsTestEnableEXT\0",
16075                        ),
16076                    ),
16077                );
16078            }
16079            cmd.cmd_set_stencil_test_enable = core::mem::transmute(
16080                f(
16081                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16082                        b"vkCmdSetStencilTestEnable\0",
16083                    ),
16084                ),
16085            );
16086            if cmd.cmd_set_stencil_test_enable.is_none() {
16087                cmd.cmd_set_stencil_test_enable = core::mem::transmute(
16088                    f(
16089                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16090                            b"vkCmdSetStencilTestEnableEXT\0",
16091                        ),
16092                    ),
16093                );
16094            }
16095            cmd.cmd_set_stencil_op = core::mem::transmute(
16096                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilOp\0")),
16097            );
16098            if cmd.cmd_set_stencil_op.is_none() {
16099                cmd.cmd_set_stencil_op = core::mem::transmute(
16100                    f(
16101                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16102                            b"vkCmdSetStencilOpEXT\0",
16103                        ),
16104                    ),
16105                );
16106            }
16107            cmd.cmd_set_patch_control_points_ext = core::mem::transmute(
16108                f(
16109                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16110                        b"vkCmdSetPatchControlPointsEXT\0",
16111                    ),
16112                ),
16113            );
16114            cmd.cmd_set_rasterizer_discard_enable = core::mem::transmute(
16115                f(
16116                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16117                        b"vkCmdSetRasterizerDiscardEnable\0",
16118                    ),
16119                ),
16120            );
16121            if cmd.cmd_set_rasterizer_discard_enable.is_none() {
16122                cmd.cmd_set_rasterizer_discard_enable = core::mem::transmute(
16123                    f(
16124                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16125                            b"vkCmdSetRasterizerDiscardEnableEXT\0",
16126                        ),
16127                    ),
16128                );
16129            }
16130            cmd.cmd_set_depth_bias_enable = core::mem::transmute(
16131                f(
16132                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16133                        b"vkCmdSetDepthBiasEnable\0",
16134                    ),
16135                ),
16136            );
16137            if cmd.cmd_set_depth_bias_enable.is_none() {
16138                cmd.cmd_set_depth_bias_enable = core::mem::transmute(
16139                    f(
16140                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16141                            b"vkCmdSetDepthBiasEnableEXT\0",
16142                        ),
16143                    ),
16144                );
16145            }
16146            cmd.cmd_set_logic_op_ext = core::mem::transmute(
16147                f(
16148                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16149                        b"vkCmdSetLogicOpEXT\0",
16150                    ),
16151                ),
16152            );
16153            cmd.cmd_set_primitive_restart_enable = core::mem::transmute(
16154                f(
16155                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16156                        b"vkCmdSetPrimitiveRestartEnable\0",
16157                    ),
16158                ),
16159            );
16160            if cmd.cmd_set_primitive_restart_enable.is_none() {
16161                cmd.cmd_set_primitive_restart_enable = core::mem::transmute(
16162                    f(
16163                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16164                            b"vkCmdSetPrimitiveRestartEnableEXT\0",
16165                        ),
16166                    ),
16167                );
16168            }
16169            cmd.cmd_set_tessellation_domain_origin_ext = core::mem::transmute(
16170                f(
16171                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16172                        b"vkCmdSetTessellationDomainOriginEXT\0",
16173                    ),
16174                ),
16175            );
16176            cmd.cmd_set_depth_clamp_enable_ext = core::mem::transmute(
16177                f(
16178                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16179                        b"vkCmdSetDepthClampEnableEXT\0",
16180                    ),
16181                ),
16182            );
16183            cmd.cmd_set_polygon_mode_ext = core::mem::transmute(
16184                f(
16185                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16186                        b"vkCmdSetPolygonModeEXT\0",
16187                    ),
16188                ),
16189            );
16190            cmd.cmd_set_rasterization_samples_ext = core::mem::transmute(
16191                f(
16192                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16193                        b"vkCmdSetRasterizationSamplesEXT\0",
16194                    ),
16195                ),
16196            );
16197            cmd.cmd_set_sample_mask_ext = core::mem::transmute(
16198                f(
16199                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16200                        b"vkCmdSetSampleMaskEXT\0",
16201                    ),
16202                ),
16203            );
16204            cmd.cmd_set_alpha_to_coverage_enable_ext = core::mem::transmute(
16205                f(
16206                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16207                        b"vkCmdSetAlphaToCoverageEnableEXT\0",
16208                    ),
16209                ),
16210            );
16211            cmd.cmd_set_alpha_to_one_enable_ext = core::mem::transmute(
16212                f(
16213                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16214                        b"vkCmdSetAlphaToOneEnableEXT\0",
16215                    ),
16216                ),
16217            );
16218            cmd.cmd_set_logic_op_enable_ext = core::mem::transmute(
16219                f(
16220                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16221                        b"vkCmdSetLogicOpEnableEXT\0",
16222                    ),
16223                ),
16224            );
16225            cmd.cmd_set_color_blend_enable_ext = core::mem::transmute(
16226                f(
16227                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16228                        b"vkCmdSetColorBlendEnableEXT\0",
16229                    ),
16230                ),
16231            );
16232            cmd.cmd_set_color_blend_equation_ext = core::mem::transmute(
16233                f(
16234                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16235                        b"vkCmdSetColorBlendEquationEXT\0",
16236                    ),
16237                ),
16238            );
16239            cmd.cmd_set_color_write_mask_ext = core::mem::transmute(
16240                f(
16241                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16242                        b"vkCmdSetColorWriteMaskEXT\0",
16243                    ),
16244                ),
16245            );
16246            cmd.cmd_set_rasterization_stream_ext = core::mem::transmute(
16247                f(
16248                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16249                        b"vkCmdSetRasterizationStreamEXT\0",
16250                    ),
16251                ),
16252            );
16253            cmd.cmd_set_conservative_rasterization_mode_ext = core::mem::transmute(
16254                f(
16255                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16256                        b"vkCmdSetConservativeRasterizationModeEXT\0",
16257                    ),
16258                ),
16259            );
16260            cmd.cmd_set_extra_primitive_overestimation_size_ext = core::mem::transmute(
16261                f(
16262                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16263                        b"vkCmdSetExtraPrimitiveOverestimationSizeEXT\0",
16264                    ),
16265                ),
16266            );
16267            cmd.cmd_set_depth_clip_enable_ext = core::mem::transmute(
16268                f(
16269                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16270                        b"vkCmdSetDepthClipEnableEXT\0",
16271                    ),
16272                ),
16273            );
16274            cmd.cmd_set_sample_locations_enable_ext = core::mem::transmute(
16275                f(
16276                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16277                        b"vkCmdSetSampleLocationsEnableEXT\0",
16278                    ),
16279                ),
16280            );
16281            cmd.cmd_set_color_blend_advanced_ext = core::mem::transmute(
16282                f(
16283                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16284                        b"vkCmdSetColorBlendAdvancedEXT\0",
16285                    ),
16286                ),
16287            );
16288            cmd.cmd_set_provoking_vertex_mode_ext = core::mem::transmute(
16289                f(
16290                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16291                        b"vkCmdSetProvokingVertexModeEXT\0",
16292                    ),
16293                ),
16294            );
16295            cmd.cmd_set_line_rasterization_mode_ext = core::mem::transmute(
16296                f(
16297                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16298                        b"vkCmdSetLineRasterizationModeEXT\0",
16299                    ),
16300                ),
16301            );
16302            cmd.cmd_set_line_stipple_enable_ext = core::mem::transmute(
16303                f(
16304                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16305                        b"vkCmdSetLineStippleEnableEXT\0",
16306                    ),
16307                ),
16308            );
16309            cmd.cmd_set_depth_clip_negative_one_to_one_ext = core::mem::transmute(
16310                f(
16311                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16312                        b"vkCmdSetDepthClipNegativeOneToOneEXT\0",
16313                    ),
16314                ),
16315            );
16316            cmd.cmd_set_viewport_w_scaling_enable_nv = core::mem::transmute(
16317                f(
16318                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16319                        b"vkCmdSetViewportWScalingEnableNV\0",
16320                    ),
16321                ),
16322            );
16323            cmd.cmd_set_viewport_swizzle_nv = core::mem::transmute(
16324                f(
16325                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16326                        b"vkCmdSetViewportSwizzleNV\0",
16327                    ),
16328                ),
16329            );
16330            cmd.cmd_set_coverage_to_color_enable_nv = core::mem::transmute(
16331                f(
16332                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16333                        b"vkCmdSetCoverageToColorEnableNV\0",
16334                    ),
16335                ),
16336            );
16337            cmd.cmd_set_coverage_to_color_location_nv = core::mem::transmute(
16338                f(
16339                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16340                        b"vkCmdSetCoverageToColorLocationNV\0",
16341                    ),
16342                ),
16343            );
16344            cmd.cmd_set_coverage_modulation_mode_nv = core::mem::transmute(
16345                f(
16346                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16347                        b"vkCmdSetCoverageModulationModeNV\0",
16348                    ),
16349                ),
16350            );
16351            cmd.cmd_set_coverage_modulation_table_enable_nv = core::mem::transmute(
16352                f(
16353                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16354                        b"vkCmdSetCoverageModulationTableEnableNV\0",
16355                    ),
16356                ),
16357            );
16358            cmd.cmd_set_coverage_modulation_table_nv = core::mem::transmute(
16359                f(
16360                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16361                        b"vkCmdSetCoverageModulationTableNV\0",
16362                    ),
16363                ),
16364            );
16365            cmd.cmd_set_shading_rate_image_enable_nv = core::mem::transmute(
16366                f(
16367                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16368                        b"vkCmdSetShadingRateImageEnableNV\0",
16369                    ),
16370                ),
16371            );
16372            cmd.cmd_set_coverage_reduction_mode_nv = core::mem::transmute(
16373                f(
16374                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16375                        b"vkCmdSetCoverageReductionModeNV\0",
16376                    ),
16377                ),
16378            );
16379            cmd.cmd_set_representative_fragment_test_enable_nv = core::mem::transmute(
16380                f(
16381                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16382                        b"vkCmdSetRepresentativeFragmentTestEnableNV\0",
16383                    ),
16384                ),
16385            );
16386            cmd.create_private_data_slot = core::mem::transmute(
16387                f(
16388                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16389                        b"vkCreatePrivateDataSlot\0",
16390                    ),
16391                ),
16392            );
16393            if cmd.create_private_data_slot.is_none() {
16394                cmd.create_private_data_slot = core::mem::transmute(
16395                    f(
16396                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16397                            b"vkCreatePrivateDataSlotEXT\0",
16398                        ),
16399                    ),
16400                );
16401            }
16402            cmd.destroy_private_data_slot = core::mem::transmute(
16403                f(
16404                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16405                        b"vkDestroyPrivateDataSlot\0",
16406                    ),
16407                ),
16408            );
16409            if cmd.destroy_private_data_slot.is_none() {
16410                cmd.destroy_private_data_slot = core::mem::transmute(
16411                    f(
16412                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16413                            b"vkDestroyPrivateDataSlotEXT\0",
16414                        ),
16415                    ),
16416                );
16417            }
16418            cmd.set_private_data = core::mem::transmute(
16419                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkSetPrivateData\0")),
16420            );
16421            if cmd.set_private_data.is_none() {
16422                cmd.set_private_data = core::mem::transmute(
16423                    f(
16424                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16425                            b"vkSetPrivateDataEXT\0",
16426                        ),
16427                    ),
16428                );
16429            }
16430            cmd.get_private_data = core::mem::transmute(
16431                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetPrivateData\0")),
16432            );
16433            if cmd.get_private_data.is_none() {
16434                cmd.get_private_data = core::mem::transmute(
16435                    f(
16436                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16437                            b"vkGetPrivateDataEXT\0",
16438                        ),
16439                    ),
16440                );
16441            }
16442            cmd.cmd_copy_buffer2 = core::mem::transmute(
16443                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyBuffer2\0")),
16444            );
16445            if cmd.cmd_copy_buffer2.is_none() {
16446                cmd.cmd_copy_buffer2 = core::mem::transmute(
16447                    f(
16448                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16449                            b"vkCmdCopyBuffer2KHR\0",
16450                        ),
16451                    ),
16452                );
16453            }
16454            cmd.cmd_copy_image2 = core::mem::transmute(
16455                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyImage2\0")),
16456            );
16457            if cmd.cmd_copy_image2.is_none() {
16458                cmd.cmd_copy_image2 = core::mem::transmute(
16459                    f(
16460                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16461                            b"vkCmdCopyImage2KHR\0",
16462                        ),
16463                    ),
16464                );
16465            }
16466            cmd.cmd_blit_image2 = core::mem::transmute(
16467                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdBlitImage2\0")),
16468            );
16469            if cmd.cmd_blit_image2.is_none() {
16470                cmd.cmd_blit_image2 = core::mem::transmute(
16471                    f(
16472                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16473                            b"vkCmdBlitImage2KHR\0",
16474                        ),
16475                    ),
16476                );
16477            }
16478            cmd.cmd_copy_buffer_to_image2 = core::mem::transmute(
16479                f(
16480                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16481                        b"vkCmdCopyBufferToImage2\0",
16482                    ),
16483                ),
16484            );
16485            if cmd.cmd_copy_buffer_to_image2.is_none() {
16486                cmd.cmd_copy_buffer_to_image2 = core::mem::transmute(
16487                    f(
16488                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16489                            b"vkCmdCopyBufferToImage2KHR\0",
16490                        ),
16491                    ),
16492                );
16493            }
16494            cmd.cmd_copy_image_to_buffer2 = core::mem::transmute(
16495                f(
16496                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16497                        b"vkCmdCopyImageToBuffer2\0",
16498                    ),
16499                ),
16500            );
16501            if cmd.cmd_copy_image_to_buffer2.is_none() {
16502                cmd.cmd_copy_image_to_buffer2 = core::mem::transmute(
16503                    f(
16504                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16505                            b"vkCmdCopyImageToBuffer2KHR\0",
16506                        ),
16507                    ),
16508                );
16509            }
16510            cmd.cmd_resolve_image2 = core::mem::transmute(
16511                f(
16512                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16513                        b"vkCmdResolveImage2\0",
16514                    ),
16515                ),
16516            );
16517            if cmd.cmd_resolve_image2.is_none() {
16518                cmd.cmd_resolve_image2 = core::mem::transmute(
16519                    f(
16520                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16521                            b"vkCmdResolveImage2KHR\0",
16522                        ),
16523                    ),
16524                );
16525            }
16526            cmd.cmd_refresh_objects_khr = core::mem::transmute(
16527                f(
16528                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16529                        b"vkCmdRefreshObjectsKHR\0",
16530                    ),
16531                ),
16532            );
16533            cmd.cmd_set_fragment_shading_rate_khr = core::mem::transmute(
16534                f(
16535                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16536                        b"vkCmdSetFragmentShadingRateKHR\0",
16537                    ),
16538                ),
16539            );
16540            cmd.cmd_set_fragment_shading_rate_enum_nv = core::mem::transmute(
16541                f(
16542                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16543                        b"vkCmdSetFragmentShadingRateEnumNV\0",
16544                    ),
16545                ),
16546            );
16547            cmd.get_acceleration_structure_build_sizes_khr = core::mem::transmute(
16548                f(
16549                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16550                        b"vkGetAccelerationStructureBuildSizesKHR\0",
16551                    ),
16552                ),
16553            );
16554            cmd.cmd_set_vertex_input_ext = core::mem::transmute(
16555                f(
16556                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16557                        b"vkCmdSetVertexInputEXT\0",
16558                    ),
16559                ),
16560            );
16561            cmd.cmd_set_color_write_enable_ext = core::mem::transmute(
16562                f(
16563                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16564                        b"vkCmdSetColorWriteEnableEXT\0",
16565                    ),
16566                ),
16567            );
16568            cmd.cmd_set_event2 = core::mem::transmute(
16569                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetEvent2\0")),
16570            );
16571            if cmd.cmd_set_event2.is_none() {
16572                cmd.cmd_set_event2 = core::mem::transmute(
16573                    f(
16574                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16575                            b"vkCmdSetEvent2KHR\0",
16576                        ),
16577                    ),
16578                );
16579            }
16580            cmd.cmd_reset_event2 = core::mem::transmute(
16581                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdResetEvent2\0")),
16582            );
16583            if cmd.cmd_reset_event2.is_none() {
16584                cmd.cmd_reset_event2 = core::mem::transmute(
16585                    f(
16586                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16587                            b"vkCmdResetEvent2KHR\0",
16588                        ),
16589                    ),
16590                );
16591            }
16592            cmd.cmd_wait_events2 = core::mem::transmute(
16593                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdWaitEvents2\0")),
16594            );
16595            if cmd.cmd_wait_events2.is_none() {
16596                cmd.cmd_wait_events2 = core::mem::transmute(
16597                    f(
16598                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16599                            b"vkCmdWaitEvents2KHR\0",
16600                        ),
16601                    ),
16602                );
16603            }
16604            cmd.cmd_pipeline_barrier2 = core::mem::transmute(
16605                f(
16606                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16607                        b"vkCmdPipelineBarrier2\0",
16608                    ),
16609                ),
16610            );
16611            if cmd.cmd_pipeline_barrier2.is_none() {
16612                cmd.cmd_pipeline_barrier2 = core::mem::transmute(
16613                    f(
16614                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16615                            b"vkCmdPipelineBarrier2KHR\0",
16616                        ),
16617                    ),
16618                );
16619            }
16620            cmd.queue_submit2 = core::mem::transmute(
16621                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkQueueSubmit2\0")),
16622            );
16623            if cmd.queue_submit2.is_none() {
16624                cmd.queue_submit2 = core::mem::transmute(
16625                    f(
16626                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16627                            b"vkQueueSubmit2KHR\0",
16628                        ),
16629                    ),
16630                );
16631            }
16632            cmd.cmd_write_timestamp2 = core::mem::transmute(
16633                f(
16634                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16635                        b"vkCmdWriteTimestamp2\0",
16636                    ),
16637                ),
16638            );
16639            if cmd.cmd_write_timestamp2.is_none() {
16640                cmd.cmd_write_timestamp2 = core::mem::transmute(
16641                    f(
16642                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16643                            b"vkCmdWriteTimestamp2KHR\0",
16644                        ),
16645                    ),
16646                );
16647            }
16648            cmd.cmd_write_buffer_marker2_amd = core::mem::transmute(
16649                f(
16650                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16651                        b"vkCmdWriteBufferMarker2AMD\0",
16652                    ),
16653                ),
16654            );
16655            cmd.get_queue_checkpoint_data2_nv = core::mem::transmute(
16656                f(
16657                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16658                        b"vkGetQueueCheckpointData2NV\0",
16659                    ),
16660                ),
16661            );
16662            cmd.copy_memory_to_image = core::mem::transmute(
16663                f(
16664                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16665                        b"vkCopyMemoryToImage\0",
16666                    ),
16667                ),
16668            );
16669            if cmd.copy_memory_to_image.is_none() {
16670                cmd.copy_memory_to_image = core::mem::transmute(
16671                    f(
16672                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16673                            b"vkCopyMemoryToImageEXT\0",
16674                        ),
16675                    ),
16676                );
16677            }
16678            cmd.copy_image_to_memory = core::mem::transmute(
16679                f(
16680                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16681                        b"vkCopyImageToMemory\0",
16682                    ),
16683                ),
16684            );
16685            if cmd.copy_image_to_memory.is_none() {
16686                cmd.copy_image_to_memory = core::mem::transmute(
16687                    f(
16688                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16689                            b"vkCopyImageToMemoryEXT\0",
16690                        ),
16691                    ),
16692                );
16693            }
16694            cmd.copy_image_to_image = core::mem::transmute(
16695                f(
16696                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16697                        b"vkCopyImageToImage\0",
16698                    ),
16699                ),
16700            );
16701            if cmd.copy_image_to_image.is_none() {
16702                cmd.copy_image_to_image = core::mem::transmute(
16703                    f(
16704                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16705                            b"vkCopyImageToImageEXT\0",
16706                        ),
16707                    ),
16708                );
16709            }
16710            cmd.transition_image_layout = core::mem::transmute(
16711                f(
16712                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16713                        b"vkTransitionImageLayout\0",
16714                    ),
16715                ),
16716            );
16717            if cmd.transition_image_layout.is_none() {
16718                cmd.transition_image_layout = core::mem::transmute(
16719                    f(
16720                        core::ffi::CStr::from_bytes_with_nul_unchecked(
16721                            b"vkTransitionImageLayoutEXT\0",
16722                        ),
16723                    ),
16724                );
16725            }
16726            cmd.get_command_pool_memory_consumption = core::mem::transmute(
16727                f(
16728                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16729                        b"vkGetCommandPoolMemoryConsumption\0",
16730                    ),
16731                ),
16732            );
16733            cmd.create_video_session_khr = core::mem::transmute(
16734                f(
16735                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16736                        b"vkCreateVideoSessionKHR\0",
16737                    ),
16738                ),
16739            );
16740            cmd.destroy_video_session_khr = core::mem::transmute(
16741                f(
16742                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16743                        b"vkDestroyVideoSessionKHR\0",
16744                    ),
16745                ),
16746            );
16747            cmd.create_video_session_parameters_khr = core::mem::transmute(
16748                f(
16749                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16750                        b"vkCreateVideoSessionParametersKHR\0",
16751                    ),
16752                ),
16753            );
16754            cmd.update_video_session_parameters_khr = core::mem::transmute(
16755                f(
16756                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16757                        b"vkUpdateVideoSessionParametersKHR\0",
16758                    ),
16759                ),
16760            );
16761            cmd.get_encoded_video_session_parameters_khr = core::mem::transmute(
16762                f(
16763                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16764                        b"vkGetEncodedVideoSessionParametersKHR\0",
16765                    ),
16766                ),
16767            );
16768            cmd.destroy_video_session_parameters_khr = core::mem::transmute(
16769                f(
16770                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16771                        b"vkDestroyVideoSessionParametersKHR\0",
16772                    ),
16773                ),
16774            );
16775            cmd.get_video_session_memory_requirements_khr = core::mem::transmute(
16776                f(
16777                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16778                        b"vkGetVideoSessionMemoryRequirementsKHR\0",
16779                    ),
16780                ),
16781            );
16782            cmd.bind_video_session_memory_khr = core::mem::transmute(
16783                f(
16784                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16785                        b"vkBindVideoSessionMemoryKHR\0",
16786                    ),
16787                ),
16788            );
16789            cmd.cmd_decode_video_khr = core::mem::transmute(
16790                f(
16791                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16792                        b"vkCmdDecodeVideoKHR\0",
16793                    ),
16794                ),
16795            );
16796            cmd.cmd_begin_video_coding_khr = core::mem::transmute(
16797                f(
16798                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16799                        b"vkCmdBeginVideoCodingKHR\0",
16800                    ),
16801                ),
16802            );
16803            cmd.cmd_control_video_coding_khr = core::mem::transmute(
16804                f(
16805                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16806                        b"vkCmdControlVideoCodingKHR\0",
16807                    ),
16808                ),
16809            );
16810            cmd.cmd_end_video_coding_khr = core::mem::transmute(
16811                f(
16812                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16813                        b"vkCmdEndVideoCodingKHR\0",
16814                    ),
16815                ),
16816            );
16817            cmd.cmd_encode_video_khr = core::mem::transmute(
16818                f(
16819                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16820                        b"vkCmdEncodeVideoKHR\0",
16821                    ),
16822                ),
16823            );
16824            cmd.cmd_decompress_memory_nv = core::mem::transmute(
16825                f(
16826                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16827                        b"vkCmdDecompressMemoryNV\0",
16828                    ),
16829                ),
16830            );
16831            cmd.cmd_decompress_memory_indirect_count_nv = core::mem::transmute(
16832                f(
16833                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16834                        b"vkCmdDecompressMemoryIndirectCountNV\0",
16835                    ),
16836                ),
16837            );
16838            cmd.get_partitioned_acceleration_structures_build_sizes_nv = core::mem::transmute(
16839                f(
16840                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16841                        b"vkGetPartitionedAccelerationStructuresBuildSizesNV\0",
16842                    ),
16843                ),
16844            );
16845            cmd.cmd_build_partitioned_acceleration_structures_nv = core::mem::transmute(
16846                f(
16847                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16848                        b"vkCmdBuildPartitionedAccelerationStructuresNV\0",
16849                    ),
16850                ),
16851            );
16852            cmd.cmd_decompress_memory_ext = core::mem::transmute(
16853                f(
16854                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16855                        b"vkCmdDecompressMemoryEXT\0",
16856                    ),
16857                ),
16858            );
16859            cmd.cmd_decompress_memory_indirect_count_ext = core::mem::transmute(
16860                f(
16861                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16862                        b"vkCmdDecompressMemoryIndirectCountEXT\0",
16863                    ),
16864                ),
16865            );
16866            cmd.create_cu_module_nvx = core::mem::transmute(
16867                f(
16868                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16869                        b"vkCreateCuModuleNVX\0",
16870                    ),
16871                ),
16872            );
16873            cmd.create_cu_function_nvx = core::mem::transmute(
16874                f(
16875                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16876                        b"vkCreateCuFunctionNVX\0",
16877                    ),
16878                ),
16879            );
16880            cmd.destroy_cu_module_nvx = core::mem::transmute(
16881                f(
16882                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16883                        b"vkDestroyCuModuleNVX\0",
16884                    ),
16885                ),
16886            );
16887            cmd.destroy_cu_function_nvx = core::mem::transmute(
16888                f(
16889                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16890                        b"vkDestroyCuFunctionNVX\0",
16891                    ),
16892                ),
16893            );
16894            cmd.cmd_cu_launch_kernel_nvx = core::mem::transmute(
16895                f(
16896                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16897                        b"vkCmdCuLaunchKernelNVX\0",
16898                    ),
16899                ),
16900            );
16901            cmd.get_descriptor_set_layout_size_ext = core::mem::transmute(
16902                f(
16903                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16904                        b"vkGetDescriptorSetLayoutSizeEXT\0",
16905                    ),
16906                ),
16907            );
16908            cmd.get_descriptor_set_layout_binding_offset_ext = core::mem::transmute(
16909                f(
16910                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16911                        b"vkGetDescriptorSetLayoutBindingOffsetEXT\0",
16912                    ),
16913                ),
16914            );
16915            cmd.get_descriptor_ext = core::mem::transmute(
16916                f(
16917                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16918                        b"vkGetDescriptorEXT\0",
16919                    ),
16920                ),
16921            );
16922            cmd.cmd_bind_descriptor_buffers_ext = core::mem::transmute(
16923                f(
16924                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16925                        b"vkCmdBindDescriptorBuffersEXT\0",
16926                    ),
16927                ),
16928            );
16929            cmd.cmd_set_descriptor_buffer_offsets_ext = core::mem::transmute(
16930                f(
16931                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16932                        b"vkCmdSetDescriptorBufferOffsetsEXT\0",
16933                    ),
16934                ),
16935            );
16936            cmd.cmd_bind_descriptor_buffer_embedded_samplers_ext = core::mem::transmute(
16937                f(
16938                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16939                        b"vkCmdBindDescriptorBufferEmbeddedSamplersEXT\0",
16940                    ),
16941                ),
16942            );
16943            cmd.get_buffer_opaque_capture_descriptor_data_ext = core::mem::transmute(
16944                f(
16945                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16946                        b"vkGetBufferOpaqueCaptureDescriptorDataEXT\0",
16947                    ),
16948                ),
16949            );
16950            cmd.get_image_opaque_capture_descriptor_data_ext = core::mem::transmute(
16951                f(
16952                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16953                        b"vkGetImageOpaqueCaptureDescriptorDataEXT\0",
16954                    ),
16955                ),
16956            );
16957            cmd.get_image_view_opaque_capture_descriptor_data_ext = core::mem::transmute(
16958                f(
16959                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16960                        b"vkGetImageViewOpaqueCaptureDescriptorDataEXT\0",
16961                    ),
16962                ),
16963            );
16964            cmd.get_sampler_opaque_capture_descriptor_data_ext = core::mem::transmute(
16965                f(
16966                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16967                        b"vkGetSamplerOpaqueCaptureDescriptorDataEXT\0",
16968                    ),
16969                ),
16970            );
16971            cmd.get_acceleration_structure_opaque_capture_descriptor_data_ext = core::mem::transmute(
16972                f(
16973                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16974                        b"vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT\0",
16975                    ),
16976                ),
16977            );
16978            cmd.set_device_memory_priority_ext = core::mem::transmute(
16979                f(
16980                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16981                        b"vkSetDeviceMemoryPriorityEXT\0",
16982                    ),
16983                ),
16984            );
16985            cmd.wait_for_present2_khr = core::mem::transmute(
16986                f(
16987                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16988                        b"vkWaitForPresent2KHR\0",
16989                    ),
16990                ),
16991            );
16992            cmd.wait_for_present_khr = core::mem::transmute(
16993                f(
16994                    core::ffi::CStr::from_bytes_with_nul_unchecked(
16995                        b"vkWaitForPresentKHR\0",
16996                    ),
16997                ),
16998            );
16999            cmd.create_buffer_collection_fuchsia = core::mem::transmute(
17000                f(
17001                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17002                        b"vkCreateBufferCollectionFUCHSIA\0",
17003                    ),
17004                ),
17005            );
17006            cmd.set_buffer_collection_buffer_constraints_fuchsia = core::mem::transmute(
17007                f(
17008                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17009                        b"vkSetBufferCollectionBufferConstraintsFUCHSIA\0",
17010                    ),
17011                ),
17012            );
17013            cmd.set_buffer_collection_image_constraints_fuchsia = core::mem::transmute(
17014                f(
17015                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17016                        b"vkSetBufferCollectionImageConstraintsFUCHSIA\0",
17017                    ),
17018                ),
17019            );
17020            cmd.destroy_buffer_collection_fuchsia = core::mem::transmute(
17021                f(
17022                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17023                        b"vkDestroyBufferCollectionFUCHSIA\0",
17024                    ),
17025                ),
17026            );
17027            cmd.get_buffer_collection_properties_fuchsia = core::mem::transmute(
17028                f(
17029                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17030                        b"vkGetBufferCollectionPropertiesFUCHSIA\0",
17031                    ),
17032                ),
17033            );
17034            cmd.create_cuda_module_nv = core::mem::transmute(
17035                f(
17036                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17037                        b"vkCreateCudaModuleNV\0",
17038                    ),
17039                ),
17040            );
17041            cmd.get_cuda_module_cache_nv = core::mem::transmute(
17042                f(
17043                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17044                        b"vkGetCudaModuleCacheNV\0",
17045                    ),
17046                ),
17047            );
17048            cmd.create_cuda_function_nv = core::mem::transmute(
17049                f(
17050                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17051                        b"vkCreateCudaFunctionNV\0",
17052                    ),
17053                ),
17054            );
17055            cmd.destroy_cuda_module_nv = core::mem::transmute(
17056                f(
17057                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17058                        b"vkDestroyCudaModuleNV\0",
17059                    ),
17060                ),
17061            );
17062            cmd.destroy_cuda_function_nv = core::mem::transmute(
17063                f(
17064                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17065                        b"vkDestroyCudaFunctionNV\0",
17066                    ),
17067                ),
17068            );
17069            cmd.cmd_cuda_launch_kernel_nv = core::mem::transmute(
17070                f(
17071                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17072                        b"vkCmdCudaLaunchKernelNV\0",
17073                    ),
17074                ),
17075            );
17076            cmd.cmd_begin_rendering = core::mem::transmute(
17077                f(
17078                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17079                        b"vkCmdBeginRendering\0",
17080                    ),
17081                ),
17082            );
17083            if cmd.cmd_begin_rendering.is_none() {
17084                cmd.cmd_begin_rendering = core::mem::transmute(
17085                    f(
17086                        core::ffi::CStr::from_bytes_with_nul_unchecked(
17087                            b"vkCmdBeginRenderingKHR\0",
17088                        ),
17089                    ),
17090                );
17091            }
17092            cmd.cmd_end_rendering = core::mem::transmute(
17093                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdEndRendering\0")),
17094            );
17095            if cmd.cmd_end_rendering.is_none() {
17096                cmd.cmd_end_rendering = core::mem::transmute(
17097                    f(
17098                        core::ffi::CStr::from_bytes_with_nul_unchecked(
17099                            b"vkCmdEndRenderingKHR\0",
17100                        ),
17101                    ),
17102                );
17103            }
17104            cmd.cmd_end_rendering2_khr = core::mem::transmute(
17105                f(
17106                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17107                        b"vkCmdEndRendering2KHR\0",
17108                    ),
17109                ),
17110            );
17111            if cmd.cmd_end_rendering2_khr.is_none() {
17112                cmd.cmd_end_rendering2_khr = core::mem::transmute(
17113                    f(
17114                        core::ffi::CStr::from_bytes_with_nul_unchecked(
17115                            b"vkCmdEndRendering2EXT\0",
17116                        ),
17117                    ),
17118                );
17119            }
17120            cmd.get_descriptor_set_layout_host_mapping_info_valve = core::mem::transmute(
17121                f(
17122                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17123                        b"vkGetDescriptorSetLayoutHostMappingInfoVALVE\0",
17124                    ),
17125                ),
17126            );
17127            cmd.get_descriptor_set_host_mapping_valve = core::mem::transmute(
17128                f(
17129                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17130                        b"vkGetDescriptorSetHostMappingVALVE\0",
17131                    ),
17132                ),
17133            );
17134            cmd.create_micromap_ext = core::mem::transmute(
17135                f(
17136                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17137                        b"vkCreateMicromapEXT\0",
17138                    ),
17139                ),
17140            );
17141            cmd.cmd_build_micromaps_ext = core::mem::transmute(
17142                f(
17143                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17144                        b"vkCmdBuildMicromapsEXT\0",
17145                    ),
17146                ),
17147            );
17148            cmd.build_micromaps_ext = core::mem::transmute(
17149                f(
17150                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17151                        b"vkBuildMicromapsEXT\0",
17152                    ),
17153                ),
17154            );
17155            cmd.destroy_micromap_ext = core::mem::transmute(
17156                f(
17157                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17158                        b"vkDestroyMicromapEXT\0",
17159                    ),
17160                ),
17161            );
17162            cmd.cmd_copy_micromap_ext = core::mem::transmute(
17163                f(
17164                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17165                        b"vkCmdCopyMicromapEXT\0",
17166                    ),
17167                ),
17168            );
17169            cmd.copy_micromap_ext = core::mem::transmute(
17170                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCopyMicromapEXT\0")),
17171            );
17172            cmd.cmd_copy_micromap_to_memory_ext = core::mem::transmute(
17173                f(
17174                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17175                        b"vkCmdCopyMicromapToMemoryEXT\0",
17176                    ),
17177                ),
17178            );
17179            cmd.copy_micromap_to_memory_ext = core::mem::transmute(
17180                f(
17181                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17182                        b"vkCopyMicromapToMemoryEXT\0",
17183                    ),
17184                ),
17185            );
17186            cmd.cmd_copy_memory_to_micromap_ext = core::mem::transmute(
17187                f(
17188                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17189                        b"vkCmdCopyMemoryToMicromapEXT\0",
17190                    ),
17191                ),
17192            );
17193            cmd.copy_memory_to_micromap_ext = core::mem::transmute(
17194                f(
17195                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17196                        b"vkCopyMemoryToMicromapEXT\0",
17197                    ),
17198                ),
17199            );
17200            cmd.cmd_write_micromaps_properties_ext = core::mem::transmute(
17201                f(
17202                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17203                        b"vkCmdWriteMicromapsPropertiesEXT\0",
17204                    ),
17205                ),
17206            );
17207            cmd.write_micromaps_properties_ext = core::mem::transmute(
17208                f(
17209                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17210                        b"vkWriteMicromapsPropertiesEXT\0",
17211                    ),
17212                ),
17213            );
17214            cmd.get_device_micromap_compatibility_ext = core::mem::transmute(
17215                f(
17216                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17217                        b"vkGetDeviceMicromapCompatibilityEXT\0",
17218                    ),
17219                ),
17220            );
17221            cmd.get_micromap_build_sizes_ext = core::mem::transmute(
17222                f(
17223                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17224                        b"vkGetMicromapBuildSizesEXT\0",
17225                    ),
17226                ),
17227            );
17228            cmd.get_shader_module_identifier_ext = core::mem::transmute(
17229                f(
17230                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17231                        b"vkGetShaderModuleIdentifierEXT\0",
17232                    ),
17233                ),
17234            );
17235            cmd.get_shader_module_create_info_identifier_ext = core::mem::transmute(
17236                f(
17237                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17238                        b"vkGetShaderModuleCreateInfoIdentifierEXT\0",
17239                    ),
17240                ),
17241            );
17242            cmd.get_image_subresource_layout2 = core::mem::transmute(
17243                f(
17244                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17245                        b"vkGetImageSubresourceLayout2\0",
17246                    ),
17247                ),
17248            );
17249            if cmd.get_image_subresource_layout2.is_none() {
17250                cmd.get_image_subresource_layout2 = core::mem::transmute(
17251                    f(
17252                        core::ffi::CStr::from_bytes_with_nul_unchecked(
17253                            b"vkGetImageSubresourceLayout2KHR\0",
17254                        ),
17255                    ),
17256                );
17257            }
17258            if cmd.get_image_subresource_layout2.is_none() {
17259                cmd.get_image_subresource_layout2 = core::mem::transmute(
17260                    f(
17261                        core::ffi::CStr::from_bytes_with_nul_unchecked(
17262                            b"vkGetImageSubresourceLayout2EXT\0",
17263                        ),
17264                    ),
17265                );
17266            }
17267            cmd.get_pipeline_properties_ext = core::mem::transmute(
17268                f(
17269                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17270                        b"vkGetPipelinePropertiesEXT\0",
17271                    ),
17272                ),
17273            );
17274            cmd.export_metal_objects_ext = core::mem::transmute(
17275                f(
17276                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17277                        b"vkExportMetalObjectsEXT\0",
17278                    ),
17279                ),
17280            );
17281            cmd.cmd_bind_tile_memory_qcom = core::mem::transmute(
17282                f(
17283                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17284                        b"vkCmdBindTileMemoryQCOM\0",
17285                    ),
17286                ),
17287            );
17288            cmd.get_framebuffer_tile_properties_qcom = core::mem::transmute(
17289                f(
17290                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17291                        b"vkGetFramebufferTilePropertiesQCOM\0",
17292                    ),
17293                ),
17294            );
17295            cmd.get_dynamic_rendering_tile_properties_qcom = core::mem::transmute(
17296                f(
17297                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17298                        b"vkGetDynamicRenderingTilePropertiesQCOM\0",
17299                    ),
17300                ),
17301            );
17302            cmd.create_optical_flow_session_nv = core::mem::transmute(
17303                f(
17304                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17305                        b"vkCreateOpticalFlowSessionNV\0",
17306                    ),
17307                ),
17308            );
17309            cmd.destroy_optical_flow_session_nv = core::mem::transmute(
17310                f(
17311                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17312                        b"vkDestroyOpticalFlowSessionNV\0",
17313                    ),
17314                ),
17315            );
17316            cmd.bind_optical_flow_session_image_nv = core::mem::transmute(
17317                f(
17318                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17319                        b"vkBindOpticalFlowSessionImageNV\0",
17320                    ),
17321                ),
17322            );
17323            cmd.cmd_optical_flow_execute_nv = core::mem::transmute(
17324                f(
17325                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17326                        b"vkCmdOpticalFlowExecuteNV\0",
17327                    ),
17328                ),
17329            );
17330            cmd.get_device_fault_info_ext = core::mem::transmute(
17331                f(
17332                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17333                        b"vkGetDeviceFaultInfoEXT\0",
17334                    ),
17335                ),
17336            );
17337            cmd.get_device_fault_reports_khr = core::mem::transmute(
17338                f(
17339                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17340                        b"vkGetDeviceFaultReportsKHR\0",
17341                    ),
17342                ),
17343            );
17344            cmd.get_device_fault_debug_info_khr = core::mem::transmute(
17345                f(
17346                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17347                        b"vkGetDeviceFaultDebugInfoKHR\0",
17348                    ),
17349                ),
17350            );
17351            cmd.cmd_set_depth_bias2_ext = core::mem::transmute(
17352                f(
17353                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17354                        b"vkCmdSetDepthBias2EXT\0",
17355                    ),
17356                ),
17357            );
17358            cmd.release_swapchain_images_khr = core::mem::transmute(
17359                f(
17360                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17361                        b"vkReleaseSwapchainImagesKHR\0",
17362                    ),
17363                ),
17364            );
17365            if cmd.release_swapchain_images_khr.is_none() {
17366                cmd.release_swapchain_images_khr = core::mem::transmute(
17367                    f(
17368                        core::ffi::CStr::from_bytes_with_nul_unchecked(
17369                            b"vkReleaseSwapchainImagesEXT\0",
17370                        ),
17371                    ),
17372                );
17373            }
17374            cmd.get_device_image_subresource_layout = core::mem::transmute(
17375                f(
17376                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17377                        b"vkGetDeviceImageSubresourceLayout\0",
17378                    ),
17379                ),
17380            );
17381            if cmd.get_device_image_subresource_layout.is_none() {
17382                cmd.get_device_image_subresource_layout = core::mem::transmute(
17383                    f(
17384                        core::ffi::CStr::from_bytes_with_nul_unchecked(
17385                            b"vkGetDeviceImageSubresourceLayoutKHR\0",
17386                        ),
17387                    ),
17388                );
17389            }
17390            cmd.map_memory2 = core::mem::transmute(
17391                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkMapMemory2\0")),
17392            );
17393            if cmd.map_memory2.is_none() {
17394                cmd.map_memory2 = core::mem::transmute(
17395                    f(
17396                        core::ffi::CStr::from_bytes_with_nul_unchecked(
17397                            b"vkMapMemory2KHR\0",
17398                        ),
17399                    ),
17400                );
17401            }
17402            cmd.unmap_memory2 = core::mem::transmute(
17403                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkUnmapMemory2\0")),
17404            );
17405            if cmd.unmap_memory2.is_none() {
17406                cmd.unmap_memory2 = core::mem::transmute(
17407                    f(
17408                        core::ffi::CStr::from_bytes_with_nul_unchecked(
17409                            b"vkUnmapMemory2KHR\0",
17410                        ),
17411                    ),
17412                );
17413            }
17414            cmd.create_shaders_ext = core::mem::transmute(
17415                f(
17416                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17417                        b"vkCreateShadersEXT\0",
17418                    ),
17419                ),
17420            );
17421            cmd.destroy_shader_ext = core::mem::transmute(
17422                f(
17423                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17424                        b"vkDestroyShaderEXT\0",
17425                    ),
17426                ),
17427            );
17428            cmd.get_shader_binary_data_ext = core::mem::transmute(
17429                f(
17430                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17431                        b"vkGetShaderBinaryDataEXT\0",
17432                    ),
17433                ),
17434            );
17435            cmd.cmd_bind_shaders_ext = core::mem::transmute(
17436                f(
17437                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17438                        b"vkCmdBindShadersEXT\0",
17439                    ),
17440                ),
17441            );
17442            cmd.set_swapchain_present_timing_queue_size_ext = core::mem::transmute(
17443                f(
17444                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17445                        b"vkSetSwapchainPresentTimingQueueSizeEXT\0",
17446                    ),
17447                ),
17448            );
17449            cmd.get_swapchain_timing_properties_ext = core::mem::transmute(
17450                f(
17451                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17452                        b"vkGetSwapchainTimingPropertiesEXT\0",
17453                    ),
17454                ),
17455            );
17456            cmd.get_swapchain_time_domain_properties_ext = core::mem::transmute(
17457                f(
17458                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17459                        b"vkGetSwapchainTimeDomainPropertiesEXT\0",
17460                    ),
17461                ),
17462            );
17463            cmd.get_past_presentation_timing_ext = core::mem::transmute(
17464                f(
17465                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17466                        b"vkGetPastPresentationTimingEXT\0",
17467                    ),
17468                ),
17469            );
17470            cmd.get_screen_buffer_properties_qnx = core::mem::transmute(
17471                f(
17472                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17473                        b"vkGetScreenBufferPropertiesQNX\0",
17474                    ),
17475                ),
17476            );
17477            cmd.get_execution_graph_pipeline_scratch_size_amdx = core::mem::transmute(
17478                f(
17479                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17480                        b"vkGetExecutionGraphPipelineScratchSizeAMDX\0",
17481                    ),
17482                ),
17483            );
17484            cmd.get_execution_graph_pipeline_node_index_amdx = core::mem::transmute(
17485                f(
17486                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17487                        b"vkGetExecutionGraphPipelineNodeIndexAMDX\0",
17488                    ),
17489                ),
17490            );
17491            cmd.create_execution_graph_pipelines_amdx = core::mem::transmute(
17492                f(
17493                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17494                        b"vkCreateExecutionGraphPipelinesAMDX\0",
17495                    ),
17496                ),
17497            );
17498            cmd.cmd_initialize_graph_scratch_memory_amdx = core::mem::transmute(
17499                f(
17500                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17501                        b"vkCmdInitializeGraphScratchMemoryAMDX\0",
17502                    ),
17503                ),
17504            );
17505            cmd.cmd_dispatch_graph_amdx = core::mem::transmute(
17506                f(
17507                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17508                        b"vkCmdDispatchGraphAMDX\0",
17509                    ),
17510                ),
17511            );
17512            cmd.cmd_dispatch_graph_indirect_amdx = core::mem::transmute(
17513                f(
17514                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17515                        b"vkCmdDispatchGraphIndirectAMDX\0",
17516                    ),
17517                ),
17518            );
17519            cmd.cmd_dispatch_graph_indirect_count_amdx = core::mem::transmute(
17520                f(
17521                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17522                        b"vkCmdDispatchGraphIndirectCountAMDX\0",
17523                    ),
17524                ),
17525            );
17526            cmd.cmd_bind_descriptor_sets2 = core::mem::transmute(
17527                f(
17528                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17529                        b"vkCmdBindDescriptorSets2\0",
17530                    ),
17531                ),
17532            );
17533            if cmd.cmd_bind_descriptor_sets2.is_none() {
17534                cmd.cmd_bind_descriptor_sets2 = core::mem::transmute(
17535                    f(
17536                        core::ffi::CStr::from_bytes_with_nul_unchecked(
17537                            b"vkCmdBindDescriptorSets2KHR\0",
17538                        ),
17539                    ),
17540                );
17541            }
17542            cmd.cmd_push_constants2 = core::mem::transmute(
17543                f(
17544                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17545                        b"vkCmdPushConstants2\0",
17546                    ),
17547                ),
17548            );
17549            if cmd.cmd_push_constants2.is_none() {
17550                cmd.cmd_push_constants2 = core::mem::transmute(
17551                    f(
17552                        core::ffi::CStr::from_bytes_with_nul_unchecked(
17553                            b"vkCmdPushConstants2KHR\0",
17554                        ),
17555                    ),
17556                );
17557            }
17558            cmd.cmd_push_descriptor_set2 = core::mem::transmute(
17559                f(
17560                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17561                        b"vkCmdPushDescriptorSet2\0",
17562                    ),
17563                ),
17564            );
17565            if cmd.cmd_push_descriptor_set2.is_none() {
17566                cmd.cmd_push_descriptor_set2 = core::mem::transmute(
17567                    f(
17568                        core::ffi::CStr::from_bytes_with_nul_unchecked(
17569                            b"vkCmdPushDescriptorSet2KHR\0",
17570                        ),
17571                    ),
17572                );
17573            }
17574            cmd.cmd_push_descriptor_set_with_template2 = core::mem::transmute(
17575                f(
17576                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17577                        b"vkCmdPushDescriptorSetWithTemplate2\0",
17578                    ),
17579                ),
17580            );
17581            if cmd.cmd_push_descriptor_set_with_template2.is_none() {
17582                cmd.cmd_push_descriptor_set_with_template2 = core::mem::transmute(
17583                    f(
17584                        core::ffi::CStr::from_bytes_with_nul_unchecked(
17585                            b"vkCmdPushDescriptorSetWithTemplate2KHR\0",
17586                        ),
17587                    ),
17588                );
17589            }
17590            cmd.cmd_set_descriptor_buffer_offsets2_ext = core::mem::transmute(
17591                f(
17592                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17593                        b"vkCmdSetDescriptorBufferOffsets2EXT\0",
17594                    ),
17595                ),
17596            );
17597            cmd.cmd_bind_descriptor_buffer_embedded_samplers2_ext = core::mem::transmute(
17598                f(
17599                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17600                        b"vkCmdBindDescriptorBufferEmbeddedSamplers2EXT\0",
17601                    ),
17602                ),
17603            );
17604            cmd.set_latency_sleep_mode_nv = core::mem::transmute(
17605                f(
17606                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17607                        b"vkSetLatencySleepModeNV\0",
17608                    ),
17609                ),
17610            );
17611            cmd.latency_sleep_nv = core::mem::transmute(
17612                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkLatencySleepNV\0")),
17613            );
17614            cmd.set_latency_marker_nv = core::mem::transmute(
17615                f(
17616                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17617                        b"vkSetLatencyMarkerNV\0",
17618                    ),
17619                ),
17620            );
17621            cmd.get_latency_timings_nv = core::mem::transmute(
17622                f(
17623                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17624                        b"vkGetLatencyTimingsNV\0",
17625                    ),
17626                ),
17627            );
17628            cmd.queue_notify_out_of_band_nv = core::mem::transmute(
17629                f(
17630                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17631                        b"vkQueueNotifyOutOfBandNV\0",
17632                    ),
17633                ),
17634            );
17635            cmd.cmd_set_rendering_attachment_locations = core::mem::transmute(
17636                f(
17637                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17638                        b"vkCmdSetRenderingAttachmentLocations\0",
17639                    ),
17640                ),
17641            );
17642            if cmd.cmd_set_rendering_attachment_locations.is_none() {
17643                cmd.cmd_set_rendering_attachment_locations = core::mem::transmute(
17644                    f(
17645                        core::ffi::CStr::from_bytes_with_nul_unchecked(
17646                            b"vkCmdSetRenderingAttachmentLocationsKHR\0",
17647                        ),
17648                    ),
17649                );
17650            }
17651            cmd.cmd_set_rendering_input_attachment_indices = core::mem::transmute(
17652                f(
17653                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17654                        b"vkCmdSetRenderingInputAttachmentIndices\0",
17655                    ),
17656                ),
17657            );
17658            if cmd.cmd_set_rendering_input_attachment_indices.is_none() {
17659                cmd.cmd_set_rendering_input_attachment_indices = core::mem::transmute(
17660                    f(
17661                        core::ffi::CStr::from_bytes_with_nul_unchecked(
17662                            b"vkCmdSetRenderingInputAttachmentIndicesKHR\0",
17663                        ),
17664                    ),
17665                );
17666            }
17667            cmd.cmd_set_depth_clamp_range_ext = core::mem::transmute(
17668                f(
17669                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17670                        b"vkCmdSetDepthClampRangeEXT\0",
17671                    ),
17672                ),
17673            );
17674            cmd.get_memory_metal_handle_ext = core::mem::transmute(
17675                f(
17676                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17677                        b"vkGetMemoryMetalHandleEXT\0",
17678                    ),
17679                ),
17680            );
17681            cmd.get_memory_metal_handle_properties_ext = core::mem::transmute(
17682                f(
17683                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17684                        b"vkGetMemoryMetalHandlePropertiesEXT\0",
17685                    ),
17686                ),
17687            );
17688            cmd.convert_cooperative_vector_matrix_nv = core::mem::transmute(
17689                f(
17690                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17691                        b"vkConvertCooperativeVectorMatrixNV\0",
17692                    ),
17693                ),
17694            );
17695            cmd.cmd_convert_cooperative_vector_matrix_nv = core::mem::transmute(
17696                f(
17697                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17698                        b"vkCmdConvertCooperativeVectorMatrixNV\0",
17699                    ),
17700                ),
17701            );
17702            cmd.cmd_dispatch_tile_qcom = core::mem::transmute(
17703                f(
17704                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17705                        b"vkCmdDispatchTileQCOM\0",
17706                    ),
17707                ),
17708            );
17709            cmd.cmd_begin_per_tile_execution_qcom = core::mem::transmute(
17710                f(
17711                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17712                        b"vkCmdBeginPerTileExecutionQCOM\0",
17713                    ),
17714                ),
17715            );
17716            cmd.cmd_end_per_tile_execution_qcom = core::mem::transmute(
17717                f(
17718                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17719                        b"vkCmdEndPerTileExecutionQCOM\0",
17720                    ),
17721                ),
17722            );
17723            cmd.create_external_compute_queue_nv = core::mem::transmute(
17724                f(
17725                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17726                        b"vkCreateExternalComputeQueueNV\0",
17727                    ),
17728                ),
17729            );
17730            cmd.destroy_external_compute_queue_nv = core::mem::transmute(
17731                f(
17732                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17733                        b"vkDestroyExternalComputeQueueNV\0",
17734                    ),
17735                ),
17736            );
17737            cmd.create_shader_instrumentation_arm = core::mem::transmute(
17738                f(
17739                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17740                        b"vkCreateShaderInstrumentationARM\0",
17741                    ),
17742                ),
17743            );
17744            cmd.destroy_shader_instrumentation_arm = core::mem::transmute(
17745                f(
17746                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17747                        b"vkDestroyShaderInstrumentationARM\0",
17748                    ),
17749                ),
17750            );
17751            cmd.cmd_begin_shader_instrumentation_arm = core::mem::transmute(
17752                f(
17753                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17754                        b"vkCmdBeginShaderInstrumentationARM\0",
17755                    ),
17756                ),
17757            );
17758            cmd.cmd_end_shader_instrumentation_arm = core::mem::transmute(
17759                f(
17760                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17761                        b"vkCmdEndShaderInstrumentationARM\0",
17762                    ),
17763                ),
17764            );
17765            cmd.get_shader_instrumentation_values_arm = core::mem::transmute(
17766                f(
17767                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17768                        b"vkGetShaderInstrumentationValuesARM\0",
17769                    ),
17770                ),
17771            );
17772            cmd.clear_shader_instrumentation_metrics_arm = core::mem::transmute(
17773                f(
17774                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17775                        b"vkClearShaderInstrumentationMetricsARM\0",
17776                    ),
17777                ),
17778            );
17779            cmd.create_tensor_arm = core::mem::transmute(
17780                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateTensorARM\0")),
17781            );
17782            cmd.destroy_tensor_arm = core::mem::transmute(
17783                f(
17784                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17785                        b"vkDestroyTensorARM\0",
17786                    ),
17787                ),
17788            );
17789            cmd.create_tensor_view_arm = core::mem::transmute(
17790                f(
17791                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17792                        b"vkCreateTensorViewARM\0",
17793                    ),
17794                ),
17795            );
17796            cmd.destroy_tensor_view_arm = core::mem::transmute(
17797                f(
17798                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17799                        b"vkDestroyTensorViewARM\0",
17800                    ),
17801                ),
17802            );
17803            cmd.get_tensor_memory_requirements_arm = core::mem::transmute(
17804                f(
17805                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17806                        b"vkGetTensorMemoryRequirementsARM\0",
17807                    ),
17808                ),
17809            );
17810            cmd.bind_tensor_memory_arm = core::mem::transmute(
17811                f(
17812                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17813                        b"vkBindTensorMemoryARM\0",
17814                    ),
17815                ),
17816            );
17817            cmd.get_device_tensor_memory_requirements_arm = core::mem::transmute(
17818                f(
17819                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17820                        b"vkGetDeviceTensorMemoryRequirementsARM\0",
17821                    ),
17822                ),
17823            );
17824            cmd.cmd_copy_tensor_arm = core::mem::transmute(
17825                f(
17826                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17827                        b"vkCmdCopyTensorARM\0",
17828                    ),
17829                ),
17830            );
17831            cmd.get_tensor_opaque_capture_descriptor_data_arm = core::mem::transmute(
17832                f(
17833                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17834                        b"vkGetTensorOpaqueCaptureDescriptorDataARM\0",
17835                    ),
17836                ),
17837            );
17838            cmd.get_tensor_view_opaque_capture_descriptor_data_arm = core::mem::transmute(
17839                f(
17840                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17841                        b"vkGetTensorViewOpaqueCaptureDescriptorDataARM\0",
17842                    ),
17843                ),
17844            );
17845            cmd.create_data_graph_pipelines_arm = core::mem::transmute(
17846                f(
17847                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17848                        b"vkCreateDataGraphPipelinesARM\0",
17849                    ),
17850                ),
17851            );
17852            cmd.create_data_graph_pipeline_session_arm = core::mem::transmute(
17853                f(
17854                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17855                        b"vkCreateDataGraphPipelineSessionARM\0",
17856                    ),
17857                ),
17858            );
17859            cmd.get_data_graph_pipeline_session_bind_point_requirements_arm = core::mem::transmute(
17860                f(
17861                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17862                        b"vkGetDataGraphPipelineSessionBindPointRequirementsARM\0",
17863                    ),
17864                ),
17865            );
17866            cmd.get_data_graph_pipeline_session_memory_requirements_arm = core::mem::transmute(
17867                f(
17868                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17869                        b"vkGetDataGraphPipelineSessionMemoryRequirementsARM\0",
17870                    ),
17871                ),
17872            );
17873            cmd.bind_data_graph_pipeline_session_memory_arm = core::mem::transmute(
17874                f(
17875                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17876                        b"vkBindDataGraphPipelineSessionMemoryARM\0",
17877                    ),
17878                ),
17879            );
17880            cmd.destroy_data_graph_pipeline_session_arm = core::mem::transmute(
17881                f(
17882                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17883                        b"vkDestroyDataGraphPipelineSessionARM\0",
17884                    ),
17885                ),
17886            );
17887            cmd.cmd_dispatch_data_graph_arm = core::mem::transmute(
17888                f(
17889                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17890                        b"vkCmdDispatchDataGraphARM\0",
17891                    ),
17892                ),
17893            );
17894            cmd.get_data_graph_pipeline_available_properties_arm = core::mem::transmute(
17895                f(
17896                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17897                        b"vkGetDataGraphPipelineAvailablePropertiesARM\0",
17898                    ),
17899                ),
17900            );
17901            cmd.get_data_graph_pipeline_properties_arm = core::mem::transmute(
17902                f(
17903                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17904                        b"vkGetDataGraphPipelinePropertiesARM\0",
17905                    ),
17906                ),
17907            );
17908            cmd.get_native_buffer_properties_ohos = core::mem::transmute(
17909                f(
17910                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17911                        b"vkGetNativeBufferPropertiesOHOS\0",
17912                    ),
17913                ),
17914            );
17915            cmd.get_memory_native_buffer_ohos = core::mem::transmute(
17916                f(
17917                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17918                        b"vkGetMemoryNativeBufferOHOS\0",
17919                    ),
17920                ),
17921            );
17922            cmd.get_swapchain_gralloc_usage_ohos = core::mem::transmute(
17923                f(
17924                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17925                        b"vkGetSwapchainGrallocUsageOHOS\0",
17926                    ),
17927                ),
17928            );
17929            cmd.acquire_image_ohos = core::mem::transmute(
17930                f(
17931                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17932                        b"vkAcquireImageOHOS\0",
17933                    ),
17934                ),
17935            );
17936            cmd.queue_signal_release_image_ohos = core::mem::transmute(
17937                f(
17938                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17939                        b"vkQueueSignalReleaseImageOHOS\0",
17940                    ),
17941                ),
17942            );
17943            cmd.cmd_set_compute_occupancy_priority_nv = core::mem::transmute(
17944                f(
17945                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17946                        b"vkCmdSetComputeOccupancyPriorityNV\0",
17947                    ),
17948                ),
17949            );
17950            cmd.write_sampler_descriptors_ext = core::mem::transmute(
17951                f(
17952                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17953                        b"vkWriteSamplerDescriptorsEXT\0",
17954                    ),
17955                ),
17956            );
17957            cmd.write_resource_descriptors_ext = core::mem::transmute(
17958                f(
17959                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17960                        b"vkWriteResourceDescriptorsEXT\0",
17961                    ),
17962                ),
17963            );
17964            cmd.cmd_bind_sampler_heap_ext = core::mem::transmute(
17965                f(
17966                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17967                        b"vkCmdBindSamplerHeapEXT\0",
17968                    ),
17969                ),
17970            );
17971            cmd.cmd_bind_resource_heap_ext = core::mem::transmute(
17972                f(
17973                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17974                        b"vkCmdBindResourceHeapEXT\0",
17975                    ),
17976                ),
17977            );
17978            cmd.cmd_push_data_ext = core::mem::transmute(
17979                f(core::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdPushDataEXT\0")),
17980            );
17981            cmd.register_custom_border_color_ext = core::mem::transmute(
17982                f(
17983                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17984                        b"vkRegisterCustomBorderColorEXT\0",
17985                    ),
17986                ),
17987            );
17988            cmd.unregister_custom_border_color_ext = core::mem::transmute(
17989                f(
17990                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17991                        b"vkUnregisterCustomBorderColorEXT\0",
17992                    ),
17993                ),
17994            );
17995            cmd.get_image_opaque_capture_data_ext = core::mem::transmute(
17996                f(
17997                    core::ffi::CStr::from_bytes_with_nul_unchecked(
17998                        b"vkGetImageOpaqueCaptureDataEXT\0",
17999                    ),
18000                ),
18001            );
18002            cmd.get_tensor_opaque_capture_data_arm = core::mem::transmute(
18003                f(
18004                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18005                        b"vkGetTensorOpaqueCaptureDataARM\0",
18006                    ),
18007                ),
18008            );
18009            cmd.cmd_copy_memory_khr = core::mem::transmute(
18010                f(
18011                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18012                        b"vkCmdCopyMemoryKHR\0",
18013                    ),
18014                ),
18015            );
18016            cmd.cmd_copy_memory_to_image_khr = core::mem::transmute(
18017                f(
18018                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18019                        b"vkCmdCopyMemoryToImageKHR\0",
18020                    ),
18021                ),
18022            );
18023            cmd.cmd_copy_image_to_memory_khr = core::mem::transmute(
18024                f(
18025                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18026                        b"vkCmdCopyImageToMemoryKHR\0",
18027                    ),
18028                ),
18029            );
18030            cmd.cmd_update_memory_khr = core::mem::transmute(
18031                f(
18032                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18033                        b"vkCmdUpdateMemoryKHR\0",
18034                    ),
18035                ),
18036            );
18037            cmd.cmd_fill_memory_khr = core::mem::transmute(
18038                f(
18039                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18040                        b"vkCmdFillMemoryKHR\0",
18041                    ),
18042                ),
18043            );
18044            cmd.cmd_copy_query_pool_results_to_memory_khr = core::mem::transmute(
18045                f(
18046                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18047                        b"vkCmdCopyQueryPoolResultsToMemoryKHR\0",
18048                    ),
18049                ),
18050            );
18051            cmd.cmd_begin_conditional_rendering2_ext = core::mem::transmute(
18052                f(
18053                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18054                        b"vkCmdBeginConditionalRendering2EXT\0",
18055                    ),
18056                ),
18057            );
18058            cmd.cmd_bind_transform_feedback_buffers2_ext = core::mem::transmute(
18059                f(
18060                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18061                        b"vkCmdBindTransformFeedbackBuffers2EXT\0",
18062                    ),
18063                ),
18064            );
18065            cmd.cmd_begin_transform_feedback2_ext = core::mem::transmute(
18066                f(
18067                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18068                        b"vkCmdBeginTransformFeedback2EXT\0",
18069                    ),
18070                ),
18071            );
18072            cmd.cmd_end_transform_feedback2_ext = core::mem::transmute(
18073                f(
18074                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18075                        b"vkCmdEndTransformFeedback2EXT\0",
18076                    ),
18077                ),
18078            );
18079            cmd.cmd_draw_indirect_byte_count2_ext = core::mem::transmute(
18080                f(
18081                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18082                        b"vkCmdDrawIndirectByteCount2EXT\0",
18083                    ),
18084                ),
18085            );
18086            cmd.cmd_write_marker_to_memory_amd = core::mem::transmute(
18087                f(
18088                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18089                        b"vkCmdWriteMarkerToMemoryAMD\0",
18090                    ),
18091                ),
18092            );
18093            cmd.cmd_bind_index_buffer3_khr = core::mem::transmute(
18094                f(
18095                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18096                        b"vkCmdBindIndexBuffer3KHR\0",
18097                    ),
18098                ),
18099            );
18100            cmd.cmd_bind_vertex_buffers3_khr = core::mem::transmute(
18101                f(
18102                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18103                        b"vkCmdBindVertexBuffers3KHR\0",
18104                    ),
18105                ),
18106            );
18107            cmd.cmd_draw_indirect2_khr = core::mem::transmute(
18108                f(
18109                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18110                        b"vkCmdDrawIndirect2KHR\0",
18111                    ),
18112                ),
18113            );
18114            cmd.cmd_draw_indexed_indirect2_khr = core::mem::transmute(
18115                f(
18116                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18117                        b"vkCmdDrawIndexedIndirect2KHR\0",
18118                    ),
18119                ),
18120            );
18121            cmd.cmd_draw_indirect_count2_khr = core::mem::transmute(
18122                f(
18123                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18124                        b"vkCmdDrawIndirectCount2KHR\0",
18125                    ),
18126                ),
18127            );
18128            cmd.cmd_draw_indexed_indirect_count2_khr = core::mem::transmute(
18129                f(
18130                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18131                        b"vkCmdDrawIndexedIndirectCount2KHR\0",
18132                    ),
18133                ),
18134            );
18135            cmd.cmd_draw_mesh_tasks_indirect2_ext = core::mem::transmute(
18136                f(
18137                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18138                        b"vkCmdDrawMeshTasksIndirect2EXT\0",
18139                    ),
18140                ),
18141            );
18142            cmd.cmd_draw_mesh_tasks_indirect_count2_ext = core::mem::transmute(
18143                f(
18144                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18145                        b"vkCmdDrawMeshTasksIndirectCount2EXT\0",
18146                    ),
18147                ),
18148            );
18149            cmd.cmd_dispatch_indirect2_khr = core::mem::transmute(
18150                f(
18151                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18152                        b"vkCmdDispatchIndirect2KHR\0",
18153                    ),
18154                ),
18155            );
18156            cmd.create_acceleration_structure2_khr = core::mem::transmute(
18157                f(
18158                    core::ffi::CStr::from_bytes_with_nul_unchecked(
18159                        b"vkCreateAccelerationStructure2KHR\0",
18160                    ),
18161                ),
18162            );
18163            cmd
18164        }
18165    }
18166}