Files
hermes-config/skills/gaming/game-streaming/references/windows-vm-gpu-passthrough.md
T
2026-07-12 10:17:17 -04:00

3.1 KiB

Windows VM + GPU Passthrough for Gaming

Running a Windows VM alongside Linux services on the same machine so anti-cheat games and Proton-incompatible titles work. Requires both OSes to coexist without disrupting Linux services (Docker, HA, Immich, Ollama).

Option matrix

Option 1: Second GPU (best)

Buy a cheap low-power GPU (GT 1030 / GTX 1050 / RX 550 — $40-80 used) for Linux. Pass the primary gaming GPU (2080 Ti) to Windows VM via VFIO.

Linux host Windows VM
GPU Cheap second card Gaming GPU (full power)
LLM inference Stays on Ollama
NVENC Sunshine on Windows Native
Anti-cheat games Full compatibility
All Docker services Unchanged

Requirements: motherboard with two PCIe x16 (or x16 + x4 physical) slots. PSU headroom negligible (GT 1030 draws ~30W).

Option 2: Single GPU passthrough (free, painful)

Pass the only GPU to Windows. Linux becomes fully headless — no GPU at all.

  • All GPU workloads die on Linux: no Ollama, no Immich ML, no NVENC, no Docker GPU acceleration
  • Must bind GPU to VFIO at boot (kernel cmdline: vfio-pci.ids=10de:1e07,10de:10f7,10de:1ad6,10de:1ad7)
  • When Windows VM shuts down, GPU can be rebound to nvidia driver on Linux — but fragile; a reboot is cleaner
  • LLM must run inside Windows VM or via CPU-only on Linux (impractically slow)

Option 3: Proton-only (free, zero complexity)

No Windows VM. Accept that ~5% of games with kernel anti-cheat (Valorant, CoD, Fortnite, Destiny 2) won't work. Everything else runs through Steam Proton or Lutris on native Linux.

Option 4: Dual boot

Reboot between Linux and Windows. Not simultaneous — all Linux services are down while gaming.

OEM motherboard pitfalls

HP OMEN 30L (HP 8703 board)

  • iGPU is disabled when dGPU installed. The i7-10700K has Intel UHD Graphics 630 but it's not exposed — no video output ports routed to back panel, not visible in lspci. You cannot use iGPU for Linux host + dGPU for Windows VM passthrough on this board.
  • Only one GPU works at a time. Option 1 (second GPU) requires verifying the board has a second physical PCIe slot and that both GPUs fit physically.
  • BIOS may lack IOMMU/VT-d settings. HP OEM BIOSes are stripped down. VT-d/IOMMU may be enabled by default but not configurable. Check with dmesg | grep -iE "IOMMU|DMAR" and ls /sys/kernel/iommu_groups/.

General OEM board checks before GPU passthrough

# 1. GPU IOMMU group — must be isolated (no other devices in same group)
for d in /sys/kernel/iommu_groups/*/devices/*; do
  n=${d#*/iommu_groups/*}; n=${n%%/*}
  echo "Group $n: $(lspci -nns "${d##*/}" | cut -d' ' -f2-)"
done

# 2. VFIO kernel module available
modprobe vfio-pci && echo "vfio-pci available"

# 3. Second PCIe slot existence
lspci | grep -iE "VGA|3D|display"

What this does NOT cover

  • Full VFIO passthrough setup (libvirt XML, vfio-pci binding, Windows virtio drivers)
  • Looking Glass (low-latency VM display on Linux host)
  • SR-IOV (GPU virtualization — not supported on consumer NVIDIA cards)