From f38199601ed7d88fbc3ce74c2403960e1f71ee76 Mon Sep 17 00:00:00 2001 From: Gabriele Musco Date: Sun, 6 Apr 2025 12:33:26 +0200 Subject: [PATCH] feat: remove monado vulkan layers check for nvidia fixes #208 --- dist/arch/PKGBUILD | 1 - src/ui/about_dialog.rs | 6 ------ src/ui/app.rs | 1 - src/ui/main_view.rs | 33 --------------------------------- src/vulkaninfo.rs | 41 +++++++++-------------------------------- 5 files changed, 9 insertions(+), 73 deletions(-) diff --git a/dist/arch/PKGBUILD b/dist/arch/PKGBUILD index 3ff8a64..ee1a4b2 100644 --- a/dist/arch/PKGBUILD +++ b/dist/arch/PKGBUILD @@ -33,7 +33,6 @@ makedepends=( ) optdepends=( 'libudev0-shim: steamvr_lh lighthouse driver support' - 'monado-vulkan-layers-git: Vulkan layers for NVIDIA users' ) provides=(envision) conflicts=(envision) diff --git a/src/ui/about_dialog.rs b/src/ui/about_dialog.rs index 8f4235e..795d546 100644 --- a/src/ui/about_dialog.rs +++ b/src/ui/about_dialog.rs @@ -81,12 +81,6 @@ pub fn populate_debug_info(dialog: &adw::AboutDialog, vkinfo: Option<&VulkanInfo .map(|i| i.gpu_names.join(", ")) .unwrap_or(UNKNOWN.into()) ), - format!( - "Monado Vulkan Layers: {}", - vkinfo - .map(|i| i.has_monado_vulkan_layers.to_string()) - .unwrap_or(UNKNOWN.into()) - ), format!("Detected XR Devices: {}", { let devs = PhysicalXRDevice::from_usb(); if devs.is_empty() { diff --git a/src/ui/app.rs b/src/ui/app.rs index 98510a3..5df4dba 100644 --- a/src/ui/app.rs +++ b/src/ui/app.rs @@ -998,7 +998,6 @@ impl AsyncComponent for App { config: config.clone(), selected_profile: selected_profile.clone(), root_win: root.clone().into(), - vkinfo: vkinfo.clone(), }) .forward(sender.input_sender(), |message| match message { MainViewOutMsg::DoStartStopXRService => Msg::DoStartStopXRService, diff --git a/src/ui/main_view.rs b/src/ui/main_view.rs index c81a5a9..ce5f7a6 100644 --- a/src/ui/main_view.rs +++ b/src/ui/main_view.rs @@ -25,7 +25,6 @@ use crate::{ file_utils::{get_writer, mount_has_nosuid}, steamvr_utils::chaperone_info_exists, }, - vulkaninfo::VulkanInfo, wivrn_dbus, xr_devices::XRDevice, }; @@ -75,8 +74,6 @@ pub struct MainView { #[tracker::do_not_track] profile_export_action: gtk::gio::SimpleAction, xrservice_ready: bool, - #[tracker::do_not_track] - vkinfo: Option, wivrn_pairing_mode: bool, wivrn_pin: Option, wivrn_supports_pairing: bool, @@ -126,7 +123,6 @@ pub struct MainViewInit { pub config: Config, pub selected_profile: Profile, pub root_win: gtk::Window, - pub vkinfo: Option, } impl MainView { @@ -461,34 +457,6 @@ impl AsyncComponent for MainView { set_wrap_mode: gtk::pango::WrapMode::Word, } }, - gtk::Box { - set_orientation: gtk::Orientation::Vertical, - set_hexpand: true, - set_vexpand: false, - set_spacing: 12, - add_css_class: "card", - add_css_class: "padded", - set_visible: model - .vkinfo - .as_ref() - .is_some_and( - |i| i.has_nvidia_gpu && !i.has_monado_vulkan_layers - ), - warning_heading(), - gtk::Label { - set_label: concat!( - "An Nvidia GPU has been detected, but it ", - "seems you don't have the Monado Vulkan Layers ", - "installed on your system.\n\nInstall the ", - "Monado Vulkan Layers or your XR session will ", - "crash." - ), - add_css_class: "warning", - set_xalign: 0.0, - set_wrap: true, - set_wrap_mode: gtk::pango::WrapMode::Word, - } - }, gtk::Box { set_orientation: gtk::Orientation::Vertical, set_hexpand: true, @@ -1103,7 +1071,6 @@ impl AsyncComponent for MainView { xrservice_ready: false, profile_delete_action, profile_export_action, - vkinfo: init.vkinfo, wivrn_pairing_mode: false, wivrn_supports_pairing: false, wivrn_pin: None, diff --git a/src/vulkaninfo.rs b/src/vulkaninfo.rs index a8f8110..6d76a92 100644 --- a/src/vulkaninfo.rs +++ b/src/vulkaninfo.rs @@ -5,12 +5,10 @@ use ash::{ #[derive(Debug, Clone)] pub struct VulkanInfo { - pub has_nvidia_gpu: bool, - pub has_monado_vulkan_layers: bool, pub gpu_names: Vec, } -const NVIDIA_VENDOR_ID: u32 = 0x10de; +// const NVIDIA_VENDOR_ID: u32 = 0x10de; impl VulkanInfo { /// # Safety @@ -25,40 +23,19 @@ impl VulkanInfo { None, ) }?; - let mut has_nvidia_gpu = false; - let mut has_monado_vulkan_layers = false; let gpu_names = unsafe { instance.enumerate_physical_devices() }? .into_iter() .filter_map(|d| { - let props = unsafe { instance.get_physical_device_properties(d) }; - if props.vendor_id == NVIDIA_VENDOR_ID { - has_nvidia_gpu = true; - } - if !has_monado_vulkan_layers { - has_monado_vulkan_layers = - unsafe { instance.enumerate_device_layer_properties(d) } - .ok() - .map(|layerprops| { - layerprops.iter().any(|lp| { - lp.layer_name_as_c_str().is_ok_and(|name| { - name.to_string_lossy() - == "VK_LAYER_MND_enable_timeline_semaphore" - }) - }) - }) - == Some(true); - } - props - .device_name_as_c_str() - .ok() - .map(|cs| cs.to_string_lossy().to_string()) + Some( + unsafe { instance.get_physical_device_properties(d) } + .device_name_as_c_str() + .ok()? + .to_string_lossy() + .to_string(), + ) }) .collect(); unsafe { instance.destroy_instance(None) }; - Ok(Self { - gpu_names, - has_nvidia_gpu, - has_monado_vulkan_layers, - }) + Ok(Self { gpu_names }) } }