Bug 505708 - Splash screen freezes on second monitor sometimes
Summary: Splash screen freezes on second monitor sometimes
Status: RESOLVED UPSTREAM
Alias: None
Product: plasmashell
Classification: Plasma
Component: Splash Screens (other bugs)
Version First Reported In: 6.3.5
Platform: Other Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: multiscreen
Depends on:
Blocks:
 
Reported: 2025-06-17 19:11 UTC by equeim
Modified: 2025-09-23 19:09 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description equeim 2025-06-17 19:11:19 UTC
SUMMARY
Sometimes after logging in, my second monitor shows frozen splash screen for about a minute. First monitor meanwhile shows loaded desktop as expected (and I can launch apps too).

`journalctl -b | grep -i splash` shows this:

>Jun 17 22:00:22 localhost.localdomain systemd[2400]: Created slice Slice /app/dbus-:1.2-org.kde.KSplash.
>Jun 17 22:00:22 localhost.localdomain systemd[2400]: Started dbus-:1.2-org.kde.KSplash@0.service.
>Jun 17 22:00:22 localhost.localdomain systemd[2400]: Starting Splash screen shown during boot...
>Jun 17 22:00:26 localhost.localdomain systemd[2400]: Starting KSplash "ready" Stage...
>Jun 17 22:00:26 localhost.localdomain systemd[2400]: Finished KSplash "ready" Stage.
>Jun 17 22:01:02 localhost.localdomain systemd[2400]: plasma-ksplash.service: start operation timed out. Terminating.
>Jun 17 22:01:02 localhost.localdomain systemd[2400]: plasma-ksplash.service: Main process exited, code=killed, status=15/TERM
>Jun 17 22:01:02 localhost.localdomain systemd[2400]: plasma-ksplash.service: Failed with result 'timeout'.
>Jun 17 22:01:02 localhost.localdomain systemd[2400]: Failed to start Splash screen shown during boot.
>Jun 17 22:01:02 localhost.localdomain systemd[2400]: plasma-ksplash.service: Consumed 39.268s CPU time.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: openSUSE Tumbleweed
KDE Plasma Version: 6.3.5
KDE Frameworks Version: 6.14.0
Qt Version: 6.9.1

ADDITIONAL INFORMATION
I'm using Wayland with AMD GPU.
First monitor is Dell S2340L connected via HDMI.
Second monitor is Gigabyte G27Q connected via DisplayPort.
Comment 1 Nate Graham 2025-06-18 15:01:13 UTC
Weird! I have some questions:

