External screen stuttering on hybrid gpu laptop

Hello, I have recently installed fedora on my dual gpu laptop and it is awesome! Unfortunately after an update (I can’t remember which one) an issue arose.
When I am working on the laptop with an external screen connected, sometimes sudden screen stuttering happens lagging the whole screen to 5 or less fps. There are multiple things I have noticed: first, the dGPU usage significantly drops during the lag spike, second, the stuttering affects only the external screen that is connected to the dGPU, the laptop screen is fine, and third, when I quickly move my mouse during the lag spike so it becomes larger, the stuttering disappears. After it shrinks to its original size, the lag continues. Also when running games on full screen offloaded to the dGPU, there is no stuttering at all and everything is running smoothly.

I have tried asking multiple AI chatbots but with no luck. One of them suggests that it is bad synchronization between the GPUs, the other one says it is because of open nvidia drivers. I have also tried disabling the laptop screen, matching the framerates on both monitors, forcing the dGPU to performance mode, but nothing helped.

My system specifications: UNTITLED - Pastebin Service

Thanks for your ideas.

What version of the Nvidia drivers do you have installed?

dnf list --installed "*nvidia*"

These are my drivers:

akmod-nvidia.x86_64                        3:580.142-1.fc43 <unknown>
kmod-nvidia-6.19.10-200.fc43.x86_64.x86_64 3:580.142-1.fc43 @commandline
kmod-nvidia-6.19.8-200.fc43.x86_64.x86_64  3:580.142-1.fc43 @commandline
kmod-nvidia-6.19.9-200.fc43.x86_64.x86_64  3:580.142-1.fc43 @commandline
libnvidia-container-tools.x86_64           1.19.0-1         <unknown>
libnvidia-container1.x86_64                1.19.0-1         <unknown>
nvidia-container-toolkit.x86_64            1.19.0-1         <unknown>
nvidia-container-toolkit-base.x86_64       1.19.0-1         <unknown>
nvidia-gpu-firmware.noarch                 20260309-1.fc43  <unknown>
nvidia-modprobe.x86_64                     3:580.142-1.fc43 <unknown>
nvidia-persistenced.x86_64                 3:580.142-1.fc43 <unknown>
nvidia-settings.x86_64                     3:580.142-1.fc43 <unknown>
xorg-x11-drv-nvidia.x86_64                 3:580.142-1.fc43 <unknown>
xorg-x11-drv-nvidia-cuda.x86_64            3:580.142-1.fc43 <unknown>
xorg-x11-drv-nvidia-cuda-libs.i686         3:580.142-1.fc43 <unknown>
xorg-x11-drv-nvidia-cuda-libs.x86_64       3:580.142-1.fc43 <unknown>
xorg-x11-drv-nvidia-kmodsrc.x86_64         3:580.142-1.fc43 <unknown>
xorg-x11-drv-nvidia-libs.i686              3:580.142-1.fc43 <unknown>
xorg-x11-drv-nvidia-libs.x86_64            3:580.142-1.fc43 <unknown>
xorg-x11-drv-nvidia-power.x86_64           3:580.142-1.fc43 <unknown>

The 580.142.1 driver has some issues - especially around external screens on laptops - and RPMFusion has rolled back to the previous version.

You should be able to go back to the previous version (580.126.18) with:

sudo dnf distro-sync --allowerasing

(Leave a few minutes before rebooting, as normal with Nvidia driver installs.)

Does that make the problem any better?

1 Like

@sn0wix pls don’t downgrade yet!
If you still have 580.142 installed could you please post output of modinfo -l nvidia and then add the line
KWIN_FORCE_SW_CURSOR=1 to the file /etc/environment and restart?

Thanks, this seems to be working :slight_smile:

Sorry, I have already done that, butI ran the command anyway:

 ~$modinfo -l nvidia
Dual MIT/GPL

no worries, I have a patch available that I would like to test.
one more thing, have you looked at the journal for errors / lines?

maybe something like journalctl -b -1 -g kwin_wayland --no-hostname --no-pager ?
-b -1 selects the journal from previous start. -b -2 selects the session before etc.

The output:

dub 04 11:32:03 sddm-helper-start-wayland[2057]: Stopping... "kwin_wayland"
dub 04 11:32:04 systemd[2307]: Starting plasma-kwin_wayland.service - KDE Wayland Compositor...
dub 04 11:32:04 systemd[2307]: Started plasma-kwin_wayland.service - KDE Wayland Compositor.
dub 04 11:43:10 rsyslogd[1806]: imjournal from <fedora:kwin_wayland>: begin to drop messages due to rate-limiting
dub 04 11:53:26 rsyslogd[1806]: imjournal from <fedora:kwin_wayland>: begin to drop messages due to rate-limiting
dub 04 12:03:36 rsyslogd[1806]: imjournal from <fedora:kwin_wayland>: begin to drop messages due to rate-limiting
dub 04 12:15:05 rsyslogd[1806]: imjournal from <fedora:kwin_wayland>: begin to drop messages due to rate-limiting
dub 04 12:23:24 rsyslogd[1806]: imjournal from <fedora:kwin_wayland>: begin to drop messages due to rate-limiting
dub 04 12:33:39 rsyslogd[1806]: imjournal from <fedora:kwin_wayland>: begin to drop messages due to rate-limiting
dub 04 12:43:31 rsyslogd[1806]: imjournal from <fedora:kwin_wayland>: begin to drop messages due to rate-limiting
dub 04 12:49:21 systemd[2307]: Stopping plasma-kwin_wayland.service - KDE Wayland Compositor...
dub 04 12:49:22 systemd[2307]: Stopped plasma-kwin_wayland.service - KDE Wayland Compositor.
dub 04 12:49:22 systemd[2307]: plasma-kwin_wayland.service: Consumed 12min 33.124s CPU time, 534.2M memory peak.

And the output of previous session:

dub 04 11:06:36 sddm-helper-start-wayland[2127]: Stopping... "kwin_wayland"
dub 04 11:06:37 systemd[2394]: Starting plasma-kwin_wayland.service - KDE Wayland Compositor...
dub 04 11:06:37 systemd[2394]: Started plasma-kwin_wayland.service - KDE Wayland Compositor.
dub 04 11:07:32 rsyslogd[1871]: imjournal from <fedora:kwin_wayland>: begin to drop messages due to rate-limiting
dub 04 11:12:14 systemd[2394]: Stopping plasma-kwin_wayland.service - KDE Wayland Compositor...
dub 04 11:12:14 systemd[2394]: Stopped plasma-kwin_wayland.service - KDE Wayland Compositor.
dub 04 11:12:14 systemd[2394]: plasma-kwin_wayland.service: Consumed 46.131s CPU time, 441.3M memory peak.
dub 04 11:12:22 sddm-helper-start-wayland[29972]: "kwin_wayland_drm: atomic commit failed: Permission denied\n"
dub 04 11:12:22 sddm-helper-start-wayland[29972]: Stopping... "kwin_wayland"
dub 04 11:12:22 sddm-helper-start-wayland[29972]: "kwin_wayland_drm: atomic commit failed: Permission denied\n"
dub 04 11:12:22 systemd[2394]: Starting plasma-kwin_wayland.service - KDE Wayland Compositor...
dub 04 11:12:22 systemd[2394]: Started plasma-kwin_wayland.service - KDE Wayland Compositor.
dub 04 11:17:24 rsyslogd[1871]: imjournal from <fedora:kwin_wayland>: begin to drop messages due to rate-limiting
dub 04 11:27:31 systemd[2394]: Stopping plasma-kwin_wayland.service - KDE Wayland Compositor...
dub 04 11:27:31 systemd[2394]: Stopped plasma-kwin_wayland.service - KDE Wayland Compositor.
dub 04 11:27:31 systemd[2394]: plasma-kwin_wayland.service: Consumed 3min 32.133s CPU time, 490.7M memory peak.

try journalctl -b <ID> -g 'egl|framebuffer|NVRM' --no-hostname --no-pager

replace <ID> with -1 , -2 , -3 etc. until you see driver version 580.142 in the NVRM line

Or journalctl -b <ID> -p err -no-hostname --no-pager (this will look for errors in general)

thank you

journalctl -b <ID> -g 'egl|framebuffer|NVRM' --no-hostname --no-pager spams dub 04 11:50:19 kwin_wayland[2716]: Invalid framebuffer status: "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT" thousands of times and the other command spams the same error too.
I also tried journalctl -b -1 -g NVRM --no-hostname --no-pager with the output:

