[SOLVED] Need help with AMD GPU RX580 passthrough

MrProxox

New Member
Feb 18, 2025
6
1
3
Hello community,

I need some help regarding the AMD GPU passthrough.

So far I've got:

- monitor connected via hdmi to the amd rx580 card in proxmox
-enabled IOMMU
-enabled SVN
-extended BAR etc.
- a fresh proxmox install
- a windows 11 VM

I installed windows with the latest VirtIO drivers.
Later I installed the whole VirtIO package in Windows when logged in via NoVNC.
Later I've added the card via the RAW options (it was not listed under the mapped devices).
I enabled QEMU Guest Agent. I started the instance and it ran, but it stopped at the proxmox logo
where the windows loading circle spins. And that's it. In my current config I didn't blacklist the radeon and amdgpu modules because I've read somewhere that those are or should be already passed by the vfio module, so basically this one doesn't matter.



# cat /etc/default/grub|grep LINUX_DEFAULT
Code:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt initcall_blacklist=sysfb_init"

# cat /etc/modules
Code:
vfio
vfio_iommu_type1
vfio_pci

# cat /etc/modprobe.d/vfio.conf
Code:
options vfio-pci ids=1002:67df,1002:aaf0

# cat /etc/modprobe.d/blacklist-radeon.conf
Code:
#blacklist amdgpu
#blacklist radeon

# lspci -nnk|grep VGA
Code:
26:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev e7)

# dmesg | grep 'remapping'
Code:
[    0.397740] x2apic: IRQ remapping doesn't support X2APIC mode
[    0.654700] AMD-Vi: Interrupt remapping enabled

# dmesg | grep -E "DMAR|IOMMU"
Code:
[    0.650400] pci 0000:00:00.2: AMD-Vi: IOMMU performance counters supported
[    0.658236] perf/amd_iommu: Detected AMD IOMMU #0 (2 banks, 4 counters/bank).

# dmesg | grep -i vfio
Code:
[    5.410898] VFIO - User Level meta-driver version: 0.3
[    5.443234] vfio-pci 0000:26:00.0: vgaarb: deactivate vga console
[    5.443247] vfio-pci 0000:26:00.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=io+mem:owns=none
[    5.443464] vfio_pci: add [1002:67df[ffffffff:ffffffff]] class 0x000000/00000000
[    5.490990] vfio_pci: add [1002:aaf0[ffffffff:ffffffff]] class 0x000000/00000000
[ 1010.592317] vfio-pci 0000:26:00.0: enabling device (0002 -> 0003)
[ 1010.607060] vfio-pci 0000:26:00.1: enabling device (0000 -> 0002)

# cat /etc/pve/qemu-server/101.conf
Code:
agent: 1
balloon: 4096
bios: ovmf
boot: order=scsi0;ide0;ide2
cores: 6
cpu: host,flags=+ibpb;+virt-ssbd;+amd-ssbd
efidisk0: zpool:vm-101-disk-0,efitype=4m,pre-enrolled-keys=1,size=1M
hostpci0: 0000:26:00,pcie=1,x-vga=1
ide0: none,media=cdrom
ide2: none,media=cdrom
machine: pc-q35-9.0
memory: 8192
meta: creation-qemu=9.0.2,ctime=1739851756
name: winrlyblowsyo
net0: virtio=BC:24:11:1D:6C:94,bridge=vmbr0,firewall=1,link_down=1
numa: 0
ostype: win11
scsi0: local-zfs:vm-101-disk-0,iothread=1,size=200G
scsihw: virtio-scsi-single
smbios1: uuid=3e22692b-766f-41f2-9aa2-886812527d96
sockets: 1
tpmstate0: zpool:vm-101-disk-1,size=4M,version=v2.0
vga: none
vmgenid: 6d8b3ff9-7820-47ad-8be2-025cc441b2d6


Any help would be really appreciated. I give out a beer. :-)


Thank you.
 
Last edited:
Nevermind. :)
After spending 10 minutes to write above post, I re-checked the variables and got it working in 2 minutes.
The VM setting
Code:
vga:
shouldn't be set to
Code:
none
for my scenario, so I changed it to
Code:
default
and the signal is being processed through. Windows detects my card as a basic display adapter, but the IDs match and replacing the driver should work I guess. I hope this helps someone having the same issue.
 
  • Like
Reactions: leesteken
You might want to look into vendor-reset for a RX580 (on this forum or on the internet) to make sure it resets properly when you stop and restart the VM.
Thank you for this hint. I already did. I believe it's a must in my case.

..but I have an issue with Valorant game that requires some kernel level anti-cheat thing called Vanguard, which won't let me play the game.

Is it possible somehow to make the game playable?

Thank you for your time.
 
..but I have an issue with Valorant game that requires some kernel level anti-cheat thing called Vanguard, which won't let me play the game.
Proxmox VE does not hide the fact that it runs inside a VM (since it's designed as a clustered enterprise hypervisor). I have never encountered this problem but I also mostly play single player games that run on Linux (or sometimes via Steam). There have been threads about this before on the forum and there is probably also stuff on the internet about this.
 
  • Like
Reactions: MrProxox
Proxmox VE does not hide the fact that it runs inside a VM (since it's designed as a clustered enterprise hypervisor). I have never encountered this problem but I also mostly play single player games that run on Linux (or sometimes via Steam). There have been threads about this before on the forum and there is probably also stuff on the internet about this.
I understand. Yes, most of the games I play do work, but some specific ones do require some additional checks. I assume it is not working because the anti-cheat engine shows the game is running virtualized. That's sad actually as it makes the game unplayable when not running bare-metal. Is there any maybe a way to spoof or hide this? :rolleyes:
 
I understand. Yes, most of the games I play do work, but some specific ones do require some additional checks. I assume it is n

ot working because the anti-cheat engine shows the game is running virtualized. That's sad actually as it makes the game unplayable when not running bare-metal. Is there any maybe a way to spoof or hide this? :rolleyes:
Thank you, found it.