Radeon RX6800 only runs at PCI-E Gen4 x1 when passed through
Radeon RX6800 only runs at PCI-E Gen4 x1 when passed through
https://www.reddit.com/r/VFIO/comments/14t1hr2/radeon_rx6800_only_runs_at_pcie_gen4_x1_when/
Hi,
I’ve recently upgraded my GPU from a GTX1070 to a Radeon RX6800 (which is nice)
Current System Spec:
Ryzen 5900X
32GB ECC RAM
Gigabyte Aorus X570 Pro
Radeon RX6800 (in main PCI-E x16, PCI-E slot 1)
Radeon WX2100 (in PCI-E x1 PCI-E slot 3) This card is set as the first display in the bios so it displays post
Random PCI-E Usb card (for passthrough
Adata SX8200 ssd in the main m.2 slot.
I run windows as a VM and pass my GPU though, the pass through bit is working, the performance however is not what I was expecting, in fact its crap, I mean no better than GTX1070. The fps is all over the place there are very large lags spikes even in older games like sub nautica which shouldn’t tax a RX6800 even at 1440p. The system shock remake with vsync off can’t manage more than 60fps at any detail level and the gpu barely pulls more than 75watts. Running furmark it’ll happily pull more than 200watts so I know its not power delivery. I also know its not poor disk performance.
Now in my system I have two GPU’s Radeon WX2100 which runs in a x1 PCI-E slot (x4 mechanical) on my motherboard it runs the host desktop just fine which is Fedora 38.
Interesting, in windows the RX6800 in both the Adrenaline control panel and Hwinfo shows the RX6800 running as PCI Express 4.0 at x1, but its in the x16 slot.
The WX2100 is running as x1 has the amdgpu driver configured my RX6800 to use a single lane or am I barking mad? The RX6800 is using vfio-pci as its kernel driver. I know the drivers in windows are able to read the PCI-E widths and speeds, as my old 1070 would display as PCi-E 3.0 x16.
On a side note what are these extra devices which appear after installing my RX6800 and do I pass those through as well?
Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Upstream Port of PCI Express Switch
Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch
5 · 11 Comments Section u/thenickdude avatar thenickdude • 3y ago In QEMU you can configure the lane width that is reported to the guest by adding these parameters to the PCIe root port definition:
x-speed=16,x-width=32 I’m not sure if this makes any real difference beyond the cosmetics of what is reported in GPU utilities though.
3 [deleted] OP • 3y ago Ah I’ve defined by vm in libvirt is there a way to add those parameters in libvirt?
2
4 more replies Jedibeeftrix • 3y ago there was a kernel bug (i think) causing rdna2 cards to run in 1x. I think it has been since addressed
2 [deleted] OP • 3y ago Do you know which kernel versions its supposed to be fixed in i’m on the latest fedora has 6.3.11-200.fc38.x86_64
2
1 more reply beachandbyte • 3y ago Make sure you have the card under load when you test this, many times it will report 1x while idle.
2 [deleted] OP • 3y ago The card was defiantly under load, I remember this as my Geforce 1070 would do the same thing report gen 1.1 when idle, the Radeon is reporting gen 4, however the thing I notice is how the frame rates react. I’ve been playing the SystemShock remake if I stand still the game maintains between 45-60FPS if I say move forwards it’ll drop then recover, go an area with new assets and fps drops to low twenties before sort of recovering, with modern games streaming assets this demonstrates to me that there’s not enough bandwidth, coupled with the fact the gpu utilisation is spikey its either at 99% briefly or ~45% and pulling less than 75watts. X4 Foundations is even worse, it manages 34fps at 1440p the exact same as the old geforce 1070 at the same resolution and quality settings. Compare that to furmark which runs a heavy job on the GPU which sits in its memory and infinite loops does in excess of 300fps and pulls 200+ watts as its not using the PCI-E bus.
1