AMD Passthrough in Unraid

XFX Radeon RX 6800 QICK 319
XFX Speedster XICK 319 Radeon RX 6800 Black

Recently, I tried my iRacing / NAS rig in VR with an Oculus Quest 2 that a friend of mine brought over. However, after fiddling with some settings to make it not look like crap, it seems like either the CPU (hopefully fixed here) or the current 1080Ti is holding it back. Though I would love to upgrade to a 30-series Ampere GPU, the new Navi AMD GPUs are actually better at traditional rasterization workloads (at least per dollar). Given the 1080Ti’s performance, it’s actually quite difficult to beat it on any sort of budget. However, really any GPU is hard to come by these days as we’re in the midst of a global silicon shortage. Luckily, I was able to get my hands on an XFX Speedster XICK 319 Radeon RX 6800 Black from Best Buy with 10 windows open, wildly refreshing during Best Buy’s last restocking. Unlike the nVidia GPUs, however, AMD’s have been previously plagued with a reset bug which requires rebooting the host OS when the guest is shutdown / booted up. Combine this with the RX 6800s being quite new, there’s a few complications involved in getting Unraid AMD passthrough running.

Pre-Requisites

I was still running Unraid 6.8.3 at the beginning of this, so first things first, upgrade Unraid to 6.9 or higher. This will bring along an update to the latest LTS 5.10.x kernel, as well as new Q35 and i440FX versions to use for VMs, we’ll need these. This also changes the display of the new AMD cards, as they are now known and supported in Unraid. In 6.8 the RX 6800 showed up as “AMD Graphics Card” versus “AMD Radeon RX 6800/6800XT/6900XT”. That was of course the first clue 6.8 wasn’t going to work well.

AMD Passthrough Configuration

I highly recommend doing the configuration in two stages: 1) Create a VM with VNC + the GPU to install / configure the drivers, etc.; 2) Reconfigure the VM to only have the GPU interface. (I haven’t been able to get this working quite yet with the AMD GPU Only configuration. I’ll update this post when I do get a chance to diagnose this.) We’ll talk through just the first part, since the latter will be obvious.

I have been able to confirm most of the issues from a similar forum post on this topic.

  1. Download the most recent VirtIO Drivers. For me this was 0.1.185. Not sure if this is strictly necessary, but the previous VM was built on 0.1.173, so it seemed like a good time to upgrade.
  2. Set Machine to Q35-5.0. Though i440FX was perfectly fine for nVidia and Q35-5.1 was available, both seem to work until driver installation for the AMD cards. In my experience, the driver installation will stall (in some cases at 99%) and not complete. It is unclear why. Stick with Q35-5.0 and it worked well. Q35 seems to perform better most likely because of how it implements the PCI / PCIe ports; rather, that it implements PCIe vs PCI
  3. Configure VNC as the first GPU
  4. Select the AMD GPU
  5. No need to select the ROM. Unlike the Pascal GPU Passthrough, AMD does not have VM-limiting drivers.
  6. Make sure to select the sound card on the GPU. Mine showed as “AMD Device”.
  7. Boot it up and install drivers!

References

Leave a Reply

Your email address will not be published. Required fields are marked *