eGPU FPS Lower than iGPU in certain games

I like to use an eGPU (Razer Core X) with an RTX 3080ti to play games on occasion. One thing I’ve noticed is that in some games, Baldur’s Gate 3 and Space Marine 2 specifically, the framerate seen by the user will be significantly lower than what it would be if I had played on just the iGPU. In these cases, the CPU is not hitting 100% on either single/multicore and the GPU reports a respectable utilization (90%+ with power draw close to max). Despite these metrics however, the framerate will be seemingly capped at 30fps, when the significantly weaker iGPU is capable of higher framerates. My best guess right now is that the thunderbolt 3 bus is acting as a bottle neck, but I have not found a tool that allows me to test that theory. I do not see this issue in other games and the system behaves exactly as expected, but I do not know what they could have in common.

I’m on Linux (Arch) with Plasma 6.1.X and latest nvidia drivers with zen kernel.

Anyone have some troubleshooting ideas? I don’t believe this to be an issue with anything specific to the Framework.

You might be hitting this: KDE bug 452219.
I was getting something similar on AMD ages ago - the fix for me was setting KWIN_DRM_DEVICES before logging in and using only the external monitor, via a script:

# /etc/profile.d/kde-drm.sh
if [ -e "/dev/dri/by-path/pci-0000:07:00.0-card" ]; then
  export KWIN_DRM_DEVICES="/dev/dri/by-path/pci-0000\:07\:00.0-card:/dev/dri/by-path/pci-0000\:c1\:00.0-card"
fi

if [ -e "/dev/dri/by-path/pci-0000:66:00.0-card" ]; then
  export KWIN_DRM_DEVICES="/dev/dri/by-path/pci-0000\:66\:00.0-card:/dev/dri/by-path/pci-0000\:c1\:00.0-card"
fi

(one device for each USB4 port).

Throw this in with the correct PCI paths for the NVIDIA, chmod +x it, log out and replug your eGPU, and hopefully it helps some.
Note that you’ll lose the ability to hot-plug/unplug the eGPU without logging out first.

There is no hot-plug functionality right now anyways for me, so I’ll definitely give this a shot. Thanks!

eGPU support is kinda not good on Linux unfortunately, see e.g. [Feature request] Better performance on eGPUs · Issue #3694 · doitsujin/dxvk · GitHub and linked kernel / mesa bugs.

The problem is probably lower-level than DXVK since it also shows when passing the GPU through to a VM. It’s either that the drivers have special code paths for eGPUs on Windows which are not utilized in a VM, or that something is broken in the kernel. I feel like there has to be a push for this to be investigated properly.

People report that it may be linked to Intel (see last comment on 218525 – Thunderbolt eGPU bad performance). What’s your CPU?

I have the Ryzen 7 7840HS edition.

In most games the eGPU works great :frowning:

Hm, do they work well on Windows eGPU? Some games are bottlenecked by the low memory bandwidth of TB4. I found this video of Space Marine 2 on an eGPU (https://www.youtube.com/live/sCHbiN7Qtic), and it works well for the guy in the video, but people in the comments complain about 30FPS.

Not sure, I don’t have a Windows install at the moment, but if there’s value I can get one.

Looking at this further, I’m not on intel and not connecting an external monitor, so that’s likely a different bug :frowning:

Update: It looks like the issue is not present when running Baldurs Gate 3 under a fresh Fedora install. I’ll test with Space Marine 2 when I get the chance, but it could be a software issue with my Arch install if it works.

Per the above update, this issue may be better suited for the Arch Forums so I’ve cross posted it there.

https://bbs.archlinux.org/viewtopic.php?pid=2199151#p2199151