From d7f64007623ddd6e7fda3001373c17824a5b47d7 Mon Sep 17 00:00:00 2001 From: Yiwei Zhang Date: Tue, 13 May 2025 23:55:15 -0700 Subject: [PATCH] venus: force different device on NV proprietary If forcing prime blit via disabling modifier support is not sufficient, take a step further to force different device so that the memory type choice is more conservative. Part-of: --- src/virtio/vulkan/vn_physical_device.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/virtio/vulkan/vn_physical_device.c b/src/virtio/vulkan/vn_physical_device.c index 234f386af62..8a43be34cd9 100644 --- a/src/virtio/vulkan/vn_physical_device.c +++ b/src/virtio/vulkan/vn_physical_device.c @@ -525,8 +525,22 @@ vn_physical_device_sanitize_properties(struct vn_physical_device *physical_dev) /* force prime blit on NV proprietary driver */ if (props->driverID == VK_DRIVER_ID_NVIDIA_PROPRIETARY) { - physical_dev->base.vk.supported_extensions - .EXT_image_drm_format_modifier = false; + /* intentionally fail same_gpu check on x11 */ + physical_dev->base.vk.supported_extensions.EXT_pci_bus_info = false; + props->pciDomain = 0; + props->pciBus = 0; + props->pciDevice = 0; + props->pciFunction = 0; + + /* intentionally fail same_gpu check on wayland */ + physical_dev->base.vk.supported_extensions.EXT_physical_device_drm = + false; + props->drmHasPrimary = false; + props->drmHasRender = false; + props->drmPrimaryMajor = 0; + props->drmPrimaryMinor = 0; + props->drmRenderMajor = 0; + props->drmRenderMinor = 0; } /* store renderer VkDriverId for implementation specific workarounds */