VFIO GPU Passthrough working on Framework - GREAT performance

Hey all just thought people here might be interested to know that I’ve tested connecting the framework up to an egpu dock and passing it through to a VM via VFIO for gaming, and the performance is GREAT, the only thing is if you’re installing games and hitting the SSD with a sustained load it will slow down and cause system stutters both on the vm and the host system, but under normal operation performance is great!

I mostly just followed the Arch linux pcie passthrough wiki article. If you want help implementing this yourself let me know!

6 Likes

I assume you are passing it through to a Windows VM? How efficient is that? What kind of performance are you getting? How stable is the underlying host while the guest is cranking bigger GPU loads?

1 Like

Thanks for letting us know. However, that’s a lot of hoops… I think running an egpu on a Windows install would be enough… did you really need to run through a VM as well? HAHAHHAA… Great work though!

yeup windows vm, decent performance, not native, but that’s mostly because of thunderbolt not virtualization the gaming machine.

on a 1080ti I can play cyberpunk on medium settings with a smooth 60+fps at my monitor’s native res 3440x1440

3 Likes

yeah I don’t game on bare hardware because anticheat software is terrifying! Kernel level access to your computer, imagine if battleeye gets popped solarwinds style… millions of gaming gpus available to mine crypto to the attacker… nah I’ll just revert or blow away my VM and keep my normal user data safe thank you.

8 Likes

I used to always have a gaming only rig just for the same reasons. So I can understand. Was always also the Windows Tech Preview machine (cause I didn’t care if it died).

1 Like

fair enough, I’m just lazy and already run several servers so the fewer computers I have to maintain the better, plus I have all my chat apps and everything in my arch linux install and I don’t want to have to use windows more than I have to because I find it clunky and annoying. so I just have the gaming VM that only runs games, and do everything else from my host, including discord with my friends.

To live so long to witness this as being common. What a time to be alive :joy:

/getoffmylawn

5 Likes

Omg… The laughing man logo is my current wallpaper

1 Like

Interesting- so if the Xe GPU handles the Linux OS and the eGPU is routed to the Windows VM with Thunderbolt bottlenecking…could “decent” performance pass as well as virtualizing Adobe on a Linux Framework with this VFIO method?

Pyro, that is a good point regarding Windows and anti-cheat. The sad thing? Would anti-cheat and DRM ever have been necessary had there not been such a rampant piracy problem?

What hypervisor are you using? Boxes?
Is it possible to pipe output back onto the framework display? Does Thunderbolt have enough bandwidth for that?

really depends on how big your projects are, you could, like I said I’m running cyberpunk on a 1080ti so its not terrible performance by any means. However for the adobe suite I’d just find linux alternatives, there’s dozens out there, some that work just as well if not better than adobe.

I would argue that piracy was never really a problem, even back when pirating games was easy these gaming companies were making millions.

KVM with the virt-manager frontend, makes things easy, you can even edit the raw xml for the couple of things you need to through the gui

because I’m using a VM, no it is not possible to pipe the video back through to the framework’s screen unless you’re using looking glass which is basically copying the framebuffer straight to ram… but thunderbolt doesn’t have enough bandwidth for looking glass to work smoothly, I’ve tried. However if you’re just using the egpu dock with linux natively then yeah you can pip the display back, and that works pretty well, with a slight performance hit due to the used bandwidth for the display protocol.

2 Likes

For triple AAA titles sure. But that doesn’t take into account all of the games that were great, that didn’t get any updates or sequels because there simply was not enough revenue generated to employ everyone still.

Nah there is no excuse for piracy. There is no game so important that stealing it is warranted. It always baffles me how people so easily justify jibbing software developers without a second doubt, but would never think of getting their car repaired and just driving off before paying the bill. (not saying you do this, just a comment on the nature of piracy in general)

That’s really cool to hear. I wonder how that would work (or if it would work) on Windows?

2 Likes

What game got pirated to this extent? I’ve never heard of any game dev that got their game pirated so much they went out of business. Look at KSP, no DRM, no protections at all, I bought it once and have the game files and could easily transplant it into another system. The population of people who don’t pay for games is miniscule, frankly. DRM was not lobbied for by small developers, it was pushed by huge studios who absolutely were not looking out for the little guy.

3 Likes

should work on Windows as well, I think it technically works better on windows as its hot pluggable, that being said getting it working on linux isn’t hard either.

1 Like

Mind posting the IOMMU groupings? Also, which CPU is your Framework equipped with?

Thanks in advance!

not at all, I got the i7 non vpro version

