https://bugs.kde.org/show_bug.cgi?id=521161
Bug ID: 521161
Summary: Bug: Multi-GPU KWin Wayland Hard Freeze / Coredump on
Cursor Border Crossing (NVIDIA 580.x Drivers / Kernel
7.0 / Intel + Pascal Quadro PRIME)
Classification: Plasma
Product: kwin
Version First 6.6.4
Reported In:
Platform: Kubuntu
OS: Linux
Status: REPORTED
Severity: critical
Priority: NOR
Component: multi-screen
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
DESCRIPTION
A catastrophic user-space freeze / KWin coredump occurs on an asymmetric
multi-GPU laptop/mobile workstation configuration the exact millisecond the
hardware mouse cursor approaches or crosses the screen boundary onto an
external monitor.
First note that on Kubuntu Impish Indie with 470 drivers it worked perfectly, 3
external monitors connected via different ways (HDMI / DisplayPort on dock or
USB-C to HDMI or all on dock, all configurations successful) with no cursor
freeze, everything worked correctly.
It is the upgrade to 580 drivers on (K)Ubuntu 26.04 LTS that caused the
problem.
STEPS TO REPRODUCE
1. Get a laptop/mobile workstation with Intel iGPU (eg. UHD P630) and NVIDIA
dGPU (eg. Quadro P1000) on Kubuntu 26.04 LTS with Wayland session,
2. Set everything for both GPUs to be active, with Intel driving the laptop
display and NVIDIA driving ALL external displays,
3. Connect an external screen in any way (connector doesn't matter as long as
the display will be driven by NVIDIA),
4. Move your mouse pointer to the screen edge to experience system freeze
(recoverable to SDDM if you're lucky).
OBSERVED RESULT
Correct attachment of external displays and correct desktop expansion, but
critical freeze when moving the cursor over any of the external displays (even
just 1 connected).
EXPECTED RESULT
The cursor should move to external screen smoothly without a system crash, just
like on previous Kubuntu/Ubuntu versions with Wayland.
SOFTWARE/OS VERSIONS
Operating System (available in the Info Center app, or by running `kinfo` in a
terminal window):
KDE Plasma Version: 6.6.4
KDE Frameworks Version: 6.24.0
Qt Version: 6.10.2
Kernel version: 7.0.0-22-generic (62-bit), but same is true for 7.0.0-15 and
6.8 kernels
Graphics Platform: Wayland
ADDITIONAL INFORMATION
Hardware Profile:
Device: HP ZBook Studio x360 G5 Mobile Workstation with Xeon E-2186M
Integrated GPU: Intel UHD Graphics P630 (Drives internal 4K Panel, 200% Scale,
10-bit color profile). Scaling and color profile doesn’t matter, I tested with
matching external monitors scale, 8-bits and exact refresh rate,
Discrete GPU: NVIDIA Corporation GP107GLM [Quadro P1000 Mobile] (Drives
external outputs directly via HDMI/Thunderbolt ports, 1080p, 100% Scale or
other, doesn’t matter) 4GB VRAM
Memory: 64 GB RAM ECC
Software Profile:
OS: Kubuntu 26.04 LTS (Resolute)
Display Server: Pure Wayland Session (Plasma 6.6.4 / KWin)
Kernel: Linux 7.0.0-22-generic (And verified identically on Linux
6.8.0-111-generic and 7.0.0-15-generic)
NVIDIA Driver: Proprietary 580.159.03 (PRIME On-Demand Profile active), also
tested other 580 versions with no luck
SYMPTOMPS:
Booting, login (SDDM), and standard desktop rendering work perfectly fine
across multiple monitors.
Offloading heavy applications (Photoshop via Wine, local AI models via Ollama)
to the Quadro card works flawlessly while keeping the desktop fluid.
Moving windows across display boundaries works properly as long as the mouse
pointer stays clear of the edge.
Moving the mouse pointer close to or over the edge margin results in an
instant, unrecoverable freeze of the user session, crashing out (possible
revert back to the SDDM greeter screen with keyboard combination, but only to
soft restart, as logging in again results in unrecoverable freeze)
Diagnostic Attempts and Proof:
Setting KWIN_FORCE_SW_CURSOR=1 inside /etc/environment completely prevents the
crash, but severely throttles the 4K composite performance, making the UI
unusable. Hence it is not an acceptable solution, the performance hit is huge.
Setting NoHardwareCursors=true inside [Wayland] section of kwinrc fails to
catch the boundary transition, resulting in the same crash.
Enabling KWin’s GPU view update debugging tools reveals no other software hooks
to mouse events, it’s clean.
Setting the SDDM login screen to run over an X11 backend allows the mouse to
cross displays safely during login screen only, proving the physical hardware
links are fine. The freeze triggers purely upon logging back into the KWin
Wayland user environment.
Obviously, nvidia_drm.modeset=1 and nvidia_drm.fbdev=1 , tried as modprobe conf
and directly in GRUB params, no difference there. Tried multiple other flags
and options, no luck. Only X11 or Wayland with KWIN_FORCE_SW_CURSOR=1 work.
Relevant Concurrent Journald Crash Traces:kwin_scene_opengl: 0x502:
GL_INVALID_OPERATION error generated. image and target are
incompatiblekwin_scene_opengl: Invalid framebuffer status:
“GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT”kernel NULL pointer dereference, address:
0000000000000028RIP: 0010:_nv000582kms+0x4/0x10 [nvidia_modeset]note:
kwin_wayland[5925] exited with irqs disabledsddm Auth: sddm-helper exited with
255 / coredump in libEGL_mesa.so.0 and libnvidia-egl-wayland.so.1
Please treat this seriously, I spent many days trying to debug this and solve
with all I could find over the web. My research was pristine, I didn’t miss
anything. Therefore I limited the solutions to X11 session (that’s not an
acceptable option for me, I use Wayland since 2022 with success until the 580
drivers, and also Ubuntu is moving away from Wayland) and
KWIN_FORCE_SW_CURSOR=1 (also not acceptable as it’s causing everything 10 x
slower than X11 session itself, so it’s even a worse “fix”).
Let me say again that on my setup it worked flawlessly under Kubuntu 21.x and
Wayland and 470x Nvidia drivers. Due to the Pascal architecture, I cannot use
Nvidia OPEN drivers, so my only way to upgrade is wait for Cannonical to
release newer version. But my research tells that newer drivers won’t fix that,
as apparently Nvidia isn’t focused on this bug at all.
--
You are receiving this mail because:
You are watching all bug changes.