https://bugs.kde.org/show_bug.cgi?id=525886

Max Nomad <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #1 from Max Nomad <[email protected]> ---
Confirming this on different hardware and on older Plasma/Qt than the original
report, which widens the affected range downward.

Plasma 6.6.6 / Frameworks 6.24.0 / Qt 6.10.2
Ubuntu 26.04.1 LTS, kernel 7.0.0-34-generic
Wayland session
NVIDIA GA106M [RTX 3060 Mobile], driver 580.178.04
Hybrid laptop (AMD Cezanne iGPU + NVIDIA dGPU), KWin rendering on the
dGPU via KWIN_DRM_DEVICES; NVreg_PreserveVideoMemoryAllocations=1
Reproduction rate: 17 of 21 suspend/resume cycles over 10 days (81%). It is not
intermittent here — it is close to every resume. I have a systemd hook watching
the journal, so every occurrence is timestamped.

Additional symptom: plasmashell never exits cleanly afterwards
This is the part I have not seen described in this report. Once the context is
lost, plasmashell cannot be shut down cleanly either — asking it to quit
produces a crash every time, so the user gets a DrKonqi crash dialog on top of
the frozen panel. 15 core dumps from 17 occurrences, in two flavours:

13× SIGSEGV — after Graphics device lost, cleaning up scenegraph and releasing
RHIs, the segfault lands in QtQuick/QML item code, consistent with QML bindings
still updating items whose scenegraph was released:

#4  QQuickItem::setAcceptedMouseButtons(QFlags<Qt::MouseButton>) 
(libQt6Quick.so.6 + 0x214fd4)
#5  breeze6.so + 0x6ecc8
#7  libqqc2desktopstyleplugin.so + 0x11ae7
#10 QQuickItem::setWidth(double)                                
(libQt6Quick.so.6 + 0x217580)
#12 QQuickItem::setImplicitHeight(double)                       
(libQt6Quick.so.6 + 0x217b0e)
#15 QQmlBinding::doUpdate(...)                                  
(libQt6Qml.so.6 + 0x2e1d52)
4× SIGABRT — a qFatal, with the message:

Failed to create RHI (backend 2)
reached from an expose event on the Wayland window, i.e. the render loop tries
to bring the scenegraph back, cannot create an OpenGL QRhi, and aborts:

#8  QMessageLogger::fatal(char const*, ...)                     
(libQt6Core.so.6 + 0xc43e8)
#9  libQt6Quick.so.6 + 0x1b4dda      <- QSGRenderLoop context-creation failure
path
#10 libQt6Quick.so.6 + 0x385ec2
#13 QWindow::event(QEvent*)                                     
(libQt6Gui.so.6 + 0x2358fc)
#16 QGuiApplicationPrivate::processExposeEvent(...)             
(libQt6Gui.so.6 + 0x1d8bea)
#18 QWindowSystemInterface::handleExposeEvent<SynchronousDelivery>(QWindow*,
QRegion const&)
#19 QtWaylandClient::QWaylandWindow::sendExposeEvent(QRect const&)
#20 QtWaylandClient::QWaylandWindow::updateExposure()
So the two outcomes are "silently never rebuilds" and "tries to rebuild, fails
to create the RHI, aborts" — which looks like the same root cause reached down
two paths, and matches the QSGRenderLoop::handleContextCreationFailure
observation made in bug 525553.

Timeline of one occurrence (precise timestamps)
08:30:48.071  kernel: PM: suspend exit
08:31:02.825  plasmashell: QRhiGles2: Context is lost.
08:31:02.825  plasmashell: Failed to create RHI (backend 2)
08:31:03.223  (my hook notices and requests a restart)
08:31:03.228  systemd: Stopping plasma-plasmashell.service...
08:31:04.879  systemd: Main process exited, code=dumped, status=6/ABRT
08:31:05.060  systemd: Started plasma-plasmashell.service
The ~14s gap between resume and context loss is consistent across all 17
occurrences — the context is not lost at resume, but at plasmashell's first
render attempt afterwards.

Worth noting against a "driver bug, close as upstream" reading
In 10 days and 54 logged context-loss lines on this machine, every single one
came from plasmashell. No other process logged a lost GL or EGL context.

KWin is rendering on the same RTX 3060, in the same session, across all 21 of
those resumes, and never drops a frame — it handles the device loss and carries
on. There were no Xid errors and no NV_ERR_RESET_REQUIRED on any of the
affected resumes; the GPU comes back healthy. Whatever the driver does at
resume, KWin survives it and plasmashell does not, which suggests the recovery
gap is on the Qt Quick side rather than the GPU simply being dead.

Happy to provide full core dumps, complete backtraces, or to test a patch.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to