From 7f556805c1a7074d0c8f06ededc913822eadd94e Mon Sep 17 00:00:00 2001 From: Val Packett Date: Wed, 10 Sep 2025 15:44:41 -0300 Subject: [PATCH] radv: detect platform:virtio-mmio devices for virtgpu native context VirtIO devices can be configured as platform devices instead of PCI, which is especially common in microVM projects like libkrun. Let's allow RADV to probe MMIO virtgpu devices. Signed-off-by: Val Packett Reviewed-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_physical_device.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/amd/vulkan/radv_physical_device.c b/src/amd/vulkan/radv_physical_device.c index 17d13285276..ad7cd9a5a27 100644 --- a/src/amd/vulkan/radv_physical_device.c +++ b/src/amd/vulkan/radv_physical_device.c @@ -2508,14 +2508,15 @@ create_drm_physical_device(struct vk_instance *vk_instance, struct _drmDevice *d #ifndef _WIN32 bool supported_device = false; - if (!(device->available_nodes & (1 << DRM_NODE_RENDER)) || device->bustype != DRM_BUS_PCI) + if (!(device->available_nodes & (1 << DRM_NODE_RENDER))) return VK_ERROR_INCOMPATIBLE_DRIVER; #ifdef HAVE_AMDGPU_VIRTIO - supported_device |= device->deviceinfo.pci->vendor_id == VIRTGPU_PCI_VENDOR_ID; + supported_device |= device->bustype == DRM_BUS_PCI && device->deviceinfo.pci->vendor_id == VIRTGPU_PCI_VENDOR_ID; + supported_device |= device->bustype == DRM_BUS_PLATFORM; /* virtio-mmio */ #endif - supported_device |= device->deviceinfo.pci->vendor_id == ATI_VENDOR_ID; + supported_device |= device->bustype == DRM_BUS_PCI && device->deviceinfo.pci->vendor_id == ATI_VENDOR_ID; if (!supported_device) return VK_ERROR_INCOMPATIBLE_DRIVER;