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:
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…
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.
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!
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
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.
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)
I rock almost the exact same hardware setup (Nvidia RTX 3060 Ti, Razer Core X), but all of that on arch linux, using nvidia-prime, nvidia-settings, nvidia-utils and the closed 550 drivers.
I am running into odd behavior that on boot (I use systemd-boot), particularly that the eGPU appears to not be there on boot (?).
Error message is ucsi_acpi GET_CABLE_PROPERTY failed (-5).
When I try to boot with the eGPU as the primary GPU after having set everything up with all-ways-egpu I get something along the lines of ucsi_acpi ACK_FAILED (-110) . When I, on a running system, just try to reboot mutter that behavior is similar. Did you see similar behavior?