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.