1. Does this ever happen with only the affected screen connected/in use?
2. Does this happen equally on both X11 and Wayland, or only in one session type?
3. Does this happen the same way in a new clean user account on the same computer?
Comment 2 equeim 2025-06-21 20:06:13 UTC
(In reply to Nate Graham from comment #1)
> Weird! I have some questions:
> 
> 1. Does this ever happen with only the affected screen connected/in use?
> 2. Does this happen equally on both X11 and Wayland, or only in one session
> type?
> 3. Does this happen the same way in a new clean user account on the same
> computer?

1. Yes, always on G27Q monitor.
2. I mainly use Wayland and wasn't able to reproduce this issue with X11
3. It didn't reproduce until I set that monitor's refresh rate to 120 Hz (which is what I also use on my main account). The monitor supports 144 Hz, 120 Hz and 60 Hz, and Plasma chose 144 Hz by default. It *seems* that the issue is only reproducible with 120 Hz but could be a red herring that it does not happen every time.

I have also attached gdb to ksplashqml process while it's frozen and this is the backtrace:

#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007f7bf9b4f222 in sys_futex (addr1=addr1@entry=0x55ba47825f04, op=9, val1=2, timeout=0x0, addr2=0x0, val3=-1) at ../src/util/futex.c:43
#2  futex_wait (addr=addr@entry=0x55ba47825f04, value=value@entry=2, timeout=timeout@entry=0x0) at ../src/util/futex.c:55
#3  0x00007f7bf9b5c13d in do_futex_fence_wait (fence=fence@entry=0x55ba47825f04, timeout=timeout@entry=false, abs_timeout=abs_timeout@entry=0) at ../src/util/u_queue.c:131
#4  0x00007f7bf9b5d2cc in _util_queue_fence_wait (fence=0x55ba47825f04) at ../src/util/u_queue.c:146
#5  util_queue_fence_wait (fence=0x55ba47825f04) at ../src/util/u_queue.h:181
#6  util_queue_fence_wait (fence=0x55ba47825f04) at ../src/util/u_queue.h:178
#7  util_queue_finish (queue=queue@entry=0x55ba46d01b08) at ../src/util/u_queue.c:722
#8  0x00007f7bf9f8293e in si_set_debug_callback (ctx=0x55ba47f3aed0, cb=0x0) at ../src/gallium/drivers/radeonsi/si_pipe.c:442
#9  0x00007f7bf9f83117 in si_destroy_context (context=0x55ba47f3aed0) at ../src/gallium/drivers/radeonsi/si_pipe.c:196
#10 0x00007f7bf9d69b74 in tc_destroy (_pipe=0x55ba47f79f20) at ../src/gallium/auxiliary/util/u_threaded_context.c:5259
#11 0x00007f7bf977e614 in st_destroy_context_priv (st=st@entry=0x55ba480bb650, destroy_pipe=destroy_pipe@entry=true) at ../src/mesa/state_tracker/st_context.c:358
#12 0x00007f7bf977fed0 in st_destroy_context (st=0x55ba480bb650) at ../src/mesa/state_tracker/st_context.c:975
#13 0x00007f7bf96e5c5f in dri_destroy_context (ctx=0x55ba46ea4ec0) at ../src/gallium/frontends/dri/dri_context.c:280
#14 0x00007f7bf96e96da in driDestroyContext (ctx=<optimized out>) at ../src/gallium/frontends/dri/dri_util.c:633
#15 0x00007f7c0993b8a9 in dri2_destroy_context (disp=<optimized out>, ctx=0x55ba46f5f870) at ../src/egl/drivers/dri2/egl_dri2.c:1301
#16 dri2_destroy_context (disp=<optimized out>, ctx=0x55ba46f5f870) at ../src/egl/drivers/dri2/egl_dri2.c:1296
#17 0x00007f7c0992de19 in eglDestroyContext (dpy=<optimized out>, ctx=0x55ba46f5f870) at ../src/egl/main/eglapi.c:926
#18 0x00007f7c1185a978 in QEGLPlatformContext::~QEGLPlatformContext (this=0x55ba46ee9030, this=<optimized out>)
    at /usr/src/debug/qtbase-everywhere-src-6.9.1/src/gui/opengl/platform/egl/qeglplatformcontext.cpp:406
#19 0x00007f7c0bb1caed in QtWaylandClient::QWaylandGLContext::~QWaylandGLContext (this=0x55ba46ee9030, this=<optimized out>)
    at /usr/src/debug/qtwayland-everywhere-src-6.9.1/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp:300
#20 0x00007f7c1175d20e in QOpenGLContext::destroy (this=this@entry=0x7ffda2c87620) at /usr/src/debug/qtbase-everywhere-src-6.9.1/src/gui/kernel/qopenglcontext.cpp:461
#21 0x00007f7c1175d2eb in QOpenGLContext::~QOpenGLContext (this=0x7ffda2c87620, this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.9.1/src/gui/kernel/qopenglcontext.cpp:488
#22 0x00007f7c11771fbd in QRhiGles2InitParams::newFallbackSurface (format=...) at /usr/src/debug/qtbase-everywhere-src-6.9.1/src/gui/rhi/qrhigles2.cpp:604
#23 0x00007f7c125baff0 in QSGRhiSupport::maybeCreateOffscreenSurface (this=<optimized out>, window=<optimized out>)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.9.1/src/quick/scenegraph/qsgrhisupport.cpp:901
#24 QSGRhiSupport::maybeCreateOffscreenSurface (this=<optimized out>, window=<optimized out>)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.9.1/src/quick/scenegraph/qsgrhisupport.cpp:895
#25 0x00007f7c126eecd9 in QSGThreadedRenderLoop::handleExposure (this=0x55ba46fe3260, window=0x55ba46f1c760)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.9.1/src/quick/scenegraph/qsgthreadedrenderloop.cpp:1314
#26 QSGThreadedRenderLoop::exposureChanged (this=0x55ba46fe3260, window=0x55ba46f1c760)
    at /usr/src/debug/qtdeclarative-everywhere-src-6.9.1/src/quick/scenegraph/qsgthreadedrenderloop.cpp:1248
#27 0x00007f7c114722fc in QWindow::event (this=0x55ba46f1c760, ev=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.9.1/src/gui/kernel/qwindow.cpp:2719
#28 0x00007f7c10bb8b28 in QCoreApplication::notifyInternal2 (receiver=0x55ba46f1c760, event=0x7ffda2c878d0)
    at /usr/src/debug/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qcoreapplication.cpp:1106
#29 0x00007f7c10bb917d in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>)
    at /usr/src/debug/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qcoreapplication.cpp:1560
#30 0x00007f7c1141f60d in QGuiApplicationPrivate::processExposeEvent (e=0x55ba46f64d00) at /usr/src/debug/qtbase-everywhere-src-6.9.1/src/gui/kernel/qguiapplication.cpp:3480
#31 0x00007f7c1148052c in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...)
    at /usr/src/debug/qtbase-everywhere-src-6.9.1/src/gui/kernel/qwindowsysteminterface.cpp:1113
#32 0x00007f7c114806df in QWindowSystemInterface::flushWindowSystemEvents (flags=...) at /usr/src/debug/qtbase-everywhere-src-6.9.1/src/gui/kernel/qwindowsysteminterface.cpp:1082
#33 0x00007f7c10c19c01 in doActivate<false> (sender=0x55ba46bb14a0, signal_index=4, argv=0x7ffda2c87aa8) at /usr/src/debug/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qobject.cpp:4158
#34 0x00007f7c10e1debb in QEventDispatcherGlib::processEvents (this=0x55ba46bb14a0, flags=...)
    at /usr/src/debug/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qeventdispatcher_glib.cpp:406
#35 0x00007f7c10bc3afb in QEventLoop::exec (this=0x7ffda2c87be0, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.9.1/src/corelib/global/qflags.h:77
#36 0x00007f7c10bbc40c in QCoreApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.9.1/src/corelib/global/qflags.h:77
#37 0x00007f7c11417120 in QGuiApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.9.1/src/gui/kernel/qguiapplication.cpp:1986
#38 0x000055ba3fa3b89f in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace-6.4.0/ksplash/ksplashqml/main.cpp:26
Comment 3 equeim 2025-07-01 23:03:25 UTC
I wonder if it has the same cause as https://bugs.kde.org/show_bug.cgi?id=504239 ?

I'm not able to reproduce both of these issues since kernel-firmware-amdgpu update.
Comment 4 Nate Graham 2025-07-05 16:36:54 UTC
Sounds like it, then! Thanks for following up.
Comment 5 equeim 2025-09-23 17:48:46 UTC
(In reply to Nate Graham from comment #4)
> Sounds like it, then! Thanks for following up.

Unfortunately it started happening again some time ago. I can't pinpoint exact update. No duplicate cursor issues though, just splash screen freezing.

Currently I have Mesa 25.2.2, kernel 6.16.7 with AMDGPU firmware 20250916 and Plasma 6.4.5
Comment 6 Nate Graham 2025-09-23 19:09:30 UTC
If an AMD GPU driver update fixed the issue the past and then it returned, either it regressed in the AMD GPU driver, or the issue you're seeing now has a different root cause and needs a new bug report to track it.