This is defunct but nice to have for later
I wanted to be able to stream Jellyfin to Discord via the Windows VM, I found another way with a laptop and Ubuntu.
I may still need the GPU for transcoding later but right now who can be fucked>
Goal
Pass the Zotac GTX 1080Ti (currently unused, no passthrough configured — see coytishost hardware reference) through to WinVMGeneral (192.168.1.91) so it can hardware decode/encode video. Fixes two problems:
- Jellyfin → Discord streaming chugging hard (all-software decode/encode on CPU)
- NDI Studio Monitor refusing to load (no GPU available to the VM at all)
Why this works well here
- CPU is i9-9900KF — no iGPU, so Proxmox host has never used the 1080Ti for its own display and runs fully headless already. No “host needs the GPU too” conflict.
- CPU + Z390 chipset both support VT-d/IOMMU, which passthrough requires.
- Only one VM needs the card at a time (Windows), so straight exclusive PCI passthrough is the right approach — no need for vGPU/sharing hacks.
Caveat
Passthrough is exclusive — while WinVMGeneral is running and holding the card, neither the Proxmox host nor the Ubuntu VM can use it. Not an issue here since only Windows needs it.
Steps
- Enable VT-d in BIOS (MSI Z390M) if not already on.
- Enable IOMMU on the Proxmox host — add
intel_iommu=on iommu=ptto the kernel cmdline / grub config,update-grub, reboot. - Bind the GPU to vfio-pci:
lspci -nn | grep -i nvidiato get the PCI IDs for both GPU functions (VGA + HDMI audio).- Blacklist
nouveauin/etc/modprobe.d/blacklist.conf. - Add
options vfio-pci ids=10de:xxxx,10de:yyyyin/etc/modprobe.d/vfio.conf. update-initramfs -u -k all, reboot.- Verify with
lspci -k -s <busid>— driver in use should showvfio-pci.
- Check WinVMGeneral’s current config first before changing boot mode — passthrough works best with:
- Machine type: q35
- BIOS: OVMF (UEFI)
- Changing this on an already-installed Windows VM needs care (may need an EFI disk added / boot repair).
- Add the GPU as a PCI Device in WinVMGeneral’s hardware — tick “All Functions” and “PCI-Express”.
- Hide KVM from the guest — Proxmox → VM → Options → “Hide KVM hardware virtualization”. Without this, consumer GeForce drivers throw Code 43 in Device Manager when they detect they’re in a VM.
- Boot the VM, install normal NVIDIA drivers — GPU should appear as a real second adapter. Test Jellyfin→Discord stream and NDI Studio Monitor.