Return to Level1Techs.com

RX 5700 GPU fails to passthrough to Windows 10 guest (Code 31). Please HELP

Hardware: i9-9900T CPU + GA-Z370 Gaming 7 motherboard + AMD-Official RX 5700 (made by Sapphire)

Hypervisor: Proxmox 6.1-3

I tried to passthrough RX5700 to Windows 10 guest following the instructions from Proxmox Wiki but Win10 only displays on the noVNC client with std VGA backend. The monitor physically attached to RX5700 shows the process of vm startup which always gets stuck at 75% of Start Boot Option.


Also tried with different virtual CPUs (host, Skylake-client, kvm64, etc) but all ended up with video output happens only with VNC.

In the “Device Manager” of Windows 10, a yellow exclamation sign appears at the unrecognized graphic device. When clicking and enter this item, I was indicated with " This device is not working properly because Windows cannot load the drivers required for this device (Code 31) ".

Anyone can offer a clue or help me out?

UPDATE 1: tried pcie_acs_override=downstream,multifunction but nothing changed.

/etc/default/grub

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Proxmox Virtual Environment"
GRUB_CMDLINE_LINUX_DEFAULT="video=vesafb:off,efifb:off nofb nomodeset intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction resume=UUID=cdb0e260-87e6-4b6f-9244-73bd2fdea5dc loglevel=3"
GRUB_CMDLINE_LINUX=""
GRUB_GFXPAYLOAD="text"

/etc/pve/qemu-server/100.conf

agent: 1
bios: ovmf
bootdisk: scsi0
cores: 8
cpu: host
efidisk0: local:102/vm-102-disk-1.qcow2,size=128K
hostpci0: 03:00,pcie=on,x-vga=on,romfile=SapphireRX5700.rom
machine: q35
memory: 16384
name: win10
net0: virtio=AE:D1:A9:99:37:6F,bridge=vmbr0,firewall=1
numa: 0
ostype: win10
scsi0: local:102/vm-102-disk-0.qcow2,cache=writethrough,size=120G
scsihw: virtio-scsi-pci
smbios1: uuid=81f37caf-e9d7-4732-b671-7416d902a108
sockets: 1
vga: std
vmgenid: 40459d71-5a6d-43c2-a696-95dbc195729f

I would temporarily remove the PCI card from the configuration and ensure Windows 10 boots up properly. I would then give it another reboot for good measure. Ensure that RDP is turned on, and that you are able to remote into it from another system. Once you are able to RDP into the system, shutdown Windows 10.

I would then change VGA to none and add the PCI card back into the configuration. Turn your Windows 10 VM back on.

Once you can ping the Windows 10 machine, RDP into it and see if you can install the drivers for the video card.

Keep your CPU to Host. This prevents Code 43.

I have only used ProxMox with Nvidia cards, so hope this helps you.