Opening a bug so not to forget. #0 0x00007f1044ec2d22 in raise () at /usr/lib/libc.so.6 #1 0x00007f1044eac90e in abort () at /usr/lib/libc.so.6 #2 0x00007f10457ecbb1 in qt_message_fatal (message=<synthetic pointer>..., context=...) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qlogging.cpp:1914 #3 QMessageLogger::fatal(char const*, ...) const (this=this@entry=0x7ffdfcda19b8, msg=msg@entry=0x7f1045aed000 "ASSERT: \"%s\" in file %s, line %d") at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qlogging.cpp:893 #4 0x00007f10457ebfe2 in qt_assert(char const*, char const*, int) (assertion=<optimized out>, file=<optimized out>, line=<optimized out>) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qglobal.cpp:3358 #5 0x00007f10486868c4 in KWin::GLTexture::bind() (this=0x559d17f6fab0) at /home/apol/devel/frameworks/kwin/src/libkwineffects/kwingltexture.cpp:422 #6 0x00007f104868605e in KWin::GLTexture::GLTexture(QImage const&, unsigned int) (this=0x559d17f6fab0, image=..., target=3553) at /home/apol/devel/frameworks/kwin/src/libkwineffects/kwingltexture.cpp:86 #7 0x00007f103dc1d9aa in KWin::SceneOpenGL2::paintCursor(QRegion const&)::$_7::operator()() const (this=0x559d18556a30) at /home/apol/devel/frameworks/kwin/src/plugins/scenes/opengl/scene_opengl.cpp:307 #8 0x00007f103dc28386 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::SceneOpenGL2::paintCursor(QRegion const&)::$_7>::call(KWin::SceneOpenGL2::paintCursor(QRegion const&)::$_7&, void**) (f=..., arg=0x7ffdfcda1e70) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:146 #9 0x00007f103dc28351 in QtPrivate::Functor<KWin::SceneOpenGL2::paintCursor(QRegion const&)::$_7, 0>::call<QtPrivate::List<>, void>(KWin::SceneOpenGL2::paintCursor(QRegion const&)::$_7&, void*, void**) (f=..., arg=0x7ffdfcda1e70) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:256 #10 0x00007f103dc282f1 in QtPrivate::QFunctorSlotObject<KWin::SceneOpenGL2::paintCursor(QRegion const&)::$_7, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x559d18556a20, r=0x559d16952a50, a=0x7ffdfcda1e70, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:443 #11 0x00007f1045a42133 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdfcda1e70, r=0x559d16952a50, this=0x559d18556a20) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398 #12 doActivate<false>(QObject*, int, void**) (sender=0x559d1654ed90, signal_index=3, argv=0x7ffdfcda1e70) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3886 #13 0x00007f104899bd70 in KWin::Cursors::currentCursorChanged(KWin::Cursor*) (this=0x559d1654ed90, _t1=0x559d165c2950) at src/kwin_autogen/EWIEGA46WW/moc_cursor.cpp:385 #14 0x00007f1048a2e569 in KWin::Cursors::emitCurrentCursorChanged() (this=0x559d1654ed90) at /home/apol/devel/frameworks/kwin/src/cursor.cpp:81 #15 0x00007f1048a3a048 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KWin::Cursors::*)()>::call(void (KWin::Cursors::*)(), KWin::Cursors*, void**) (f=(void (KWin::Cursors::*)(KWin::Cursors * const)) 0x7f1048a2e550 <KWin::Cursors::emitCurrentCursorChanged()>, o=0x559d1654ed90, arg=0x7ffdfcda2060) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:152 #16 0x00007f1048a39fad in QtPrivate::FunctionPointer<void (KWin::Cursors::*)()>::call<QtPrivate::List<>, void>(void (KWin::Cursors::*)(), KWin::Cursors*, void**) (f=(void (KWin::Cursors::*)(KWin::Cursors * const)) 0x7f1048a2e550 <KWin::Cursors::emitCurrentCursorChanged()>, o=0x559d1654ed90, arg=0x7ffdfcda2060) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:185 #17 0x00007f1048a39ef2 in QtPrivate::QSlotObject<void (KWin::Cursors::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x559d165c1990, r=0x559d1654ed90, a=0x7ffdfcda2060, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:418 #18 0x00007f1045a42133 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdfcda2060, r=0x559d1654ed90, this=0x559d165c1990) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398 #19 doActivate<false>(QObject*, int, void**) (sender=0x559d165c2950, signal_index=5, argv=0x7ffdfcda2060) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3886 #20 0x00007f104899b845 in KWin::Cursor::cursorChanged() (this=0x559d165c2950) at src/kwin_autogen/EWIEGA46WW/moc_cursor.cpp:217 #21 0x00007f1048a2efed in KWin::Cursor::updateCursor(QImage const&, QPoint const&) (this=0x559d165c2950, image=..., hotspot=...) at /home/apol/devel/frameworks/kwin/src/cursor.cpp:180 #22 0x00007f1048b68087 in KWin::PointerInputRedirection::init()::$_0::operator()() const (this=0x559d1723e330) at /home/apol/devel/frameworks/kwin/src/pointer_input.cpp:120 #23 0x00007f1048b67fd6 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::PointerInputRedirection::init()::$_0>::call(KWin::PointerInputRedirection::init()::$_0&, void**) (f=..., arg=0x7ffdfcda22a0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:146 #24 0x00007f1048b67fa1 in QtPrivate::Functor<KWin::PointerInputRedirection::init()::$_0, 0>::call<QtPrivate::List<>, void>(KWin::PointerInputRedirection::init()::$_0&, void*, void**) (f=..., arg=0x7ffdfcda22a0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:256 #25 0x00007f1048b67f41 in QtPrivate::QFunctorSlotObject<KWin::PointerInputRedirection::init()::$_0, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x559d1723e320, r=0x559d165c2950, a=0x7ffdfcda22a0, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:443 #26 0x00007f1045a42133 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdfcda22a0, r=0x559d165c2950, this=0x559d1723e320) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398 #27 doActivate<false>(QObject*, int, void**) (sender=0x559d16661a80, signal_index=3, argv=0x7ffdfcda22a0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3886 #28 0x00007f10489af2e2 in KWin::CursorImage::changed() (this=0x559d16661a80) at src/kwin_autogen/EWIEGA46WW/moc_pointer_input.cpp:311 #29 0x00007f1048b66452 in KWin::CursorImage::updateServerCursor() (this=0x559d16661a80) at /home/apol/devel/frameworks/kwin/src/pointer_input.cpp:1103 #30 0x00007f1048b6f0f8 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KWin::CursorImage::*)()>::call(void (KWin::CursorImage::*)(), KWin::CursorImage*, void**) (f=(void (KWin::CursorImage::*)(KWin::CursorImage * const)) 0x7f1048b661d0 <KWin::CursorImage::updateServerCursor()>, o=0x559d16661a80, arg=0x7ffdfcda2590) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:152 #31 0x00007f1048b6f05d in QtPrivate::FunctionPointer<void (KWin::CursorImage::*)()>::call<QtPrivate::List<>, void>(void (KWin::CursorImage::*)(), KWin::CursorImage*, void**) (f=(void (KWin::CursorImage::*)(KWin::CursorImage * const)) 0x7f1048b661d0 <KWin::CursorImage::updateServerCursor()>, o=0x559d16661a80, arg=0x7ffdfcda2590) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:185 #32 0x00007f1048b6efa2 in QtPrivate::QSlotObject<void (KWin::CursorImage::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x559d18439270, r=0x559d16661a80, a=0x7ffdfcda2590, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:418 #33 0x00007f1045a42133 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdfcda2590, r=0x559d16661a80, this=0x559d18439270) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398 #34 doActivate<false>(QObject*, int, void**) (sender=0x559d165bdff0, signal_index=3, argv=0x7ffdfcda2590) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3886 #35 0x00007f1045a42133 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdfcda2660, r=0x559d165bdff0, this=0x559d170ba1b0) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398 #36 doActivate<false>(QObject*, int, void**) (sender=0x559d1704da90, signal_index=6, argv=0x7ffdfcda2660) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3886 #37 0x00007f10465e0656 in KWaylandServer::CursorPrivate::update(KWaylandServer::SurfaceInterface*, unsigned int, QPoint const&) (this=0x559d1721a780, s=<optimized out>, s@entry=0x559d17bb3b80, serial=<optimized out>, serial@entry=31932, p=...) at /home/apol/devel/frameworks/kwayland-server/src/server/pointer_interface.cpp:323 #38 0x00007f10465e0301 in KWaylandServer::PointerInterfacePrivate::pointer_set_cursor(QtWaylandServer::wl_pointer::Resource*, unsigned int, wl_resource*, int, int) (this=0x559d167404d0, resource=0x559d1812eac0, serial=0, surface_resource=<optimized out>, hotspot_x=4, hotspot_y=4) at /home/apol/devel/frameworks/kwayland-server/src/server/pointer_interface.cpp:98 #39 0x00007f1043c19acd in () at /usr/lib/libffi.so.7 #40 0x00007f1043c1903a in () at /usr/lib/libffi.so.7 #41 0x00007f1046529124 in () at /usr/lib/libwayland-server.so.0 #42 0x00007f104652457c in () at /usr/lib/libwayland-server.so.0 #43 0x00007f104652707a in wl_event_loop_dispatch () at /usr/lib/libwayland-server.so.0 #44 0x00007f10465c5a94 in KWaylandServer::Display::dispatchEvents() (this=<optimized out>) at /home/apol/devel/frameworks/kwayland-server/src/server/display.cpp:107 #45 0x00007f1045a42133 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdfcda2e60, r=0x559d165467c0, this=0x559d17320900) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398 #46 doActivate<false>(QObject*, int, void**) (sender=0x559d17335970, signal_index=3, argv=0x7ffdfcda2e60) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3886 #47 0x00007f1045a3b5ff in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x559d17335970, m=m@entry=0x7f1045cdc140 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffdfcda2e60) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3946 #48 0x00007f1045a4561f in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) (this=this@entry=0x559d17335970, _t1=..., _t2=<optimized out>, _t3=...) at .moc/moc_qsocketnotifier.cpp:178 #49 0x00007f1045a45e1b in QSocketNotifier::event(QEvent*) (this=0x559d17335970, e=0x7ffdfcda2f80) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qsocketnotifier.cpp:302 #50 0x00007f104685f6cf in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x559d17335970, e=0x7ffdfcda2f80) at /home/apol/devel/frameworks/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3632 #51 0x00007f1045a0b9ca in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x559d17335970, event=0x7ffdfcda2f80) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1064 #52 0x00007f1045a6039b in QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x559d16507210) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:304 #53 0x00007f1045a607fb in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:511 #54 0x0000559d1572649d in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /home/apol/devel/frameworks/qt5/qtbase/src/platformsupport/eventdispatchers/qunixeventdispatcher.cpp:63 #55 0x00007f1045a0a3cb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffdfcda3110, flags=..., flags@entry=...) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:69 #56 0x00007f1045a126b0 in QCoreApplication::exec() () at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:121 #57 0x0000559d156eb764 in main(int, char**) (argc=5, argv=0x7ffdfcda3bb8) at /home/apol/devel/frameworks/kwin/src/main_wayland.cpp:719
I think the problem is that the cursor texture is created without opengl context current.
Still have the crash #0 0x00007f5d49fcfd22 in raise () at /usr/lib/libc.so.6 #1 0x00007f5d49fb990e in abort () at /usr/lib/libc.so.6 #2 0x00007f5d4a8d9bb1 in qt_message_fatal (message=<synthetic pointer>..., context=...) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qlogging.cpp:1914 #3 QMessageLogger::fatal(char const*, ...) const (this=this@entry=0x7ffdf10d94d8, msg=msg@entry=0x7f5d4abda000 "ASSERT: \"%s\" in file %s, line %d") at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qlogging.cpp:893 #4 0x00007f5d4a8d8fe2 in qt_assert(char const*, char const*, int) (assertion=<optimized out>, file=<optimized out>, line=<optimized out>) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/global/qglobal.cpp:3358 #5 0x00007f5d4d740f64 in KWin::GLTexture::bind() (this=0x564d12c77b50) at /home/apol/devel/frameworks/kwin/src/libkwineffects/kwingltexture.cpp:422 #6 0x00007f5d4d7406fe in KWin::GLTexture::GLTexture(QImage const&, unsigned int) (this=0x564d12c77b50, image=..., target=3553) at /home/apol/devel/frameworks/kwin/src/libkwineffects/kwingltexture.cpp:86 #7 0x00007f5d3ed2c5ba in KWin::SceneOpenGL2::paintCursor(QRegion const&)::$_7::operator()() const (this=0x564d12cc3eb0) at /home/apol/devel/frameworks/kwin/src/plugins/scenes/opengl/scene_opengl.cpp:307 #8 0x00007f5d3ed36f96 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::SceneOpenGL2::paintCursor(QRegion const&)::$_7>::call(KWin::SceneOpenGL2::paintCursor(QRegion const&)::$_7&, void**) (f=..., arg=0x7ffdf10d9990) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:146 #9 0x00007f5d3ed36f61 in QtPrivate::Functor<KWin::SceneOpenGL2::paintCursor(QRegion const&)::$_7, 0>::call<QtPrivate::List<>, void>(KWin::SceneOpenGL2::paintCursor(QRegion const&)::$_7&, void*, void**) (f=..., arg=0x7ffdf10d9990) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:256 #10 0x00007f5d3ed36f01 in QtPrivate::QFunctorSlotObject<KWin::SceneOpenGL2::paintCursor(QRegion const&)::$_7, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x564d12cc3ea0, r=0x564d11651b80, a=0x7ffdf10d9990, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:443 #11 0x00007f5d4ab2f133 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdf10d9990, r=0x564d11651b80, this=0x564d12cc3ea0) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398 #12 doActivate<false>(QObject*, int, void**) (sender=0x564d112da190, signal_index=3, argv=0x7ffdf10d9990) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3886 #13 0x00007f5d4da37210 in KWin::Cursors::currentCursorChanged(KWin::Cursor*) (this=0x564d112da190, _t1=0x564d114593c0) at src/kwin_autogen/EWIEGA46WW/moc_cursor.cpp:385 #14 0x00007f5d4dac9829 in KWin::Cursors::setCurrentCursor(KWin::Cursor*) (this=0x564d114593c0, cursor=0x564d11499740) at /home/apol/devel/frameworks/kwin/src/cursor.cpp:74 #15 0x00007f5d4dad5308 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KWin::Cursors::*)()>::call(void (KWin::Cursors::*)(), KWin::Cursors*, void**) (f=(void (KWin::Cursors::*)(KWin::Cursors * const)) 0x7f5d4dac9810 <KWin::Cursors::setCurrentCursor(KWin::Cursor*)+464>, o=0x564d112da190, arg=0x7ffdf10d9b80) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:151 #16 0x00007f5d4dad526d in QtPrivate::QSlotObject<void (KWin::Cursors::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=0, this_=0x7f5d4dac9810 <KWin::Cursors::setCurrentCursor(KWin::Cursor*)+464>, r=0x0, a=0x7f5d4dac9810 <KWin::Cursors::setCurrentCursor(KWin::Cursor*)+464>, ret=0x564d112da190) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:425 #17 0x00007f5d4dad51b2 in QtPrivate::QSlotObject<void (KWin::Cursors::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x564d11458690, r=0x564d112da190, a=0x7ffdf10d9b80, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:413 #18 0x00007f5d4ab2f133 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdf10d9b80, r=0x564d112da190, this=0x564d11458690) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398 #19 doActivate<false>(QObject*, int, void**) (sender=0x564d114593c0, signal_index=5, argv=0x7ffdf10d9b80) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3886 #20 0x00007f5d4da36ce5 in KWin::Cursor::cursorChanged() (this=0x564d114593c0) at src/kwin_autogen/EWIEGA46WW/moc_cursor.cpp:217 #21 0x00007f5d4daca2ad in KWin::Cursor::setPos(int, int) (this=0x7ffdf10d9c50, x=22093, y=289772480) at /home/apol/devel/frameworks/kwin/src/cursor.cpp:173 #22 0x00007f5d4dc01a27 in KWin::PointerInputRedirection::init()::$_0::operator()() const (this=0x564d11fb7980) at /home/apol/devel/frameworks/kwin/src/pointer_input.cpp:120 #23 0x00007f5d4dc01976 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KWin::PointerInputRedirection::init()::$_0>::call(KWin::PointerInputRedirection::init()::$_0&, void**) (f=..., arg=0x7ffdf10d9dc0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:146 #24 0x00007f5d4dc01941 in QtPrivate::Functor<KWin::PointerInputRedirection::init()::$_0, 0>::call<QtPrivate::List<>, void>(KWin::PointerInputRedirection::init()::$_0&, void*, void**) (f=..., arg=0x7ffdf10d9dc0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:256 #25 0x00007f5d4dc018e1 in QtPrivate::QFunctorSlotObject<KWin::PointerInputRedirection::init()::$_0, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x564d11fb7970, r=0x564d114593c0, a=0x7ffdf10d9dc0, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:443 #26 0x00007f5d4ab2f133 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdf10d9dc0, r=0x564d114593c0, this=0x564d11fb7970) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398 #27 doActivate<false>(QObject*, int, void**) (sender=0x564d113c0a00, signal_index=3, argv=0x7ffdf10d9dc0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3886 #28 0x00007f5d4da4a672 in KWin::CursorImage::changed() (this=0x564d113c0a00) at src/kwin_autogen/EWIEGA46WW/moc_pointer_input.cpp:311 #29 0x00007f5d4dbfff12 in KWin::CursorImage::updateServerCursor() (this=0x564d113c0a00) at /home/apol/devel/frameworks/kwin/src/pointer_input.cpp:1129 #30 0x00007f5d4dc08b48 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KWin::CursorImage::*)()>::call(void (KWin::CursorImage::*)(), KWin::CursorImage*, void**) (f=(void (KWin::CursorImage::*)(KWin::CursorImage * const)) 0x7f5d4dbffc90 <KWin::CursorImage::updateServerCursor()>, o=0x564d113c0a00, arg=0x7ffdf10da0b0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:152 #31 0x00007f5d4dc08aad in QtPrivate::FunctionPointer<void (KWin::CursorImage::*)()>::call<QtPrivate::List<>, void>(void (KWin::CursorImage::*)(), KWin::CursorImage*, void**) (f=(void (KWin::CursorImage::*)(KWin::CursorImage * const)) 0x7f5d4dbffc90 <KWin::CursorImage::updateServerCursor()>, o=0x564d113c0a00, arg=0x7ffdf10da0b0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:185 #32 0x00007f5d4dc089f2 in QtPrivate::QSlotObject<void (KWin::CursorImage::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x564d12db8580, r=0x564d113c0a00, a=0x7ffdf10da0b0, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:418 #33 0x00007f5d4ab2f133 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdf10da0b0, r=0x564d113c0a00, this=0x564d12db8580) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398 #34 doActivate<false>(QObject*, int, void**) (sender=0x564d11343210, signal_index=3, argv=0x7ffdf10da0b0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3886 #35 0x00007f5d4ab2f133 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdf10da180, r=0x564d11343210, this=0x564d12020660) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398 #36 doActivate<false>(QObject*, int, void**) (sender=0x564d1201f920, signal_index=6, argv=0x7ffdf10da180) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3886 #37 0x00007f5d4b6c8f36 in KWaylandServer::CursorPrivate::update(KWaylandServer::SurfaceInterface*, unsigned int, QPoint const&) (this=0x564d11d94e00, s=<optimized out>, s@entry=0x564d11f807e0, serial=<optimized out>, serial@entry=8679, p=...) at /home/apol/devel/frameworks/kwayland-server/src/server/pointer_interface.cpp:323 #38 0x00007f5d4b6c8be1 in KWaylandServer::PointerInterfacePrivate::pointer_set_cursor(QtWaylandServer::wl_pointer::Resource*, unsigned int, wl_resource*, int, int) (this=0x564d114a2b10, resource=0x564d11deb900, serial=0, surface_resource=<optimized out>, hotspot_x=4, hotspot_y=4) at /home/apol/devel/frameworks/kwayland-server/src/server/pointer_interface.cpp:98 #39 0x00007f5d48d1bacd in () at /usr/lib/libffi.so.7 #40 0x00007f5d48d1b03a in () at /usr/lib/libffi.so.7 #41 0x00007f5d4b61677b in wl_closure_invoke (closure=0x564d12c7e200, flags=2, target=<optimized out>, opcode=0, data=<optimized out>) at ../src/connection.c:1018 #42 0x00007f5d4b611223 in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=0x564d128c0d00) at ../src/wayland-server.c:431 #43 0x00007f5d4b61496c in wl_event_loop_dispatch (loop=<optimized out>, timeout=<optimized out>) at ../src/event-loop.c:1027 #44 0x00007f5d4b6ae344 in KWaylandServer::Display::dispatchEvents() (this=<optimized out>) at /home/apol/devel/frameworks/kwayland-server/src/server/display.cpp:109 #45 0x00007f5d4ab2f133 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdf10da980, r=0x564d112f3640, this=0x564d112cb0d0) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398 #46 doActivate<false>(QObject*, int, void**) (sender=0x564d1203d7e0, signal_index=3, argv=0x7ffdf10da980) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3886 #47 0x00007f5d4ab285ff in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x564d1203d7e0, m=m@entry=0x7f5d4adc9140 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffdf10da980) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3946 #48 0x00007f5d4ab3261f in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) (this=this@entry=0x564d1203d7e0, _t1=..., _t2=<optimized out>, _t3=...) at .moc/moc_qsocketnotifier.cpp:178 #49 0x00007f5d4ab32e1b in QSocketNotifier::event(QEvent*) (this=0x564d1203d7e0, e=0x7ffdf10daaa0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qsocketnotifier.cpp:302 #50 0x00007f5d4b9496cf in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x564d1203d7e0, e=0x7ffdf10daaa0) at /home/apol/devel/frameworks/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3632 #51 0x00007f5d4aaf89ca in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x564d1203d7e0, event=0x7ffdf10daaa0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1064 #52 0x00007f5d4ab4d39b in QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x564d11295790) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:304 #53 0x00007f5d4ab4d7fb in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:511 #54 0x0000564d10c6749d in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /home/apol/devel/frameworks/qt5/qtbase/src/platformsupport/eventdispatchers/qunixeventdispatcher.cpp:63 #55 0x00007f5d4aaf73cb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffdf10dac30, flags=..., flags@entry=...) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:69 #56 0x00007f5d4aaff6b0 in QCoreApplication::exec() () at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:121 #57 0x0000564d10c2c764 in main(int, char**) (argc=5, argv=0x7ffdf10db6d8) at /home/apol/devel/frameworks/kwin/src/main_wayland.cpp:719
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/1165
*** Bug 439041 has been marked as a duplicate of this bug. ***
Git commit 23129c09cebd5fc0220156934100d54f606d3b13 by Aleix Pol Gonzalez, on behalf of Aleix Pol. Committed on 12/07/2021 at 13:15. Pushed by apol into branch 'master'. SceneOpenGL2::paintCursor make sure the OpenGL context is current Instead of painting right away when Cursors::currentCursorChanged is emitted, mark as dirty and call again when paintCursor is called. M +2 -1 src/libkwineffects/kwingltexture.cpp M +23 -13 src/plugins/scenes/opengl/scene_opengl.cpp M +1 -0 src/plugins/scenes/opengl/scene_opengl.h https://invent.kde.org/plasma/kwin/commit/23129c09cebd5fc0220156934100d54f606d3b13