updated to PVE 9.0 then GPU passthrough stopped working on Windows

Please wait a moment as I am verifying the procedure from 8 to 9 on my computer.

Is the kernel version the same but different? I would also appreciate it if you could tell me if it is worth applying the kernel deb file.
 
Last edited:
The logs have been collected. Please check them.

I thought it was necessary to check the Event Data, so I collected it in evtx, but since I can't upload it, I am adding a txt extension.

All recorded errors are included. Driver-related events are also being collected.

The OS being used is the RTM of 24h2 and has not been updated.
 

Attachments

Last edited:
All recorded errors are included. Driver-related events are also being collected.
Thanks, so the Intel graphics driver's ctlInit fails and prints a CTL_RESULT_ERROR_NOT_INITIALIZED error (1073741825 = 0x40000001) [0], which unfortunately is quite generic and doesn't tell much about the error except that the Control API / device wasn't initialized at all. Later ctlEnumerateDevices fails with CTL_RESULT_ERROR_INVALID_API_HANDLE.

I haven't been too close to the Intel IGD quirks in QEMU before, but looking at a diff between v9.2.0 (the latest pve8 version), v10.0.2 (the current pve9 version) and the current upstream master, then there seems that v10.0.2 introduced a bug that was fixed by master with [1], where certain VGA memory regions aren't exposed to the guest anymore and the Windows driver seems to depend on those. I'll post more if this fixes the problem.

[0] https://intel.github.io/drivers.gpu...7ctlInitP15ctl_init_args_tP16ctl_api_handle_t
[1] https://lore.kernel.org/qemu-devel/20250723160906.44941-3-tomitamoeko@gmail.com/
 
  • Like
Reactions: leesteken
thank you

downgrading to an older kernel did not fix the problem, so I don't know where to apply the reverted version of this patch to fix it.
So I'm waiting for the results.
If you have any instructions or a test patch, I can update and check.
 
Last edited:
Hey there

Posting here because I'm trying to get GPU passthrough to work on a Gmktec G2 Plus (N150) to a Windows guest, on Proxmox 9.0.3.
It's a new setup, didn't try on previous versions of Proxmox.

Same as previous post: if you have any instructions or a test patch, I can test.
 
I upgraded today to 9 and now my Linux Ubuntu VM with Nvidia 750ti has no graphics anymore.

Passthrough configs from previous Proxmox versions seem to still be there.

When I boot I get stuck to splash screen with Proxmox and Ubuntu logos. I never arrive at Ubuntu's Grub screen. Then at some point -- after Grub timeout? -- all I see is Ubuntu console view with services being started. Eventually it (reboots? and) goes back to that splash screen and it repeats the cycle.
 
Last edited:
I upgraded today to 9 and now my Linux Ubuntu VM with Nvidia 750ti has no graphics anymore.

Passthrough configs from previous Proxmox versions seem to still be there.

When I boot I get stuck to splash screen with Proxmox and Ubuntu logos. I never arrive at Ubuntu's Grub screen. Then at some point -- after Grub timeout? -- all I see is Ubuntu console view with services being started. Eventually it (reboots? and) goes back to that splash screen and it repeats the cycle.
This thread is talking about Intel iGPU (IGD) issues.
Please start a separate thread for other products instead of listing them here.
It causes confusion.


jasonwch Intel UHD Graphics 630
uzumo Intel Graphics (N100)
Battlepope Intel UHD Graphics 630
LordArrin Intel UHD Graphics 770
Squall124 Intel Graphics (N150)
 
Last edited:
I haven't been too close to the Intel IGD quirks in QEMU before, but looking at a diff between v9.2.0 (the latest pve8 version), v10.0.2 (the current pve9 version) and the current upstream master, then there seems that v10.0.2 introduced a bug that was fixed by master with [1], where certain VGA memory regions aren't exposed to the guest anymore and the Windows driver seems to depend on those. I'll post more if this fixes the problem.
Unfortunately, that was a false flag as the patch that introduced the bug is not in v10.0.2, but is in the upstream's staging tree. However, a quick setup with a Windows 11 VM with a 9th generation Intel UHD 630 GPU in passthrough showed similar errors, I'll look into it, but I couldn't find any obvious (upstream) fixes yet.
 
I have the same error. Intel UHD 630 GPU in passthrough. Win11 and PVE 9.0.4. Please let me know if I can help with investigations, logs etc.
 
Same thing here - was working in 8.4, Win11 error 43 in PVE9.0.5. Intel UHD530 on a i5-6500T proc. Can also test stuff here if needed.
 
Tracking this. Thanks for working on it. :) I have a UHD 770 (i7-12700T) and have beeen holding off upgrading to PVE 9 on a production machine that runs a Windows 11 Pro VM with iGPU/SR-IOV passthrough.

I have another N100-based node that I don't use for production workloads. I'll try upgrading to PVE 9 this weekend and see how it goes.
 
Tracking this. Thanks for working on it. :) I have a UHD 770 (i7-12700T) and have beeen holding off upgrading to PVE 9 on a production machine that runs a Windows 11 Pro VM with iGPU/SR-IOV passthrough.

I have another N100-based node that I don't use for production workloads. I'll try upgrading to PVE 9 this weekend and see how it goes.
How's the test? I can see PVE have some updates, but seems still didn't fix in my case
 
Pass-through of vf using i915-sriov-dkms works.

The direct igpu pass-through discussed in this thread is unresolved.

It means that if you want to display the virtual machine on the display, it is unresolved.
 
Use pve-qemu-kvm package from this github repo: https://github.com/lixiaoliu666/pve-anti-detection/releases

Code:
args: -cpu host -set device.hostpci0.bus=pcie.0 -set device.hostpci1.bus=pcie.0 -set device.hostpci0.addr=0x02.0 -set device.hostpci1.addr=0x03.0 -set device.hostpci0.x-igd-gms=0x2 -set device.hostpci0.x-igd-opregion=on -set device.hostpci0.x-igd-lpc=on
bios: ovmf
hostpci0: 0000:00:02.0,pcie=1,x-vga=1,romfile=igd.rom
hostpci1: 0000:00:1f.3
machine: pc-q35-10.0

{064A72E5-30B7-4C67-9041-0DEF5C6AA8E7}.png

{7A7839CB-EF23-4EB4-B396-B82105A5C33A}.png
 
What?! I'll give it a try.

If this can be achieved in PVE9, I feel like it will lead to a fundamental solution to this problem!!

If this works in pve9, it could be that part of the problem lies in pve-qemu-kvm in pve9.

I hope an official fix for this issue will be released.
 
Last edited:
If this works in pve9, it could be that part of the problem lies in pve-qemu-kvm in pve9.

I reinstalled the official pve-qemu-kvm for testing and the error 43 came back.

At the moment I'm sticking with the unofficial package until the fix is upstreamed.
 
Thank you. Ah! I need to complete my other issues and tasks right away and get on with that.
 
I haven't been able to confirm that it works at this time.
I'll try reinstalling Proxmox 9.

wget ~/pve-qemu-kvm_10.0.2-4_amd64.deb
apt reinstall ./pve-qemu-kvm_10.0.2-4_amd64.deb
 
I haven't been able to confirm that it works at this time.
based on my previous installation, the args for qemu 10 and 9 are a bit different. try matching the args im using above (including the hostpci0: 0000:00:02.0,pcie=1,x-vga=1,romfile=igd.rom )