PROXMOX 9 GPU PASS THROUGH

Sideflare

New Member
Jun 4, 2025
6
1
3
Talk about your GPU Passthrough experience after going to PVE9+!
 
Last edited:
could be AMD specific, I have 2 nvidias and 1 intel igpu, all passthrough with working HDMI and audio output.
 
  • Like
Reactions: Sideflare
i am not using AMD so not sure if what i did for intel can apply for AMD, or not. below was my step

although when i wrote it was using 12th gen alderlake, but i confirm it is working even with 14th gen igpu.

 
  • Like
Reactions: Sideflare
PVE v9 iGPU pass through works for me with i5 8265U and i5 8265U based Mini PC. Including sound and video output using no pve modifications other than selecting iGPU and sound pass through to the Ubuntu 25.10 VM
 
  • Like
Reactions: hauszduxjso
PVE v9 iGPU pass through works for me with i5 8265U and i5 8265U based Mini PC. Including sound and video output using no pve modifications other than selecting iGPU and sound pass through to the Ubuntu 25.10 VM
Hi please can you share and step by step procedure? Manu thks
 
Hi please can you share and step by step procedure?
Steps
  • Create PVE v9 install on your hardware
  • Create a VM with iGPU pass through but not set as primary display, ubuntu-25.10-snapshot-desktop-amd64 (Machine: either works for me but sometimes retain partial but not really usable PVE VM GUI Monitor functionally). Processor: Host (I have not tried others)
  • Plug a keyboard & mouse into hardware, allocate the USB to the VM
  • Plug a HDMI monitor into the hardware. For i5 8265U plug HDMI monitor into boards HDMI port. For i5-1235U plug HDMI monitor into boards Display port via and adaptor cable.
  • Boot the VM, on PVE GUI VM monitor: esc to enter VM bios settings & choose boot from attached CD/ISO. Choose "Safe Graphics" to install ubuntu 25-10.
  • After install at reboot or later set iGPU pass through as primary display & operate VM from display attached to hardware running VM.

Notes
  • With development updates iGPU reset had occasionally been an issue, resolved by shutting down PVE then physically pressing the power button to start it up again.
 
Last edited:
Steps
  • Create PVE v9 install on your hardware
  • Create a VM with iGPU pass through but not set as primary display, ubuntu-25.10-snapshot-desktop-amd64 (Machine: either works for me but sometimes retain partial but not really usable PVE VM GUI Monitor functionally). Processor: Host (I have not tried others)
  • Plug a keyboard & mouse into hardware, allocate the USB to the VM
  • Plug a HDMI monitor into the hardware. For i5 8265U plug HDMI monitor into boards HDMI port. For i5-1235U plug HDMI monitor into boards Display port via and adaptor cable.
  • Boot the VM, on PVE GUI VM monitor: esc to enter VM bios settings & choose boot from attached CD/ISO. Choose "Safe Graphics" to install ubuntu 25-10.
  • After install at reboot or later set iGPU pass through as primary display & operate VM from display attached to hardware running VM.

Notes
  • With development updates iGPU reset had occasionally been an issue, resolved by shutting down PVE then physically pressing the power button to start it up again.
Hi, thks, did you need to use amd gop driver and vbios to have success? can you share your config file? vfio.conf, machine.conf blacklist.conf grub... Have a nice day.
 
did you need to use amd gop driver and vbios to have success?
I'm not using AMD. I'm just passing through intel iGPU.
No other modification than listed above are required. The aim was to find the minimum requirements for it to work.
 
I using Proxmox VE 9.0.6, I didnot configure anything as 8.x.x.
I just configured passthrough GPU with 3 Option (Raw Device, All Functions, PCI-Express) and its working well1756557025256.png1756557051067.png1756557138297.png
 
  • Like
Reactions: Sideflare
I using Proxmox VE 9.0.6, I didnot configure anything as 8.x.x.
I just configured passthrough GPU with 3 Option (Raw Device, All Functions, PCI-Express) and its working well

Thanks for the tip. I was just by chance today installing a brand new proxmox server with intel iGPU (i9-12900H). Practically no other changes yet but enterprise repos to no-subscription and some other very basic tunes. Nothing else.

I tried out your simple method with a couple of VM backups from another proxmox setup in which passthough is working well with nvidia GPU. VMs I tried are W11pro and Ubuntu 25.04 which are passing GPU through well in that other setup.

You method does not work with intel iGPU in out-of-the-box 9.0.6.

