Gaming with an eGPU? Is it Worth it?
It was on Reddit (/r/linux_gaming) last month for a couple of days, so you may have missed it, but Man_With_Arrow did some tests on his eGPU setup and published them for everyone to see.
This may be a new term for some of you: eGPUs stand for external GPUs. Typically your business laptop is far too feeble to handle any graphics intensive game or application, and one of the solutions to deal with this is to link your laptop to an external GPU card, itself connected to a separate screen via their video out. There are several caveats in such setups, but since it’s rare enough and benchmarks (on Linux) are difficult to find, it’s an interesting topic to explore and document. Note that all the test results, testing and pictures shared below were produced by Man_With_Arrow. He has agreed to let me publish them to raise the general awareness of this topic. I hope you will find it as helpful as I did, and I am very grateful for his work on this matter.
The great thing that Man_With_Arrow did was to actually test in almost a single variable environment the difference of performance between the same GPU card used on his laptop vs his desktop. You can see below the two machines involved in this setup:
Laptop | Desktop | |
CPU | **i5-3230M (2 cores) at 3.2 Ghz ** | **Ryzen 7 1700 (8 cores) at 3.8 Ghz ** |
MB | **Lenovo X230 MB** | **Gigabyte AB350 Gaming 3** |
RAM | **12GB** | **16GB** |
GPU | Sapphire AMD Radeon 4GB R9 Fury Nitro | Sapphire AMD Radeon 4GB R9 Fury Nitro |
PCI | **ExpressCard 2 to PCIe** | **PCIe 3.0** |
Gbps | **4 Gbps** | **126 Gbps (16 lanes)** |
SSD | 500 GB Samsung SSD 850 | 500 GB Samsung SSD 850 |
OS | Manjaro 4.19.6-1 | Manjaro 4.19.8-2 |
Env | KDE Plasma 5.14.4 | KDE Plasma 5.14.4 |
X | X Server 1.20.3 | X Server 1.20.3 |
GL | Mesa 18.2.6 | Mesa 18.2.6 |
In case you were wondering what kind of alchemy is involved to get an eGPU setup to work nowadays on Linux, it’s apparently as simple at that:
- Buy eGPU bridge and power supply. Make sure you have a compatible interface (Expresscard, M.2, Thunderbolt, etc.) for your laptop.
- Turn off laptop. Connect eGPU to laptop, and power supply to eGPU (make sure PSU is also off).
- Flick on PSU switch; turn on laptop.Man_With_Arrow
Even I who has been following the topic of eGPU from time to time, expected more steps involved in getting this to work. Apparently not, and modern distros are making it a walk in the park.
This setup has been tested with the following games:
- Bioshock Infinite
- Counter Strike GO
- Metro: Last Light
- Tomb Raider
Let’s jump directly at the results (generated with the Phoronix test suite). Note that each game was tested at two different resolutions, but it doesn’t change much as you will see.
Of course, one should have had no expectations that the results would be similar between the 2 setups. Yet, I find them extremely impressive nonetheless!
First, the meager **i5 from the X230 laptop **is no match in single thread performance compared to the more recent Ryzen 7 1700. It is hard to find proper benchmarks comparing one versus the other but it looks like there may be about 50% of single thread performance for the i5 compared to the Ryzen, which is what matters most for games.
Second, the PCI-e interface is another kick in the butt. Even if the CPU could manage certain games fine, the transfer speeds between the motherboard and the eGPU are limited to 4Gbps, which causes substantial performance drops. Since the 4Gbps ExpressCard 2.0 interface is equivalent to a PCI-e 2.0 with 4 lanes (4Gbps), prior articles on the subject show that this should incur around 10 to 15% drop in terms of framerate compared to PCI 3.0 at 16 lanes.
So, the major contributor in the drop of performance here is clearly the CPU. Unfortunately, CPU single thread performance on laptops has pretty much plateaued for the past 5-6 years (there are some modest improvements) while power consumption is down and number of cores are up. More modern laptops will have better interfaces for eGPUs (thunderbolt will basically get rid of the 15% drop of performance caused by the bandwidth limitation I mentioned earlier), but CPU bottle-necked games will be hit hard nevertheless.
I guess what really matters, beyond numbers, is if you can actually game on such a setup. And the answer is a resounding YES, even with the major loss of framerate - the aforementioned games would run at least at 30fps constantly or 60fps if you were to downgrade graphics quality a little.
So it is a reasonable setup to consider - it’s probably cheaper than building a full fledged desktop, and may get you about half way there in performance. Now, there are numerous options on the market to consider, such as laptops with discrete GPU chips (expensive and so far hardware support on Linux has been adventurous to say the least - maybe AMD will lead the change there), or a used desktop on which you add a brand new GPU (my choice with the Xeon I purchased last year), or gaming thru streaming with a very fast broadband connection and a subscription to some of the available services in your area.
I would think this is a pretty good setup if you have a “free” GPU card lying around, and want to make use of it without investing in a desktop.
At least, you should now have some data to make an educated judgment on how well eGPUs will perform on Linux.
Many thanks again to Man_With_Arrow! Feel free to contact him to get more information!