Xorg uses llvmpipe instead of passed-through amd GPU

I have a freshly installed Arch KDE plasma system running under Proxmox with a passed-through raedeon rx 7900 xtx GPU, the VM is using llvmpipe instead of my GPU.

$ glxinfo | grep "OpenGL renderer"
OpenGL renderer string: llvmpipe (LLVM 18.1.8, 256 bits)

It looks like Xorg is detecting and using the correct gpu

[     9.803] (II) xfree86: Adding drm device (/dev/dri/card0)
[     9.803] (II) Platform probe for /sys/devices/pci0000:00/0000:00:02.0/drm/card0
[     9.803] (II) xfree86: Adding drm device (/dev/dri/card1)
[     9.803] (II) Platform probe for /sys/devices/pci0000:00/0000:00:10.0/drm/card1
[     9.839] (**) OutputClass "AMD" setting /dev/dri/card1 as PrimaryGPU
[     9.842] (--) PCI: (0@0:2:0) 1234:1111:1af4:1100 rev 2, Mem @ 0xf0000000/16777216, 0xfeb74000/4096, BIOS @ 0x????????/131072
[     9.842] (--) PCI:*(0@0:16:0) 1002:744c:1849:5304 rev 200, Mem @ 0x640000000/268435456, 0x650000000/2097152, 0xfea00000/1048576, I/O @ 0x0000f000/256, BIOS @ 0x????????/131072
[     9.842] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
[...]
[    10.077] (II) AMDGPU: Driver for AMD Radeon:
	All GPUs supported by the amdgpu kernel driver
[    10.079] (II) AMDGPU(0): Creating default Display subsection in Screen section
	"Default Screen Section" for depth/fbbpp 24/32
[    10.079] (==) AMDGPU(0): Depth 24, (--) framebuffer bpp 32
[    10.079] (II) AMDGPU(0): Pixel depth = 24 bits stored in 4 bytes (32 bpp pixmaps)
[    10.079] (==) AMDGPU(0): Default visual is TrueColor
[    10.079] (II) Applying OutputClass "AMDgpu" options to /dev/dri/card1
[    10.079] (II) Applying OutputClass "AMD" options to /dev/dri/card1

I had to configure xorg to prefer my graphics card(following [SOLVED] OpenGL renderer string: llvmpipe - AMD Radeon RX 6600 / Kernel & Hardware / Arch Linux Forums):

$ ls /etc/X11/xorg.conf.d/
00-keyboard.conf  20-amdgpu.conf
$ cat /etc/X11/xorg.conf.d/20-amdgpu.conf 
Section "OutputClass"
     Identifier "AMD"
     MatchDriver "amdgpu"
     Driver "amdgpu"
     Option "PrimaryGPU" "yes"
EndSection

Section "Device"
     Identifier "AMD"
     Driver "amdgpu"
EndSection

I installed xrandr and it shows no providers
$ sudo xrandr --listproviders
Providers: number : 0

Log files:
dmesg.txt (57.2 KB)
lspci.txt (7.5 KB)
Xorg.0.txt (26.5 KB)

1 Like

I am using KDE Plasma, does plasma even use Xorg to render, have I been barking up the wrong tree? “Wayland is used by default for KDE 6 applications” from KDE - ArchWiki

Allso i am not sure i am passing through the entire GPU, i was passing through the entire 03:00.0 device, but the 01:00.0 and 02:00.0 devices are new Navi devices to.

root@pve:~# lspci | grep Navi
01:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Upstream Port of PCI Express Switch (rev 10)
02:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch (rev 10)
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX] (rev c8)
03:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 HDMI/DP Audio

I tried passing through all 3 devices to the vm, however then the vm did not start.

kvm: -device vfio-pci,host=0000:01:00.0,id=hostpci1,bus=pci.0,addr=0x11: vfio 0000:01:00.0: failed to open /dev/vfio/19: No such file or directory
TASK ERROR: start failed: QEMU exited with code 1

root@pve:~# ls /dev/vfio/
21 22 vfio

I tried removing mappings untill th VM booted agian, had to remove mappings to 01:00.0 and 02:00.0.

I found out that th check box for primary GPU was not checked, VM starts but with no display output on console or physical display.

I would appreciate any debugging ideas you have.

1 Like

This topic was automatically closed 273 days after the last reply. New replies are no longer allowed.