Still, something happens. When I start the VM instantly the monitor, which was showing normal proxmox boot data, says "no signal" and goes blank and do not recover until I bootup the proxmox node itself (I dont know how to boot up only proxmox igpu driver set).

In the next few days I may have time to check if nvidia PCIe gpu works in this setup but iGPU do not as you said.
 
  • Like
Reactions: gachoinhac
Ubuntu 25.04 which are passing GPU

does not work with intel iGPU in out-of-the-box 9.0.6.
Have you tried Ubuntu 25.10, as that version worked for me out of the box?
In contrast Ubuntu 25.04 for me required
  • copy Host/sys/kernel/debug/dri/0000:00:02.0/i915_vbt to VM /lib/firmware/ i915_vbt
  • edit /etc/default/grub to contain GRUB_CMDLNE_LINUX=”i915.vbt_firmware=i915_vbt”
  • sudo update-grub
See https://forum.proxmox.com/threads/s...vm-but-failed-with-kernel-6-10-onward.153659/
 
Last edited:
Have you tried Ubuntu 25.10, as that version worked for me out of the box?
In contrast Ubuntu 25.04 for me required
  • copy Host/sys/kernel/debug/dri/0000:00:02.0/i915_vbt to VM /lib/firmware/ i915_vbt
  • edit /etc/default/grub to contain GRUB_CMDLNE_LINUX=”i915.vbt_firmware=i915_vbt”
  • sudo update-grub
See https://forum.proxmox.com/threads/s...vm-but-failed-with-kernel-6-10-onward.153659/

Thank you very much for the advice. Unfortunately I had to move on and get the VM server working and in active duty for tomorrow. To save time I installed PCIe nvidia RTX and did "the usual" small tuning steps and all working instantly. Now I can get every VM to separate monitor if needed (naturally not at the same time).

Code:
nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

update-grup
reboot

nano /etc/modules
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

nano /etc/modprobe.d/iommu_unsafe_interrupts.conf
options vfio_iommu_type1 allow_unsafe_interrupts=1

nano /etc/modprobe.d/kvm.conf
options kvm ignore_msrs=1

update-initramfs -u
reboot

Note:
Just for testing I did not blacklist any driver and I did not set vfio.conf. Everything is working fine.

Any hints how to get iGPU and RTX working for iGPU for VM1 and RTX for VM2 simultanously in proxmox 9.0.6? Will try that next month. And if I connect USBC->HDMI adapter to USBC slot would that work too?

Edit: I just got one Minisforum MS-A2. Installed Proxmox 9.0.6. AMD 7945HX iGPU passthrough won't work out of the box but works with small adjustments with nvidia RTX. Anyone got this 7945HX working with small tunings. I do not wan to mess up with vbios etc.
 
Last edited:
IDK. My VM starts but no video output. why isnt that iommu enabled? no bios screen for me its a mac pro 5,1.

=== [BIOS/UEFI] Boot Mode Check ===
BootCurrent: 0004
BootOrder: 0004,0003,0002,0000,0001,0080
Boot0000* Linux Boot Manager HD(2,GPT,2895e34b-20e5-4b84-9116-eee89b649148,0x800,0x200000)/File(\EFI\systemd\systemd-bootx64.efi)
Boot0001* OpenCore PciRoot(0x0)/Pci(0x1d,0x1)/USB(0,0)/HD(1,GPT,000d59a5-a20a-43d9-9e79-9c5856f90fc9,0x28,0x64000)/File(EFI\OC\OpenCore.efi)
Boot0002* Linux Boot Manager HD(2,GPT,8df5c857-5a18-4600-afe6-a2197a7bd9d9,0x800,0x200000)/File(\EFI\systemd\systemd-bootx64.efi)

=== [CPU/IOMMU] Virtualization Flags ===
48 vmx

=== [IOMMU Enabled in Kernel Cmdline] ===
iommu=on
iommu=pt

=== [IOMMU Initialization in dmesg] ===
[ 1.013570] DMAR: No RMRR found
[ 1.013574] DMAR: No SATC found
[ 1.013576] DMAR: dmar0: Using Queued invalidation
[ 1.015670] DMAR: Intel(R) Virtualization Technology for Directed I/O

=== [IOMMU Groups for GPU 07:00.*] ===
basename: extra operand ‘/sys/kernel/iommu_groups/11/devices’
Try 'basename --help' for more information.
Group :
07:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 XL/XT [Radeon RX Vega 56/64] [1002:687f] (rev c0)
07:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 HDMI Audio [Radeon Vega 56/64] [1002:aaf8]

