[TRACKING] Linux: Poor performance of egpu driven external monitor in Fedora 37 KDE spin

In the body of your post, please include those following details.

  • Which OS (Operating System)? Fedora 37
  • Which release of your OS (Operating System)? Fedora 37 KDE spin
  • Framework laptop (11th or 12th generation Framework laptop) are you asking for support with? 12th gen
  • If this is a Linux issue, please use the Linux tag or at least put Linux in the title.

Hello all,
I have a 12th gen 1280p laptop running an external GPU through thunderbolt. It works - but the display is very laggy. Youtube is choppy when playing, the mouse cursor jumps around, but on the main laptop display everything is smooth.
My external monitor is plugged directly into the egpu card through display port

The graphics card is a RX 5700 and the enclosure is a razor chroma x egpu enclosure

I’ve uploaded a youtube video to demonstrate the issue here:

Fedora about:

Wayland settings:
posted in comment below

Here are some additional details from wayland:
Wayland Details: Wayland Details - Pastebin.com
Window Manager Details: link in comment below
Wayland Vulkan Details: link in comment below

Some anecdotal extra info is that i only experience this kind of lag on my external monitor when using the fedora 37’s kde spin. gnome worked fine.
Although I did have some kind of input lag or delay when playing wow that went away when I used pop os. There were other issues though, so i’m hoping that if we can figure out this display lag there might be other improvements in the game as well…

Thank you in advance

Window Manager Details: Window manager details - Pastebin.com
Wayland Vulkan Details: Wayland Vulkan Details - Pastebin.com
Links i was unable to post in my original post

As well as compositor settings:

I’ve looked into this before and I remember it being a current limitation of Wayland. While it can use multiple GPUs for rendering it somehow gets confused when monitors are hooked up to the non-primary GPU and drops to like 6 FPS or something like that on those outputs.

1 Like

This looks to be the right answer. though I hope fedora fixes it at some point…

I ran this:

and now the external display is buttery smooth but the internal one is laggy. that’s much more usable to me though. Thanks!

452219 – Low fps and high CPU usage on external monitor connected to NVIDIA when default GPU is Intel this looks like the relevant bug.

Interesting, good to get another view of this with AMD graphics and an external display.

I was working on a side project that has been put on hold, using a Razer Core X Chroma with a NVIDIA GeForce RTX™ 3060 Ti on Ubuntu 22.04. Now it’s not fully tested and definitely not tested with external displays. It uses libnotify, nvidia-prime, figlet, nvidia-driver-525-open, nvidia-prime and nvidia-settings to make fun things happen, well. Wayland or Xorg, works with both.

I have not tested an AMD GPU in it yet, but I have someone who is waiting to do so for me.

Some things that come to mind for your situation:

  • Test the MATE desktop. It tends to have less “stuff” going on with compositing and may provide a better experience.

  • Does this happen without the external display? Also, how is the external display connected? Connection type, adapters or hubs in use?

the laggy display only happens on the external display. it is connected by display port directly into the gpu, which is plugged into the egpu enclosure and then into the thunderbolt port on the laptop without a hub. the all-ways-egpu script seems to have effectively made this work like i want though using method 2 and 3, which is great!

1 Like

Fantastic to hear the script worked!

I’m having the same issue. It is very frustrating.
If the screen is disabled or the lid is closed it really shouldn’t be an issue.

I have see other people talk about having a switch in their BIOS when an external GPU is connected to just use that as primary. Is that an option or something similiar?

I tried using that script but since I’m on silverblue, it can’t put files where it needs.

So, this is an ongoing thing with kwin and how it’s managing the buffers between the screens and cards, even on F39 - hoping that plasma 6.0 makes this a little better. I’m using an eGPU with an AMD card and it’s been not amazing so far.

At the moment, the least painful ways around this are:

  • Use xorg and the offload provider method - you’ll need to set a pre-X script in SDDM for it to work - see Arch wiki - this works pretty well unless you want scaling on the internal screen
  • Use Wayland, have your displays connected to the FW and not the eGPU (I use a Dell dock for this) and use PRIME offload as usual - you’ll lose some performance on the card but you’ll have less problems with dodgy screens
  • Use Wayland, and set a script in /etc/profile.d to re-order your preferred GPUs using KWIN_DRM_DEVICES (see this reddit post) - you’ll need the eGPU plugged in before logging in (you can hotplug, log out and log back in) and turn off all displays not connected to the eGPU - I use switcherooctl to print the PCI paths of the eGPU in each port and use an if statement to set up the variable if the DRM device exists - note that some XWayland apps will lag out and not go above 30fps, so gamescope is your friend

Happy to help you get to any of these and troubleshoot, I’ve been deep down the rabbit hole.

Do you mean kinoite instead of silver blue? In that case what you might find success in is to rebase to rawhide, the development branch, until 40 is released as it will let you use plasma 6 rc2 currently and that has the fix

No I mean Silver Blue. That is the distro I use.

Ah well I’m not sure what the issue is then, since silver blue uses gnome and this was a kde only bug. Maybe you’ve got something else going on

Yeah I know. There are people in there saying they are having the same issues in Gnome though. I am in Gnome and have the exact same issues as in the video. Using an AMD RX 7900 XTX in a Razer Core Chroma. Makes me feel like the issue is something bigger.

It’s really frustrating though and I haven’t found any solutions thus far so I’m willing to look anywhere. :wink:

I’ve seen a handful of people posting the same thing about AMD in an eGPU recently.

So its not just me, I am also experiencing a similar issue when I run my 6800xt eGPU on my kinoite silverblue install. I rebased to kinoite when I ran into an issue with my second monitor just randomly shutting off. I also decided to switch from windows due to TERRIBLE performance with the eGPU (for example starcraft 2, a 13 year old game, getting 30fps medium with eGPU and 200 fps high on the iGPU)