From a00c13e5c7e61702dddd9308df0a09f805ca89f2 Mon Sep 17 00:00:00 2001 From: vasilito Date: Fri, 24 Jul 2026 13:19:23 +0900 Subject: [PATCH] drivers: redox-drm wins virtio-gpu bind for the VirGL desktop path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit driver-manager had a priority tie for QEMU virtio-gpu (vendor 0x1AF4, class 0x03): redox-drm (generic class @60) vs virtio-gpud (@60). If virtio-gpud won, it registered display.virtio-gpu (VT scanout only) and never provided /scheme/drm/card0, starving KWin/the compositor. redox-drm had priority-61 entries for Intel and AMD but none for VirtIO. Add a priority-61 redox-drm entry for vendor 0x1AF4 class 0x03 (subclass omitted — QEMU virtio-gpu is subclass 0x80) so the VirGL path deterministically binds redox-drm and gets a real DRM card0. virtio-gpud remains as fallback. --- local/config/drivers.d/30-graphics.toml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/local/config/drivers.d/30-graphics.toml b/local/config/drivers.d/30-graphics.toml index d0e8c43d23..5ef83c3944 100644 --- a/local/config/drivers.d/30-graphics.toml +++ b/local/config/drivers.d/30-graphics.toml @@ -44,3 +44,18 @@ command = ["/usr/bin/redox-drm"] vendor = 0x1002 class = 0x03 subclass = 0x00 + +# VirtIO GPU (QEMU virtio-gpu / VirGL, e.g. 1AF4:1050 class 03) — bind redox-drm +# at higher priority than the base virtio-gpud (@60) so the desktop path gets a +# real /scheme/drm/card0 (redox-drm's built-in VirtIO KMS driver) instead of the +# display.virtio-gpu VT-only scanout. Subclass is intentionally omitted: +# QEMU reports virtio-gpu as class 0x03 subclass 0x80, not 0x00. +[[driver]] +name = "redox-drm" +description = "VirtIO GPU display driver (VirGL/KMS)" +priority = 61 +command = ["/usr/bin/redox-drm"] + +[[driver.match]] +vendor = 0x1AF4 +class = 0x03