Issue with PCI-E passthrough after upgrade to a R9 3950x

Here is the system specs:

ASRock AB350 Gaming K4
American Megatrends Inc., Version P6.40
BIOS dated: Mon 31 Aug 2020 12:00:00 AM CDT
Ryzen 9 3950x
32 GB 3000Mhz Dual channel ram
All SATA storage, 1 SSD for Cache, other HDD for storage drives.
Booting in Legacy mode.

Running Unraid 6.9.1.

After upgrading my CPU from a R7 1700 to the 3950x, I am not able to pass through my RX570 or GTX 1070 into a Windows 10 VM in either CPU connected PCI-E slot.

This board has 2 slots connected to the CPU, primary 16x slot and a 4x slot that shares lanes with an m.2 slot. I am not using the m.2 slot. I have attempted to use both slots with the GPUs. One GTX 960 2GB and either the RX 570 4GB or GTX 1070 8GB.

I am able to passthrough the RX570 or 1070 GPU into a Linux VM(PopOS) with no issue.

The behavior is that 1 or more CPU threads peak at 100% usage when the AMD GPU drivers load.

I did attempt this with a GTX 1070 and had similar results…

However, I was able to passthrough a GTX 960 in the 4x slot without issue in either slot.

So, I do not think this is related to the motherboard. Is it possible that the micro code on the 3950x does not handle the passthrough correctly? Or is this possible a limitation of Unraid with the R9 CPU? Is this an issue with booting in Legacy mode and not enabling above 4G decoding?

Any help would be appreciated.

I attempted to switch to UEFI boot and enable above 4G decoding. This resulted in the rx570 or 1070 to be the primary card.

However, neither would boot in any VM with or without the vbios passed through.

I am back to the legacy boot and added options for AMD IOMMU into the startup. Still limited success.

Make sure iommu is not on auto in bios and is instead enabled

That I did check. So, after more testing…

I found that if the VM’s machine type is Q35-5.1 it will boot when running Emulated mode with the 1070. But not with CPU Passthrough. Though this does not work for me as then my PCIE passthrough for a USB controller stops working…

However, the VM with the 960 seems to boot with either Geforce card fine. I have even created test VMs to see if they boot successfully with once Windows loads the drivers. I have not gotten any consistency.

So, using CPU emulation and using epyc instead of qemu resolved the issues.

Not sure why host passthrough wouldnt work. But its stable and the performance is good.

Wendel, thank you for your assistance. I appreciate everything you do.