https://bugs.kde.org/show_bug.cgi?id=470266
David Gow changed:
What|Removed |Added
CC||da...@ingeniumdigital.com
--- Comment #6 from David Gow ---
I have been able to (thus far) reproduce this crash when Alt+Tabbing away from
a Steam game properties window after a game data verification completes.
The system is running openSUSE Tumbleweed, and has an Intel Arc A380 GPU, as
well as the integrated Intel HSW GPU. The former is the default, and is what
OpenGL apps including Steam are using. The stack trace
STEPS TO REPRODUCE
1. Run Steam in XWayland
2. Right-click on a game (in my case, Age of Empires IV), and select
'Properties'
3. Select 'Installed Files', then 'Verify Integrity of Game Files'
4. Wait for the verification to complete. In my case, the message was '1 file
failed to validate and will be reacquired'.
5. Alt+Tab away from the window. kwin_wayland will SIGSEGV
OBSERVED RESULT
A SIGSEGV in kwin_wayland. The faulting thread stacktrace is:
```
#0 QOpenGLContext::shareGroup() const (this=this@entry=0x0) at
kernel/qopenglcontext.cpp:1179
#1 0x7f194ff3f497 in
QOpenGLMultiGroupSharedResource::value(QOpenGLContext*)
(context=0x0, this=0x7f1950137040 <(anonymous
namespace)::Q_QGS_qt_gl_functions_resource::innerFunction()::holder>)
at
../../include/QtGui/5.15.12/QtGui/private/../../../../../src/gui/kernel/qopenglcontext_p.h:173
#2 qt_gl_functions(QOpenGLContext*) (context=0x0) at
opengl/qopenglfunctions.cpp:191
#3 0x7f194ff3f712 in qopenglfSpecialClearDepthf(GLclampf) (depth=1) at
opengl/qopenglfunctions.cpp:2138
#4 0x7f1950bdfc42 in QSGBatchRenderer::Renderer::renderBatches() () at
/lib64/libQt5Quick.so.5
#5 0x7f1950be050c in QSGBatchRenderer::Renderer::render() () at
/lib64/libQt5Quick.so.5
#6 0x7f1950bc83e0 in QSGRenderer::renderScene(QSGBindable const&) () at
/lib64/libQt5Quick.so.5
#7 0x7f1950bc8893 in QSGRenderer::renderScene(unsigned int) () at
/lib64/libQt5Quick.so.5
#8 0x7f1950c2a713 in
QSGDefaultRenderContext::renderNextFrame(QSGRenderer*, unsigned int) () at
/lib64/libQt5Quick.so.5
#9 0x7f1950c99eb9 in QQuickWindowPrivate::renderSceneGraph(QSize const&,
QSize const&) () at /lib64/libQt5Quick.so.5
#10 0x7f1950c161d1 in () at /lib64/libQt5Quick.so.5
#11 0x7f1950ca8c05 in QQuickWindow::event(QEvent*) () at
/lib64/libQt5Quick.so.5
#12 0x7f194eda51ae in QApplicationPrivate::notify_helper(QObject*, QEvent*)
(this=, receiver=0x55765cee0360, e=0x7fffc0335f00) at
kernel/qapplication.cpp:3640
#13 0x7f194f6ed938 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x55765cee0360, event=0x7fffc0335f00) at
kernel/qcoreapplication.cpp:1064
#14 0x7f194f6edafe in QCoreApplication::sendEvent(QObject*, QEvent*)
(receiver=, event=) at
kernel/qcoreapplication.cpp:1462
#15 0x7f194fb6c153 in QPlatformWindow::deliverUpdateRequest()
(this=) at kernel/qplatformwindow.cpp:796
#16 QPlatformWindow::windowEvent(QEvent*) (this=,
event=) at kernel/qplatformwindow.cpp:476
#17 0x7f194edac4ec in QApplication::notify(QObject*, QEvent*)
(this=0x7fffc03365b0, receiver=0x55765cee0360, e=0x7fffc0336170) at
kernel/qapplication.cpp:2882
#18 0x7f194f6ed938 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x55765cee0360, event=0x7fffc0336170) at
kernel/qcoreapplication.cpp:1064
#19 0x7f194f6edafe in QCoreApplication::sendEvent(QObject*, QEvent*)
(receiver=, event=) at
kernel/qcoreapplication.cpp:1462
#20 0x7f194f745c69 in QTimerInfoList::activateTimers()
(this=this@entry=0x55765b562598) at kernel/qtimerinfo_unix.cpp:643
#21 0x7f194f7433ec in QEventDispatcherUNIXPrivate::activateTimers()
(this=this@entry=0x55765b562510) at kernel/qeventdispatcher_unix.cpp:249
#22 0x7f194f744110 in
QEventDispatcherUNIX::processEvents(QFlags)
(this=, flags=...) at kernel/qeventdispatcher_unix.cpp:516
#23 0x55765abae1dd in
QUnixEventDispatcherQPA::processEvents(QFlags)
(this=, flags=...) at qunixeventdispatcher.cpp:63
#24 0x7f194f6ec3cb in
QEventLoop::exec(QFlags)
(this=this@entry=0x7fffc0336310, flags=..., flags@entry=...)
at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#25 0x7f194f6f4860 in QCoreApplication::exec() () at
../../include/QtCore/../../src/corelib/global/qflags.h:121
#26 0x7f194fb705dc in QGuiApplication::exec() () at
kernel/qguiapplication.cpp:1870
#27 0x7f194eda5125 in QApplication::exec() () at
kernel/qapplication.cpp:2832
#28 0x55765aad13aa in main(int, char**) (argc=,
argv=) at /usr/src/debug/kwin-5.27.10/src/main_wayland.cpp:628
```
(I can provide a complete stacktrace of all threads on request, but it looks
useless to me.)
EXPECTED RESULT
The window switcher works.
SOFTWARE/OS VERSIONS
Operating System: openSUSE Tumbleweed 20240129
KDE Plasma Version: 5.27.10
KDE Frameworks Version: 5.114.0
Qt