Radeon RX6800 same performance as GTX1070 (both VFIO)


I’ve recently upgraded my GPU from a GTX1070 to a Radeon RX6800 (which is nice)

Current System Spec

Ryzen 5900X
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
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

1 Like

Just as a further update in case someone else has this problem. It seems there’s a Kernel bug in 6.3.11-200.fc38.x86_64 and it sets my Radeon RX6800 as Gen 4 x1.

However in qemu you can set the pci-e speed so you just need to add these and it sets the pci-e speed.

  <qemu:arg value='-global'/>
  <qemu:arg value='pcie-root-port.x-speed=16'/>
  <qemu:arg value='-global'/>
  <qemu:arg value='pcie-root-port.x-width=32'/>