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

            Bug ID: 465029
           Summary: kwin crashes if plasma rendering backend set to
                    software
    Classification: Plasma
           Product: kwin
           Version: 5.26.5
          Platform: Archlinux
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: wayland-generic
          Assignee: kwin-bugs-n...@kde.org
          Reporter: gudvinr+...@gmail.com
  Target Milestone: ---

SUMMARY

While doing investigation for bug 463718 I tried to play with different
settings and when I set rendering backend to software in `kcmshell5
qtquicksettings`, after system restart plasma started to crash every time I use
alt+tab.

It might be 2 issues, in fact. One with plasma not doing what kwin expecting it
to do and another kwin crashing, wihch it shouldn't do (ideally) even if
something goes wrong because it brings down everything else too.

STEPS TO REPRODUCE
1. Set rendering backed for plasma to software
2. Restart system (only running plasmashell --replace doesn't seem to cause
this issue)
3. Open some window
4. Use Alt+Tab

OBSERVED RESULT
Kwin crashes

EXPECTED RESULT
Kwin does not crash

SOFTWARE/OS VERSIONS
Operating System: Arch Linux
KDE Plasma Version: 5.26.5
KDE Frameworks Version: 5.102.0
Qt Version: 5.15.8
Kernel Version: 6.1.8-zen1-1-zen (64-bit)
Graphics Platform: Wayland
Graphics Processor: AMD Radeon RX Vega M GL Graphics

ADDITIONAL INFORMATION

I was able to capture backtrace for failed process:

#0  QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData>
>::operator->() const (this=0x8, this=<optimized out>)
    at /usr/include/qt/QtCore/qscopedpointer.h:116
#1  qGetPtrHelper<QScopedPointer<QObjectData,
QScopedPointerDeleter<QObjectData> > >(QScopedPointer<QObjectData,
QScopedPointerDeleter<QObjectData> >&)
    (ptr=..., ptr=<optimized out>) at /usr/include/qt/QtCore/qglobal.h:1149
#2  QSGTexture::d_func() (this=0x0) at
/usr/src/debug/qt5-declarative/qtdeclarative/src/quick/scenegraph/coreapi/qsgtexture.h:57
#3  QSGTexture::setFiltering(QSGTexture::Filtering) (this=0x0,
filter=filter@entry=QSGTexture::Linear)
    at
/usr/src/debug/qt5-declarative/qtdeclarative/src/quick/scenegraph/coreapi/qsgtexture.cpp:576
#4  0x00007fbb64486d55 in
KWin::ThumbnailTextureProvider::setTexture(std::shared_ptr<KWin::GLTexture>
const&)
     (nativeTexture=std::shared_ptr<KWin::GLTexture> (use count 2, weak count
0) = {...}, this=0x55db09446aa0) at
/usr/include/c++/12.2.0/bits/unique_ptr.h:191
#5  KWin::WindowThumbnailItem::updatePaintNode(QSGNode*,
QQuickItem::UpdatePaintNodeData*) (this=0x55db08fb26f0, oldNode=0x0)
    at
/usr/src/debug/kwin/kwin-5.26.5/src/scripting/windowthumbnailitem.cpp:227
#6  0x00007fbb63e5b8d8 in QQuickWindowPrivate::updateDirtyNode(QQuickItem*)
(this=0x55db08584900, item=0x55db08fb26f0)
    at
/usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickwindow.cpp:3888
#7  0x00007fbb63e5c0e5 in QQuickWindowPrivate::updateDirtyNodes()
(this=0x55db08584900)
    at
/usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickwindow.cpp:3633
#8  0x00007fbb63e49489 in QQuickWindowPrivate::syncSceneGraph()
(this=0x55db08584900)
    at
/usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickwindow.cpp:524
#9  0x00007fbb63e110e9 in QSGSoftwareRenderLoop::renderWindow(QQuickWindow*,
bool)
     (this=0x55db09197030, window=<optimized out>, isNewExpose=<optimized out>)
    at
/usr/src/debug/qt5-declarative/qtdeclarative/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp:160
#10 0x00007fbb63e52739 in QQuickWindow::event(QEvent*) (this=0x55db0923d9c0,
e=0x7fffc702ef50)
    at
/usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickwindow.cpp:1863
#11 0x00007fbb62178b5c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
(this=<optimized out>, receiver=0x55db0923d9c0, e=0x7fffc702ef50)
    at kernel/qapplication.cpp:3640
#12 0x00007fbb62a8de08 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x55db0923d9c0, event=0x7fffc702ef50)
    at kernel/qcoreapplication.cpp:1064
#13 0x00007fbb62f3a0e5 in QPlatformWindow::deliverUpdateRequest()
(this=<optimized out>) at kernel/qplatformwindow.cpp:796
#14 QPlatformWindow::windowEvent(QEvent*) (event=<optimized out>,
this=0x55db09407370) at kernel/qplatformwindow.cpp:476
#15 QGuiApplicationPrivate::sendQWindowEventToQPlatformWindow(QWindow*,
QEvent*) (window=<optimized out>, event=<optimized out>)
    at kernel/qguiapplication.cpp:1987
#16 0x00007fbb6217d041 in QApplication::notify(QObject*, QEvent*)
(this=0x7fffc702f5f0, receiver=0x55db0923d9c0, e=0x7fffc702f1d0)
    at kernel/qapplication.cpp:2882
#17 0x00007fbb62a8de08 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x55db0923d9c0, event=0x7fffc702f1d0)
    at kernel/qcoreapplication.cpp:1064
#18 0x00007fbb62ad8373 in QTimerInfoList::activateTimers()
(this=0x55db07edf0a8) at kernel/qtimerinfo_unix.cpp:643
#19 0x00007fbb62ad8822 in
QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=<optimized out>, flags=...)
    at kernel/qeventdispatcher_unix.cpp:516
#20 0x000055db0659e9a2 in
QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
()
#21 0x00007fbb62a865ac in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fffc702f370,
flags=...)
    at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#22 0x00007fbb62a910d9 in QCoreApplication::exec() () at
../../include/QtCore/../../src/corelib/global/qflags.h:121
#23 0x00007fbb62f39fe2 in QGuiApplication::exec() () at
kernel/qguiapplication.cpp:1870
#24 0x00007fbb62176f2a in QApplication::exec() () at
kernel/qapplication.cpp:2832
#25 0x000055db064bf611 in main(int, char**) (argc=<optimized out>,
argv=<optimized out>) at
/usr/src/debug/kwin/kwin-5.26.5/src/main_wayland.cpp:609

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

Reply via email to