=== [VFIO / GPU Binding Status] ===
--- Device 07:00.0 ---
07:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 XL/XT [Radeon RX Vega 56/64] [1002:687f] (rev c0)
Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] RX Vega64 [1002:0b36]
Kernel driver in use: vfio-pci
Kernel modules: amdgpu
✅ 07:00.0 is bound to driver: Kernel driver in use: vfio-pci
--- Device 07:00.1 ---
07:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 HDMI Audio [Radeon Vega 56/64] [1002:aaf8]
Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 HDMI Audio [Radeon Vega 56/64] [1002:aaf8]
Kernel driver in use: vfio-pci
Kernel modules: snd_hda_intel
✅ 07:00.1 is bound to driver: Kernel driver in use: vfio-pci

=== [Loaded VFIO / Vendor-Reset Modules] ===
vfio_pci 16384 0
vfio_pci_core 86016 1 vfio_pci
irqbypass 12288 2 vfio_pci_core,kvm
vfio_iommu_type1 49152 0
vfio 65536 4 vfio_pci_core,vfio_iommu_type1,vfio_pci
iommufd 110592 1 vfio

=== [VM Config for Specter11 (1122)] ===
#hostpci0%3A 0000%3A07%3A00,pcie=1,rombar=0,x-vga=1,romfile=Volumes-PVE%3Asnippets/AMD.RXVega64.8176.170811.rom
args: -cpu host,kvm=off -smbios type=0,vendor="Apple Inc.",version=144.0.0.0.0,date=04/12/2019 \
bios: ovmf
cpu: host,hidden=1,flags=+pcid;+aes
hostpci0: 07:00.0,pcie=1,x-vga=1,romfile=AMD.RXVega64.8176.170811.rom
hostpci1: 07:00.1,pcie=1
machine: pc-q35-10.0
smbios1: uuid=0f0c2ddf-0c32-895c-a2bf-03fd0c472ddb,manufacturer=QXBwbGUgSW5jLg==,product=TWFjUHJvNSwx,version=MC4w,serial=SDAxMzQxQ05FVUg=,sku=U3lzdGVtIFNLVSM=,family=TWFjUHJv,base64=1
tags: virtualmachines;stopped

=== [Kernel Cmdline] ===
initrd=\EFI\proxmox\6.14.11-1-pve\initrd.img-6.14.11-1-pve #root=ZFS=rpool/ROOT/pve-1 boot=zfs mitigations=off intel_iommu=on iommu=pt

=== [PCI Devices on Node cMP51] ===
┌──────────┬────────┬──────────────┬────────────┬────────┬─────────────────────────────────────────────────────────────────┬──────┬──────────────────┬───────────────────────┬─────────
│ class │ device │ id │ iommugroup │ vendor │ device_name │ mdev │ subsystem_device │ subsystem_device_name │ subsyste
╞══════════╪════════╪══════════════╪════════════╪════════╪═════════════════════════════════════════════════════════════════╪══════╪══════════════════╪═══════════════════════╪═════════

│ 0x030000 │ 0x687f │ 0000:07:00.0 │ 45 │ 0x1002 │ Vega 10 XL/XT [Radeon RX Vega 56/64] │ │ 0x0b36 │ RX Vega64 │ 0x1002
├──────────┼────────┼──────────────┼────────────┼────────┼─────────────────────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼─────────
│ 0x040300 │ 0xaaf8 │ 0000:07:00.1 │ 46 │ 0x1002 │ Vega 10 HDMI Audio [Radeon Vega 56/64] │ │ 0xaaf8 │ │ 0x1002
├──────────┼────────┼──────────────┼────────────┼────────┼─────────────────────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼─────────
│ 0x060400 │ 0x1470 │ 0000:05:00.0 │ 43 │ 0x1022 │ Vega 10 PCIe Bridge │ │ 0x0000 │ │ 0x0000
├──────────┼────────┼──────────────┼────────────┼────────┼─────────────────────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼─────────
│ 0x060400 │ 0x1471 │ 0000:06:00.0 │ 44 │ 0x1022 │ Vega 10 PCIe Bridge │ │ 0x1471 │ │ 0x1022
├──────────┼────────┼──────────────┼────────────┼────────┼─────────────────────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼─────────



