PRIME & eGPU
First, a report of a working configuration - took absolutely zero configuration at my end at all. Just plug it in, and it works:
System: Tuxedo InfinityBook 13 (a rebadged Clevo N131WU) (i5 8250, 16GB RAM)
eGPU enclosure: Razer Core X
eGPU graphics card: Radeon 7870 2GB
The only idiosyncracy I'm not exceptionally thrilled with is that it seems to create a single framebuffer on the Intel GPU for rendering the desktop, so I lose a PCIe lane for pass-back to the internal GPU for rendering, then a second if I have an external display plugged into the eGPU. That said, if I have my external 2560x1080 display plugged into the DP on the laptop itself, I'm getting 30fps in the Heaven benchmark (score ~800), so I really can't complain for a card that's almost a decade old - the Intel GPU only manages 10fps (score 200). This will doubtless improve when I have the money to buy a more recent card.
Now, that said, on to the meat of the problem I have. I'm having to use PRIME to handle GPU offloading, which is not the ideal outcome. I can launch *most* games/etc. by prepending DRI_PRIME=1 to the run command, and frame rates are enormously improved. This is livable, but given the choice the *real* solution would be for me to be able to plug my external monitor into the egpu, and for it to just use the external graphics card for anything rendered on that display without passing back. If folks can help me get that working, I'd be thrilled. For what it's worth, I'm using Gnome Shell w/ xorg and open source drivers for both Intel HD 620 and the Radeon.
Failing that, there's one application that steadfastly refuses to use the radeon graphics for rendering - vmware player. My google-fu is lacking. I have tried prepending DRI_PRIME=1, but it doesn't seem to pass that to the vm - on a Windows 10 guest (for those handful of games I can't run on Linux), I get no difference in framerates with Heaven, regardless of whether I have the eGPU enclosure connected or not.
You should try using the script from this thread or a similar method of setting the eGPU as the primary graphics card in the x config. This should improve performance when you connect the external display directly to the eGPU and should ensure all apps are accelerated.
What I ended up doing was adding "export DRI_PRIME=1" to my ~/.profile, if anybody's looking at this later.
Totally optional. And 3d performance in virtual machines is still pretty terrible. But it does work quite well for everything else, and is a harmless setting when there's no eGPU connected. The only thing is, if your eGPU setup is unstable, a Thunderbolt crash will bring down your whole desktop, so it's probably not the smartest way to handle for everybody. 🙂