Skip to main content

jay_ash/vk/
features.rs

1use crate::vk::bitflags::*;
2use crate::vk::definitions::*;
3use crate::vk::enums::*;
4use core::ffi::*;
5#[allow(non_camel_case_types)]
6pub type PFN_vkGetInstanceProcAddr = unsafe extern "system" fn(
7    instance: crate::vk::Instance,
8    p_name: *const c_char,
9) -> PFN_vkVoidFunction;
10#[allow(non_camel_case_types)]
11pub type PFN_vkCreateInstance = unsafe extern "system" fn(
12    p_create_info: *const InstanceCreateInfo<'_>,
13    p_allocator: *const AllocationCallbacks<'_>,
14    p_instance: *mut crate::vk::Instance,
15) -> Result;
16#[allow(non_camel_case_types)]
17pub type PFN_vkEnumerateInstanceExtensionProperties = unsafe extern "system" fn(
18    p_layer_name: *const c_char,
19    p_property_count: *mut u32,
20    p_properties: *mut ExtensionProperties,
21) -> Result;
22#[allow(non_camel_case_types)]
23pub type PFN_vkEnumerateInstanceLayerProperties = unsafe extern "system" fn(
24    p_property_count: *mut u32,
25    p_properties: *mut LayerProperties,
26) -> Result;
27#[allow(non_camel_case_types)]
28pub type PFN_vkDestroyInstance = unsafe extern "system" fn(
29    instance: crate::vk::Instance,
30    p_allocator: *const AllocationCallbacks<'_>,
31);
32#[allow(non_camel_case_types)]
33pub type PFN_vkEnumeratePhysicalDevices = unsafe extern "system" fn(
34    instance: crate::vk::Instance,
35    p_physical_device_count: *mut u32,
36    p_physical_devices: *mut PhysicalDevice,
37) -> Result;
38#[allow(non_camel_case_types)]
39pub type PFN_vkGetPhysicalDeviceFeatures = unsafe extern "system" fn(
40    physical_device: PhysicalDevice,
41    p_features: *mut PhysicalDeviceFeatures,
42);
43#[allow(non_camel_case_types)]
44pub type PFN_vkGetPhysicalDeviceFormatProperties = unsafe extern "system" fn(
45    physical_device: PhysicalDevice,
46    format: Format,
47    p_format_properties: *mut FormatProperties,
48);
49#[allow(non_camel_case_types)]
50pub type PFN_vkGetPhysicalDeviceImageFormatProperties = unsafe extern "system" fn(
51    physical_device: PhysicalDevice,
52    format: Format,
53    ty: ImageType,
54    tiling: ImageTiling,
55    usage: ImageUsageFlags,
56    flags: ImageCreateFlags,
57    p_image_format_properties: *mut ImageFormatProperties,
58) -> Result;
59#[allow(non_camel_case_types)]
60pub type PFN_vkGetPhysicalDeviceProperties = unsafe extern "system" fn(
61    physical_device: PhysicalDevice,
62    p_properties: *mut PhysicalDeviceProperties,
63);
64#[allow(non_camel_case_types)]
65pub type PFN_vkGetPhysicalDeviceQueueFamilyProperties = unsafe extern "system" fn(
66    physical_device: PhysicalDevice,
67    p_queue_family_property_count: *mut u32,
68    p_queue_family_properties: *mut QueueFamilyProperties,
69);
70#[allow(non_camel_case_types)]
71pub type PFN_vkGetPhysicalDeviceMemoryProperties = unsafe extern "system" fn(
72    physical_device: PhysicalDevice,
73    p_memory_properties: *mut PhysicalDeviceMemoryProperties,
74);
75#[allow(non_camel_case_types)]
76pub type PFN_vkGetDeviceProcAddr = unsafe extern "system" fn(
77    device: crate::vk::Device,
78    p_name: *const c_char,
79) -> PFN_vkVoidFunction;
80#[allow(non_camel_case_types)]
81pub type PFN_vkCreateDevice = unsafe extern "system" fn(
82    physical_device: PhysicalDevice,
83    p_create_info: *const DeviceCreateInfo<'_>,
84    p_allocator: *const AllocationCallbacks<'_>,
85    p_device: *mut crate::vk::Device,
86) -> Result;
87#[allow(non_camel_case_types)]
88pub type PFN_vkEnumerateDeviceExtensionProperties = unsafe extern "system" fn(
89    physical_device: PhysicalDevice,
90    p_layer_name: *const c_char,
91    p_property_count: *mut u32,
92    p_properties: *mut ExtensionProperties,
93) -> Result;
94#[allow(non_camel_case_types)]
95pub type PFN_vkEnumerateDeviceLayerProperties = unsafe extern "system" fn(
96    physical_device: PhysicalDevice,
97    p_property_count: *mut u32,
98    p_properties: *mut LayerProperties,
99) -> Result;
100#[allow(non_camel_case_types)]
101pub type PFN_vkGetPhysicalDeviceSparseImageFormatProperties = unsafe extern "system" fn(
102    physical_device: PhysicalDevice,
103    format: Format,
104    ty: ImageType,
105    samples: SampleCountFlags,
106    usage: ImageUsageFlags,
107    tiling: ImageTiling,
108    p_property_count: *mut u32,
109    p_properties: *mut SparseImageFormatProperties,
110);
111#[allow(non_camel_case_types)]
112pub type PFN_vkDestroyDevice = unsafe extern "system" fn(
113    device: crate::vk::Device,
114    p_allocator: *const AllocationCallbacks<'_>,
115);
116#[allow(non_camel_case_types)]
117pub type PFN_vkGetDeviceQueue = unsafe extern "system" fn(
118    device: crate::vk::Device,
119    queue_family_index: u32,
120    queue_index: u32,
121    p_queue: *mut Queue,
122);
123#[allow(non_camel_case_types)]
124pub type PFN_vkQueueSubmit = unsafe extern "system" fn(
125    queue: Queue,
126    submit_count: u32,
127    p_submits: *const SubmitInfo<'_>,
128    fence: Fence,
129) -> Result;
130#[allow(non_camel_case_types)]
131pub type PFN_vkQueueWaitIdle = unsafe extern "system" fn(queue: Queue) -> Result;
132#[allow(non_camel_case_types)]
133pub type PFN_vkDeviceWaitIdle = unsafe extern "system" fn(device: crate::vk::Device) -> Result;
134#[allow(non_camel_case_types)]
135pub type PFN_vkAllocateMemory = unsafe extern "system" fn(
136    device: crate::vk::Device,
137    p_allocate_info: *const MemoryAllocateInfo<'_>,
138    p_allocator: *const AllocationCallbacks<'_>,
139    p_memory: *mut DeviceMemory,
140) -> Result;
141#[allow(non_camel_case_types)]
142pub type PFN_vkFreeMemory = unsafe extern "system" fn(
143    device: crate::vk::Device,
144    memory: DeviceMemory,
145    p_allocator: *const AllocationCallbacks<'_>,
146);
147#[allow(non_camel_case_types)]
148pub type PFN_vkMapMemory = unsafe extern "system" fn(
149    device: crate::vk::Device,
150    memory: DeviceMemory,
151    offset: DeviceSize,
152    size: DeviceSize,
153    flags: MemoryMapFlags,
154    pp_data: *mut *mut c_void,
155) -> Result;
156#[allow(non_camel_case_types)]
157pub type PFN_vkUnmapMemory =
158    unsafe extern "system" fn(device: crate::vk::Device, memory: DeviceMemory);
159#[allow(non_camel_case_types)]
160pub type PFN_vkFlushMappedMemoryRanges = unsafe extern "system" fn(
161    device: crate::vk::Device,
162    memory_range_count: u32,
163    p_memory_ranges: *const MappedMemoryRange<'_>,
164) -> Result;
165#[allow(non_camel_case_types)]
166pub type PFN_vkInvalidateMappedMemoryRanges = unsafe extern "system" fn(
167    device: crate::vk::Device,
168    memory_range_count: u32,
169    p_memory_ranges: *const MappedMemoryRange<'_>,
170) -> Result;
171#[allow(non_camel_case_types)]
172pub type PFN_vkGetDeviceMemoryCommitment = unsafe extern "system" fn(
173    device: crate::vk::Device,
174    memory: DeviceMemory,
175    p_committed_memory_in_bytes: *mut DeviceSize,
176);
177#[allow(non_camel_case_types)]
178pub type PFN_vkBindBufferMemory = unsafe extern "system" fn(
179    device: crate::vk::Device,
180    buffer: Buffer,
181    memory: DeviceMemory,
182    memory_offset: DeviceSize,
183) -> Result;
184#[allow(non_camel_case_types)]
185pub type PFN_vkBindImageMemory = unsafe extern "system" fn(
186    device: crate::vk::Device,
187    image: Image,
188    memory: DeviceMemory,
189    memory_offset: DeviceSize,
190) -> Result;
191#[allow(non_camel_case_types)]
192pub type PFN_vkGetBufferMemoryRequirements = unsafe extern "system" fn(
193    device: crate::vk::Device,
194    buffer: Buffer,
195    p_memory_requirements: *mut MemoryRequirements,
196);
197#[allow(non_camel_case_types)]
198pub type PFN_vkGetImageMemoryRequirements = unsafe extern "system" fn(
199    device: crate::vk::Device,
200    image: Image,
201    p_memory_requirements: *mut MemoryRequirements,
202);
203#[allow(non_camel_case_types)]
204pub type PFN_vkGetImageSparseMemoryRequirements = unsafe extern "system" fn(
205    device: crate::vk::Device,
206    image: Image,
207    p_sparse_memory_requirement_count: *mut u32,
208    p_sparse_memory_requirements: *mut SparseImageMemoryRequirements,
209);
210#[allow(non_camel_case_types)]
211pub type PFN_vkQueueBindSparse = unsafe extern "system" fn(
212    queue: Queue,
213    bind_info_count: u32,
214    p_bind_info: *const BindSparseInfo<'_>,
215    fence: Fence,
216) -> Result;
217#[allow(non_camel_case_types)]
218pub type PFN_vkCreateFence = unsafe extern "system" fn(
219    device: crate::vk::Device,
220    p_create_info: *const FenceCreateInfo<'_>,
221    p_allocator: *const AllocationCallbacks<'_>,
222    p_fence: *mut Fence,
223) -> Result;
224#[allow(non_camel_case_types)]
225pub type PFN_vkDestroyFence = unsafe extern "system" fn(
226    device: crate::vk::Device,
227    fence: Fence,
228    p_allocator: *const AllocationCallbacks<'_>,
229);
230#[allow(non_camel_case_types)]
231pub type PFN_vkResetFences = unsafe extern "system" fn(
232    device: crate::vk::Device,
233    fence_count: u32,
234    p_fences: *const Fence,
235) -> Result;
236#[allow(non_camel_case_types)]
237pub type PFN_vkGetFenceStatus =
238    unsafe extern "system" fn(device: crate::vk::Device, fence: Fence) -> Result;
239#[allow(non_camel_case_types)]
240pub type PFN_vkWaitForFences = unsafe extern "system" fn(
241    device: crate::vk::Device,
242    fence_count: u32,
243    p_fences: *const Fence,
244    wait_all: Bool32,
245    timeout: u64,
246) -> Result;
247#[allow(non_camel_case_types)]
248pub type PFN_vkCreateSemaphore = unsafe extern "system" fn(
249    device: crate::vk::Device,
250    p_create_info: *const SemaphoreCreateInfo<'_>,
251    p_allocator: *const AllocationCallbacks<'_>,
252    p_semaphore: *mut Semaphore,
253) -> Result;
254#[allow(non_camel_case_types)]
255pub type PFN_vkDestroySemaphore = unsafe extern "system" fn(
256    device: crate::vk::Device,
257    semaphore: Semaphore,
258    p_allocator: *const AllocationCallbacks<'_>,
259);
260#[allow(non_camel_case_types)]
261pub type PFN_vkCreateQueryPool = unsafe extern "system" fn(
262    device: crate::vk::Device,
263    p_create_info: *const QueryPoolCreateInfo<'_>,
264    p_allocator: *const AllocationCallbacks<'_>,
265    p_query_pool: *mut QueryPool,
266) -> Result;
267#[allow(non_camel_case_types)]
268pub type PFN_vkDestroyQueryPool = unsafe extern "system" fn(
269    device: crate::vk::Device,
270    query_pool: QueryPool,
271    p_allocator: *const AllocationCallbacks<'_>,
272);
273#[allow(non_camel_case_types)]
274pub type PFN_vkGetQueryPoolResults = unsafe extern "system" fn(
275    device: crate::vk::Device,
276    query_pool: QueryPool,
277    first_query: u32,
278    query_count: u32,
279    data_size: usize,
280    p_data: *mut c_void,
281    stride: DeviceSize,
282    flags: QueryResultFlags,
283) -> Result;
284#[allow(non_camel_case_types)]
285pub type PFN_vkCreateBuffer = unsafe extern "system" fn(
286    device: crate::vk::Device,
287    p_create_info: *const BufferCreateInfo<'_>,
288    p_allocator: *const AllocationCallbacks<'_>,
289    p_buffer: *mut Buffer,
290) -> Result;
291#[allow(non_camel_case_types)]
292pub type PFN_vkDestroyBuffer = unsafe extern "system" fn(
293    device: crate::vk::Device,
294    buffer: Buffer,
295    p_allocator: *const AllocationCallbacks<'_>,
296);
297#[allow(non_camel_case_types)]
298pub type PFN_vkCreateImage = unsafe extern "system" fn(
299    device: crate::vk::Device,
300    p_create_info: *const ImageCreateInfo<'_>,
301    p_allocator: *const AllocationCallbacks<'_>,
302    p_image: *mut Image,
303) -> Result;
304#[allow(non_camel_case_types)]
305pub type PFN_vkDestroyImage = unsafe extern "system" fn(
306    device: crate::vk::Device,
307    image: Image,
308    p_allocator: *const AllocationCallbacks<'_>,
309);
310#[allow(non_camel_case_types)]
311pub type PFN_vkGetImageSubresourceLayout = unsafe extern "system" fn(
312    device: crate::vk::Device,
313    image: Image,
314    p_subresource: *const ImageSubresource,
315    p_layout: *mut SubresourceLayout,
316);
317#[allow(non_camel_case_types)]
318pub type PFN_vkCreateImageView = unsafe extern "system" fn(
319    device: crate::vk::Device,
320    p_create_info: *const ImageViewCreateInfo<'_>,
321    p_allocator: *const AllocationCallbacks<'_>,
322    p_view: *mut ImageView,
323) -> Result;
324#[allow(non_camel_case_types)]
325pub type PFN_vkDestroyImageView = unsafe extern "system" fn(
326    device: crate::vk::Device,
327    image_view: ImageView,
328    p_allocator: *const AllocationCallbacks<'_>,
329);
330#[allow(non_camel_case_types)]
331pub type PFN_vkCreateCommandPool = unsafe extern "system" fn(
332    device: crate::vk::Device,
333    p_create_info: *const CommandPoolCreateInfo<'_>,
334    p_allocator: *const AllocationCallbacks<'_>,
335    p_command_pool: *mut CommandPool,
336) -> Result;
337#[allow(non_camel_case_types)]
338pub type PFN_vkDestroyCommandPool = unsafe extern "system" fn(
339    device: crate::vk::Device,
340    command_pool: CommandPool,
341    p_allocator: *const AllocationCallbacks<'_>,
342);
343#[allow(non_camel_case_types)]
344pub type PFN_vkResetCommandPool = unsafe extern "system" fn(
345    device: crate::vk::Device,
346    command_pool: CommandPool,
347    flags: CommandPoolResetFlags,
348) -> Result;
349#[allow(non_camel_case_types)]
350pub type PFN_vkAllocateCommandBuffers = unsafe extern "system" fn(
351    device: crate::vk::Device,
352    p_allocate_info: *const CommandBufferAllocateInfo<'_>,
353    p_command_buffers: *mut CommandBuffer,
354) -> Result;
355#[allow(non_camel_case_types)]
356pub type PFN_vkFreeCommandBuffers = unsafe extern "system" fn(
357    device: crate::vk::Device,
358    command_pool: CommandPool,
359    command_buffer_count: u32,
360    p_command_buffers: *const CommandBuffer,
361);
362#[allow(non_camel_case_types)]
363pub type PFN_vkBeginCommandBuffer = unsafe extern "system" fn(
364    command_buffer: CommandBuffer,
365    p_begin_info: *const CommandBufferBeginInfo<'_>,
366) -> Result;
367#[allow(non_camel_case_types)]
368pub type PFN_vkEndCommandBuffer =
369    unsafe extern "system" fn(command_buffer: CommandBuffer) -> Result;
370#[allow(non_camel_case_types)]
371pub type PFN_vkResetCommandBuffer = unsafe extern "system" fn(
372    command_buffer: CommandBuffer,
373    flags: CommandBufferResetFlags,
374) -> Result;
375#[allow(non_camel_case_types)]
376pub type PFN_vkCmdCopyBuffer = unsafe extern "system" fn(
377    command_buffer: CommandBuffer,
378    src_buffer: Buffer,
379    dst_buffer: Buffer,
380    region_count: u32,
381    p_regions: *const BufferCopy,
382);
383#[allow(non_camel_case_types)]
384pub type PFN_vkCmdCopyImage = unsafe extern "system" fn(
385    command_buffer: CommandBuffer,
386    src_image: Image,
387    src_image_layout: ImageLayout,
388    dst_image: Image,
389    dst_image_layout: ImageLayout,
390    region_count: u32,
391    p_regions: *const ImageCopy,
392);
393#[allow(non_camel_case_types)]
394pub type PFN_vkCmdCopyBufferToImage = unsafe extern "system" fn(
395    command_buffer: CommandBuffer,
396    src_buffer: Buffer,
397    dst_image: Image,
398    dst_image_layout: ImageLayout,
399    region_count: u32,
400    p_regions: *const BufferImageCopy,
401);
402#[allow(non_camel_case_types)]
403pub type PFN_vkCmdCopyImageToBuffer = unsafe extern "system" fn(
404    command_buffer: CommandBuffer,
405    src_image: Image,
406    src_image_layout: ImageLayout,
407    dst_buffer: Buffer,
408    region_count: u32,
409    p_regions: *const BufferImageCopy,
410);
411#[allow(non_camel_case_types)]
412pub type PFN_vkCmdUpdateBuffer = unsafe extern "system" fn(
413    command_buffer: CommandBuffer,
414    dst_buffer: Buffer,
415    dst_offset: DeviceSize,
416    data_size: DeviceSize,
417    p_data: *const c_void,
418);
419#[allow(non_camel_case_types)]
420pub type PFN_vkCmdFillBuffer = unsafe extern "system" fn(
421    command_buffer: CommandBuffer,
422    dst_buffer: Buffer,
423    dst_offset: DeviceSize,
424    size: DeviceSize,
425    data: u32,
426);
427#[allow(non_camel_case_types)]
428pub type PFN_vkCmdPipelineBarrier = unsafe extern "system" fn(
429    command_buffer: CommandBuffer,
430    src_stage_mask: PipelineStageFlags,
431    dst_stage_mask: PipelineStageFlags,
432    dependency_flags: DependencyFlags,
433    memory_barrier_count: u32,
434    p_memory_barriers: *const MemoryBarrier<'_>,
435    buffer_memory_barrier_count: u32,
436    p_buffer_memory_barriers: *const BufferMemoryBarrier<'_>,
437    image_memory_barrier_count: u32,
438    p_image_memory_barriers: *const ImageMemoryBarrier<'_>,
439);
440#[allow(non_camel_case_types)]
441pub type PFN_vkCmdBeginQuery = unsafe extern "system" fn(
442    command_buffer: CommandBuffer,
443    query_pool: QueryPool,
444    query: u32,
445    flags: QueryControlFlags,
446);
447#[allow(non_camel_case_types)]
448pub type PFN_vkCmdEndQuery =
449    unsafe extern "system" fn(command_buffer: CommandBuffer, query_pool: QueryPool, query: u32);
450#[allow(non_camel_case_types)]
451pub type PFN_vkCmdResetQueryPool = unsafe extern "system" fn(
452    command_buffer: CommandBuffer,
453    query_pool: QueryPool,
454    first_query: u32,
455    query_count: u32,
456);
457#[allow(non_camel_case_types)]
458pub type PFN_vkCmdWriteTimestamp = unsafe extern "system" fn(
459    command_buffer: CommandBuffer,
460    pipeline_stage: PipelineStageFlags,
461    query_pool: QueryPool,
462    query: u32,
463);
464#[allow(non_camel_case_types)]
465pub type PFN_vkCmdCopyQueryPoolResults = unsafe extern "system" fn(
466    command_buffer: CommandBuffer,
467    query_pool: QueryPool,
468    first_query: u32,
469    query_count: u32,
470    dst_buffer: Buffer,
471    dst_offset: DeviceSize,
472    stride: DeviceSize,
473    flags: QueryResultFlags,
474);
475#[allow(non_camel_case_types)]
476pub type PFN_vkCmdExecuteCommands = unsafe extern "system" fn(
477    command_buffer: CommandBuffer,
478    command_buffer_count: u32,
479    p_command_buffers: *const CommandBuffer,
480);
481#[allow(non_camel_case_types)]
482pub type PFN_vkCreateEvent = unsafe extern "system" fn(
483    device: crate::vk::Device,
484    p_create_info: *const EventCreateInfo<'_>,
485    p_allocator: *const AllocationCallbacks<'_>,
486    p_event: *mut Event,
487) -> Result;
488#[allow(non_camel_case_types)]
489pub type PFN_vkDestroyEvent = unsafe extern "system" fn(
490    device: crate::vk::Device,
491    event: Event,
492    p_allocator: *const AllocationCallbacks<'_>,
493);
494#[allow(non_camel_case_types)]
495pub type PFN_vkGetEventStatus =
496    unsafe extern "system" fn(device: crate::vk::Device, event: Event) -> Result;
497#[allow(non_camel_case_types)]
498pub type PFN_vkSetEvent =
499    unsafe extern "system" fn(device: crate::vk::Device, event: Event) -> Result;
500#[allow(non_camel_case_types)]
501pub type PFN_vkResetEvent =
502    unsafe extern "system" fn(device: crate::vk::Device, event: Event) -> Result;
503#[allow(non_camel_case_types)]
504pub type PFN_vkCreateBufferView = unsafe extern "system" fn(
505    device: crate::vk::Device,
506    p_create_info: *const BufferViewCreateInfo<'_>,
507    p_allocator: *const AllocationCallbacks<'_>,
508    p_view: *mut BufferView,
509) -> Result;
510#[allow(non_camel_case_types)]
511pub type PFN_vkDestroyBufferView = unsafe extern "system" fn(
512    device: crate::vk::Device,
513    buffer_view: BufferView,
514    p_allocator: *const AllocationCallbacks<'_>,
515);
516#[allow(non_camel_case_types)]
517pub type PFN_vkCreateShaderModule = unsafe extern "system" fn(
518    device: crate::vk::Device,
519    p_create_info: *const ShaderModuleCreateInfo<'_>,
520    p_allocator: *const AllocationCallbacks<'_>,
521    p_shader_module: *mut ShaderModule,
522) -> Result;
523#[allow(non_camel_case_types)]
524pub type PFN_vkDestroyShaderModule = unsafe extern "system" fn(
525    device: crate::vk::Device,
526    shader_module: ShaderModule,
527    p_allocator: *const AllocationCallbacks<'_>,
528);
529#[allow(non_camel_case_types)]
530pub type PFN_vkCreatePipelineCache = unsafe extern "system" fn(
531    device: crate::vk::Device,
532    p_create_info: *const PipelineCacheCreateInfo<'_>,
533    p_allocator: *const AllocationCallbacks<'_>,
534    p_pipeline_cache: *mut PipelineCache,
535) -> Result;
536#[allow(non_camel_case_types)]
537pub type PFN_vkDestroyPipelineCache = unsafe extern "system" fn(
538    device: crate::vk::Device,
539    pipeline_cache: PipelineCache,
540    p_allocator: *const AllocationCallbacks<'_>,
541);
542#[allow(non_camel_case_types)]
543pub type PFN_vkGetPipelineCacheData = unsafe extern "system" fn(
544    device: crate::vk::Device,
545    pipeline_cache: PipelineCache,
546    p_data_size: *mut usize,
547    p_data: *mut c_void,
548) -> Result;
549#[allow(non_camel_case_types)]
550pub type PFN_vkMergePipelineCaches = unsafe extern "system" fn(
551    device: crate::vk::Device,
552    dst_cache: PipelineCache,
553    src_cache_count: u32,
554    p_src_caches: *const PipelineCache,
555) -> Result;
556#[allow(non_camel_case_types)]
557pub type PFN_vkCreateComputePipelines = unsafe extern "system" fn(
558    device: crate::vk::Device,
559    pipeline_cache: PipelineCache,
560    create_info_count: u32,
561    p_create_infos: *const ComputePipelineCreateInfo<'_>,
562    p_allocator: *const AllocationCallbacks<'_>,
563    p_pipelines: *mut Pipeline,
564) -> Result;
565#[allow(non_camel_case_types)]
566pub type PFN_vkDestroyPipeline = unsafe extern "system" fn(
567    device: crate::vk::Device,
568    pipeline: Pipeline,
569    p_allocator: *const AllocationCallbacks<'_>,
570);
571#[allow(non_camel_case_types)]
572pub type PFN_vkCreatePipelineLayout = unsafe extern "system" fn(
573    device: crate::vk::Device,
574    p_create_info: *const PipelineLayoutCreateInfo<'_>,
575    p_allocator: *const AllocationCallbacks<'_>,
576    p_pipeline_layout: *mut PipelineLayout,
577) -> Result;
578#[allow(non_camel_case_types)]
579pub type PFN_vkDestroyPipelineLayout = unsafe extern "system" fn(
580    device: crate::vk::Device,
581    pipeline_layout: PipelineLayout,
582    p_allocator: *const AllocationCallbacks<'_>,
583);
584#[allow(non_camel_case_types)]
585pub type PFN_vkCreateSampler = unsafe extern "system" fn(
586    device: crate::vk::Device,
587    p_create_info: *const SamplerCreateInfo<'_>,
588    p_allocator: *const AllocationCallbacks<'_>,
589    p_sampler: *mut Sampler,
590) -> Result;
591#[allow(non_camel_case_types)]
592pub type PFN_vkDestroySampler = unsafe extern "system" fn(
593    device: crate::vk::Device,
594    sampler: Sampler,
595    p_allocator: *const AllocationCallbacks<'_>,
596);
597#[allow(non_camel_case_types)]
598pub type PFN_vkCreateDescriptorSetLayout = unsafe extern "system" fn(
599    device: crate::vk::Device,
600    p_create_info: *const DescriptorSetLayoutCreateInfo<'_>,
601    p_allocator: *const AllocationCallbacks<'_>,
602    p_set_layout: *mut DescriptorSetLayout,
603) -> Result;
604#[allow(non_camel_case_types)]
605pub type PFN_vkDestroyDescriptorSetLayout = unsafe extern "system" fn(
606    device: crate::vk::Device,
607    descriptor_set_layout: DescriptorSetLayout,
608    p_allocator: *const AllocationCallbacks<'_>,
609);
610#[allow(non_camel_case_types)]
611pub type PFN_vkCreateDescriptorPool = unsafe extern "system" fn(
612    device: crate::vk::Device,
613    p_create_info: *const DescriptorPoolCreateInfo<'_>,
614    p_allocator: *const AllocationCallbacks<'_>,
615    p_descriptor_pool: *mut DescriptorPool,
616) -> Result;
617#[allow(non_camel_case_types)]
618pub type PFN_vkDestroyDescriptorPool = unsafe extern "system" fn(
619    device: crate::vk::Device,
620    descriptor_pool: DescriptorPool,
621    p_allocator: *const AllocationCallbacks<'_>,
622);
623#[allow(non_camel_case_types)]
624pub type PFN_vkResetDescriptorPool = unsafe extern "system" fn(
625    device: crate::vk::Device,
626    descriptor_pool: DescriptorPool,
627    flags: DescriptorPoolResetFlags,
628) -> Result;
629#[allow(non_camel_case_types)]
630pub type PFN_vkAllocateDescriptorSets = unsafe extern "system" fn(
631    device: crate::vk::Device,
632    p_allocate_info: *const DescriptorSetAllocateInfo<'_>,
633    p_descriptor_sets: *mut DescriptorSet,
634) -> Result;
635#[allow(non_camel_case_types)]
636pub type PFN_vkFreeDescriptorSets = unsafe extern "system" fn(
637    device: crate::vk::Device,
638    descriptor_pool: DescriptorPool,
639    descriptor_set_count: u32,
640    p_descriptor_sets: *const DescriptorSet,
641) -> Result;
642#[allow(non_camel_case_types)]
643pub type PFN_vkUpdateDescriptorSets = unsafe extern "system" fn(
644    device: crate::vk::Device,
645    descriptor_write_count: u32,
646    p_descriptor_writes: *const WriteDescriptorSet<'_>,
647    descriptor_copy_count: u32,
648    p_descriptor_copies: *const CopyDescriptorSet<'_>,
649);
650#[allow(non_camel_case_types)]
651pub type PFN_vkCmdBindPipeline = unsafe extern "system" fn(
652    command_buffer: CommandBuffer,
653    pipeline_bind_point: PipelineBindPoint,
654    pipeline: Pipeline,
655);
656#[allow(non_camel_case_types)]
657pub type PFN_vkCmdBindDescriptorSets = unsafe extern "system" fn(
658    command_buffer: CommandBuffer,
659    pipeline_bind_point: PipelineBindPoint,
660    layout: PipelineLayout,
661    first_set: u32,
662    descriptor_set_count: u32,
663    p_descriptor_sets: *const DescriptorSet,
664    dynamic_offset_count: u32,
665    p_dynamic_offsets: *const u32,
666);
667#[allow(non_camel_case_types)]
668pub type PFN_vkCmdClearColorImage = unsafe extern "system" fn(
669    command_buffer: CommandBuffer,
670    image: Image,
671    image_layout: ImageLayout,
672    p_color: *const ClearColorValue,
673    range_count: u32,
674    p_ranges: *const ImageSubresourceRange,
675);
676#[allow(non_camel_case_types)]
677pub type PFN_vkCmdDispatch = unsafe extern "system" fn(
678    command_buffer: CommandBuffer,
679    group_count_x: u32,
680    group_count_y: u32,
681    group_count_z: u32,
682);
683#[allow(non_camel_case_types)]
684pub type PFN_vkCmdDispatchIndirect =
685    unsafe extern "system" fn(command_buffer: CommandBuffer, buffer: Buffer, offset: DeviceSize);
686#[allow(non_camel_case_types)]
687pub type PFN_vkCmdSetEvent = unsafe extern "system" fn(
688    command_buffer: CommandBuffer,
689    event: Event,
690    stage_mask: PipelineStageFlags,
691);
692#[allow(non_camel_case_types)]
693pub type PFN_vkCmdResetEvent = unsafe extern "system" fn(
694    command_buffer: CommandBuffer,
695    event: Event,
696    stage_mask: PipelineStageFlags,
697);
698#[allow(non_camel_case_types)]
699pub type PFN_vkCmdWaitEvents = unsafe extern "system" fn(
700    command_buffer: CommandBuffer,
701    event_count: u32,
702    p_events: *const Event,
703    src_stage_mask: PipelineStageFlags,
704    dst_stage_mask: PipelineStageFlags,
705    memory_barrier_count: u32,
706    p_memory_barriers: *const MemoryBarrier<'_>,
707    buffer_memory_barrier_count: u32,
708    p_buffer_memory_barriers: *const BufferMemoryBarrier<'_>,
709    image_memory_barrier_count: u32,
710    p_image_memory_barriers: *const ImageMemoryBarrier<'_>,
711);
712#[allow(non_camel_case_types)]
713pub type PFN_vkCmdPushConstants = unsafe extern "system" fn(
714    command_buffer: CommandBuffer,
715    layout: PipelineLayout,
716    stage_flags: ShaderStageFlags,
717    offset: u32,
718    size: u32,
719    p_values: *const c_void,
720);
721#[allow(non_camel_case_types)]
722pub type PFN_vkCreateGraphicsPipelines = unsafe extern "system" fn(
723    device: crate::vk::Device,
724    pipeline_cache: PipelineCache,
725    create_info_count: u32,
726    p_create_infos: *const GraphicsPipelineCreateInfo<'_>,
727    p_allocator: *const AllocationCallbacks<'_>,
728    p_pipelines: *mut Pipeline,
729) -> Result;
730#[allow(non_camel_case_types)]
731pub type PFN_vkCreateFramebuffer = unsafe extern "system" fn(
732    device: crate::vk::Device,
733    p_create_info: *const FramebufferCreateInfo<'_>,
734    p_allocator: *const AllocationCallbacks<'_>,
735    p_framebuffer: *mut Framebuffer,
736) -> Result;
737#[allow(non_camel_case_types)]
738pub type PFN_vkDestroyFramebuffer = unsafe extern "system" fn(
739    device: crate::vk::Device,
740    framebuffer: Framebuffer,
741    p_allocator: *const AllocationCallbacks<'_>,
742);
743#[allow(non_camel_case_types)]
744pub type PFN_vkCreateRenderPass = unsafe extern "system" fn(
745    device: crate::vk::Device,
746    p_create_info: *const RenderPassCreateInfo<'_>,
747    p_allocator: *const AllocationCallbacks<'_>,
748    p_render_pass: *mut RenderPass,
749) -> Result;
750#[allow(non_camel_case_types)]
751pub type PFN_vkDestroyRenderPass = unsafe extern "system" fn(
752    device: crate::vk::Device,
753    render_pass: RenderPass,
754    p_allocator: *const AllocationCallbacks<'_>,
755);
756#[allow(non_camel_case_types)]
757pub type PFN_vkGetRenderAreaGranularity = unsafe extern "system" fn(
758    device: crate::vk::Device,
759    render_pass: RenderPass,
760    p_granularity: *mut Extent2D,
761);
762#[allow(non_camel_case_types)]
763pub type PFN_vkCmdSetViewport = unsafe extern "system" fn(
764    command_buffer: CommandBuffer,
765    first_viewport: u32,
766    viewport_count: u32,
767    p_viewports: *const Viewport,
768);
769#[allow(non_camel_case_types)]
770pub type PFN_vkCmdSetScissor = unsafe extern "system" fn(
771    command_buffer: CommandBuffer,
772    first_scissor: u32,
773    scissor_count: u32,
774    p_scissors: *const Rect2D,
775);
776#[allow(non_camel_case_types)]
777pub type PFN_vkCmdSetLineWidth =
778    unsafe extern "system" fn(command_buffer: CommandBuffer, line_width: f32);
779#[allow(non_camel_case_types)]
780pub type PFN_vkCmdSetDepthBias = unsafe extern "system" fn(
781    command_buffer: CommandBuffer,
782    depth_bias_constant_factor: f32,
783    depth_bias_clamp: f32,
784    depth_bias_slope_factor: f32,
785);
786#[allow(non_camel_case_types)]
787pub type PFN_vkCmdSetBlendConstants =
788    unsafe extern "system" fn(command_buffer: CommandBuffer, blend_constants: *const [f32; 4usize]);
789#[allow(non_camel_case_types)]
790pub type PFN_vkCmdSetDepthBounds = unsafe extern "system" fn(
791    command_buffer: CommandBuffer,
792    min_depth_bounds: f32,
793    max_depth_bounds: f32,
794);
795#[allow(non_camel_case_types)]
796pub type PFN_vkCmdSetStencilCompareMask = unsafe extern "system" fn(
797    command_buffer: CommandBuffer,
798    face_mask: StencilFaceFlags,
799    compare_mask: u32,
800);
801#[allow(non_camel_case_types)]
802pub type PFN_vkCmdSetStencilWriteMask = unsafe extern "system" fn(
803    command_buffer: CommandBuffer,
804    face_mask: StencilFaceFlags,
805    write_mask: u32,
806);
807#[allow(non_camel_case_types)]
808pub type PFN_vkCmdSetStencilReference = unsafe extern "system" fn(
809    command_buffer: CommandBuffer,
810    face_mask: StencilFaceFlags,
811    reference: u32,
812);
813#[allow(non_camel_case_types)]
814pub type PFN_vkCmdBindIndexBuffer = unsafe extern "system" fn(
815    command_buffer: CommandBuffer,
816    buffer: Buffer,
817    offset: DeviceSize,
818    index_type: IndexType,
819);
820#[allow(non_camel_case_types)]
821pub type PFN_vkCmdBindVertexBuffers = unsafe extern "system" fn(
822    command_buffer: CommandBuffer,
823    first_binding: u32,
824    binding_count: u32,
825    p_buffers: *const Buffer,
826    p_offsets: *const DeviceSize,
827);
828#[allow(non_camel_case_types)]
829pub type PFN_vkCmdDraw = unsafe extern "system" fn(
830    command_buffer: CommandBuffer,
831    vertex_count: u32,
832    instance_count: u32,
833    first_vertex: u32,
834    first_instance: u32,
835);
836#[allow(non_camel_case_types)]
837pub type PFN_vkCmdDrawIndexed = unsafe extern "system" fn(
838    command_buffer: CommandBuffer,
839    index_count: u32,
840    instance_count: u32,
841    first_index: u32,
842    vertex_offset: i32,
843    first_instance: u32,
844);
845#[allow(non_camel_case_types)]
846pub type PFN_vkCmdDrawIndirect = unsafe extern "system" fn(
847    command_buffer: CommandBuffer,
848    buffer: Buffer,
849    offset: DeviceSize,
850    draw_count: u32,
851    stride: u32,
852);
853#[allow(non_camel_case_types)]
854pub type PFN_vkCmdDrawIndexedIndirect = unsafe extern "system" fn(
855    command_buffer: CommandBuffer,
856    buffer: Buffer,
857    offset: DeviceSize,
858    draw_count: u32,
859    stride: u32,
860);
861#[allow(non_camel_case_types)]
862pub type PFN_vkCmdBlitImage = unsafe extern "system" fn(
863    command_buffer: CommandBuffer,
864    src_image: Image,
865    src_image_layout: ImageLayout,
866    dst_image: Image,
867    dst_image_layout: ImageLayout,
868    region_count: u32,
869    p_regions: *const ImageBlit,
870    filter: Filter,
871);
872#[allow(non_camel_case_types)]
873pub type PFN_vkCmdClearDepthStencilImage = unsafe extern "system" fn(
874    command_buffer: CommandBuffer,
875    image: Image,
876    image_layout: ImageLayout,
877    p_depth_stencil: *const ClearDepthStencilValue,
878    range_count: u32,
879    p_ranges: *const ImageSubresourceRange,
880);
881#[allow(non_camel_case_types)]
882pub type PFN_vkCmdClearAttachments = unsafe extern "system" fn(
883    command_buffer: CommandBuffer,
884    attachment_count: u32,
885    p_attachments: *const ClearAttachment,
886    rect_count: u32,
887    p_rects: *const ClearRect,
888);
889#[allow(non_camel_case_types)]
890pub type PFN_vkCmdResolveImage = unsafe extern "system" fn(
891    command_buffer: CommandBuffer,
892    src_image: Image,
893    src_image_layout: ImageLayout,
894    dst_image: Image,
895    dst_image_layout: ImageLayout,
896    region_count: u32,
897    p_regions: *const ImageResolve,
898);
899#[allow(non_camel_case_types)]
900pub type PFN_vkCmdBeginRenderPass = unsafe extern "system" fn(
901    command_buffer: CommandBuffer,
902    p_render_pass_begin: *const RenderPassBeginInfo<'_>,
903    contents: SubpassContents,
904);
905#[allow(non_camel_case_types)]
906pub type PFN_vkCmdNextSubpass =
907    unsafe extern "system" fn(command_buffer: CommandBuffer, contents: SubpassContents);
908#[allow(non_camel_case_types)]
909pub type PFN_vkCmdEndRenderPass = unsafe extern "system" fn(command_buffer: CommandBuffer);
910#[allow(non_camel_case_types)]
911pub type PFN_vkEnumerateInstanceVersion =
912    unsafe extern "system" fn(p_api_version: *mut u32) -> Result;
913#[allow(non_camel_case_types)]
914pub type PFN_vkGetDeviceQueue2 = unsafe extern "system" fn(
915    device: crate::vk::Device,
916    p_queue_info: *const DeviceQueueInfo2<'_>,
917    p_queue: *mut Queue,
918);