=== [dmesg IOMMU Summary] ===
[ 0.974435] iommu: Default domain type: Passthrough (set via kernel command line)
[ 1.013690] pci 0000:00:00.0: Adding to iommu group 0
[ 1.013713] pci 0000:00:01.0: Adding to iommu group 1
[ 1.013733] pci 0000:00:03.0: Adding to iommu group 2
[ 1.013752] pci 0000:00:07.0: Adding to iommu group 3
[ 1.013772] pci 0000:00:0d.0: Adding to iommu group 4
[ 1.013794] pci 0000:00:0d.1: Adding to iommu group 5
[ 1.013813] pci 0000:00:0d.2: Adding to iommu group 6
[ 1.013833] pci 0000:00:0d.3: Adding to iommu group 7
[ 1.013854] pci 0000:00:0d.4: Adding to iommu group 8
[ 1.013874] pci 0000:00:0d.5: Adding to iommu group 9
[ 1.013893] pci 0000:00:0d.6: Adding to iommu group 10
[ 1.013913] pci 0000:00:0d.7: Adding to iommu group 11
[ 1.013934] pci 0000:00:0e.0: Adding to iommu group 12
[ 1.013954] pci 0000:00:0e.1: Adding to iommu group 13
[ 1.013974] pci 0000:00:0e.2: Adding to iommu group 14
[ 1.013993] pci 0000:00:0e.3: Adding to iommu group 15
[ 1.014014] pci 0000:00:0e.4: Adding to iommu group 16
[ 1.014034] pci 0000:00:0f.0: Adding to iommu group 17
[ 1.014075] pci 0000:00:10.0: Adding to iommu group 18
[ 1.014098] pci 0000:00:10.1: Adding to iommu group 18
[ 1.014139] pci 0000:00:11.0: Adding to iommu group 19
[ 1.014160] pci 0000:00:11.1: Adding to iommu group 19
[ 1.014190] pci 0000:00:13.0: Adding to iommu group 20
[ 1.014209] pci 0000:00:14.0: Adding to iommu group 21
[ 1.014233] pci 0000:00:14.1: Adding to iommu group 22
[ 1.014253] pci 0000:00:14.2: Adding to iommu group 23
[ 1.014283] pci 0000:00:14.3: Adding to iommu group 24
[ 1.014313] pci 0000:00:15.0: Adding to iommu group 25
[ 1.014334] pci 0000:00:16.0: Adding to iommu group 26
[ 1.014354] pci 0000:00:16.1: Adding to iommu group 27
[ 1.014373] pci 0000:00:16.2: Adding to iommu group 28
[ 1.014393] pci 0000:00:16.3: Adding to iommu group 29
[ 1.014417] pci 0000:00:16.4: Adding to iommu group 30
[ 1.014436] pci 0000:00:16.5: Adding to iommu group 31
[ 1.014455] pci 0000:00:16.6: Adding to iommu group 32
[ 1.014474] pci 0000:00:16.7: Adding to iommu group 33
[ 1.014536] pci 0000:00:1a.0: Adding to iommu group 34
[ 1.014565] pci 0000:00:1a.1: Adding to iommu group 34
[ 1.014588] pci 0000:00:1a.2: Adding to iommu group 34
[ 1.014614] pci 0000:00:1a.7: Adding to iommu group 34
[ 1.014634] pci 0000:00:1b.0: Adding to iommu group 35
[ 1.014727] pci 0000:00:1c.0: Adding to iommu group 36
[ 1.014753] pci 0000:00:1c.1: Adding to iommu group 36
[ 1.014778] pci 0000:00:1c.2: Adding to iommu group 36
[ 1.014804] pci 0000:00:1c.3: Adding to iommu group 36
[ 1.014830] pci 0000:00:1c.4: Adding to iommu group 36
[ 1.014856] pci 0000:00:1c.5: Adding to iommu group 36
[ 1.014918] pci 0000:00:1d.0: Adding to iommu group 37
[ 1.014943] pci 0000:00:1d.1: Adding to iommu group 37
[ 1.014967] pci 0000:00:1d.2: Adding to iommu group 37
[ 1.014991] pci 0000:00:1d.7: Adding to iommu group 37
[ 1.015011] pci 0000:00:1e.0: Adding to iommu group 38
[ 1.015063] pci 0000:00:1f.0: Adding to iommu group 39
[ 1.015088] pci 0000:00:1f.2: Adding to iommu group 39
[ 1.015112] pci 0000:00:1f.3: Adding to iommu group 39
[ 1.015133] pci 0000:01:00.0: Adding to iommu group 40
[ 1.015156] pci 0000:02:02.0: Adding to iommu group 41
[ 1.015181] pci 0000:02:04.0: Adding to iommu group 42
[ 1.015203] pci 0000:05:00.0: Adding to iommu group 43
[ 1.015228] pci 0000:06:00.0: Adding to iommu group 44
[ 1.015265] pci 0000:07:00.0: Adding to iommu group 45
[ 1.015301] pci 0000:07:00.1: Adding to iommu group 46
[ 1.015322] pci 0000:08:00.0: Adding to iommu group 47
[ 1.015347] pci 0000:09:00.0: Adding to iommu group 48
[ 1.015371] pci 0000:09:04.0: Adding to iommu group 49
[ 1.015398] pci 0000:09:08.0: Adding to iommu group 50
[ 1.015423] pci 0000:09:0c.0: Adding to iommu group 51
[ 1.015450] pci 0000:0a:00.0: Adding to iommu group 52
[ 1.015479] pci 0000:0c:00.0: Adding to iommu group 53
[ 1.015488] pci 0000:10:00.0: Adding to iommu group 36
[ 1.015496] pci 0000:11:00.0: Adding to iommu group 36
[ 1.015504] pci 0000:12:00.0: Adding to iommu group 36
[ 1.015511] pci 0000:13:00.0: Adding to iommu group 36
[ 1.015519] pci 0000:14:00.0: Adding to iommu group 36