IOMMU Group 0:
00:00.0 Host bridge [0600]: Intel Corporation 11th Gen Core Processor Host Bridge/DRAM Registers [8086:9a14] (rev 01)
IOMMU Group 1:
00:02.0 VGA compatible controller [0300]: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] [8086:9a49] (rev 01)
IOMMU Group 2:
00:04.0 Signal processing controller [1180]: Intel Corporation TigerLake-LP Dynamic Tuning Processor Participant [8086:9a03] (rev 01)
IOMMU Group 3:
00:06.0 PCI bridge [0604]: Intel Corporation 11th Gen Core Processor PCIe Controller [8086:9a09] (rev 01)
IOMMU Group 4:
00:07.0 PCI bridge [0604]: Intel Corporation Tiger Lake-LP Thunderbolt 4 PCI Express Root Port #0 [8086:9a23] (rev 01)
IOMMU Group 5:
00:07.1 PCI bridge [0604]: Intel Corporation Tiger Lake-LP Thunderbolt 4 PCI Express Root Port #1 [8086:9a25] (rev 01)
IOMMU Group 6:
00:07.2 PCI bridge [0604]: Intel Corporation Tiger Lake-LP Thunderbolt 4 PCI Express Root Port #2 [8086:9a27] (rev 01)
IOMMU Group 7:
00:07.3 PCI bridge [0604]: Intel Corporation Tiger Lake-LP Thunderbolt 4 PCI Express Root Port #3 [8086:9a29] (rev 01)
IOMMU Group 8:
00:08.0 System peripheral [0880]: Intel Corporation GNA Scoring Accelerator module [8086:9a11] (rev 01)
IOMMU Group 9:
00:0a.0 Signal processing controller [1180]: Intel Corporation Tigerlake Telemetry Aggregator Driver [8086:9a0d] (rev 01)
IOMMU Group 10:
00:0d.0 USB controller [0c03]: Intel Corporation Tiger Lake-LP Thunderbolt 4 USB Controller [8086:9a13] (rev 01)
00:0d.2 USB controller [0c03]: Intel Corporation Tiger Lake-LP Thunderbolt 4 NHI #0 [8086:9a1b] (rev 01)
00:0d.3 USB controller [0c03]: Intel Corporation Tiger Lake-LP Thunderbolt 4 NHI #1 [8086:9a1d] (rev 01)
IOMMU Group 11:
00:12.0 Serial controller [0700]: Intel Corporation Tiger Lake-LP Integrated Sensor Hub [8086:a0fc] (rev 20)
IOMMU Group 12:
00:14.0 USB controller [0c03]: Intel Corporation Tiger Lake-LP USB 3.2 Gen 2x1 xHCI Host Controller [8086:a0ed] (rev 20)
00:14.2 RAM memory [0500]: Intel Corporation Tiger Lake-LP Shared SRAM [8086:a0ef] (rev 20)
IOMMU Group 13:
00:15.0 Serial bus controller [0c80]: Intel Corporation Tiger Lake-LP Serial IO I2C Controller #0 [8086:a0e8] (rev 20)
00:15.1 Serial bus controller [0c80]: Intel Corporation Tiger Lake-LP Serial IO I2C Controller #1 [8086:a0e9] (rev 20)
00:15.3 Serial bus controller [0c80]: Intel Corporation Tiger Lake-LP Serial IO I2C Controller #3 [8086:a0eb] (rev 20)
IOMMU Group 14:
00:16.0 Communication controller [0780]: Intel Corporation Tiger Lake-LP Management Engine Interface [8086:a0e0] (rev 20)
IOMMU Group 15:
00:1d.0 PCI bridge [0604]: Intel Corporation Device [8086:a0b1] (rev 20)
IOMMU Group 16:
00:1f.0 ISA bridge [0601]: Intel Corporation Tiger Lake-LP LPC Controller [8086:a082] (rev 20)
00:1f.3 Audio device [0403]: Intel Corporation Tiger Lake-LP Smart Sound Technology Audio Controller [8086:a0c8] (rev 20)
00:1f.4 SMBus [0c05]: Intel Corporation Tiger Lake-LP SMBus Controller [8086:a0a3] (rev 20)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Tiger Lake-LP SPI Controller [8086:a0a4] (rev 20)
IOMMU Group 17:
01:00.0 Non-Volatile memory controller [0108]: Intel Corporation SSD 660P Series [8086:f1a8] (rev 03)
IOMMU Group 18:
aa:00.0 Network controller [0280]: Intel Corporation Wi-Fi 6 AX210/AX211/AX411 160MHz [8086:2725] (rev 1a)
IOMMU Group 19:
80:00.0 PCI bridge [0604]: Intel Corporation JHL6340 Thunderbolt 3 Bridge (C step) [Alpine Ridge 2C 2016] [8086:15da] (rev 02)
IOMMU Group 20:
81:01.0 PCI bridge [0604]: Intel Corporation JHL6340 Thunderbolt 3 Bridge (C step) [Alpine Ridge 2C 2016] [8086:15da] (rev 02)
82:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] [10de:1b06] (rev a1)
82:00.1 Audio device [0403]: NVIDIA Corporation GP102 HDMI Audio Controller [10de:10ef] (rev a1)

2 Likes

Oh I would love to use alternate software but I need Adobe for my job. Still promising VFIO performance though

1 Like

I’m sure an eGPU passthrough on a Windows VM would work well with Adobe.