Bug 521668 - kwin_wayland SIGSEGV when DisplayLink display is connected
Summary: kwin_wayland SIGSEGV when DisplayLink display is connected
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (other bugs)
Version First Reported In: 6.7.0
Platform: Fedora RPMs Linux
: HI crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-06-18 18:57 UTC by Apicultor
Modified: 2026-07-09 08:11 UTC (History)
12 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In: 6.7.1
Sentry Crash Report:


Attachments
Backtrace (119.95 KB, text/plain)
2026-06-18 19:00 UTC, Apicultor
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Apicultor 2026-06-18 18:57:38 UTC
DESCRIPTION
kwin on 6.7 crashes when a DisplayLink display is connected. It keeps crashing on relaunch as long as the display stays connected, and stops crashing as soon as the display is unplugged.

Updating from fedora-44-displaylink-1.14.15-1.github_evdi.x86_64.rpm to fedora-44-displaylink-1.14.16-1.github_evdi.x86_64.rpm made no difference.

STEPS TO REPRODUCE
1. Update Plasma from 6.6 to 6.7 on Fedora
2. Attach DisplayLink display
3. Crash
4. ???
5. Profit!

OBSERVED RESULT
Crash

EXPECTED RESULT
Normal operation

SOFTWARE/OS VERSIONS
Operating System (available in the Info Center app, or by running `kinfo` in a terminal window): Fedora 44, kernel 7.0.12-201.fc44.x86_64
KDE Plasma Version: 6.7.0
KDE Frameworks Version: 6.27.0
Qt Version: 6.11.1

ADDITIONAL INFORMATION
Dropping back to Plasma 6.6 via `sudo dnf downgrade plasma-desktop`, followed by a reboot, returned the box to working condition.

Bug 520361 may be related.
Comment 1 Apicultor 2026-06-18 19:00:06 UTC
Created attachment 193313 [details]
Backtrace
Comment 2 Attacktive 2026-06-19 03:26:29 UTC
Also hitting the similar issue on Plasma 6.7.0 (Arch Linux, kernel 7.0.12-arch1-1).
In my case the dominant symptom is persistent flicker on the DisplayLink outputs rather than a hard crash, which I think points at the same multi-GPU copy path.

Setup:
- Primary render GPU: Intel (xe), driving one native DisplayPort monitor (2560x1600@144) -- this output is never affected.
- Two external DVI monitors via a DisplayLink dock = evdi 1.14.16 virtual devices (secondary GPU). The evdi outputs run ABGR8888.
- kwin_wayland 6.7.0, Wayland session.

Symptoms: persistent flicker on the two DisplayLink outputs, plus a single kwin_wayland SIGSEGV inside libgallium (Mesa) at session startup that self-recovered.
Downgrading the whole Plasma stack to 6.6.5 (keeping KF 6.27 + Qt 6.11.1) fully fixes both the flicker and the crash.

Env-var test matrix (with the usual DisplayLink workarounds already set: KWIN_DRM_DISABLE_TRIPLE_BUFFERING=1, KWIN_DRM_USE_MODIFIERS=0, KWIN_DRM_NO_DIRECT_SCANOUT=1, KWIN_FORCE_SW_CURSOR=1, and KWIN_DRM_DEVICES pinned Intel-first):
- KWIN_DRM_FORCE_GL_FINISH_MGPU_COPY=1: flicker disappears completely, BUT the per-frame glFinish stalls the shared render loop and drags the ENTIRE desktop -- including the native 144Hz Intel monitor -- down to ~30fps.
- KWIN_DRM_NO_AMS=1 (and plain atomic without the glFinish): smooth/full refresh, but the flicker returns.
- Dropping the DisplayLink outputs from 75Hz to 60Hz: no effect on the flicker.

The fact that only a full pipeline drain (glFinish) immediately before the cross-GPU copy eliminates the tearing suggests the new GPU-based multi-GPU copy path from !9236 ("backends/drm: don't use a software renderer for multi GPU copies", commit 0d6b757c, bug 520361) is letting the secondary/DisplayLink GPU scan out before the copy has completed -- i.e. a missing fence/sync between the copy and the secondary-GPU presentation. That change fixed the 520361 crash but looks like it traded it for a frame-sync regression on the DisplayLink scanout.
Comment 3 24raus 2026-06-19 07:45:19 UTC
with display link dock already attached during boot, the system does not reach the login screen.
Comment 4 Chrystal M. 2026-06-19 21:28:52 UTC
Date: 2026-06-18 / 2026-06-19

System: Arch Linux, kernel 7.0.12-arch1-1, KDE Plasma (Wayland), AMD GPU (amdgpu), Dell D6000 USB dock (DisplayLink, USB VID 17e9), displaylink 
6.2-1, evdi-dkms 1.14.15-1

---

Symptom

Following a routine system update that brought in KWin 6.7.0-1, the Dell D6000 dock became non-functional under Plasma Wayland. At login, kwin_wayland entered a crash loop: 10+ restarts over approximately 28 seconds, each terminated by a SIGSEGV in the llvmpipe-3 thread (segfault at c30). Once the crash loop subsided, the dock monitors displayed the SDDM login screen rather than the Plasma desktop. kscreen-doctor -o showed only the internal display (eDP-1); the dock outputs were absent.

---

Diagnosis

Journal analysis (journalctl -b) confirmed repeated kwin_wayland exits with signal 11, followed by SDDM spawning a new Xorg process (/usr/bin/Xorg :1 -seat seat0 vt2) on each restart. By the time KWin stopped crashing, SDDM's Xorg held DRM master on the evdi devices, so KWin could no longer open them — hence the dock showing the SDDM session instead of Plasma.

Root cause: KWin 6.7.0 GpuManager regression

