GNOME performance plummets on monitors connected to dedicated AMD GPU when compositor/DE is set to use integrated Intel GPU
System information
- OS:
Nobara Linux 39 GNOME
(also tested Nobara Linux 39 KDE, Pop!_OS 22.04 LTS, Ubuntu 22.04 LTS) - iGPU:
00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-P GT2 [Iris Xe Graphics] [8086:46a6] (rev 0c)
- From i7 1280P. - dGPU:
7f:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev e7)
- It's an AMD RX 580. - Kernel version:
6.6.9-200.fsync.fc39.x86_64 #1 SMP PREEMPT_DYNAMIC TKG
- Mesa version:
OpenGL version string: 4.6 (Compatibility Profile) Mesa 23.3.1
- Desktop manager and compositor:
GNOME 45.2
,Mutter 45.0
Describe the issue
One thing to note, I'm filing this report using an eGPU setup, but I noticed this issue with the same GPU on a proper PC setup as well.
Running a setup with 2 monitors wired to the GPU directly.
With default GNOME settings, all things run smoothly. GLXGears reports 60 FPS same as my laptop's screen refresh rate. After I plug in the eGPU and the monitors turn on, they are both choppy showing what appears to be very low FPS and input latency. Running GLXGears again shows 55-60 FPS with GL_RENDERER = Mesa Intel(R) Graphics (ADL GT2)
. If I run GLXGears with GL_PRIME=1
, the GL_RENDERED switches to AMD RX 580, but the FPS remains at 55-60 (even though the monitor I'm running it on is 165 Hz).
Using all-ways-egpu method 2 and 3 (aka set boot_vga flag to dGPU and also set compositor variables to use dGPU) do make the problem go away, but I can't unplug the eGPU until I fully shutdown the laptop, or else the laptop freezes and I have to hard-reset. GNOME doesn't have hotplug support.
On Windows I can "eject" the GPU and unplug it with the system still working. On Linux I want to keep using the iGPU for the Desktop Environment and the eGPU for games using GL_PRIME=1
. That way I can unplug the eGPU and keep all my work open without needing a system restart.
Regression
Did it used to work? It can greatly help to know when the issue started.
No. As soon as I got my eGPU and hooked it up to the laptop, this issue was present.
Extra info
Different Linux OSes on different kernel versions presented the same problem. GNOME and KDE. What I did not try though was X11. I have scaling issues on X11 with my laptop screen. As soon as I switched to Wayland and all of my problems went away, I stayed on Wayland.