[wayland] [kde6] [sddm] kwin_wayland crashes, blank screen, on startup with a memory alignment error in radeonsi_dri.so
System information
System:
Host: x670e Kernel: 6.8.1-zen1-1-zen arch: x86_64 bits: 64
compiler: gcc v: 13.2.1
Desktop: KDE Plasma v: 6.0.2 tk: Qt v: N/A wm: kwin_wayland dm: SDDM
Distro: Garuda base: Arch Linux
CPU:
Info: 16-core model: AMD Ryzen 9 7950X bits: 64 type: MT MCP arch: Zen 4
rev: 2 cache: L1: 1024 KiB L2: 16 MiB L3: 64 MiB
Speed (MHz): avg: 2066 high: 4937 min/max: 400/5881 cores: 1: 4932 2: 4892
3: 4927 4: 4937 5: 4929 6: 4915 7: 4933 8: 400 9: 400 10: 400 11: 400
12: 400 13: 400 14: 400 15: 4102 16: 400 17: 400 18: 400 19: 4929 20: 4848
21: 4917 22: 400 23: 4866 24: 400 25: 400 26: 400 27: 400 28: 400 29: 400
30: 400 31: 400 32: 400 bogomips: 288016
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Graphics:
Device-1: AMD Navi 31 [Radeon RX 7900 XT/7900 XTX/7900M] vendor: ASUSTeK
driver: amdgpu v: kernel arch: RDNA-3 pcie: speed: 16 GT/s lanes: 16 ports:
active: DP-1,DP-2,DP-3 empty: HDMI-A-1,Writeback-1 bus-ID: 03:00.0
chip-ID: 1002:744c
Device-2: AMD Raphael vendor: ASUSTeK driver: amdgpu v: kernel
arch: RDNA-2 pcie: speed: 16 GT/s lanes: 16 ports: active: none
empty: DP-4,DP-5,Writeback-2 bus-ID: 6e:00.0 chip-ID: 1002:164e
temp: 41.0 C
Display: wayland server: X.org v: 1.21.1.11 with: Xwayland v: 23.2.4
compositor: kwin_wayland driver: X: loaded: amdgpu
unloaded: modesetting,radeon alternate: fbdev,vesa dri: radeonsi
gpu: amdgpu,amdgpu d-rect: 9216x1728 display-ID: 0
Monitor-1: DP-1 pos: center res: 3072x1728 size: N/A
Monitor-2: DP-2 pos: right res: 3072x1728 size: N/A
Monitor-3: DP-3 pos: primary,left res: 3072x1728 size: N/A
API: EGL v: 1.5 platforms: device: 0 drv: radeonsi device: 1 drv: radeonsi
device: 2 drv: swrast gbm: drv: radeonsi surfaceless: drv: radeonsi wayland:
drv: radeonsi x11: drv: radeonsi
API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 24.0.2-arch1.2
glx-v: 1.4 direct-render: yes renderer: AMD Radeon RX 7900 XTX (radeonsi
navi31 LLVM 17.0.6 DRM 3.57 6.8.1-zen1-1-zen) device-ID: 1002:744c
display-ID: :0.0
API: Vulkan v: 1.3.279 surfaces: xcb,xlib,wayland device: 0
type: discrete-gpu driver: mesa radv device-ID: 1002:744c device: 1
type: integrated-gpu driver: mesa radv device-ID: 1002:164e device: 2
type: cpu driver: mesa llvmpipe device-ID: 10005:0000
Describe the issue
kwin_wayland crash on startup when initializing the drm backend. On a KDE6 plasma system with SDDM on wayland, the main symptom will be a completely black screen (no cursor) on startup when expecting to see the SDDM greeter. This makes the entire GUI session unusable.
From what I could get reading the stacktrace and KWin's code, the DrmBackend::addGpu function gets called to initialize the GPU and fails to load the radeonsi_dri.so driver.
Regression
Present in 24.0.4-1, 24.0.5-1, and maybe others
No issue in 24.0.3-1
Workaround: downgrade
Log files as attachment
journalctl output (short enough to be included here)
systemd-coredump[253316]: [🡕] Process 253312 (kwin_wayland) of user 1000 dumped>
Stack trace of thread 253312:
#0 0x000079010afeb9c0 n/a (radeonsi_dri.so + 0x13eb9>
#1 0x000079010a908a25 n/a (radeonsi_dri.so + 0xd08a2>
#11 0x000079011a5c4897 _ZN4KWin10DrmBackend6addGpuERK7QString (libkwin.so.6 + 0x3c4897)
#11 0x000079011a5c4897 _ZN4KWin10DrmBackend6addGpuERK7QString (libkwin.so.6 + 0x3c4897)
#11 0x000079011a5c4897 _ZN4KWin10DrmBackend6addGpuERK7QString (libkwin.so.6 + 0x3c4897)
#11 0x000079011a5c4897 _ZN4KWin10DrmBackend6addGpuERK7QString (libkwin.so.6 + 0x3c4897)
#11 0x000079011a5c4897 _ZN4KWin10DrmBackend6addGpuERK7QString (libkwin.so.6 + 0x3c4897)
#11 0x000079011a5c4897 _ZN4KWin10DrmBackend6addGpuERK7QString (libkwin.so.6 + 0x3c4897)
#11 0x000079011a5c4897 _ZN4KWin10DrmBackend6addGpuERK7QString (libkwin.so.6 + 0x3c4897)
#12 0x000079011a5c504a _ZN4KWin10DrmBackend10initializeEv (libkwin.so.6 + 0x3c504a)
#13 0x000056b33c5c6a7e n/a (kwin_wayland + 0x4ba7e)
#14 0x000056b33c5b7de8 n/a (kwin_wayland + 0x3cde8)
#15 0x0000790117643cd0 n/a (libc.so.6 + 0x25cd0)
#16 0x0000790117643d8a __libc_start_main (libc.so.6 + 0x25d8a)
#17 0x000056b33c5be425 n/a (kwin_wayland + 0x43425)
Stack trace of thread 253313:
#0 0x00007901177190bf __poll (libc.so.6 + 0xfb0bf)
#1 0x00007901168fa2f6 n/a (libglib-2.0.so.0 + 0xb82f6)
#2 0x000079011689a162 g_main_context_iteration (libglib-2.0.so.0 + 0x58162)
#3 0x0000790117f739c4 _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt6Core.so.6 + 0x3739c4)
#4 0x0000790117d43d6e _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt6Core.so.6 + 0x143d6e)
#5 0x0000790117e2106f _ZN7QThread4execEv (libQt6Core.so.6 + 0x22106f)
#6 0x0000790118b769df n/a (libQt6DBus.so.6 + 0x299df)
#7 0x0000790117ea0bd3 n/a (libQt6Core.so.6 + 0x2a0bd3)
#8 0x00007901176a955a n/a (libc.so.6 + 0x8b55a)
#9 0x0000790117726a3c n/a (libc.so.6 + 0x108a3c)
ELF object binary architecture: AMD x86-64
systemd[1]: Started Process Core Dump (PID 253315/UID 0).
Any extra information would be greatly appreciated
With a broken system, switching to a separate TTY and running QT_LOGGING_RULES="kwin_*.debug=true" kwin_wayland
produces little additional information. It does reveal that the crash is caused by a "memory alignment error", without any other details.