From d74253fadc83c05653ca0f19919dbc440ec80d1f Mon Sep 17 00:00:00 2001 From: Joshua Simmons Date: Tue, 11 Jul 2023 09:25:44 +0200 Subject: [PATCH] vulkan-sys: Add device extension enumeration --- libs/ffi/vulkan-sys/src/functions.rs | 7 +++++++ libs/ffi/vulkan-sys/src/lib.rs | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/libs/ffi/vulkan-sys/src/functions.rs b/libs/ffi/vulkan-sys/src/functions.rs index 8a258c0..f4ff7b6 100644 --- a/libs/ffi/vulkan-sys/src/functions.rs +++ b/libs/ffi/vulkan-sys/src/functions.rs @@ -61,6 +61,13 @@ pub type FnEnumeratePhysicalDevices = extern "system" fn( physical_devices: *mut PhysicalDevice, ) -> Result; +pub type FnEnumerateDeviceExtensionProperties = extern "system" fn( + physical_device: PhysicalDevice, + layer_name: *const c_char, + property_count: &mut u32, + properties: *mut ExtensionProperties, +) -> Result; + pub type FnGetPhysicalDeviceFeatures = extern "system" fn(physical_device: PhysicalDevice, features: *mut PhysicalDeviceFeatures); diff --git a/libs/ffi/vulkan-sys/src/lib.rs b/libs/ffi/vulkan-sys/src/lib.rs index e515c06..0e435e6 100644 --- a/libs/ffi/vulkan-sys/src/lib.rs +++ b/libs/ffi/vulkan-sys/src/lib.rs @@ -370,6 +370,7 @@ impl GlobalFunctions { pub struct InstanceFunctions { destroy_instance: FnDestroyInstance, enumerate_physical_devices: FnEnumeratePhysicalDevices, + enumerate_device_extension_properties: FnEnumerateDeviceExtensionProperties, get_physical_device_features: FnGetPhysicalDeviceFeatures, get_physical_device_properties: FnGetPhysicalDeviceProperties, get_physical_device_queue_family_properties: FnGetPhysicalDeviceQueueFamilyProperties, @@ -409,6 +410,10 @@ impl InstanceFunctions { cstr!("vkEnumeratePhysicalDevices"), VERSION_1_0, )), + enumerate_device_extension_properties: transmute::<_, _>(load( + cstr!("vkEnumerateDeviceExtensionProperties"), + VERSION_1_0, + )), get_physical_device_features: transmute::<_, _>(load( cstr!("vkGetPhysicalDeviceFeatures"), VERSION_1_0, @@ -463,6 +468,22 @@ impl InstanceFunctions { (self.enumerate_physical_devices)(instance, physical_device_count, physical_devices) } + #[inline] + pub unsafe fn enumerate_device_extension_properties( + &self, + physical_device: PhysicalDevice, + layer_name: *const c_char, + property_count: &mut u32, + properties: *mut ExtensionProperties, + ) -> Result { + (self.enumerate_device_extension_properties)( + physical_device, + layer_name, + property_count, + properties, + ) + } + #[inline] pub unsafe fn get_physical_device_features( &self, -- 2.49.0