TrueNAS SCALE 25.10.4 - Windows 11 VM hangs at “Please wait” after successful RTX 3050 GPU passthrough

Hi everyone,

I’m running TrueNAS SCALE 25.10.4 on an ASRock B550 Phantom Gaming 4 with a Ryzen 9 5900X and an RTX 3050 6 GB.

Initially I couldn’t isolate the GPU because TrueNAS reported:

Devices sharing memory management: Starship/Matisse PCIe Dummy Host Bridge (0000:00:03.0)

After changing a BIOS setting, GPU isolation now works and the VM outputs video through the RTX.

The Windows 11 VM (Q35 + OVMF) now boots, shows the TianoCore logo and then gets stuck permanently on “Please wait” before reaching the login screen.

The VM was migrated from an Intel i7-6700 host to this AMD Ryzen system.

Has anyone seen this after an Intel → AMD migration with GPU passthrough? Is this more likely a Windows issue or a QEMU/VFIO issue?

I can provide lspci, IOMMU groups and VM XML/config if needed.

BIOS configuration:

  • SVM: Enabled

  • IOMMU: Enabled

  • Above 4G Decoding: Enabled

  • CSM: Disabled

  • Re-Size BAR: Disabled

  • SR-IOV: Disabled

  • PCIe ARI Support: Disabled

  • PCIe ARI Enumeration: Auto

Given that it will boot and output through the display, I’d suspect that it hanging at the “Please wait” is a Microsoft issue. Are you able to ping the VM from an outside machine to ensure that it’s responding at the network layer, or does it go completely offline?

Would it be possible to remove the isolated GPU and boot it with an emulated/virtual adapter, just to see if it completes that way? It may be a matter of drivers getting hung up.

Wouldn’t we want both of these enabled for the 3050 & for it to be successfully passed through?

Just a dumb question: how did you isolate the GPU if it’s the only one in your system? The ryzen CPU has no embedded GPU and you should only be able to isolate it for VM use when another GPU is present

2 Likes

I actually don’t have the GPU isolated anymore. At first I tried GPU isolation, but I kept running into issues, so I removed it.

My system has a Ryzen 9 5900X, so there is no integrated GPU. The host is managed over the network, and I use the virtual QEMU/VNC display for installation and recovery.

What finally solved the problem was adding the RTX 3050 to the VM before installing Windows, instead of adding it afterwards. I manually attached the GPU to the VM first, then installed Windows with the RTX already present.

During the Windows installation, the operating system detected the RTX 3050 automatically and installed the basic display driver. After Windows was installed, I installed the NVIDIA driver, and everything worked correctly.

Before that, I was trying to add the GPU to an existing Windows installation, and it would always hang at “Please wait” during boot. A clean Windows installation with the GPU attached from the beginning completely solved the issue.

So in my case, the key was attaching the GPU before installing Windows, not afterwards.

Not necessarily. In my case, passthrough only became stable with Resizable BAR disabled and SR-IOV disabled. The real fix, however, was attaching the RTX 3050 to the VM before installing Windows. Once Windows was installed with the GPU already attached, it detected the card correctly and the NVIDIA driver installed without any issues.

1 Like

Thanks for the suggestion. That turned out to be very close to the actual solution.

I removed the GPU isolation and created a brand-new Windows 11 VM. The important part was manually attaching the RTX 3050 to the VM before installing Windows.

With the GPU already attached during the Windows installation, Windows detected it automatically and installed the basic display driver. After that, I installed the NVIDIA driver, and everything worked perfectly.

Before that, I was always adding the GPU to an existing Windows installation, and it would consistently hang at “Please wait” during boot.

So in my case, it wasn’t a passthrough or VFIO issue after all—it was the way Windows was installed. Installing Windows with the GPU already attached solved the problem.

I’m still confused… normally for gpu passthrough to a vm you need at least 2 gpus, one for truenas and one that is isolated for vm passthrough.
GPU passthrough with a single gpu has been asked for a long time and afaik it should not be possible…

This. Like, I can tell TrueNAS to pass through the iGPU but it fails to init presumably because TrueNAS itself has already loaded it up and you’re not allowed to isolate it naturally in the settings…

You’re right, I completely forgot that I still have the AMD GPU installed. :grinning_face_with_smiling_eyes:

The AMD GPU stays with the TrueNAS host, while the RTX 3050 is passed through to the Windows VM.

The real solution for me was creating a new Windows VM and attaching the RTX 3050 before installing Windows. When I tried adding it to an existing Windows installation, the VM always hung at “Please wait”. With the GPU attached from the beginning, Windows detected it during setup and everything worked perfectly.

1 Like