This post will serve as a reference for myself and maybe also others. After successfully setting up PCI (GPU) passthrough on a Ubuntu virtual machine I wanted to see if it would also work with a Windows virtual machine. During this process I ran into some challenges that are documented below:
After setting up the Windows virtual machine I found that it did not correctly identify the graphics card. Device manager showed that a device was found but it did not recognize it as a NVIDIA GeForce GTX 1070. This meant that the NVIDIA driver installer was unable to determine there was an NVIDIA card present in the system and therefore would return an error. I resolved this issue by retrieving the hardware id for the graphics card (PCI\VEN_10DE&DEV_1BE&SUBSYS_1CB01043&REV_A1) and adding this information to the PCI device options in proxmox. At this point the card was properly identified by device manager and I was able to install the drivers with the NVIDIA driver installer.
However, Windows would now report the device as not functioning (error 43). After researching this error I found multiple possible solutions for this issue. Some were more complex then others but I set out to try them all and see which would solve my issue. After a lot of trial and error, recreating virtual machines, omitting options and adding options I found that setting the machine type to Q35 and changing the PCI device to a PCIe device in the PCI devices options would result in a working graphics card.
References:
- https://pve.proxmox.com/wiki/PCI_Passthrough
- https://www.reddit.com/r/homelab/comments/b5xpua/the_ultimate_beginners_guide_to_gpu_passthrough/
- https://pve.proxmox.com/wiki/Windows_10_guest_best_practices
Screenshots: