4 min read

Proxmox - Bazzite VM with AMD iGPU Passthrough

I have been using Proxmox for the last few years for my homelab needs and it has been a great experience so far! I do daily snapshot for my VMs and can rollback easily if there's a problem.

Recently, I have a more ambitious plan. I am using a mini PC with AMD 8845HS as my proxmox server (AOOSTAR GEM12+). The CPU has an AMD 780M iGPU, which supposedly has enough computing power to do some light gaming. My plan is to have a VM which uses the iGPU to output image through the HDMI port to my TV.

In my old Intel machine, passing through the Intel iGPU to a VM was really easy. I just need to disable the i915 module in the Proxmox host by blacklisting it in modprobe. Then, I pass the iGPU to the VM and it was successfully detected. The VM can use the iGPU to do transcoding without any issues. Passing through an AMD iGPU should be as easy, right..?

AMD iGPU Passthrough

Passing through the AMD 780M iGPU was not as straightforward as an Intel iGPU. Initially, I simply blacklisted the radeon and amdgpu module with modprobe. Then, when I passed the iGPU to a guest VM, the Proxmox host crashed and needed a hard restart with the power button. Additonally, using SeaBIOS also results in hard crash, I need to use OVMF.

After a (long) googling session, I found a GitHub repository that have exactly what I need. Their readme is quiet elaborate and it is meant for a Windows guest VM. For a Linux guest, I only need the romfile for my iGPU. I downloaded the romfile for my exact iGPU then place them under /usr/share/kvm/ directory on the host. Then I edited the configuration file for my guest VM found here /etc/pve/qemu-server/<guest-id>.conf.

-hostpci0: 0000:c6:00.0,pcie=1,x-vga=1
+hostpci0: 0000:c6:00.0,pcie=1,romfile=vbios_8845hs.bin,x-vga=1

Bazzite

Now that iGPU passthrough works with a Linux guest, I need to choose a distro to game on. At first, I wanted to use SteamOS. Some people have reported success with SteamsOS recovery image to unofficially install it on machines with AMD CPU and GPU. However, my attempts to install SteamOS always resulted in a black screen when booting the recovery image. This could be because of the virtualization or the iGPU passthrough but I don't want to spend too much time debugging it. Luckily, I saw a YouTube video using Bazzite as an alternative of SteamOS and decided to give Bazzite a try.

I was initially really puzzled about the huge size of the ISO file of Bazzite. It was around 9GB, when normally other distros like Ubuntu is only around 2GB. However, this explanation from a reddit comment ease my worry. So I immediately try to install Bazzite as a guest VM on my Proxmox machine. With the iGPU selected as the primary GPU (x-vga=1), the installer only boot to an empty screen. I needed to still activate the default display and deselect the primary GPU option. Then I can boot the installer and install Bazzite. After installation, I turned off the default display and select the iGPU as the primary GPU.

It worked out of the box without any tinkering. Connecting my Xbox controller via Bluetooth also works. Now I can game on my TV at 4K resolution with 120Hz refresh rate and HDR! Of course, if the game is too demanding for the iGPU, I can use steam link to stream the game from my main PC.

What doesn't work

No variable refresh rate (VRR) with AMD GPU when using HDMI 2.1

One huge downside of using Linux as my gaming OS for my TV is that the HDMI port doesn't support VRR. Apparently, the HDMI forum disallowed anyone to release an open source implementation of HDMI 2.1 specs. There are some posts online (like this or this) that talks about a DP to HDMI cable/adapter that can pass the VRR signal. However the comments in their amazon listing also contains a lot of negative results.

Xbox dongle

Connecting my Xbox controller via Bluetooth works, but I had some difficulties connecting it to a Xbox dongle. Officially, the Xbox dongle only works in windows, but Bazzite come preinstalled with xone, a Linux driver that support Xbox dongle. My dongle is detected by the OS just fine. I can see the status of pairing mode with this command cat /sys/bus/usb/drivers/xone-dongle/*/pairing and even set them to 1. However, the pairing light never light up on the dongle. A few posts online said that I needed to enable secure boot with the enrollment key from Bazzite to make xone works, since the driver is not signed. I decided to just simply use Bluetooth for now.

Proxmox 9 (updated 19 September 2025)

In my new post, I tried upgrading my Proxmox instance to the latest version (Proxmox 9). However, using the latest Proxmox made my VM with iGPU passthrough failed to boot. Passing through a discrete GPU with OCuLink also failed. So for now I will stay with Proxmox 8.

Proxmox 8 doesn't work anymore (4 October 2025)

I rarely play with the Bazzite VM nowdays and today I realized that I cannot start the VM anymore with Proxmox 8. I regularly update my Proxmox and I think there is a new version of QEMU or some other package that broke it, and that is also why it doesn't work in Proxmox 9. Currently, I have no time or energy to look for the exact problem and fix it. Luckly, discrete GPU can still be used in Proxmox 8, unlike in Proxmox 9. So I currently game with a discrete GPU instead. This is the error that I got when starting the Bazzite VM with the iGPU.

kvm: -device vfio-pci,host=0000:c6:00.0,id=hostpci0,bus=ich9-pcie-port-1,addr=0x0,romfile=/usr/share/kvm/vbios_8845hs.bin: vfio 0000:c6:00.0: hardware reports invalid configuration, MSIX PBA outside of specified BAR
TASK ERROR: start failed: QEMU exited with code 1

Conclusion

Overall, I'm thrilled with how this project turned out. I really enjoy my times using Bazzite and I never feel the need to change to Windows. I hope this experience highlights the power and flexibility of open-source solutions for even niche use cases like iGPU gaming on a Linux VM. If you're looking to push the boundaries of your homelab and explore alternative gaming setups, I highly recommend diving into the world of Proxmox and Linux gaming distros like Bazzite.