XDA made the case this month that the worst gaming GPU sitting in your drawer might be the best upgrade your home server ever gets. That is true, with one condition attached: the card only earns its slot once something other than the host can actually use it. Handing a physical GPU to a virtual machine or a container is a separate problem from installing it, and it is the part that eats a weekend. We tested 8 of the best apps for GPU passthrough on a home server, covering the hypervisor that binds the card, the kernel-level fixes for cards that refuse to reset, the display layer that lets you see the guest, and the container route for people who would rather share the GPU than surrender it.
What to look for in a GPU passthrough tool
Passthrough is a stack, not a single app, so evaluate each piece against what your hardware can actually do.
- IOMMU group isolation. Your CPU and motherboard have to support VT-d or AMD-Vi, and the GPU has to land in an IOMMU group with nothing else important in it. Consumer boards often lump the x16 slot in with USB controllers and NVMe, and then you pass all of it or none of it.
- Host graphics after the card leaves. Once the GPU is bound to vfio-pci, the host loses it. Either the CPU has integrated graphics, or you need a second card, or you go single-GPU and accept that the host desktop dies when the VM boots.
- Reset behaviour. The card has to return to a clean state when the guest shuts down. Several AMD generations do not, and the fix is a kernel module rather than a config flag.
- How you see the guest. A GPU pinned to a VM outputs to a physical port, not to your host window manager. Something has to bridge that gap with acceptable latency.
- Whether you need exclusivity at all. Transcoding and inference workloads usually run fine on a shared GPU in a container. Full passthrough is for guests that need a real driver stack and a real display.
- Licensing reality. NVIDIA vGPU on datacentre cards requires a paid licence per concurrent guest. Intel SR-IOV on integrated graphics does not. That difference decides a lot of builds.
Quick comparison
| App | Best for | Platforms | Free plan | Starting price | Standout feature |
|---|---|---|---|---|---|
| Looking Glass | Seeing a passed-through GPU on the host | Linux host, Windows guest | Free, open source | Free | Shared-memory frame relay, no network hop |
| Proxmox VE | The home server hypervisor | Linux (bare metal) | Free, open source | Free, paid support optional | PCI resource mapping in the web UI |
| virt-manager | Passthrough on a plain Linux desktop or server | Linux | Free, open source | Free | Direct control over libvirt XML |
| vendor-reset | AMD cards that will not reset | Linux | Free, open source | Free | Device-specific reset for Polaris, Vega, Navi |
| i915-sriov-dkms | Splitting an Intel iGPU across VMs | Linux | Free, open source | Free | Up to 7 virtual functions from one iGPU |
| NVIDIA Container Toolkit | Sharing a GPU instead of dedicating it | Linux | Free, open source | Free | One GPU, many containers, no VFIO |
| Unraid | The least painful passthrough UI | Linux (bare metal) | 30-day trial | One-time paid licence | Checkbox VFIO binding per device |
| Sunshine | Getting the guest’s output off the box | Windows, Linux, macOS | Free, open source | Free | Hardware-encoded stream to any Moonlight client |
The apps
1. Looking Glass: best for using a passed-through GPU without a second monitor
Looking Glass solves the problem that makes most people give up on passthrough. The GPU is inside the Windows guest, the guest renders to it, and you are sitting at a Linux host that can no longer see any of it. Looking Glass copies frames from the guest into a shared memory region (IVSHMEM) and the host client draws them in an ordinary window, with no network stack, no encoder, and no compression pass in between. That is why it feels different from VNC or RDP: you get high refresh rates and input latency low enough for games, on the same physical machine.
The 2026 setup is easier than the one most old guides describe. The Looking Glass Indirect Display Driver (LGIdd) installs in the Windows guest as a user-mode display driver and creates a virtual monitor, which means the dummy HDMI plug that used to be mandatory is not any more. It also replaces the old host application, so there is one less thing running inside the guest.
Where it falls short: It is Linux host to Windows guest only, and it needs real passthrough to exist first. Looking Glass does not create a GPU for you, it displays one you already assigned. Audio is handled separately, and the shared memory device has to be sized correctly in the VM config or the client refuses to attach.
Pricing:
- Free: Fully open source, GPL-2.0
- Paid: None
Platforms: Linux (host client), Windows (guest driver)
Download: looking-glass.io · GitHub
Bottom line: If the server and your desk are the same machine, Looking Glass is the piece that makes GPU passthrough worth doing at all.
2. Proxmox VE: best free hypervisor for GPU passthrough on a home server
Proxmox VE is where most home server passthrough happens, because it is a bare-metal Debian-based hypervisor with a web UI over QEMU/KVM and LXC. For GPU passthrough it gives you a PCI device mapping layer: you register the card as a named resource on the node, then attach that mapping to a VM instead of hand-editing raw PCI addresses. Enable IOMMU on the kernel command line, blacklist the host driver, bind to vfio-pci, and the card shows up in the VM hardware list.
Proxmox VE for GPU passthrough also covers the sharing case. Since NVIDIA vGPU software 18, Proxmox has been an officially supported vGPU platform, with vGPU instances attached to guests as mediated devices through the same resource mapping system. Intel integrated graphics work through SR-IOV virtual functions on recent kernels, where the Xe driver replaced i915.
Where it falls short: The hard parts are still hard. Bad IOMMU grouping on a consumer motherboard is not something Proxmox can fix, and the ACS override patch that people reach for weakens the isolation guarantee that passthrough depends on. Expect at least one kernel command line edit and a reboot cycle before anything works.
Pricing:
- Free: Full functionality from the no-subscription repository
- Paid: Per-socket subscription for the enterprise repository and support
Platforms: Linux (installs bare metal)
Download: proxmox.com · PCI passthrough wiki
Bottom line: The default answer for a dedicated home server box, and the one with the most community documentation when something breaks.
3. virt-manager: best for passthrough on a Linux box you already run
virt-manager is the graphical front end to libvirt, and it is the right tool when the home server is just a Linux install you did not want to reformat into a hypervisor distribution. Add a PCI host device to the guest, and libvirt handles the vfio-pci handoff at VM start and gives the card back at shutdown. The interface exposes the underlying XML directly, which matters here, because passthrough tuning lives in places a wizard will not take you: CPU pinning, hugepages, hiding the hypervisor from NVIDIA drivers, and attaching the IVSHMEM device that Looking Glass needs.
Because it runs on top of libvirt and QEMU/KVM, everything you learn transfers. The same domain XML works from the command line with virsh, from virt-install in a script, and on any distribution that ships libvirt.
Where it falls short: No web UI, so you are either sitting at the machine or forwarding a session to it. There is no built-in device mapping abstraction like Proxmox has, so PCI addresses in the XML can shift if you move cards between slots. Single-GPU passthrough, where the host has no other graphics, needs your own start and stop hook scripts to tear down the display manager and rebind drivers.
Pricing:
- Free: Fully open source, GPL-2.0
- Paid: None
Platforms: Linux
Download: virt-manager.org · GitHub
Bottom line: The lightest path to passthrough when the server is a general-purpose Linux machine rather than a dedicated hypervisor.
4. vendor-reset: best for AMD cards that hang on VM shutdown
vendor-reset exists because of one specific and infuriating failure: you shut down the guest, try to start it again, and the GPU is gone until the entire host reboots. Several AMD generations do not implement a working function-level reset, so the card ends up in a state the kernel cannot recover. vendor-reset is a Linux kernel module that hooks the reset path with ftrace and applies device-specific reset sequences, with no kernel patching required.
Coverage includes Polaris (RX 470, 480, 570, 580, 590, and the 5xx laptop parts), Vega 56 and 64, Radeon VII, Instinct MI100, and Navi cards including the 5600 XT, 5700, and 5700 XT. Those are exactly the cards being sold cheaply second hand right now, which makes this module quietly essential for the reader who just bought one. Install it as a DKMS module and set the reset method for the affected device to device_specific.
Where it falls short: It is not universal. If your card is outside the supported families, this module will not help, and some users still hit edge cases where a guest crash rather than a clean shutdown leaves the device wedged. It is a kernel module, so kernel upgrades can require a rebuild.
Pricing:
- Free: Fully open source, GPL-2.0
- Paid: None
Platforms: Linux
Download: GitHub
Bottom line: Install it before you conclude your used AMD card is incompatible with passthrough, because it usually is not.
5. i915-sriov-dkms: best for splitting an Intel iGPU across several VMs
i915-sriov-dkms takes a different position: instead of dedicating one card to one guest, it turns an Intel integrated GPU into multiple virtual functions that several VMs can hold at once. The project packages the SR-IOV-capable i915 and xe driver code as a DKMS module for kernels that do not ship it, and on Intel UHD Graphics it can expose up to 7 virtual functions. For a home server that is a small form factor Intel box, this is the difference between one VM getting hardware acceleration and every VM getting it.
It also answers the second-GPU problem in a useful way. If the iGPU can be split, the host keeps a function for itself and the discrete card stays free for a single heavyweight guest, or you skip the discrete card entirely.
Where it falls short: The project describes itself as highly experimental and community-run, with no Intel affiliation. It tracks specific kernel version ranges, so a host kernel upgrade can break the build until the module catches up. Recent Intel platforms have moved to the mainline xe driver, which changes the setup path depending on the generation you own, and some Meteor Lake and Lunar Lake configurations are not covered.
Pricing:
- Free: Fully open source, GPL-2.0
- Paid: None
Platforms: Linux
Download: GitHub
Bottom line: The best value in GPU virtualization if your server already has an Intel iGPU doing nothing.
6. NVIDIA Container Toolkit: best for sharing the GPU instead of surrendering it
NVIDIA Container Toolkit is the honest alternative to passthrough for most home server workloads. Rather than binding the card to vfio-pci and locking it inside one VM, it wires the host’s NVIDIA driver and device nodes into containers, so several containers can use the same GPU concurrently. Install the host driver, install the toolkit, and containers get GPU access with a runtime flag. The CUDA toolkit is not needed on the host.
For a home server, that covers a large share of the reasons anyone puts a GPU in the box in the first place. It avoids every IOMMU grouping problem, every reset bug, and the requirement for separate host graphics, because the host driver never lets go of the card. The equivalent route for system containers is Incus, which has a gpu device type that can attach a physical GPU, an SR-IOV virtual function, or a mediated device to containers and VMs.
Where it falls short: Containers share a driver version with the host, so a guest that needs a different driver stack, a Windows userspace, or a real display output is out of scope. This is not a substitute for passthrough when the goal is a gaming VM. It is also NVIDIA-only.
Pricing:
- Free: Fully open source, Apache-2.0
- Paid: None
Platforms: Linux
Bottom line: Try this first. A large number of people who spent a weekend on VFIO did not actually need a VM.
7. Unraid: best paid option for passthrough without the config archaeology
Unraid is the commercial home server OS that made GPU passthrough approachable, and it is still the shortest path from bare metal to a working gaming VM. The VM manager in the web UI lists PCI devices with their IOMMU groups visible, and binding a device to VFIO is a checkbox rather than a kernel parameter you edit by hand. Attach the GPU and its audio function to a Windows or macOS guest, point it at a VirtIO driver ISO, and start it. Docker containers and the array run alongside on the same box.
Unraid also surfaces the information that other tools make you dig for. Seeing which devices share an IOMMU group before you commit saves the specific frustration of discovering, three hours in, that your GPU shares a group with the USB controller.
Where it falls short: It is paid, with tiers based on how many storage devices you attach and a renewal model for continued feature updates after the included period. The array is opinionated and built around parity rather than a striped pool, which not everyone wants. Advanced passthrough tuning still drops you into virsh and raw XML, the same as anywhere else.
Pricing:
- Free: 30-day trial with full functionality
- Paid: One-time licence, tiered by attached device count, with optional paid renewals for later feature updates
Platforms: Linux (boots from USB, bare metal)
Download: unraid.net
Bottom line: Worth the licence if your time is worth more than the price and you want passthrough working this evening.
8. Sunshine: best for reaching a passthrough VM from anywhere in the house
Sunshine is the last pick because it answers a question the other tools ignore. Looking Glass assumes you are sitting at the server. Most home servers are in a cupboard, a rack, or a basement. Sunshine runs inside the guest that now owns the GPU, encodes its output with that GPU’s hardware encoder, and streams it to a Moonlight client on a laptop, phone, tablet, TV box, or Steam Deck. The passed-through card does the encoding, so the cost to the guest is small.
Sunshine hosts run on Windows 11, Linux, macOS 14.2 and later, and FreeBSD, and Moonlight clients exist for nearly every platform. On a Linux guest it works headless with a virtual display; on Windows it wants a display present, which is where a virtual display driver or the guest’s own virtual monitor comes in.
Where it falls short: It is a network stream, so it carries encode and decode latency that Looking Glass does not. Over a wired LAN that is fine for most games and every desktop task, but it is not the same experience as shared memory on the same machine. Setup is a per-guest job rather than a host-level one.
Pricing:
- Free: Fully open source, GPL-3.0
- Paid: None
Platforms: Windows, Linux, macOS
Bottom line: Pair it with Looking Glass rather than choosing between them: one for when you are at the server, one for when you are not.
How to pick the right one
- If the server is also your desktop: Proxmox VE or virt-manager for the passthrough, Looking Glass for the display.
- If the server lives in a cupboard: any hypervisor plus Sunshine and Moonlight, because you will never plug a monitor into it again.
- If you just want Plex, Jellyfin, or a local model to use the card: NVIDIA Container Toolkit, and skip passthrough entirely.
- If your card is an RX 580, a Vega, or a 5700 XT: install vendor-reset first, then set up the VM.
- If the box is a small Intel machine with no PCIe slot: i915-sriov-dkms, and split the iGPU.
- If several VMs each need graphics: SR-IOV on Intel, or NVIDIA vGPU with the licences it requires.
- If you want it working tonight and will pay for that: Unraid.
- If you tried passthrough on a consumer motherboard and hit one giant IOMMU group: check whether a different PCIe slot groups better before you reach for the ACS override patch, which trades real isolation for convenience.
FAQ
What do I need for GPU passthrough on a home server? A CPU and motherboard with IOMMU support (Intel VT-d or AMD-Vi) enabled in firmware, a GPU that lands in a usable IOMMU group, and a way for the host to keep displaying something after the card is handed over. That last part means integrated graphics, a second GPU, or a single-GPU setup with hook scripts.
Does NVIDIA still block GPU passthrough with Code 43? No. NVIDIA stopped blocking virtualization on GeForce cards from driver 465.89 onward, and virtualization is officially supported on consumer cards now. Older guides that tell you to hide the hypervisor CPUID flag are describing a problem that no longer applies to current drivers, although the setting is harmless if it is already in your config.
Why does my AMD GPU only work once per host boot? That is the AMD reset bug. Several Polaris, Vega, and Navi cards do not implement a working reset, so the GPU cannot be reclaimed after the guest shuts down. The vendor-reset kernel module adds device-specific reset sequences for the affected families and usually fixes it.
Can two VMs share one GPU? Not with plain passthrough, which is exclusive to one guest at a time. Sharing needs SR-IOV virtual functions (available on recent Intel integrated graphics and on some datacentre cards) or NVIDIA vGPU, which is licensed per concurrent guest on supported hardware. For containers rather than VMs, the NVIDIA Container Toolkit or Incus can share a single GPU freely.
Do I need a dummy HDMI plug for Looking Glass? Not with the current setup. The Looking Glass Indirect Display Driver creates a virtual monitor inside the Windows guest, which removes the dummy plug requirement that older guides describe.
Is Hyper-V a realistic option for this? Rarely at home. Discrete Device Assignment needs server-class hardware with Native PCI Express Control and ACS support on the PCIe root complex, and it is not supported on Windows 10 or 11 Pro. GPU partitioning in Windows Server 2025 is the newer path, but the hardware and edition requirements still put it outside most home builds.