diff --git a/wgpu-hal/src/vulkan/adapter.rs b/wgpu-hal/src/vulkan/adapter.rs index 1d2fb08a1f..4a016714cd 100644 --- a/wgpu-hal/src/vulkan/adapter.rs +++ b/wgpu-hal/src/vulkan/adapter.rs @@ -1113,6 +1113,10 @@ impl super::Instance { } impl super::Adapter { + pub fn raw_physical_device(&self) -> ash::vk::PhysicalDevice { + self.raw + } + pub fn required_device_extensions(&self, features: wgt::Features) -> Vec<&'static CStr> { let (supported_extensions, unsupported_extensions) = self .phd_capabilities diff --git a/wgpu-hal/src/vulkan/instance.rs b/wgpu-hal/src/vulkan/instance.rs index 6dff2fd485..4a814fc16c 100644 --- a/wgpu-hal/src/vulkan/instance.rs +++ b/wgpu-hal/src/vulkan/instance.rs @@ -133,6 +133,22 @@ impl super::Swapchain { } impl super::Instance { + pub fn entry(&self) -> &ash::Entry { + &self.shared.entry + } + + pub fn raw_instance(&self) -> &ash::Instance { + &self.shared.raw + } + + pub fn driver_api_version(&self) -> u32 { + self.shared.driver_api_version + } + + pub fn extensions(&self) -> &[&'static CStr] { + &self.extensions[..] + } + pub fn required_extensions( entry: &ash::Entry, flags: crate::InstanceFlags, @@ -266,6 +282,7 @@ impl super::Instance { get_physical_device_properties, entry, has_nv_optimus, + driver_api_version, }), extensions, }) diff --git a/wgpu-hal/src/vulkan/mod.rs b/wgpu-hal/src/vulkan/mod.rs index 0b7e116437..b3e1a0aa7f 100644 --- a/wgpu-hal/src/vulkan/mod.rs +++ b/wgpu-hal/src/vulkan/mod.rs @@ -87,6 +87,7 @@ struct InstanceShared { get_physical_device_properties: Option, entry: ash::Entry, has_nv_optimus: bool, + driver_api_version: u32, } pub struct Instance {