Suddenly no display on external monitors. Optimus laptop (set to dedicated only). Wayland KDE Fedora 43

Lenovo X1 Extreme Gen 2
Fedora 43, KDE Spin
nvidia GTX 1650 Max Q
Intel Core i7 9750H
64GB Ram
KDE Plasma Version: 6.5.5
KDE Frameworks Version: 6.22.0
Kernel Version: 6.18.8-200.fc43.x86_64 (64-bit)
Graphics Platform: Wayland
nvidia driver version: 580.119.02

When external monitors are plugged in, the desktop slows to to a crawl (A UI update every second or so), but never display. Journal is filled with messages like:

Feb 07 18:00:34 nburgin-x1e2 kwin_wayland[2070]: Pageflip timed out! This is a bug in the nvidia-drm kernel driver
Feb 07 18:00:34 nburgin-x1e2 kwin_wayland[2070]: Please report this at https://forums.developer.nvidia.com/c/gpu-graphics/linux
Feb 07 18:00:34 nburgin-x1e2 kwin_wayland[2070]: With the output of 'sudo dmesg' and 'journalctl --user-unit plasma-kwin_wayland --boot 0'
Feb 07 18:00:34 nburgin-x1e2 kwin_wayland[2070]: Pageflip arrived after all, 1100ms after the commit

Sometimes (at least once, anyway), the performance picks up again with the external monitors still plugged in. Unplugging the monitors always resolves the performance issue.

The monitors are a pair of Dell U2715Hs. They are in a Displayport daisy chain setup, plugged into one of the laptops USB-C ports (doesn’t matter which one, behaviour is the same).

This setup was working a few days ago (and continues to work fine on my work laptop - which is intel integrated only). I suspect either a kernel update or a driver update borked it (I didn’t update anything explicitly, but did install wine). I might attempt running a previous version of both the kernel and nvidia driver later, but I’ve already spent enough time on this issue instead of getting anything productive done for now.

I have since tried the following:

  • Full system update
  • Completely re-installing nvidia drivers (via rpmfusion)
  • Clearing out the kwin configuration
  • Following the nvidia guides on RPMFusion and ArchWiki
  • Disabling GSP firmware through modprobe.d (options nvidia NVreg_EnableGpuFirmware=0)
  • Forcing early loading of the drivers through dracut (force_drivers+=" nvidia nvidia_modeset nvidia_uvm nvidia_drm ")

From what I can tell, this laptop has the external monitor ports wired to the nvidia GPU directly (no mux).

I currently have the BIOS set to dedicated GPU only, if I attempt to enable hybrid (which I would prefer for improved battery life), I get blank internal screen after logging in. This has always been the case with Fedora + KDE + Wayland. I will raise this as a separate issue, as I assume this is unrelated to this specific issue, but the BIOS setting I feel is worth noting for completeness here.

I think all other useful context is in the attached logs. I can add additional detail or attach other logs if helpful. nvidia bug report was taken with the monitors plugged in (otherwise they are not listed in the log).

nvidia-bug-report.log.gz (570.2 KB)

plasma-kwin_wayland.log (21.8 KB)

dmesg.log (102.5 KB)

Much to my pleasant surprise, updating the kernel to 6.18.9-200.fc43.x86_64 resolved the issue. All other versions remain the same.

@nburgin

You mention that you have problems with hybrid mode that your internal screen is blank after login.

I currently have the BIOS set to dedicated GPU only, if I attempt to enable hybrid (which I would prefer for improved battery life), I get blank internal screen after logging in. This has always been the case with Fedora + KDE + Wayland.

I have the exact same Laptop, just the workstation variant of it (Thinkpad P1 Gen2). The only difference is the GPU, the X1 Extreme Gen2 has the GTX 1650 Max Q, the P1 Gen2 the Quadro T2000.
I have never experienced this issue with the hybrid mode set in the Bios. Could it be that the internal display is disabled in the settings?

But since you have almost the same notebook, could you please check the following:

When in hybrid mode set in the Bios, I only get a maximum of 30 FPS although 60Hz Frefreshrate is set on the external monitor. I have tested with glxgears window in Fullscreen on the external monitor. Another test is testufo.com in your browser window in fullscreen on the external monitor.

That would be awesome if you could give it a try and report back in the thread. Thank you so much!