Skip to main content

jay_ash/extensions/khr/
pipeline_executable_properties.rs

1//! <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_pipeline_executable_properties.html>
2
3use crate::prelude::*;
4use crate::vk;
5use alloc::vec::Vec;
6
7impl crate::khr::pipeline_executable_properties::Device {
8    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetPipelineExecutableInternalRepresentationsKHR.html>
9    #[inline]
10    pub unsafe fn get_pipeline_executable_internal_representations(
11        &self,
12        executable_info: &vk::PipelineExecutableInfoKHR<'_>,
13    ) -> VkResult<Vec<vk::PipelineExecutableInternalRepresentationKHR<'_>>> {
14        unsafe {
15            read_into_defaulted_vector(|count, data| {
16                (self.fp.get_pipeline_executable_internal_representations_khr)(
17                    self.handle,
18                    executable_info,
19                    count,
20                    data,
21                )
22            })
23        }
24    }
25
26    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetPipelineExecutablePropertiesKHR.html>
27    #[inline]
28    pub unsafe fn get_pipeline_executable_properties(
29        &self,
30        pipeline_info: &vk::PipelineInfoKHR<'_>,
31    ) -> VkResult<Vec<vk::PipelineExecutablePropertiesKHR<'_>>> {
32        unsafe {
33            read_into_defaulted_vector(|count, data| {
34                (self.fp.get_pipeline_executable_properties_khr)(
35                    self.handle,
36                    pipeline_info,
37                    count,
38                    data,
39                )
40            })
41        }
42    }
43
44    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkGetPipelineExecutableStatisticsKHR.html>
45    #[inline]
46    pub unsafe fn get_pipeline_executable_statistics(
47        &self,
48        executable_info: &vk::PipelineExecutableInfoKHR<'_>,
49    ) -> VkResult<Vec<vk::PipelineExecutableStatisticKHR<'_>>> {
50        unsafe {
51            read_into_defaulted_vector(|count, data| {
52                (self.fp.get_pipeline_executable_statistics_khr)(
53                    self.handle,
54                    executable_info,
55                    count,
56                    data,
57                )
58            })
59        }
60    }
61}