root@cMP51:~# #!/bin/bash. ------https://github.com/Rushmore75/amd-passthrough-fix/blob/main/script.sh

if ! command -v dkms &> /dev/null; then echo "Install dkms" && exit; fi;
if ! command -v git &> /dev/null; then echo "Install git" && exit; fi;

echo "Assuming you are running 1 AMD GPU."
echo "Press CTRL-C to cancel. Press any key to proceed..."
read

# Check kernel options
KERNEL_OPTIONS=('CONFIG_FTRACE=' 'CONFIG_KPROBES=' 'CONFIG_PCI_QUIRKS=' 'CONFIG_KALLSYMS=' 'CONFIG_KALLSYMS_ALL=' 'CONFIG_FUNCTION_TRACER=')
MISSING=0
for OPTION in "${KERNEL_OPTIONS[@]}"; do
if [[ $(grep $OPTION /boot/config-$(uname -r) | awk -F= '{print $2}') == "y" ]]; then
echo "$OPTION ✅"
else
echo "$OPTION ❌"
$MISSING=1
fi
done
if (( $MISSING == 1 )); then
echo "Error: Missing kernel option..."
exit
fi


# Make sure IOMMU is enabled
if dmesg | grep -qe "DMAR: IOMMU enabled"; then echo IOMMU Enabled - continuing...;
else
echo IOMMU Not Enabled!
echo "This link can help you enable it in your BIOS: https://us.informatiweb.net/tutorials/it/bios/enable-iommu-or-vt-d-in-your-bios.html"
echo "Also append \"intel_iommu=on\" for intel CPUs and \"iommu=pt\" for Intel & AMD to your \"GRUB_CMDLINE_LINUX_DEFAULT=\" line in /etc/default/grub"
echo "Then run update-grub"
exit
fi

# Blacklist drivers on host machine
echo "blacklist amdgpu" >> /etc/modprobe.d/blacklist.conf
echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf

# Remove previous versions of vendor-reset
if dkms status | grep -q vendor-reset; then
dkms remove $(dkms status | grep vendor-reset | awk -F: '{print $1}') --all
fi

# Get the vendor-reset patch and install it
git clone https://github.com/gnif/vendor-reset
cd vendor-reset
dkms install .
echo "vendor-reset" >> /etc/modules
update-initramfs -u

echo "Now reboot for the changes to take effect."VICE_ID/reset_method AMD | awk '{print $1}'))
Assuming you are running 1 AMD GPU.
Press CTRL-C to cancel. Press any key to proceed...

CONFIG_FTRACE= ✅
CONFIG_KPROBES= ✅
CONFIG_PCI_QUIRKS= ✅
CONFIG_KALLSYMS= ✅
CONFIG_KALLSYMS_ALL= ✅
CONFIG_FUNCTION_TRACER= ✅
IOMMU Not Enabled!
This link can help you enable it in your BIOS: https://us.informatiweb.net/tutorials/it/bios/enable-iommu-or-vt-d-in-your-bios.html
Also append "intel_iommu=on" for intel CPUs and "iommu=pt" for Intel & AMD to your "GRUB_CMDLINE_LINUX_DEFAULT=" line in /etc/default/grub
Then run update-grub
logout
 
Why are you putting different data in the same value?

Old as a fossil... So I don't know if that will work.
Why are you putting different data in the same value?

