Host GPU Passthrough Fails on ESXi 7.0: Fix 3 Common Causes

Server & Cloud Intermediate 👁 14 views 📅 Jun 26, 2026

GPU passthrough failing on your host? 9 times out of 10, it's IOMMU groups or a driver issue. Here's how to fix it fast.

You're trying to pass a GPU to a VM on ESXi 7.0, and the host just laughs at you. Maybe the device shows as 'Passthrough' but the VM won't start. Or it starts and the GPU is invisible inside the guest. I've been there. That sinking feeling when you're sure you did everything right, and it still fails.

Here's the thing: GPU passthrough on ESXi is mostly about two things — IOMMU groups and driver handling. If both are right, it works. If either is wrong, you're staring at an error. Let's knock out the most common causes first.

1. IOMMU Group Conflicts: The Silent Killer

This is the #1 reason GPU passthrough fails. ESXi puts devices in IOMMU groups. Sometimes your GPU is in the same group as something else — like the audio controller or a USB port. When you try to pass the GPU alone, ESXi throws a fit because it can't split a group.

What to check: Log into the ESXi shell (via SSH or the DCUI) and run:

lspci -v | grep -A 10 "IOMMU group"

But actually, the simpler way is to go to the VM's settings and look at the passthrough devices. If you see a warning like "Device is in a shared IOMMU group" — that's your problem.

The fix: Pass the whole IOMMU group. That means add both the GPU and the other device in that group (usually the same GPU's audio controller) to the VM. Yes, even if you don't use the audio. ESXi is strict about this. Once you add both, the VM should boot.

I've seen this trip people up with NVIDIA T4 cards. The audio controller sits in the same group, and they only pass the GPU. Then they wonder why it fails. Just add both.

2. The GPU Reset Bug (Especially with AMD Cards)

If your VM boots, the guest shows the GPU, but then it crashes or the host locks up when you try to start the VM again after a reboot — you've hit the GPU reset bug. This happens when the GPU isn't properly reset between VM sessions. It's a known issue with ESXi and some GPUs, especially AMD Radeon RX series.

Why it happens: The GPU's hardware state gets stuck. ESXi doesn't always clean it when the VM stops. Next time you start the VM, the GPU is in a bad state and the host panics or the VM freezes.

The fix: You need to force a full reset. I use a custom script that runs when the VM powers off:

# On the ESXi host:
# First, find the GPU's PCI ID
lspci | grep -i vga

# Then reset it (replace 0000:03:00.0 with your GPU's ID)
/usr/lib/vmware/bin/vmkchdev -r 0000:03:00.0

But that's manual. Better approach? Set the VM to use a specific GPU and add this to the VM's .vmx file:

pciPassthru.useFuzzyMatch = "TRUE"
pciPassthru.allowRDMFault = "TRUE"

Also, ensure you have the latest AMD driver in the guest. If you're using an NVIDIA card, this is less common, but it can happen with older Quadro models. Update the guest driver first.

3. Missing or Wrong Driver in the Guest OS

This one is embarrassingly common. You pass the GPU, the VM sees it, but the guest doesn't have the right driver. Windows just shows a "Basic Display Adapter" and nothing works. Or Linux shows the device but modprobe fails.

The trigger: You download the driver from NVIDIA or AMD but it won't install. Or it installs but the GPU is still not recognized. Usually because the driver doesn't support the ESXi virtual hardware or the GPU version.

The fix: For Windows guests, you must install the driver in a special way. Boot the VM, install the driver, but here's the trick: after install, shutdown the VM completely. Then go back to the ESXi host and mark the GPU for passthrough again. Sometimes the order matters — passthrough first, then install driver. Try both.

For Linux (Ubuntu 20.04 or newer), you need to blacklist the default driver and install the proprietary one:

# Blacklist nouveau (for NVIDIA)
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf
update-initramfs -u
reboot

# Then install the NVIDIA driver from the official .run file
wget https://us.download.nvidia.com/XFree86/Linux-x86_64/470.xx.xx/NVIDIA-Linux-x86_64-470.xx.xx.run
sh NVIDIA-Linux-x86_64-470.xx.xx.run

I've had the most luck with NVIDIA's 470 series drivers on older GPUs like the Tesla T4. Newer drivers often break passthrough.

One more thing: always match the driver version to the GPU model. ESXi doesn't care, but the guest does. Don't assume the latest driver is the best. Search for your GPU model and passthrough to find the sweet spot.

Quick-Reference Summary Table

CauseWhat You'll SeeFix
IOMMU group conflictWarning in VM settings, VM won't startAdd all devices in the same IOMMU group to the VM
GPU reset bugVM crashes on second start, host freezesForce reset the GPU via vmkchdev or add .vmx fixes
Missing/wrong driverGPU shows as basic adapter in guestInstall correct driver version, blacklist default

Was this solution helpful?