Post No. 1

AMD ≠ Working GPU Pass-through

By Wes - 10/06/25

 

I have always been interested in computing since quite a young age. I've been experimenting with Linux and Windows installs, testing software and virtualization, and working (fighting) my dad for network access so I could play the PlayStation at night with my friends.

 

When it comes to Linux, I've been using it for a little over 6 years, and I just turned 18 yesterday (you didn’t wish me a happy birthday :( ). As a senior in high school, I’ll be pursuing networking IT or server/infrastructure management.

 

Why the hell am I telling you this? Because it’s my first blog post, of course! And I haven’t gone that deep on the YouTube channel as of late (redacted link), since I didn’t really see the reason to. I want to set up a blog just to have something written down — a way to remember all my tinkering with tech from my childhood (and adulthood now too).

 

But anyway, the title: PLEASE DON’T BUY AMD GRAPHICS CARDS FOR VIRTUAL MACHINE PASSTHROUGH!!! Sorry for yelling, but this was a horrid process trying to get pass-through working with what was my new 7800XT in my new PC.

 

I honestly spent close to 3 weeks trying to get this card’s pass-through to work (I wasn’t going to let a f*cking graphics card make me give up on my watch), but in the end, it had the last laugh.

 

Having daily driven Linux for the past few years, I went all AMD for this new PC. I’d heard that AMD drivers for Linux are open source, but I never had the chance to test that properly until now. It’s a perfect setup for my use case in 2025 — let alone compared to my old main workstation from 2012. AM5 8-core processor, 64GB DDR5, RX 7800XT (when built, not now). 4TB boot drive, 20TB HDD. I’ll have a link to my full system setup here.

 

I thought this would be an easy build since it was all AMD, but that couldn’t be further from the truth — at least for the Radeon card.

 

I’m not going to go into great detail about how to set it up, as that’s going to be the topic of the next blog entry (NVIDIA-focused). But the following steps apply to both.

 

Had to turn on amd_iommu for the CPU (intel_iommu for Intel processors). Then you blacklist your card from being used by the host system (Proxmox 9 for me). Again, more detail in the next article. Finally — at least for NVIDIA — we install VFIO display drivers on the host and assign them to the PCI groups and devices that make up your GPU(s) (usually just display and audio).

 

For NVIDIA, that’s it! We just go into the Proxmox web UI and assign the PCI devices of the graphics card (display, audio) to the VM. Install drivers in the VM, shut down, change config to PCI primary GPU, and we’re done.

 

But of course, AMD wouldn’t make it that easy. I completed all those steps up to the point of starting the VM. Starting it would just crash the whole system (host included).

 

I spent weeks:

 

  • Different Proxmox versions

 

  • Different kernels

 

  • Different config setups

 

Nothing worked.

 

The only thing that got it to the point where the VM would actually start and display — instead of crashing the whole system — was dumping the ROM file of the GPU and pointing to the ROM when passing the GPU through.

 

Don’t ask me why it works, because I don’t know. But it did.

 

So we’re done, right?

Nope.

 

I thought we were, but we have... the Radeon Reset Bug!

 

What is that? Pretty much, it’s a bug where once the GPU has been initialized by the guest (say after I started the Windows VM with the GPU passed through), if I shut down that VM and try to restart it, the start will fail — because the GPU wasn’t fully “reset” when it shut down.

 

So it tries to pass it through again, fails, and crashes the whole server. Fun, right?

 

Now there are fixes for this, such as vendor-reset, but that script hasn’t been updated since 2021 and doesn’t support the 7000 series cards. Some people have tried other workarounds and fixed the bug temporarily — I couldn’t get any of them to work.

 

I was done with troubleshooting at this point.

 

I went on eBay, listed the RX 7800XT on there for around $450, and bought a used 4070 Ti Super to switch to. While I was sorting that out and waiting for things to ship, I used my old Quadro M4000 — and pass-through, once the blacklisting for NVIDIA was done, worked beautifully.

 

With the 4070 Ti Super here and installed, I couldn’t be anything but happy. No issues at all so far (knock on wood). I’m finally able to focus on setting other things up, like macOS VMs, and even VMs of XP or Windows 7 with the Quadro K620 card I got specifically for that purpose.

 

There’s definitely more to come.

 

Well, that’s me signing off for now. The next post on the blog will be accompanied by a YouTube video. Note that the blog entry is made first unless otherwise noted, since it also acts like a script for the video.

 

Next topic will be a deeper dive into what the setup is, how I manage it, and how I’ve set up and passed the NVIDIA cards through.

Comments

Post a Comment

Popular posts from this blog

Blog Analysis - School (Locked)

Post No. 2