This is the only Windows 10 Configuration gpu passthrough I got working with sound on DP and HDMI, Clean install pve 8.1.4, I hope this helps:
Using Dell Optiplex 5050 Tower and SFF
In 100.confi Add:
args: -vnc 0.0.0.0:1 -device vfio-pci,host=00:02.0,romfile=/var/lib/vz/dump/i915ovmf.rom,x-igd-opregion=on
I stored the i915ovmf.rom in /var/lib/vz/dump/
Get file from:
https://github.com/patmagauran/i915ovmfPkg/releases
IE:
GNU nano 7.2 /etc/pve/qemu-server/100.conf
agent: 1
args: -vnc 0.0.0.0:1 -device vfio-pci,host=00:02.0,romfile=/var/lib/vz/dump/i915ovmf.rom,x-igd-opregion=on
balloon: 0
boot: order=scsi0;net0
cores: 4
cpu: host
hostpci0: 0000:00:1f.3,pcie=1,rombar=0
machine: pc-q35-8.1
memory: 8192
meta: creation-qemu=8.1.5,ctime=1710709984
name: Windows10Legacy
net0: virtio=BC:24:11:CA:50:85,bridge=vmbr0
numa: 0
ostype: win10
scsi0: local-lvm:vm-100-disk-0,iothread=1,size=97G
scsihw: virtio-scsi-single
smbios1: uuid=7ac1979f-2733-4bc9-8da3-144c81a25472
sockets: 1
usb0: host=1-8
usb1: host=1-6
vga: vmware
vmgenid: d29a5b37-2126-4e15-89ae-0dc213242475
This worked for me... also the Iommu Groups for Audio contains Network devices so you have to get a ethernet usb3 dongle I used a tp link
(UE300) and bridge the name of this dongle in pve networking so you dont use the internel nic. You can get a pcie nic but haven't tested for that yet. You want the Iommu groups for your devices to be in a separate group ideally, not ideal for this machine, see below. I also got it working for the RX550 card... use "args: -vnc 0.0.0.0:1 -device vfio-pci,host=01:00.0,romfile=/var/lib/vz/dump/Lexa.rom" You can omit the Tp-Link dongle for the RX550 works for both Nic devices actually, since the Audio is in a separate Iommu group. If you add a Nic pcie card it would be in group 13 in this configuration. Note if you use the internal nic with Windows 10 (no internet) you will have a communication issue with Proxmox web gui and lose SSH also. I also tested with a Nvidia gt730, -device vfio-pci,host=01:00.0,romfile=/var/lib/vz/dump/GK208.rom worked. Not displayed.
root@pve:~# for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU group %s ' "$n"; lspci -nns "${d##*/}"; done
IOMMU group 0 00:02.0 Display controller [0380]: Intel Corporation HD Graphics 630 [8086:5912] (rev 04)
IOMMU group 10 01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Baffin HDMI/DP Audio [Radeon RX 550 640SP / RX 560/560X] [1002:aae0]
IOMMU group 11 02:00.0 Non-Volatile memory controller [0108]: MAXIO Technology (Hangzhou) Ltd. NVMe SSD Controller MAP1202 [1e4b:1202] (rev 01)
IOMMU group 12 03:00.0 USB controller [0c03]: VIA Technologies, Inc. VL805/806 xHCI USB 3.0 Controller [1106:3483] (rev 01)
IOMMU group 1 00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers [8086:591f] (rev 05)
IOMMU group 2 00:01.0 PCI bridge [0604]: Intel Corporation 6th-10th Gen Core Processor PCIe Controller (x16) [8086:1901] (rev 05)
IOMMU group 3 00:14.0 USB controller [0c03]: Intel Corporation 200 Series/Z370 Chipset Family USB 3.0 xHCI Controller [8086:a2af]
IOMMU group 3 00:14.2 Signal processing controller [1180]: Intel Corporation 200 Series PCH Thermal Subsystem [8086:a2b1]
IOMMU group 4 00:16.0 Communication controller [0780]: Intel Corporation 200 Series PCH CSME HECI #1 [8086:a2ba]
IOMMU group 4 00:16.3 Serial controller [0700]: Intel Corporation Device [8086:a2bd]
IOMMU group 5 00:17.0 SATA controller [0106]: Intel Corporation 200 Series PCH SATA controller [AHCI mode] [8086:a282]
IOMMU group 6 00:1b.0 PCI bridge [0604]: Intel Corporation 200 Series PCH PCI Express Root Port #17 [8086:a2e7] (rev f0)
IOMMU group 7 00:1c.0 PCI bridge [0604]: Intel Corporation 200 Series PCH PCI Express Root Port #7 [8086:a296] (rev f0)
IOMMU group 8 00:1f.0 ISA bridge [0601]: Intel Corporation 200 Series PCH LPC Controller (Q270) [8086:a2c6]
IOMMU group 8 00:1f.2 Memory controller [0580]: Intel Corporation 200 Series/Z370 Chipset Family Power Management Controller [8086:a2a1]
IOMMU group 8 00:1f.3 Audio device [0403]: Intel Corporation 200 Series PCH HD Audio [8086:a2f0]
IOMMU group 8 00:1f.4 SMBus [0c05]: Intel Corporation 200 Series/Z370 Chipset Family SMBus Controller [8086:a2a3]
IOMMU group 8 00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (5) I219-V [8086:15d6]
IOMMU group 9 01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X] [1002:699f] (rev c7)
GNU nano 7.2 /etc/modprobe.d/pve-blacklist.conf
# This file contains a list of modules which are not supported by Proxmox VE
# nvidiafb see bugreport
https://bugzilla.proxmox.com/show_bug.cgi?id=701
#blacklist nvidiafb
blacklist i915
blacklist nouveau
blacklist nvidia
blacklist snd_hda_codec_hdmi
blacklist snd_hda_intel
blacklist snd_hda_codec
blacklist snd_hda_core
blacklist snd_soc_avs
blacklist radeon
blacklist amdgpu
/etc/default/grub Add this:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream,multifunction"
GNU nano 7.2 /etc/modprobe.d/kvm.conf
options vfio_iommu_type1 allow_unsafe_interrupts=1
GNU nano 7.2 /etc/modprobe.d/vfio.conf
options vfio-pci ids=8086:5912,1002:699f,8086:a2f0,1002:aae0 disable_vga=1
Using this above method I have MX Linux 23 KDE Wayland, Debian 12 passthrough working.
GNU nano 7.2 /etc/pve/qemu-server/101.conf
agent: 1
args: -vnc 0.0.0.0:2 -device vfio-pci,host=00:02.0,romfile=/var/lib/vz/dump/i915ovmf.rom,x-igd-opregion=on
boot: order=scsi0;ide2;net0
cores: 4
cpu: host
hostpci0: 0000:00:1f,rombar=0
ide2: local:iso/mx23-20240409_0531.iso,media=cdrom,size=6092M
memory: 8192
meta: creation-qemu=8.1.5,ctime=1712664369
name: Mx23
net0: virtio=BC:24:11:2B:44:54,bridge=vmbr0
numa: 0
ostype: l26
scsi0: local-lvm:vm-101-disk-0,iothread=1,size=60G,ssd=1
scsihw: virtio-scsi-single
smbios1: uuid=8a73a30d-2f13-41f8-8a82-691d45f83038
sockets: 1
usb0: host=1a2c:2d23
usb1: host=0000:3825
vga: none
vmgenid: 5700ce95-af06-43d0-8b2b-88c056116bff
I really like the MX Snapshot feature so you can duplicate your existing installation configuration rather than installing apps over again.