42 lines
1.7 KiB
Diff
42 lines
1.7 KiB
Diff
From c2fd030644cf2074f9d2ffd155839b2e943473d0 Mon Sep 17 00:00:00 2001
|
|
From: Val Packett <val@packett.cool>
|
|
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 <val@invisiblethingslab.com>
|
|
---
|
|
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 07b5b000b3ae..cd6f4c3488a1 100644
|
|
--- a/src/amd/vulkan/radv_physical_device.c
|
|
+++ b/src/amd/vulkan/radv_physical_device.c
|
|
@@ -2507,14 +2507,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;
|
|
--
|
|
2.50.1
|
|
|