KWin 6.7.0 introduced a new GpuManager class (src/core/gpumanager.cpp) that separates GPU roles into "render devices" (cards with renderD* DRM nodes) and "display devices" (KMS/DRM outputs). When pairing a display device with a render device, GpuManager::findCompatibleRenderDevice() searches for a render device on the same bus.

evdi (the DisplayLink kernel module) is a DRM_BUS_PLATFORM device and has no renderD* node. The AMD GPU is DRM_BUS_PCI. Because no platform-bus render device exists to pair with evdi, findCompatibleRenderDevice() returns nullptr. This causes the evdi DrmGpu's renderDevice() to be null, which triggers KWin to fall back to software rendering via llvmpipe for the DisplayLink outputs. llvmpipe then crashes during pipeline initialization for those outputs.

KWin 6.6.x does not have GpuManager; the regression is entirely contained within 6.7.0.

What was ruled out:

- options evdi initial_device_count=4 in /etc/modprobe.d/evdi.conf — ensures evdi DRM nodes exist at boot but does not fix the null render device pairing; crash persisted. - SDDM/kwayland configuration — the SDDM-on-dock-displays symptom was a secondary consequence of the crash loop, not an independent cause.

---

Fix

Downgraded kwin from 6.7.0-1 to 6.6.5-4 using the Arch Linux package archive:

`sudo pacman -U https://archive.archlinux.org/packages/k/kwin/kwin-6.6.5-4-x86_64.pkg.tar.zst`

Only kwin itself required downgrading. KWin 6.6.5 links against libkdecorations3.so.6 and libKF6*.so.6 sonames that are unchanged in the 6.7.x Plasma packages, so the rest of the Plasma suite remained at 6.7.x without ABI conflict.

To prevent the package manager from silently re-upgrading kwin on the next pacman -Syu, kwin was added to IgnorePkg in /etc/pacman.conf:

IgnorePkg = kwin

After relog, kwin_wayland --version confirmed 6.6.5. All dock displays came up correctly under Plasma Wayland.

---

Resolution

System is stable with kwin 6.6.5-4 pinned. The upstream bug is tracked as KDE Bugzilla #521668 ("kwin_wayland SIGSEGV when DisplayLink display is connected"). IgnorePkg should be cleared and kwin upgraded once that bug is resolved in a future release.
Comment 5 Noah Davis 2026-06-20 04:22:20 UTC
Hi, I'm the guy who made the other bug report that was marked as fixed (https://bugs.kde.org/show_bug.cgi?id=520361). It was fixed for me back then, but I can confirm that the problem came back. When I turn on my display link dock, KWin crashes repeatedly. I will try to get another KWin GDB backtrace by SSHing into my computer again.
Comment 6 matthijsbulsink@hotmail.com 2026-06-20 10:37:32 UTC
*** Bug 520361 has been marked as a duplicate of this bug. ***
Comment 7 Mykola Krachkovsky 2026-06-20 20:21:19 UTC Comment hidden (spam)
Comment 8 TraceyC 2026-06-20 23:36:13 UTC
(In reply to Mykola Krachkovsky from comment #7)
> I have similar problem with SDDM in Wayland mode

Your backtrace is different than the one from the original reporter, so you have a different crash. Yours looks like the one in bug 521898, which you can cc yourself on.
Comment 9 Noah Davis 2026-06-21 02:01:55 UTC
(In reply to matthijsbulsink@hotmail.com from comment #6)
> *** Bug 520361 has been marked as a duplicate of this bug. ***

I don't think it's correct to mark my bug as a duplicate because mine was actually fixed before. This is a new bug.
Comment 10 Bug Janitor Service 2026-06-21 17:36:50 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/9441
Comment 11 Zamundaaa 2026-06-22 14:06:52 UTC
Git commit 8ed0ac9f0f392cb092bebec0ce715ed98a7644a7 by Xaver Hugl.
Committed on 22/06/2026 at 12:37.
Pushed by zamundaaa into branch 'master'.

opengl/egldisplay: fix the check for EGL_EXT_device_query

It's a client extension, not a display extension, so it has to be queried in a
different way.

M  +2    -1    src/opengl/egldisplay.cpp
M  +1    -0    src/opengl/egldisplay.h

https://invent.kde.org/plasma/kwin/-/commit/8ed0ac9f0f392cb092bebec0ce715ed98a7644a7
Comment 12 Zamundaaa 2026-06-22 20:57:58 UTC
Git commit fa14e1d7b4f78a528336db58f76e52f94d62005a by Xaver Hugl.
Committed on 22/06/2026 at 20:36.
Pushed by zamundaaa into branch 'Plasma/6.7'.

opengl/egldisplay: fix the check for EGL_EXT_device_query

It's a client extension, not a display extension, so it has to be queried in a
different way.


(cherry picked from commit 8ed0ac9f0f392cb092bebec0ce715ed98a7644a7)

Co-authored-by: Xaver Hugl <xaver.hugl@kde.org>

M  +2    -1    src/opengl/egldisplay.cpp
M  +1    -0    src/opengl/egldisplay.h

https://invent.kde.org/plasma/kwin/-/commit/fa14e1d7b4f78a528336db58f76e52f94d62005a
Comment 13 Apicultor 2026-06-30 08:33:30 UTC
Is this confirmed as fixed in 6.7.1? It's not marked as such, but I'm seeing discussion that it has been.
Comment 14 TraceyC 2026-07-08 17:15:25 UTC
Looking at the linked commit in the bug report, tags containing this commit include 6.7.1 and 6.7.2.
Comment 15 Apicultor 2026-07-09 08:11:33 UTC
You're right! I had only the first commit open and it had a failing pipeline and no tags. I can confirm it was fixed in 6.7.1. Thank you!