Ryzen GPU Passthrough Setup Guide: Fedora 26 + Windows Gaming on Linux | Level One Techs

This might concern some of you:

https://lists.linuxfoundation.org/pipermail/iommu/2017-October/024822.html

Posted article also on Phoronix. Sorry if this seems like a necro post, but seems like this would be a BIG deal for lots of you!

https://patchwork.kernel.org/patch/10027525/

Hi Riddick, hi Foppe,

sounds for me like great news! I will check the Ubuntu Mainline Kernel Releases for updates about that patch and will try it out ASAP.

I hope the NPT Fix for AMD platforms will improve the virtulize experience on Ryzen! ATM the Performance in DX11 Games is quite OK with some hick ups and some times with light studder, but DX9c is very very rough :frowning:

Thanks guys for the comment! :slight_smile:

Have you tried wine for dx9 games? :slight_smile:

Jup on … Resident Evil 6 Benchmark Tool, Resident Evil 5 build in benchmark and Attack on Titans.
In RE6 BT my score dropped from native ~9200 Points to ~3600 Points with Framerates from ~100-120 FPS down to max 40 mostly 25 FPS in my VM.

RE5: Frames from around 200 FPS down to 25 FPS and below when more opponents are on the screen -.-

Attack on Titans has no benchmark, but if there are some action with some Titans the whole VM becomes slowmotion -.-.

Not very recommanded to play under this conditions.

It does!:slightly_smiling_face:

1 Like

Just saw this post, otherwise I would’ve replied some time ago.

Here you go:

From there:

But how well does it perform?

Surprisingly well, actually. I didn’t benchmark extensively, but I did run Cinebench R15, Unigine Heaven, and the Tomb Raider (2013) benchmark on both physical and virtual Windows 10 installations. All were run on installations that were as clean as possible, meaning only Cinebench, Unigine Heaven, Steam, and Tomb Raider were installed as well as all W10 Updates.

Cinebench Single – Physical – Virtual
Minimum – 146 – 144
Median – 147 – 144
Maximum – 147 – 144

Cinebench Multi – Physical – Virtual
Minimum – 529 – 531
Median – 531 – 532
Maximum – 532 – 536

Using the Single threaded performance, we can see a loss of about 2%. I would call that negligible. The multithreaded performance was much closer than I expected, one virtual run even scoring higher than the physical maximum. Perhaps Microsoft has some optimizations in place for Windows 10 in a virtual environment, or perhaps there was some background noise in the physical runs. Overall, the conclusion I draw from these benchmarks is that the performance loss is not worth considering at all.

Unigine Heaven – Physical – Virtual
Minimum – 8.4 – 21.5
Average – 54.7 – 55.0
Maximum – 116.8 – 115.8
Score – 1379 – 1384

The settings were Ultra w/ 8x AA @ 1080p on the DirectX 11 API. This time, our virtualized run actually achieved a better score. However, it’s not significantly higher than the baremetal performance, so I again concluded that the performance hit is, surprisingly, negligible.

Tomb Raider – Physical – Virtual
Minimum – 68.0 – 70.0
Average – 94.4 – 97.4
Maximum – 114.0 – 128.0

1 Like

I dont have the vfio.conf in the /etc/modprobe.d folder, what do I need?

Then just create one.
sudo touch /etc/modprobe.d/vfio.conf
The name doesn’t matter btw, as long as it ends on .conf.

with rd.driver.pre=vfio-pci on kernel option, my kernel wont boot :frowning:

my kernel 4.13.13-300.fc27.x86_64

After a while (2 weeks) I was able to boot windows 10, (Apparently I had had installed the bios version of fedora 27 instead of the UEFI version), but I got error 43 in the device manager of windows. I had to used the Bus Sata instead of the Virtio even tough I installed the driver before setting up the VM.
I put the


In the features of the XML config file, but same code 43 error problem.

What can I do or change to use the Nvidia GPU?

tried and true: kvm=off

haven’t tried but looks like it might be a better workaround: https://github.com/sk1080/nvidia-kvm-patcher

1 Like

Thank you, i follow the instruction of the link you posted, and now is working, now I ust need to get the NTP working.

1 Like

Sadly, I bought my board before finding this guide. I have an ASUS-PRIME x399-A motherboard. Otherwise I have followed the guide. I have Two Samsung 960 PRO NVMe 512GB drives that show up on separate IOMMU Groups. They have the same device ID.

If there is a way to only pass through one of these, I’d like to use the other for Fedora. If anyone has implemented the shell script that Wendell mentions in the video, perhaps I could adapt it for use on my drives also.

Is this a problem for two identical drives, the same way it is for two identical video cards? I have another drive I can use if this is a no go.

Yeah, you will need an ACS patch to separate 2 of the same drive or GPU. That isn’t optimal at all.

I’d exchange one of the 960 Pros for an EVO.

You would also be better using an RX 580 for the host and a Geforce for the VM at the moment because of issues with Nvidia and Wayland (the default display manager in GNOME now)

this isn’t really too big of a deal – do plan to use the other one as the boot drive? if not, then you can get vfio to release one of them and re-assign the driver later in the boot up process.

I think vfio supports the bus ID these days, but worst case, you can do a script on your initrd to bind only to one of the nvme. similar process for duplicate video cards.

Anyone messed with passthrough on MSI B350 Tomahawk board?

Wendell maybe? :stuck_out_tongue:

1 Like

Damn I thought I had checked that. Appreciate it

@wendell Have you done any more testing on the MSI B350 Tomahawk board lately?