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_vkCreateEvent = unsafe extern "system" fn(
262    device: crate::vk::Device,
263    p_create_info: *const EventCreateInfo<'_>,
264    p_allocator: *const AllocationCallbacks<'_>,
265    p_event: *mut Event,
266) -> Result;
267#[allow(non_camel_case_types)]
268pub type PFN_vkDestroyEvent = unsafe extern "system" fn(
269    device: crate::vk::Device,
270    event: Event,
271    p_allocator: *const AllocationCallbacks<'_>,
272);
273#[allow(non_camel_case_types)]
274pub type PFN_vkGetEventStatus =
275    unsafe extern "system" fn(device: crate::vk::Device, event: Event) -> Result;
276#[allow(non_camel_case_types)]
277pub type PFN_vkSetEvent =
278    unsafe extern "system" fn(device: crate::vk::Device, event: Event) -> Result;
279#[allow(non_camel_case_types)]
280pub type PFN_vkResetEvent =
281    unsafe extern "system" fn(device: crate::vk::Device, event: Event) -> Result;
282#[allow(non_camel_case_types)]
283pub type PFN_vkCreateQueryPool = unsafe extern "system" fn(
284    device: crate::vk::Device,
285    p_create_info: *const QueryPoolCreateInfo<'_>,
286    p_allocator: *const AllocationCallbacks<'_>,
287    p_query_pool: *mut QueryPool,
288) -> Result;
289#[allow(non_camel_case_types)]
290pub type PFN_vkDestroyQueryPool = unsafe extern "system" fn(
291    device: crate::vk::Device,
292    query_pool: QueryPool,
293    p_allocator: *const AllocationCallbacks<'_>,
294);
295#[allow(non_camel_case_types)]
296pub type PFN_vkGetQueryPoolResults = unsafe extern "system" fn(
297    device: crate::vk::Device,
298    query_pool: QueryPool,
299    first_query: u32,
300    query_count: u32,
301    data_size: usize,
302    p_data: *mut c_void,
303    stride: DeviceSize,
304    flags: QueryResultFlags,
305) -> Result;
306#[allow(non_camel_case_types)]
307pub type PFN_vkCreateBuffer = unsafe extern "system" fn(
308    device: crate::vk::Device,
309    p_create_info: *const BufferCreateInfo<'_>,
310    p_allocator: *const AllocationCallbacks<'_>,
311    p_buffer: *mut Buffer,
312) -> Result;
313#[allow(non_camel_case_types)]
314pub type PFN_vkDestroyBuffer = unsafe extern "system" fn(
315    device: crate::vk::Device,
316    buffer: Buffer,
317    p_allocator: *const AllocationCallbacks<'_>,
318);
319#[allow(non_camel_case_types)]
320pub type PFN_vkCreateBufferView = unsafe extern "system" fn(
321    device: crate::vk::Device,
322    p_create_info: *const BufferViewCreateInfo<'_>,
323    p_allocator: *const AllocationCallbacks<'_>,
324    p_view: *mut BufferView,
325) -> Result;
326#[allow(non_camel_case_types)]
327pub type PFN_vkDestroyBufferView = unsafe extern "system" fn(
328    device: crate::vk::Device,
329    buffer_view: BufferView,
330    p_allocator: *const AllocationCallbacks<'_>,
331);
332#[allow(non_camel_case_types)]
333pub type PFN_vkCreateImage = unsafe extern "system" fn(
334    device: crate::vk::Device,
335    p_create_info: *const ImageCreateInfo<'_>,
336    p_allocator: *const AllocationCallbacks<'_>,
337    p_image: *mut Image,
338) -> Result;
339#[allow(non_camel_case_types)]
340pub type PFN_vkDestroyImage = unsafe extern "system" fn(
341    device: crate::vk::Device,
342    image: Image,
343    p_allocator: *const AllocationCallbacks<'_>,
344);
345#[allow(non_camel_case_types)]
346pub type PFN_vkGetImageSubresourceLayout = unsafe extern "system" fn(
347    device: crate::vk::Device,
348    image: Image,
349    p_subresource: *const ImageSubresource,
350    p_layout: *mut SubresourceLayout,
351);
352#[allow(non_camel_case_types)]
353pub type PFN_vkCreateImageView = unsafe extern "system" fn(
354    device: crate::vk::Device,
355    p_create_info: *const ImageViewCreateInfo<'_>,
356    p_allocator: *const AllocationCallbacks<'_>,
357    p_view: *mut ImageView,
358) -> Result;
359#[allow(non_camel_case_types)]
360pub type PFN_vkDestroyImageView = unsafe extern "system" fn(
361    device: crate::vk::Device,
362    image_view: ImageView,
363    p_allocator: *const AllocationCallbacks<'_>,
364);
365#[allow(non_camel_case_types)]
366pub type PFN_vkCreateShaderModule = unsafe extern "system" fn(
367    device: crate::vk::Device,
368    p_create_info: *const ShaderModuleCreateInfo<'_>,
369    p_allocator: *const AllocationCallbacks<'_>,
370    p_shader_module: *mut ShaderModule,
371) -> Result;
372#[allow(non_camel_case_types)]
373pub type PFN_vkDestroyShaderModule = unsafe extern "system" fn(
374    device: crate::vk::Device,
375    shader_module: ShaderModule,
376    p_allocator: *const AllocationCallbacks<'_>,
377);
378#[allow(non_camel_case_types)]
379pub type PFN_vkCreatePipelineCache = unsafe extern "system" fn(
380    device: crate::vk::Device,
381    p_create_info: *const PipelineCacheCreateInfo<'_>,
382    p_allocator: *const AllocationCallbacks<'_>,
383    p_pipeline_cache: *mut PipelineCache,
384) -> Result;
385#[allow(non_camel_case_types)]
386pub type PFN_vkDestroyPipelineCache = unsafe extern "system" fn(
387    device: crate::vk::Device,
388    pipeline_cache: PipelineCache,
389    p_allocator: *const AllocationCallbacks<'_>,
390);
391#[allow(non_camel_case_types)]
392pub type PFN_vkGetPipelineCacheData = unsafe extern "system" fn(
393    device: crate::vk::Device,
394    pipeline_cache: PipelineCache,
395    p_data_size: *mut usize,
396    p_data: *mut c_void,
397) -> Result;
398#[allow(non_camel_case_types)]
399pub type PFN_vkMergePipelineCaches = unsafe extern "system" fn(
400    device: crate::vk::Device,
401    dst_cache: PipelineCache,
402    src_cache_count: u32,
403    p_src_caches: *const PipelineCache,
404) -> Result;
405#[allow(non_camel_case_types)]
406pub type PFN_vkCreateGraphicsPipelines = unsafe extern "system" fn(
407    device: crate::vk::Device,
408    pipeline_cache: PipelineCache,
409    create_info_count: u32,
410    p_create_infos: *const GraphicsPipelineCreateInfo<'_>,
411    p_allocator: *const AllocationCallbacks<'_>,
412    p_pipelines: *mut Pipeline,
413) -> Result;
414#[allow(non_camel_case_types)]
415pub type PFN_vkCreateComputePipelines = unsafe extern "system" fn(
416    device: crate::vk::Device,
417    pipeline_cache: PipelineCache,
418    create_info_count: u32,
419    p_create_infos: *const ComputePipelineCreateInfo<'_>,
420    p_allocator: *const AllocationCallbacks<'_>,
421    p_pipelines: *mut Pipeline,
422) -> Result;
423#[allow(non_camel_case_types)]
424pub type PFN_vkDestroyPipeline = unsafe extern "system" fn(
425    device: crate::vk::Device,
426    pipeline: Pipeline,
427    p_allocator: *const AllocationCallbacks<'_>,
428);
429#[allow(non_camel_case_types)]
430pub type PFN_vkCreatePipelineLayout = unsafe extern "system" fn(
431    device: crate::vk::Device,
432    p_create_info: *const PipelineLayoutCreateInfo<'_>,
433    p_allocator: *const AllocationCallbacks<'_>,
434    p_pipeline_layout: *mut PipelineLayout,
435) -> Result;
436#[allow(non_camel_case_types)]
437pub type PFN_vkDestroyPipelineLayout = unsafe extern "system" fn(
438    device: crate::vk::Device,
439    pipeline_layout: PipelineLayout,
440    p_allocator: *const AllocationCallbacks<'_>,
441);
442#[allow(non_camel_case_types)]
443pub type PFN_vkCreateSampler = unsafe extern "system" fn(
444    device: crate::vk::Device,
445    p_create_info: *const SamplerCreateInfo<'_>,
446    p_allocator: *const AllocationCallbacks<'_>,
447    p_sampler: *mut Sampler,
448) -> Result;
449#[allow(non_camel_case_types)]
450pub type PFN_vkDestroySampler = unsafe extern "system" fn(
451    device: crate::vk::Device,
452    sampler: Sampler,
453    p_allocator: *const AllocationCallbacks<'_>,
454);
455#[allow(non_camel_case_types)]
456pub type PFN_vkCreateDescriptorSetLayout = unsafe extern "system" fn(
457    device: crate::vk::Device,
458    p_create_info: *const DescriptorSetLayoutCreateInfo<'_>,
459    p_allocator: *const AllocationCallbacks<'_>,
460    p_set_layout: *mut DescriptorSetLayout,
461) -> Result;
462#[allow(non_camel_case_types)]
463pub type PFN_vkDestroyDescriptorSetLayout = unsafe extern "system" fn(
464    device: crate::vk::Device,
465    descriptor_set_layout: DescriptorSetLayout,
466    p_allocator: *const AllocationCallbacks<'_>,
467);
468#[allow(non_camel_case_types)]
469pub type PFN_vkCreateDescriptorPool = unsafe extern "system" fn(
470    device: crate::vk::Device,
471    p_create_info: *const DescriptorPoolCreateInfo<'_>,
472    p_allocator: *const AllocationCallbacks<'_>,
473    p_descriptor_pool: *mut DescriptorPool,
474) -> Result;
475#[allow(non_camel_case_types)]
476pub type PFN_vkDestroyDescriptorPool = unsafe extern "system" fn(
477    device: crate::vk::Device,
478    descriptor_pool: DescriptorPool,
479    p_allocator: *const AllocationCallbacks<'_>,
480);
481#[allow(non_camel_case_types)]
482pub type PFN_vkResetDescriptorPool = unsafe extern "system" fn(
483    device: crate::vk::Device,
484    descriptor_pool: DescriptorPool,
485    flags: DescriptorPoolResetFlags,
486) -> Result;
487#[allow(non_camel_case_types)]
488pub type PFN_vkAllocateDescriptorSets = unsafe extern "system" fn(
489    device: crate::vk::Device,
490    p_allocate_info: *const DescriptorSetAllocateInfo<'_>,
491    p_descriptor_sets: *mut DescriptorSet,
492) -> Result;
493#[allow(non_camel_case_types)]
494pub type PFN_vkFreeDescriptorSets = unsafe extern "system" fn(
495    device: crate::vk::Device,
496    descriptor_pool: DescriptorPool,
497    descriptor_set_count: u32,
498    p_descriptor_sets: *const DescriptorSet,
499) -> Result;
500#[allow(non_camel_case_types)]
501pub type PFN_vkUpdateDescriptorSets = unsafe extern "system" fn(
502    device: crate::vk::Device,
503    descriptor_write_count: u32,
504    p_descriptor_writes: *const WriteDescriptorSet<'_>,
505    descriptor_copy_count: u32,
506    p_descriptor_copies: *const CopyDescriptorSet<'_>,
507);
508#[allow(non_camel_case_types)]
509pub type PFN_vkCreateFramebuffer = unsafe extern "system" fn(
510    device: crate::vk::Device,
511    p_create_info: *const FramebufferCreateInfo<'_>,
512    p_allocator: *const AllocationCallbacks<'_>,
513    p_framebuffer: *mut Framebuffer,
514) -> Result;
515#[allow(non_camel_case_types)]
516pub type PFN_vkDestroyFramebuffer = unsafe extern "system" fn(
517    device: crate::vk::Device,
518    framebuffer: Framebuffer,
519    p_allocator: *const AllocationCallbacks<'_>,
520);
521#[allow(non_camel_case_types)]
522pub type PFN_vkCreateRenderPass = unsafe extern "system" fn(
523    device: crate::vk::Device,
524    p_create_info: *const RenderPassCreateInfo<'_>,
525    p_allocator: *const AllocationCallbacks<'_>,
526    p_render_pass: *mut RenderPass,
527) -> Result;
528#[allow(non_camel_case_types)]
529pub type PFN_vkDestroyRenderPass = unsafe extern "system" fn(
530    device: crate::vk::Device,
531    render_pass: RenderPass,
532    p_allocator: *const AllocationCallbacks<'_>,
533);
534#[allow(non_camel_case_types)]
535pub type PFN_vkGetRenderAreaGranularity = unsafe extern "system" fn(
536    device: crate::vk::Device,
537    render_pass: RenderPass,
538    p_granularity: *mut Extent2D,
539);
540#[allow(non_camel_case_types)]
541pub type PFN_vkCreateCommandPool = unsafe extern "system" fn(
542    device: crate::vk::Device,
543    p_create_info: *const CommandPoolCreateInfo<'_>,
544    p_allocator: *const AllocationCallbacks<'_>,
545    p_command_pool: *mut CommandPool,
546) -> Result;
547#[allow(non_camel_case_types)]
548pub type PFN_vkDestroyCommandPool = unsafe extern "system" fn(
549    device: crate::vk::Device,
550    command_pool: CommandPool,
551    p_allocator: *const AllocationCallbacks<'_>,
552);
553#[allow(non_camel_case_types)]
554pub type PFN_vkResetCommandPool = unsafe extern "system" fn(
555    device: crate::vk::Device,
556    command_pool: CommandPool,
557    flags: CommandPoolResetFlags,
558) -> Result;
559#[allow(non_camel_case_types)]
560pub type PFN_vkAllocateCommandBuffers = unsafe extern "system" fn(
561    device: crate::vk::Device,
562    p_allocate_info: *const CommandBufferAllocateInfo<'_>,
563    p_command_buffers: *mut CommandBuffer,
564) -> Result;
565#[allow(non_camel_case_types)]
566pub type PFN_vkFreeCommandBuffers = unsafe extern "system" fn(
567    device: crate::vk::Device,
568    command_pool: CommandPool,
569    command_buffer_count: u32,
570    p_command_buffers: *const CommandBuffer,
571);
572#[allow(non_camel_case_types)]
573pub type PFN_vkBeginCommandBuffer = unsafe extern "system" fn(
574    command_buffer: CommandBuffer,
575    p_begin_info: *const CommandBufferBeginInfo<'_>,
576) -> Result;
577#[allow(non_camel_case_types)]
578pub type PFN_vkEndCommandBuffer =
579    unsafe extern "system" fn(command_buffer: CommandBuffer) -> Result;
580#[allow(non_camel_case_types)]
581pub type PFN_vkResetCommandBuffer = unsafe extern "system" fn(
582    command_buffer: CommandBuffer,
583    flags: CommandBufferResetFlags,
584) -> Result;
585#[allow(non_camel_case_types)]
586pub type PFN_vkCmdBindPipeline = unsafe extern "system" fn(
587    command_buffer: CommandBuffer,
588    pipeline_bind_point: PipelineBindPoint,
589    pipeline: Pipeline,
590);
591#[allow(non_camel_case_types)]
592pub type PFN_vkCmdSetViewport = unsafe extern "system" fn(
593    command_buffer: CommandBuffer,
594    first_viewport: u32,
595    viewport_count: u32,
596    p_viewports: *const Viewport,
597);
598#[allow(non_camel_case_types)]
599pub type PFN_vkCmdSetScissor = unsafe extern "system" fn(
600    command_buffer: CommandBuffer,
601    first_scissor: u32,
602    scissor_count: u32,
603    p_scissors: *const Rect2D,
604);
605#[allow(non_camel_case_types)]
606pub type PFN_vkCmdSetLineWidth =
607    unsafe extern "system" fn(command_buffer: CommandBuffer, line_width: f32);
608#[allow(non_camel_case_types)]
609pub type PFN_vkCmdSetDepthBias = unsafe extern "system" fn(
610    command_buffer: CommandBuffer,
611    depth_bias_constant_factor: f32,
612    depth_bias_clamp: f32,
613    depth_bias_slope_factor: f32,
614);
615#[allow(non_camel_case_types)]
616pub type PFN_vkCmdSetBlendConstants =
617    unsafe extern "system" fn(command_buffer: CommandBuffer, blend_constants: *const [f32; 4usize]);
618#[allow(non_camel_case_types)]
619pub type PFN_vkCmdSetDepthBounds = unsafe extern "system" fn(
620    command_buffer: CommandBuffer,
621    min_depth_bounds: f32,
622    max_depth_bounds: f32,
623);
624#[allow(non_camel_case_types)]
625pub type PFN_vkCmdSetStencilCompareMask = unsafe extern "system" fn(
626    command_buffer: CommandBuffer,
627    face_mask: StencilFaceFlags,
628    compare_mask: u32,
629);
630#[allow(non_camel_case_types)]
631pub type PFN_vkCmdSetStencilWriteMask = unsafe extern "system" fn(
632    command_buffer: CommandBuffer,
633    face_mask: StencilFaceFlags,
634    write_mask: u32,
635);
636#[allow(non_camel_case_types)]
637pub type PFN_vkCmdSetStencilReference = unsafe extern "system" fn(
638    command_buffer: CommandBuffer,
639    face_mask: StencilFaceFlags,
640    reference: u32,
641);
642#[allow(non_camel_case_types)]
643pub type PFN_vkCmdBindDescriptorSets = unsafe extern "system" fn(
644    command_buffer: CommandBuffer,
645    pipeline_bind_point: PipelineBindPoint,
646    layout: PipelineLayout,
647    first_set: u32,
648    descriptor_set_count: u32,
649    p_descriptor_sets: *const DescriptorSet,
650    dynamic_offset_count: u32,
651    p_dynamic_offsets: *const u32,
652);
653#[allow(non_camel_case_types)]
654pub type PFN_vkCmdBindIndexBuffer = unsafe extern "system" fn(
655    command_buffer: CommandBuffer,
656    buffer: Buffer,
657    offset: DeviceSize,
658    index_type: IndexType,
659);
660#[allow(non_camel_case_types)]
661pub type PFN_vkCmdBindVertexBuffers = unsafe extern "system" fn(
662    command_buffer: CommandBuffer,
663    first_binding: u32,
664    binding_count: u32,
665    p_buffers: *const Buffer,
666    p_offsets: *const DeviceSize,
667);
668#[allow(non_camel_case_types)]
669pub type PFN_vkCmdDraw = unsafe extern "system" fn(
670    command_buffer: CommandBuffer,
671    vertex_count: u32,
672    instance_count: u32,
673    first_vertex: u32,
674    first_instance: u32,
675);
676#[allow(non_camel_case_types)]
677pub type PFN_vkCmdDrawIndexed = unsafe extern "system" fn(
678    command_buffer: CommandBuffer,
679    index_count: u32,
680    instance_count: u32,
681    first_index: u32,
682    vertex_offset: i32,
683    first_instance: u32,
684);
685#[allow(non_camel_case_types)]
686pub type PFN_vkCmdDrawIndirect = unsafe extern "system" fn(
687    command_buffer: CommandBuffer,
688    buffer: Buffer,
689    offset: DeviceSize,
690    draw_count: u32,
691    stride: u32,
692);
693#[allow(non_camel_case_types)]
694pub type PFN_vkCmdDrawIndexedIndirect = unsafe extern "system" fn(
695    command_buffer: CommandBuffer,
696    buffer: Buffer,
697    offset: DeviceSize,
698    draw_count: u32,
699    stride: u32,
700);
701#[allow(non_camel_case_types)]
702pub type PFN_vkCmdDispatch = unsafe extern "system" fn(
703    command_buffer: CommandBuffer,
704    group_count_x: u32,
705    group_count_y: u32,
706    group_count_z: u32,
707);
708#[allow(non_camel_case_types)]
709pub type PFN_vkCmdDispatchIndirect =
710    unsafe extern "system" fn(command_buffer: CommandBuffer, buffer: Buffer, offset: DeviceSize);
711#[allow(non_camel_case_types)]
712pub type PFN_vkCmdCopyBuffer = unsafe extern "system" fn(
713    command_buffer: CommandBuffer,
714    src_buffer: Buffer,
715    dst_buffer: Buffer,
716    region_count: u32,
717    p_regions: *const BufferCopy,
718);
719#[allow(non_camel_case_types)]
720pub type PFN_vkCmdCopyImage = unsafe extern "system" fn(
721    command_buffer: CommandBuffer,
722    src_image: Image,
723    src_image_layout: ImageLayout,
724    dst_image: Image,
725    dst_image_layout: ImageLayout,
726    region_count: u32,
727    p_regions: *const ImageCopy,
728);
729#[allow(non_camel_case_types)]
730pub type PFN_vkCmdBlitImage = unsafe extern "system" fn(
731    command_buffer: CommandBuffer,
732    src_image: Image,
733    src_image_layout: ImageLayout,
734    dst_image: Image,
735    dst_image_layout: ImageLayout,
736    region_count: u32,
737    p_regions: *const ImageBlit,
738    filter: Filter,
739);
740#[allow(non_camel_case_types)]
741pub type PFN_vkCmdCopyBufferToImage = unsafe extern "system" fn(
742    command_buffer: CommandBuffer,
743    src_buffer: Buffer,
744    dst_image: Image,
745    dst_image_layout: ImageLayout,
746    region_count: u32,
747    p_regions: *const BufferImageCopy,
748);
749#[allow(non_camel_case_types)]
750pub type PFN_vkCmdCopyImageToBuffer = unsafe extern "system" fn(
751    command_buffer: CommandBuffer,
752    src_image: Image,
753    src_image_layout: ImageLayout,
754    dst_buffer: Buffer,
755    region_count: u32,
756    p_regions: *const BufferImageCopy,
757);
758#[allow(non_camel_case_types)]
759pub type PFN_vkCmdUpdateBuffer = unsafe extern "system" fn(
760    command_buffer: CommandBuffer,
761    dst_buffer: Buffer,
762    dst_offset: DeviceSize,
763    data_size: DeviceSize,
764    p_data: *const c_void,
765);
766#[allow(non_camel_case_types)]
767pub type PFN_vkCmdFillBuffer = unsafe extern "system" fn(
768    command_buffer: CommandBuffer,
769    dst_buffer: Buffer,
770    dst_offset: DeviceSize,
771    size: DeviceSize,
772    data: u32,
773);
774#[allow(non_camel_case_types)]
775pub type PFN_vkCmdClearColorImage = unsafe extern "system" fn(
776    command_buffer: CommandBuffer,
777    image: Image,
778    image_layout: ImageLayout,
779    p_color: *const ClearColorValue,
780    range_count: u32,
781    p_ranges: *const ImageSubresourceRange,
782);
783#[allow(non_camel_case_types)]
784pub type PFN_vkCmdClearDepthStencilImage = unsafe extern "system" fn(
785    command_buffer: CommandBuffer,
786    image: Image,
787    image_layout: ImageLayout,
788    p_depth_stencil: *const ClearDepthStencilValue,
789    range_count: u32,
790    p_ranges: *const ImageSubresourceRange,
791);
792#[allow(non_camel_case_types)]
793pub type PFN_vkCmdClearAttachments = unsafe extern "system" fn(
794    command_buffer: CommandBuffer,
795    attachment_count: u32,
796    p_attachments: *const ClearAttachment,
797    rect_count: u32,
798    p_rects: *const ClearRect,
799);
800#[allow(non_camel_case_types)]
801pub type PFN_vkCmdResolveImage = unsafe extern "system" fn(
802    command_buffer: CommandBuffer,
803    src_image: Image,
804    src_image_layout: ImageLayout,
805    dst_image: Image,
806    dst_image_layout: ImageLayout,
807    region_count: u32,
808    p_regions: *const ImageResolve,
809);
810#[allow(non_camel_case_types)]
811pub type PFN_vkCmdSetEvent = unsafe extern "system" fn(
812    command_buffer: CommandBuffer,
813    event: Event,
814    stage_mask: PipelineStageFlags,
815);
816#[allow(non_camel_case_types)]
817pub type PFN_vkCmdResetEvent = unsafe extern "system" fn(
818    command_buffer: CommandBuffer,
819    event: Event,
820    stage_mask: PipelineStageFlags,
821);
822#[allow(non_camel_case_types)]
823pub type PFN_vkCmdWaitEvents = unsafe extern "system" fn(
824    command_buffer: CommandBuffer,
825    event_count: u32,
826    p_events: *const Event,
827    src_stage_mask: PipelineStageFlags,
828    dst_stage_mask: PipelineStageFlags,
829    memory_barrier_count: u32,
830    p_memory_barriers: *const MemoryBarrier<'_>,
831    buffer_memory_barrier_count: u32,
832    p_buffer_memory_barriers: *const BufferMemoryBarrier<'_>,
833    image_memory_barrier_count: u32,
834    p_image_memory_barriers: *const ImageMemoryBarrier<'_>,
835);
836#[allow(non_camel_case_types)]
837pub type PFN_vkCmdPipelineBarrier = unsafe extern "system" fn(
838    command_buffer: CommandBuffer,
839    src_stage_mask: PipelineStageFlags,
840    dst_stage_mask: PipelineStageFlags,
841    dependency_flags: DependencyFlags,
842    memory_barrier_count: u32,
843    p_memory_barriers: *const MemoryBarrier<'_>,
844    buffer_memory_barrier_count: u32,
845    p_buffer_memory_barriers: *const BufferMemoryBarrier<'_>,
846    image_memory_barrier_count: u32,
847    p_image_memory_barriers: *const ImageMemoryBarrier<'_>,
848);
849#[allow(non_camel_case_types)]
850pub type PFN_vkCmdBeginQuery = unsafe extern "system" fn(
851    command_buffer: CommandBuffer,
852    query_pool: QueryPool,
853    query: u32,
854    flags: QueryControlFlags,
855);
856#[allow(non_camel_case_types)]
857pub type PFN_vkCmdEndQuery =
858    unsafe extern "system" fn(command_buffer: CommandBuffer, query_pool: QueryPool, query: u32);
859#[allow(non_camel_case_types)]
860pub type PFN_vkCmdResetQueryPool = unsafe extern "system" fn(
861    command_buffer: CommandBuffer,
862    query_pool: QueryPool,
863    first_query: u32,
864    query_count: u32,
865);
866#[allow(non_camel_case_types)]
867pub type PFN_vkCmdWriteTimestamp = unsafe extern "system" fn(
868    command_buffer: CommandBuffer,
869    pipeline_stage: PipelineStageFlags,
870    query_pool: QueryPool,
871    query: u32,
872);
873#[allow(non_camel_case_types)]
874pub type PFN_vkCmdCopyQueryPoolResults = unsafe extern "system" fn(
875    command_buffer: CommandBuffer,
876    query_pool: QueryPool,
877    first_query: u32,
878    query_count: u32,
879    dst_buffer: Buffer,
880    dst_offset: DeviceSize,
881    stride: DeviceSize,
882    flags: QueryResultFlags,
883);
884#[allow(non_camel_case_types)]
885pub type PFN_vkCmdPushConstants = unsafe extern "system" fn(
886    command_buffer: CommandBuffer,
887    layout: PipelineLayout,
888    stage_flags: ShaderStageFlags,
889    offset: u32,
890    size: u32,
891    p_values: *const c_void,
892);
893#[allow(non_camel_case_types)]
894pub type PFN_vkCmdBeginRenderPass = unsafe extern "system" fn(
895    command_buffer: CommandBuffer,
896    p_render_pass_begin: *const RenderPassBeginInfo<'_>,
897    contents: SubpassContents,
898);
899#[allow(non_camel_case_types)]
900pub type PFN_vkCmdNextSubpass =
901    unsafe extern "system" fn(command_buffer: CommandBuffer, contents: SubpassContents);
902#[allow(non_camel_case_types)]
903pub type PFN_vkCmdEndRenderPass = unsafe extern "system" fn(command_buffer: CommandBuffer);
904#[allow(non_camel_case_types)]
905pub type PFN_vkCmdExecuteCommands = unsafe extern "system" fn(
906    command_buffer: CommandBuffer,
907    command_buffer_count: u32,
908    p_command_buffers: *const CommandBuffer,
909);
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);