Seems like we are calling a null pointer to the layer (pipeline->pending->layer) Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007fafec6fa799 in KWin::DrmPipeline::commitPipelinesAtomic (pipelines=..., mode=KWin::DrmPipeline::CommitMode::Test, unusedObjects=...) at /home/apol/devel/frameworks/kwin/src/backends/drm/drm_pipeline.cpp:131 131 if (!pipeline->pending.layer->testBuffer()) { [Current thread is 1 (Thread 0x7fafedbfda80 (LWP 989))] (gdb) p pipeline $1 = (KWin::DrmPipeline * const&) @0x555d39189460: 0x555d3902d240 (gdb) p pipeline->pending $2 = {crtc = 0x555d38f6dde0, active = true, enabled = true, mode = {value = 0x555d3a600ed0, d = 0x555d3a600ec0}, overscan = 0, rgbRange = KWin::AbstractWaylandOutput::RgbRange::Automatic, syncMode = KWin::RenderLoopPrivate::SyncMode::Fixed, gamma = {value = 0x555d3aba53b0, d = 0x555d3aba53a0}, layer = {value = 0x0, d = 0x0}, cursorPos = {xp = 3170, yp = 1530}, cursorHotspot = {xp = 6, yp = 6}, cursorBo = {value = 0x555d3972cfb0, d = 0x555d3972cfa0}, bufferTransformation = {i = 1}, sourceTransformation = {i = 1}} (gdb) p pipeline->pending->layer $3 = {value = 0x0, d = 0x0} (gdb) where #0 0x00007fafec6fa799 in KWin::DrmPipeline::commitPipelinesAtomic(QVector<KWin::DrmPipeline*> const&, KWin::DrmPipeline::CommitMode, QVector<KWin::DrmObject*> const&) (pipelines=..., mode=KWin::DrmPipeline::CommitMode::Test, unusedObjects=...) at /home/apol/devel/frameworks/kwin/src/backends/drm/drm_pipeline.cpp:131 #1 0x00007fafec6fa1b9 in KWin::DrmPipeline::commitPipelines(QVector<KWin::DrmPipeline*> const&, KWin::DrmPipeline::CommitMode, QVector<KWin::DrmObject*> const&) (pipelines=..., mode=KWin::DrmPipeline::CommitMode::Test, unusedObjects=...) at /home/apol/devel/frameworks/kwin/src/backends/drm/drm_pipeline.cpp:103 #2 0x00007fafec6dbf77 in KWin::DrmOutput::updateModes() (this=0x555d39184960) at /home/apol/devel/frameworks/kwin/src/backends/drm/drm_output.cpp:310 #3 0x00007fafec6e6d03 in KWin::DrmGpu::updateOutputs() (this=0x555d38e812c0) at /home/apol/devel/frameworks/kwin/src/backends/drm/drm_gpu.cpp:267 #4 0x00007fafec6b7951 in KWin::DrmBackend::updateOutputs() (this=0x555d38e4c7b0) at /home/apol/devel/frameworks/kwin/src/backends/drm/drm_backend.cpp:314 #5 0x00007fafec6b8eb9 in KWin::DrmBackend::handleUdevEvent() (this=0x555d38e4c7b0) at /home/apol/devel/frameworks/kwin/src/backends/drm/drm_backend.cpp:256 #6 0x00007fafec6c2208 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (KWin::DrmBackend::*)()>::call(void (KWin::DrmBackend::*)(), KWin::DrmBackend*, void**) (f=(void (KWin::DrmBackend::*)(KWin::DrmBackend * const)) 0x7fafec6b87c0 <KWin::DrmBackend::handleUdevEvent()>, o=0x555d38e4c7b0, arg=0x7ffc20031df0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:152 #7 0x00007fafec6c216d in QtPrivate::FunctionPointer<void (KWin::DrmBackend::*)()>::call<QtPrivate::List<>, void>(void (KWin::DrmBackend::*)(), KWin::DrmBackend*, void**) (f=(void (KWin::DrmBackend::*)(KWin::DrmBackend * const)) 0x7fafec6b87c0 <KWin::DrmBackend::handleUdevEvent()>, o=0x555d38e4c7b0, arg=0x7ffc20031df0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:185 #8 0x00007fafec6c20b2 in QtPrivate::QSlotObject<void (KWin::DrmBackend::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x555d38e820e0, r=0x555d38e4c7b0, a=0x7ffc20031df0, ret=0x0) at /home/apol/devel/kde5/include/QtCore/qobjectdefs_impl.h:418 #9 0x00007faff3d9c293 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffc20031df0, r=0x555d38e4c7b0, this=0x555d38e820e0) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398 #10 doActivate<false>(QObject*, int, void**) (sender=0x555d38e809d0, signal_index=3, argv=0x7ffc20031df0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3886 #11 0x00007faff3d9575f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x555d38e809d0, m=m@entry=0x7faff403c140 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffc20031df0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3946 #12 0x00007faff3d9f77f in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) (this=this@entry=0x555d38e809d0, _t1=..., _t2=<optimized out>, _t3=...) at .moc/moc_qsocketnotifier.cpp:178 #13 0x00007faff3d9ff7b in QSocketNotifier::event(QEvent*) (this=0x555d38e809d0, e=0x7ffc20031f10) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qsocketnotifier.cpp:302 #14 0x00007faff28f36cf in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x555d38e809d0, e=0x7ffc20031f10) at /home/apol/devel/frameworks/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3632 #15 0x00007faff3d65aca in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x555d38e809d0, event=0x7ffc20031f10) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1064 #16 0x00007faff3dba4eb in QEventDispatcherUNIXPrivate::activateSocketNotifiers() (this=0x555d38e12fc0) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:304 #17 0x00007faff3dba94b in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /home/apol/devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:511 #18 0x0000555d3894b71d in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /home/apol/devel/frameworks/qt5/qtbase/src/platformsupport/eventdispatchers/qunixeventdispatcher.cpp:63 #19 0x00007faff3d644cb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffc200320a0, flags=..., flags@entry=...) at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:69 #20 0x00007faff3d6c7a0 in QCoreApplication::exec() () at ../../include/QtCore/../../../../../devel/frameworks/qt5/qtbase/src/corelib/global/qflags.h:121 #21 0x0000555d3880c392 in main(int, char**) (argc=14, argv=0x7ffc20032bb8) at /home/apol/devel/frameworks/kwin/src/main_wayland.cpp:727
Git commit 6bd6ad9d59bc2a4447324ae9ffd5648d670ca7ce by Xaver Hugl. Committed on 28/02/2022 at 17:26. Pushed by zamundaaa into branch 'master'. backends/drm: let DrmGpu handle mode changes Doing a test is not sufficient for mode changes M +1 -1 src/backends/drm/drm_output.cpp https://invent.kde.org/plasma/kwin/commit/6bd6ad9d59bc2a4447324ae9ffd5648d670ca7ce