jay_ash/extensions/khr/maintenance5.rs
1//! <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_maintenance5.html>
2
3#[cfg(doc)]
4use crate::ext;
5use crate::vk;
6use core::mem;
7
8impl crate::khr::maintenance5::Device {
9 /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdBindIndexBuffer2KHR.html>
10 #[inline]
11 pub unsafe fn cmd_bind_index_buffer2(
12 &self,
13 command_buffer: vk::CommandBuffer,
14 buffer: vk::Buffer,
15 offset: vk::DeviceSize,
16 size: vk::DeviceSize,
17 index_type: vk::IndexType,
18 ) {
19 unsafe {
20 (self.fp.cmd_bind_index_buffer2_khr)(command_buffer, buffer, offset, size, index_type)
21 }
22 }
23
24 /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetRenderingAreaGranularityKHR.html>
25 #[inline]
26 pub unsafe fn get_rendering_area_granularity(
27 &self,
28 rendering_area_info: &vk::RenderingAreaInfoKHR<'_>,
29 ) -> vk::Extent2D {
30 unsafe {
31 let mut granularity = mem::MaybeUninit::uninit();
32 (self.fp.get_rendering_area_granularity_khr)(
33 self.handle,
34 rendering_area_info,
35 granularity.as_mut_ptr(),
36 );
37 granularity.assume_init()
38 }
39 }
40
41 /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetDeviceImageSubresourceLayoutKHR.html>
42 #[inline]
43 pub unsafe fn get_device_image_subresource_layout(
44 &self,
45 info: &vk::DeviceImageSubresourceInfoKHR<'_>,
46 layout: &mut vk::SubresourceLayout2KHR<'_>,
47 ) {
48 unsafe { (self.fp.get_device_image_subresource_layout_khr)(self.handle, info, layout) }
49 }
50
51 /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetImageSubresourceLayout2KHR.html>
52 ///
53 /// Also available as [`ext::host_image_copy::Device::get_image_subresource_layout2()`]
54 /// when [`VK_EXT_host_image_copy`] is enabled.
55 ///
56 /// Also available as [`ext::image_compression_control::Device::get_image_subresource_layout2()`]
57 /// when [`VK_EXT_image_compression_control`] is enabled.
58 ///
59 /// [`VK_EXT_host_image_copy`]: https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_host_image_copy.html
60 /// [`VK_EXT_image_compression_control`]: https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_image_compression_control.html
61 #[inline]
62 pub unsafe fn get_image_subresource_layout2(
63 &self,
64 image: vk::Image,
65 subresource: &vk::ImageSubresource2KHR<'_>,
66 layout: &mut vk::SubresourceLayout2KHR<'_>,
67 ) {
68 unsafe {
69 (self.fp.get_image_subresource_layout2_khr)(self.handle, image, subresource, layout)
70 }
71 }
72}