dub 04 11:31:44 kernel: NVRM: loading NVIDIA UNIX Open Kernel Module for x86_64  580.142  Release Build  (dvs-builder@U22-I3-AD05-51-5)  Tue Mar  3 19:14:46 UTC 2026
dub 04 12:45:39 kernel: NVRM: API mismatch: the client 'nvidia-ctk' (pid 484890)
                        NVRM: has the version 580.126.18, but this kernel module has
                        NVRM: the version 580.142.  Please make sure that this
                        NVRM: kernel module and all NVIDIA driver components
                        NVRM: have the same version.
dub 04 12:45:39 kernel: NVRM: API mismatch: the client 'nvidia-ctk' (pid 484890)
                        NVRM: has the version 580.126.18, but this kernel module has
                        NVRM: the version 580.142.  Please make sure that this
                        NVRM: kernel module and all NVIDIA driver components
                        NVRM: have the same version.
dub 04 12:45:39 kernel: NVRM: API mismatch: the client 'nvidia-ctk' (pid 484890)
                        NVRM: has the version 580.126.18, but this kernel module has
                        NVRM: the version 580.142.  Please make sure that this
                        NVRM: kernel module and all NVIDIA driver components
                        NVRM: have the same version.
dub 04 12:45:39 kernel: NVRM: API mismatch: the client 'nvidia-ctk' (pid 484890)
                        NVRM: has the version 580.126.18, but this kernel module has
                        NVRM: the version 580.142.  Please make sure that this
                        NVRM: kernel module and all NVIDIA driver components
                        NVRM: have the same version.

1 Like

That one is normal after a driver update when you’re using the nvidia-container-toolkit.

After updating drivers and rebooting, you run:

sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml

Hi, I have a very similar issue and wanted to share my experience in case it helps.

I installed linux 2 days ago coming from windows and iam running Fedora 43 with GNOME/Wayland on a hybrid laptop (Intel integrated + NVIDIA RTX 5060). On the laptop screen everything is perfectly smooth, but when I connect an external monitor I get occasional stuttering in animations and general desktop use. Apps like Zed IDE run perfectly on the laptop screen but lag noticeably when moved to the external monitor.

My driver version is 580.126.18 (so the older/stable one, not the problematic 580.142), and nvidia_drm.modeset=1 is already enabled.

I’ve tried adding these to /etc/environment:

MUTTER_DEBUG_KMS_THREAD_TYPE=user __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only

I saw that @anotheruser suggested KWIN_FORCE_SW_CURSOR=1 for KDE — is there an equivalent fix for GNOME/Mutter, or does anyone know of other workarounds? The MUTTER_DEBUG_KMS_THREAD_TYPE=user variable seems to help somewhat but I’m not sure the issue is fully resolved.

nvidia-smi output:


Driver Version: 580.126.18 CUDA Version: 13.0 NVIDIA GeForce RTX 5060, 218MiB / 8151MiB, gnome-shell using 66MiB

Any suggestions would be appreciated. Thanks!

The modeset parameter is usually not required, and does not get enabled by default when installing the nvidia drivers from rpmfusion. It may or may not affect the current issue but probably should be removed.

When posting command output please always post the complete output.
That line is a very brief summary and does not provide all the information from the command.

The output of nvidia-smi should look something like this.

$ nvidia-smi
Sun Apr  5 20:08:33 2026       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.126.18             Driver Version: 580.126.18     CUDA Version: 13.0     |
+-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 3050        Off |   00000000:06:00.0  On |                  N/A |
|  0%   42C    P8              9W /  130W |     862MiB /   8192MiB |      2%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A            4475      G   ...c/gnome-remote-desktop-daemon          1MiB |
|    0   N/A  N/A            4542      G   /usr/bin/gnome-shell                    210MiB |
|    0   N/A  N/A            4667      G   /usr/bin/Xwayland                         3MiB |
|    0   N/A  N/A            4852    C+G   /usr/bin/ptyxis                          28MiB |
|    0   N/A  N/A            4905    C+G   /usr/bin/gnome-software                  28MiB |
|    0   N/A  N/A            9002      G   ...rack-uuid=3190708988185955192        370MiB |
+-----------------------------------------------------------------------------------------+