Old as a fossil... So I don't know if that will work.
its actually intel_iommu=on iommu=pt

see
=== [Kernel Cmdline] ===
initrd=\EFI\proxmox\6.14.11-1-pve\initrd.img-6.14.11-1-pve #root=ZFS=rpool/ROOT/pve-1 boot=zfs mitigations=off intel_iommu=on iommu=pt

this command the produced the misleading results that you read was

echo "=== [IOMMU Enabled in Kernel Cmdline] ==="
grep -o 'iommu[^ ]*' /proc/cmdline || echo "No IOMMU options found in kernel cmdline"

thank you for your interest in my predicament
 
I have a MS-A2 with Ryzen 9 7945HX / Radeon 610M. I was able to pass it through to a Linux VM successfully using vbios capture from the host using the guide from here (except the bits about hiding virtualization and cpu from the guest). After an upgrade to Proxmox 9.0.6 it does not seem to work anymore. `dmesg` on the guest shows it seems to be unable to initialize amdgpu driver:

Code:
[  +0.000104] amdgpu: Virtual CRAT table created for CPU
[  +0.000009] amdgpu: Topology: Add CPU node
[  +0.000271] [drm] initializing kernel modesetting (IP DISCOVERY 0x1002:0x164E 0x1F4C:0xB021 0xD8).
[  +0.000011] [drm] register mmio base: 0xFE800000
[  +0.000001] [drm] register mmio size: 524288
[  +0.001624] [drm] add ip block number 0 <nv_common>
[  +0.000001] [drm] add ip block number 1 <gmc_v10_0>
[  +0.000001] [drm] add ip block number 2 <navi10_ih>
[  +0.000001] [drm] add ip block number 3 <psp>
[  +0.000001] [drm] add ip block number 4 <smu>
[  +0.000001] [drm] add ip block number 5 <dm>
[  +0.000001] [drm] add ip block number 6 <gfx_v10_0>
[  +0.000001] [drm] add ip block number 7 <sdma_v5_2>
[  +0.000001] [drm] add ip block number 8 <vcn_v3_0>
[  +0.000000] [drm] add ip block number 9 <jpeg_v3_0>
[  +0.003050] [drm] BIOS signature incorrect 0 0
[  +0.003508] amdgpu 0000:01:00.0: amdgpu: Fetched VBIOS from ROM BAR
[  +0.000014] amdgpu: ATOM BIOS: 102-RAPHAEL-008
[  +0.005387] amdgpu 0000:01:00.0: amdgpu: Trusted Memory Zone (TMZ) feature disabled as experimental (default)
[  +0.000041] [drm] vm size is 262144 GB, 4 levels, block size is 9-bit, fragment size is 9-bit
[  +0.000034] amdgpu 0000:01:00.0: amdgpu: VRAM: 2048M 0x000000F400000000 - 0x000000F47FFFFFFF (2048M used)
[  +0.000001] amdgpu 0000:01:00.0: amdgpu: GART: 1024M 0x0000000000000000 - 0x000000003FFFFFFF
[  +0.000006] [drm] Detected VRAM RAM=2048M, BAR=256M
[  +0.000001] [drm] RAM width 128bits DDR5
[  +0.000071] [drm] amdgpu: 2048M of VRAM memory ready
[  +0.000001] [drm] amdgpu: 7995M of GTT memory ready.
[  +0.000018] [drm] GART: num cpu pages 262144, num gpu pages 262144
[  +0.000125] [drm] PCIE GART of 1024M enabled (table at 0x000000F400600000).
[  +0.000716] [drm] Loading DMUB firmware via PSP: version=0x05002000
[  +0.000375] [drm] use_doorbell being set to: [true]
[  +0.000016] [drm] Found VCN firmware Version ENC: 1.33 DEC: 4 VEP: 0 Revision: 6
[  +0.022710] amdgpu 0000:01:00.0: amdgpu: reserve 0xa00000 from 0xf47e000000 for PSP TMR
[  +0.029000] amdgpu 0000:01:00.0: amdgpu: psp gfx command AUTOLOAD_RLC(0x21) failed and response status is (0xFFFF000D)
[  +1.172476] amdgpu 0000:01:00.0: amdgpu: failed to load ucode DMCUB(0x3D)
[  +0.000013] amdgpu 0000:01:00.0: amdgpu: psp gfx command LOAD_IP_FW(0x6) failed and response status is (0x80000306)
[  +0.006874] amdgpu 0000:01:00.0: amdgpu: RAS: optional ras ta ucode is not available
[  +0.006019] amdgpu 0000:01:00.0: amdgpu: RAP: optional rap ta ucode is not available
[  +0.000001] amdgpu 0000:01:00.0: amdgpu: SECUREDISPLAY: securedisplay ta ucode is not available
[Sep 4 18:07] amdgpu 0000:01:00.0: amdgpu: SMU: I'm not done with your previous command: SMN_C2PMSG_66:0x00000019 SMN_C2PMSG_82:0x00000000
[  +0.000006] amdgpu 0000:01:00.0: amdgpu: SMC engine is not correctly up!
[  +0.000002] [drm:amdgpu_device_ip_init [amdgpu]] *ERROR* hw_init of IP block <smu> failed -62
[  +0.000317] amdgpu 0000:01:00.0: amdgpu: amdgpu_device_ip_init failed
[  +0.000001] amdgpu 0000:01:00.0: amdgpu: Fatal error during GPU init
[  +0.000040] amdgpu 0000:01:00.0: amdgpu: amdgpu: finishing device.
[  +0.000195] ------------[ cut here ]------------
[  +0.000001] WARNING: CPU: 1 PID: 169 at drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c:631 amdgpu_irq_put+0x9f/0xb0 [amdgpu]
[  +0.000261] Modules linked in: amdgpu(+) amdxcp drm_exec gpu_sched hid_generic drm_buddy video sha256_ssse3 wmi sha1_ssse3 i2c_i801 i2c_algo_bit uas ahci psmouse drm_s>
[  +0.000017] CPU: 1 UID: 0 PID: 169 Comm: systemd-udevd Not tainted 6.12.10-76061203-generic #202412060638~1753385872~22.04~dc2e00d
[  +0.000002] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014
[  +0.000001] RIP: 0010:amdgpu_irq_put+0x9f/0xb0 [amdgpu]
[  +0.000205] Code: 31 f6 31 ff c3 cc cc cc cc 44 89 e2 48 89 de 4c 89 f7 e8 94 fc ff ff 5b 41 5c 41 5d 41 5e 5d 31 d2 31 f6 31 ff c3 cc cc cc cc <0f> 0b b8 ea ff ff ff >
[  +0.000001] RSP: 0018:ffffae190054f520 EFLAGS: 00010246
[  +0.000001] RAX: 0000000000000000 RBX: ffff8ae5a3325528 RCX: 0000000000000000
[  +0.000001] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
[  +0.000001] RBP: ffffae190054f540 R08: 0000000000000000 R09: 0000000000000000
[  +0.000000] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
[  +0.000001] R13: 0000000000000001 R14: ffff8ae5a3300000 R15: 0000000000000001
[  +0.000002] FS:  00007e7987ffa8c0(0000) GS:ffff8ae8efa80000(0000) knlGS:0000000000000000
[  +0.000001] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  +0.000000] CR2: 0000599011b2ca18 CR3: 00000001046c8000 CR4: 00000000000006f0
[  +0.000002] Call Trace:
[  +0.000002]  <TASK>
[  +0.000001]  ? show_regs+0x6c/0x80
[  +0.000007]  ? __warn+0x8d/0x150
[  +0.000002]  ? amdgpu_irq_put+0x9f/0xb0 [amdgpu]
[  +0.000193]  ? report_bug+0x182/0x1b0
[  +0.000006]  ? handle_bug+0x6e/0xb0
[  +0.000003]  ? exc_invalid_op+0x18/0x80
[  +0.000002]  ? asm_exc_invalid_op+0x1b/0x20
[  +0.000003]  ? amdgpu_irq_put+0x9f/0xb0 [amdgpu]
[  +0.000190]  amdgpu_fence_driver_hw_fini+0x11f/0x170 [amdgpu]
[  +0.000211]  amdgpu_device_fini_hw+0xcf/0x250 [amdgpu]
[  +0.000206]  amdgpu_driver_unload_kms+0x4b/0x70 [amdgpu]
[  +0.000193]  amdgpu_driver_load_kms+0x91/0xd0 [amdgpu]
[  +0.000192]  amdgpu_pci_probe+0x1cb/0x620 [amdgpu]
[  +0.000195]  ? _raw_spin_unlock_irqrestore+0x11/0x60
[  +0.000003]  local_pci_probe+0x47/0xb0
[  +0.000003]  pci_call_probe+0x5f/0x1a0
[  +0.000002]  pci_device_probe+0x84/0x120
[  +0.000001]  really_probe+0xf1/0x3b0
[  +0.000002]  __driver_probe_device+0x8c/0x180
[  +0.000001]  driver_probe_device+0x24/0xd0
[  +0.000002]  __driver_attach+0x10b/0x210
[  +0.000001]  ? __pfx___driver_attach+0x10/0x10
[  +0.000001]  bus_for_each_dev+0x8d/0xf0
[  +0.000002]  driver_attach+0x1e/0x30
[  +0.000001]  bus_add_driver+0x14e/0x290
[  +0.000001]  driver_register+0x5e/0x130
[  +0.000001]  ? __pfx_amdgpu_init+0x10/0x10 [amdgpu]
[  +0.000200]  __pci_register_driver+0x5e/0x70
[  +0.000001]  amdgpu_init+0x69/0xff0 [amdgpu]
[  +0.000196]  do_one_initcall+0x5e/0x340
[  +0.000004]  do_init_module+0x97/0x2a0
[  +0.000003]  load_module+0x6a2/0x7b0
[  +0.000001]  init_module_from_file+0x96/0x100
[  +0.000001]  idempotent_init_module+0x119/0x310
[  +0.000001]  __x64_sys_finit_module+0x64/0xd0
[  +0.000001]  x64_sys_call+0x1697/0x24e0
[  +0.000002]  do_syscall_64+0x7e/0x170
[  +0.000002]  ? vm_mmap_pgoff+0x134/0x1c0
[  +0.000002]  ? ksys_mmap_pgoff+0x186/0x240
[  +0.000002]  ? cp_new_stat+0x142/0x180
[  +0.000003]  ? arch_exit_to_user_mode_prepare.constprop.0+0x22/0xd0
[  +0.000001]  ? syscall_exit_to_user_mode+0x38/0x1d0
[  +0.000002]  ? do_syscall_64+0x8a/0x170
[  +0.000001]  ? __do_sys_newfstatat+0x53/0x90
[  +0.000002]  ? arch_exit_to_user_mode_prepare.constprop.0+0x22/0xd0
[  +0.000001]  ? syscall_exit_to_user_mode+0x38/0x1d0
[  +0.000001]  ? do_syscall_64+0x8a/0x170
[  +0.000001]  ? ksys_read+0x73/0x100
[  +0.000002]  ? arch_exit_to_user_mode_prepare.constprop.0+0x22/0xd0
[  +0.000001]  ? syscall_exit_to_user_mode+0x38/0x1d0
[  +0.000002]  ? do_syscall_64+0x8a/0x170
[  +0.000001]  ? arch_exit_to_user_mode_prepare.constprop.0+0x22/0xd0
[  +0.000001]  ? syscall_exit_to_user_mode+0x38/0x1d0
[  +0.000001]  ? do_syscall_64+0x8a/0x170
[  +0.000001]  ? do_syscall_64+0x8a/0x170
[  +0.000001]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  +0.000002] RIP: 0033:0x7e79886fc88d
[  +0.000002] Code: 5b 41 5c c3 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 >
[  +0.000001] RSP: 002b:00007fffddf68628 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[  +0.000001] RAX: ffffffffffffffda RBX: 0000599011b14b50 RCX: 00007e79886fc88d
[  +0.000001] RDX: 0000000000000000 RSI: 00007e7988894441 RDI: 0000000000000016
[  +0.000000] RBP: 0000000000020000 R08: 0000000000000000 R09: 0000000000000002
[  +0.000001] R10: 0000000000000016 R11: 0000000000000246 R12: 00007e7988894441
[  +0.000001] R13: 0000599011b39820 R14: 0000599011b3b030 R15: 0000599011b396b0
[  +0.000001]  </TASK>
[  +0.000000] ---[ end trace 0000000000000000 ]---

< ... bunch of similar stack traces ... >

[  +0.001712] amdgpu 0000:01:00.0: probe with driver amdgpu failed with error -62
 
Well... a strange development. I managed to make the passthrough work after the upgrade as well, but it is a little weird, and requires a little dance after every reboot:
1. Made the passthrough GPU non-primary (x-vga=0) in the VM, and add a Display=Default (does not matter which one, really)
2. Run VM, let it initialize the non-primary GPU, and it happens without any issues. Shut it down.
3. Set Display=None, and return x-vga=1 to the passthrough GPU. Start it again. Now it works.

It looks like some part of the initialization does not happen correctly when the passthrough GPU is the primary one. But when it is initialized once, subsequent starts as primary work smoothly.

If anyone is interested in the details, let me know. This is a test system for me, so I'm ok with doing any checks for it for the time being.