a00c13e5c7
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.
62 lines
1.5 KiB
TOML
62 lines
1.5 KiB
TOML
# Graphics and display drivers
|
|
# vesad runs as an init-managed service from initfs (framebuffer console) and
|
|
# has no rootfs binary, so it is not spawnable here and must not be listed.
|
|
|
|
[[driver]]
|
|
name = "redox-drm"
|
|
description = "DRM/KMS display driver (AMD + Intel + VirtIO)"
|
|
priority = 60
|
|
command = ["/usr/bin/redox-drm"]
|
|
|
|
[[driver.match]]
|
|
class = 0x03
|
|
|
|
[[driver]]
|
|
name = "virtio-gpud"
|
|
description = "VirtIO GPU driver"
|
|
priority = 60
|
|
command = ["/usr/lib/drivers/virtio-gpud"]
|
|
|
|
[[driver.match]]
|
|
vendor = 0x1AF4
|
|
class = 0x03
|
|
|
|
# Intel GPU — matched specifically for the display class
|
|
[[driver]]
|
|
name = "redox-drm"
|
|
description = "Intel GPU display driver"
|
|
priority = 61
|
|
command = ["/usr/bin/redox-drm"]
|
|
|
|
[[driver.match]]
|
|
vendor = 0x8086
|
|
class = 0x03
|
|
subclass = 0x00
|
|
|
|
# AMD GPU — matched specifically for the display class
|
|
[[driver]]
|
|
name = "redox-drm"
|
|
description = "AMD GPU display driver"
|
|
priority = 61
|
|
command = ["/usr/bin/redox-drm"]
|
|
|
|
[[driver.match]]
|
|
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
|