QEMU/KVM GPU Passthrough


Was getting BSOD trying to pass through a 280X to Windows guest. Using an added PCIe root seems to fix it. Using the i440fx machine in QEMU also seems to fix the BSOD. I need to benchmark that against the PCIe with Q35.

Standard options for the various modes using Q35 QEMU machine:

BIOS Default:

-device vfio-pci,host=xx:00.0,multifunction=on,x-vga=xx,romfile=xx -device vfio-pci,host=xx:00.1

UEFI Default:

-bios /usr/share/ovmf/OVMF.fd -device vfio-pci,host=xx:00.0,multifunction=on,x-vga=xx,romfile=xx -device vfio-pci,host=xx:00.1

BIOS PCIe:

-device pcie-root-port,bus=pcie.0,id=pcie0 -device vfio-pci,host=xx:00.0,multifunction=on,bus=pcie0,x-vga=xx,romfile=xx -device vfio-pci,host=xx:00.1,bus=pcie0

UEFI PCIe:

-bios /usr/share/ovmf/OVMF.fd -device pcie-root-port,bus=pcie.0,id=pcie0 -device vfio-pci,host=xx:00.0,multifunction=on,bus=pcie0,x-vga=xx,romfile=xx -device vfio-pci,host=xx:00.1,bus=pcie0

HIS Radeon 280X Turbo Boost (romfile is stock VBIOS in position 1)

BootPCIx-vgaromfileDisplayResult
BIOSDefaultOffNononeNo display
BIOSDefaultOffNovmwareBSOD
BIOSDefaultOffYesnoneNo display
BIOSDefaultOffYesvmwareBSOD
BIOSDefaultOnNononeBoots to Windows login then BSOD
BIOSDefaultOnNovmwareNo display
BIOSDefaultOnYesnoneBoots to Windows login then BSOD
BIOSDefaultOnYesvmwareNo display
BIOSPCIeOffNononeNo display
BIOSPCIeOffNovmwareQEMU display first then QEMU+GPU after login
BIOSPCIeOffYesnoneNo display
BIOSPCIeOffYesvmwareQEMU display first then QEMU+GPU after login
BIOSPCIeOnNononeBoots to Windows login then BSOD
BIOSPCIeOnNovmwareQEMU display first then QEMU+GPU after login
BIOSPCIeOnYesnoneBoots to Windows login then BSOD
BIOSPCIeOnYesvmwareQEMU display first then QEMU+GPU after login
UEFIDefaultOffNononeGPU incorrect resolution
UEFIDefaultOffNovmwareQEMU display but GPU does not work
UEFIDefaultOffYesnoneGPU incorrect resolution
UEFIDefaultOffYesvmwareQEMU display but GPU does not work
UEFIDefaultOnNononeGPU incorrect resolution
UEFIDefaultOnNovmwareQEMU display but GPU does not work
UEFIDefaultOnYesnoneGPU incorrect resolution
UEFIDefaultOnYesvmwareQEMU display but GPU does not work
UEFIPCIeOffNononeWorks
UEFIPCIeOffNovmwareWorks; Primary display on GPU
UEFIPCIeOffYesnoneWorks
UEFIPCIeOffYesvmwareWorks; Primary display on GPU
UEFIPCIeOnNononeWorks
UEFIPCIeOnNovmwareWorks; Primary display on GPU
UEFIPCIeOnYesnoneWorks
UEFIPCIeOnYesvmwareWorks; Primary display on GPU

MSI nVidia GT1030 OC (romfile is supposed to be a newer version of the stock VBIOS but doesn’t say MSI inside so, unknown)

BootPCIx-vgaromfileDisplayResult
BIOSDefaultOffNononeNo display
BIOSDefaultOffNovmwareQEMU display first then QEMU+GPU after login
BIOSDefaultOffYesnoneNo display
BIOSDefaultOffYesvmwareQEMU display first then QEMU+GPU after login
BIOSDefaultOnNononeNo display
BIOSDefaultOnNovmwareBlack screen
BIOSDefaultOnYesnoneNo display
BIOSDefaultOnYesvmwareBlack screen
BIOSPCIeOffNononeNo display
BIOSPCIeOffNovmwareQEMU display first then QEMU+GPU after login
BIOSPCIeOffYesnoneNo display
BIOSPCIeOffYesvmwareQEMU display first then QEMU+GPU after login
BIOSPCIeOnNononeNo display
BIOSPCIeOnNovmwareQEMU display first then QEMU+GPU after login
BIOSPCIeOnYesnoneNo display
BIOSPCIeOnYesvmwareQEMU display first then QEMU+GPU after login
UEFIDefaultOffNononeWorks; Primary display on GPU
UEFIDefaultOffNovmwareWorks; Primary display on GPU
UEFIDefaultOffYesnoneBoots to Windows login then BSOD
UEFIDefaultOffYesvmwareBoots to Windows login then BSOD
UEFIDefaultOnNononeWorks
UEFIDefaultOnNovmwareWorks; Primary display on GPU
UEFIDefaultOnYesnoneBoots to Windows login then BSOD
UEFIDefaultOnYesvmwareBoots to Windows login then BSOD
UEFIPCIeOffNononeWorks
UEFIPCIeOffNovmwareWorks; Primary display on QEMU
UEFIPCIeOffYesnoneBoots to Windows login then BSOD
UEFIPCIeOffYesvmwareBoots to Windows login then BSOD
UEFIPCIeOnNononeWorks
UEFIPCIeOnNovmwareWorks; Primary display on QEMU
UEFIPCIeOnYesnoneBoots to Windows login then BSOD
UEFIPCIeOnYesvmwareBoots to Windows login then BSOD

Leave a Reply

Your email address will not be published. Required fields are marked *