Bug 520842 - KWin crashes in DrmLutColorOp32::program() via DrmAbstractColorOp::matchPipeline() during idle screen lock with NVIDIA open driver 610 DRM color pipeline
Summary: KWin crashes in DrmLutColorOp32::program() via DrmAbstractColorOp::matchPipel...
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: general (other bugs)
Version First Reported In: 6.6.5
Platform: openSUSE Linux
: HI crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: drkonqi
: 520968 521119 521722 521746 521785 (view as bug list)
Depends on:
Blocks:
 
Reported: 2026-05-30 21:01 UTC by Nathan Babb
Modified: 2026-07-20 13:54 UTC (History)
16 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In: 6.7.1
Sentry Crash Report: https://crash-reports.kde.org/organizations/kde/issues/440109/events/b38f7f1b138f4c84bdb625e98332afc6/


Attachments
kwin crash when unlocking session (29.91 KB, text/plain)
2026-06-11 19:24 UTC, Christophe Marin
Details
drminfo (197.80 KB, application/octet-stream)
2026-06-20 00:35 UTC, Luan Vitor Simião Oliveira
Details
kscreendoctor (3.50 KB, application/octet-stream)
2026-06-20 00:36 UTC, Luan Vitor Simião Oliveira
Details
Updated stacktrace for kwin 6.7.0. (31.22 KB, text/vnd.kde.kcrash-report)
2026-06-20 16:59 UTC, Nathan Babb
Details
Proposed fix: cache DrmObject ID to prevent use-after-free in DrmAtomicCommit::addProperty (2.94 KB, patch)
2026-06-21 02:13 UTC, Raymond Wang
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Nathan Babb 2026-05-30 21:01:24 UTC
Application: kwin_wayland (6.6.5)

ApplicationNotResponding [ANR]: false
Qt Version: 6.11.0
Frameworks Version: 6.26.0
Operating System: Linux 7.0.10-2-default x86_64
Windowing System: Wayland
Distribution: "openSUSE Tumbleweed"
DrKonqi: 6.6.5 [CoredumpBackend]

-- Information about the crash:
Summary: KWin crashes intermittently on idle timeout screen lock, but not on manual lock (Meta-L)
Key finding: Crash is in DrmLutColorOp32::program() → DrmAbstractColorOp::matchPipeline() → DrmPipeline::testPresent(), triggered by a Qt render loop timer

Driver: nvidia-open-driver-G07-610.43.02 which newly introduced DRM color pipeline support
Workaround being tested: options nvidia-drm color_pipeline=0 in modprobe config
Environment: openSUSE Tumbleweed, KWin 6.6.5, KDE Plasma 6.6.5, Wayland, AMD CPU, NVIDIA 4070
Note: KWIN_DRM_NO_ATOMIC=1 does not prevent the crash despite being present in KWin's environment

The crash can be reproduced every time.

-- Backtrace:
Application: KWin (kwin_wayland), signal: Segmentation fault


warning: Can't open file /home/nathan/.cache/kwin/qmlcache/7a6981b9c881c8f43b27aae6dfd31526a76133f1.qmlc (deleted) during file-backed mapping note processing

warning: Can't open file /home/nathan/.cache/plasma_theme_default.kcache (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:pipewire-memfd:flags=0x0000000f,type=2,size=2312 (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:wayland-cursor (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:JITCode:QtQml (deleted) during file-backed mapping note processing

warning: Can't open file /home/nathan/.cache/kwin/qmlcache/747b9d2587b5f602e65f10ecdb68447d78cbdfea.qmlc (deleted) during file-backed mapping note processing

warning: Can't open file /home/nathan/.cache/kwin/qmlcache/4095bdd2f238e455676efc88652ed3a9382ce15a.qmlc (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:wayland-shm (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:JSGCHeap:QtQml (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:unknown-usage:QtQml (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:/.glXXXXXX (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:kwayland-shared (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:JSVMStack:QtQml (deleted) during file-backed mapping note processing
[New LWP 52653]
[New LWP 52682]
[New LWP 52691]
[New LWP 52692]
[New LWP 52714]

This GDB supports auto-downloading debuginfo from the following URLs:
  <https://debuginfod.opensuse.org/>
Enable debuginfod for this session? (y or [n]) [answered N; input not from terminal]
Debuginfod has been disabled.
To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/usr/bin/kwin_wayland --wayland-fd 7 --socket wayland-0 --xwayland-fd 8 --xwayland-fd 9 --xwayland-display :1 --xwayland-xauthority /run/user/1000/xauth_lwHtkG --xwayland'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f91c369d87c in __pthread_kill_implementation () from /lib64/libc.so.6
[Current thread is 1 (Thread 0x7f91bf40a1c0 (LWP 52653))]
python sentry-sdk not installed :(
Using eu-unstrip to resolve modules.
[Current thread is 1 (Thread 0x7f91bf40a1c0 (LWP 52653))]

Thread 5 (Thread 0x7f919ffff6c0 (LWP 52714)):
#0  0x00007f91c36a4252 in __syscall_cancel_arch () from /lib64/libc.so.6
#1  0x00007f91c3697dd8 in __internal_syscall_cancel () from /lib64/libc.so.6
#2  0x00007f91c3697e31 in __syscall_cancel () from /lib64/libc.so.6
#3  0x00007f91c3711eb2 in ppoll () from /lib64/libc.so.6
#4  0x00007f91c2b7656f in ?? () from /lib64/libglib-2.0.so.0
#5  0x00007f91c2b76ce0 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#6  0x00007f91c42aead8 in QEventDispatcherGlib::processEvents (this=0x7f9190000c00, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#7  0x00007f91c3fe7733 in QEventLoop::exec (this=0x7f919fffe8c0, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/global/qflags.h:77
#8  0x00007f91c40f2ad5 in QThread::exec (this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/thread/qthread.cpp:672
#9  0x00007f91c418e88a in QThreadPrivate::start (arg=0x55f795028f50) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/thread/qthread_unix.cpp:466
#10 0x00007f91c369b8f0 in start_thread () from /lib64/libc.so.6
#11 0x00007f91c371fc2c in __clone3 () from /lib64/libc.so.6

Thread 4 (Thread 0x7f91bd7de6c0 (LWP 52692)):
#0  0x00007f91c36a4252 in __syscall_cancel_arch () from /lib64/libc.so.6
#1  0x00007f91c3697dd8 in __internal_syscall_cancel () from /lib64/libc.so.6
#2  0x00007f91c3697e31 in __syscall_cancel () from /lib64/libc.so.6
#3  0x00007f91c3711eb2 in ppoll () from /lib64/libc.so.6
#4  0x00007f91c2b7656f in ?? () from /lib64/libglib-2.0.so.0
#5  0x00007f91c2b76ce0 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#6  0x00007f91c42aead8 in QEventDispatcherGlib::processEvents (this=0x7f91a8000c40, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#7  0x00007f91c3fe7733 in QEventLoop::exec (this=0x7f91bd7dd8c0, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/global/qflags.h:77
#8  0x00007f91c40f2ad5 in QThread::exec (this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/thread/qthread.cpp:672
#9  0x00007f91c418e88a in QThreadPrivate::start (arg=0x55f794b18558) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/thread/qthread_unix.cpp:466
#10 0x00007f91c369b8f0 in start_thread () from /lib64/libc.so.6
#11 0x00007f91c371fc2c in __clone3 () from /lib64/libc.so.6

Thread 3 (Thread 0x7f91a5ffb6c0 (LWP 52691)):
#0  0x00007f91c36a4252 in __syscall_cancel_arch () from /lib64/libc.so.6
#1  0x00007f91c3697dd8 in __internal_syscall_cancel () from /lib64/libc.so.6
#2  0x00007f91c369816c in __futex_abstimed_wait_common () from /lib64/libc.so.6
#3  0x00007f91c369b1dc in pthread_cond_clockwait@GLIBC_2.30 () from /lib64/libc.so.6
#4  0x00007f91c71d862c in KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, QString const&)::{lambda()#1}::operator()() const [clone .lto_priv.0] () at /usr/include/c++/15/bits/std_mutex.h:187
#5  0x00007f91c71da229 in std::__invoke_impl<void, KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__f=...) at /usr/include/c++/15/bits/invoke.h:63
#6  std::__invoke<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__fn=...) at /usr/include/c++/15/bits/invoke.h:98
#7  std::invoke<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__fn=...) at /usr/include/c++/15/functional:122
#8  operator()<> (__closure=<optimized out>) at /usr/include/qt6/QtCore/qthread.h:139
#9  std::__invoke_impl<void, QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > (__f=...) at /usr/include/c++/15/bits/invoke.h:63
#10 std::__invoke<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > (__fn=...) at /usr/include/c++/15/bits/invoke.h:98
#11 std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >::_M_invoke<0> (this=<optimized out>) at /usr/include/c++/15/bits/std_thread.h:303
#12 std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >::operator() (this=<optimized out>) at /usr/include/c++/15/bits/std_thread.h:310
#13 std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >, void>::operator() (this=0x7f91a5ffa880) at /usr/include/c++/15/future:1441
#14 std::__invoke_impl<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >, void>&> (__f=...) at /usr/include/c++/15/bits/invoke.h:63
#15 std::__invoke_r<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >, void>&> (__fn=...) at /usr/include/c++/15/bits/invoke.h:116
#16 std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>(), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >, void> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/15/bits/std_function.h:293
#17 0x00007f91c71d1571 in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>::operator() (this=<optimized out>) at /usr/include/c++/15/bits/std_function.h:593
#18 std::__future_base::_State_baseV2::_M_do_set (this=0x55f794b13260, __f=<optimized out>, __did_set=0x7f91a5ffa837) at /usr/include/c++/15/future:598
#19 0x00007f91c36a0da6 in __pthread_once_slow.isra.0 () from /lib64/libc.so.6
#20 0x00007f91c36a0e39 in pthread_once@GLIBC_2.2.5 () from /lib64/libc.so.6
#21 0x00007f91c71da418 in __gthread_once (__once=0x55f794b13278, __func=<optimized out>) at /usr/include/c++/15/x86_64-suse-linux/bits/gthr-default.h:746
#22 std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>*, bool*> (__once=..., __f=@0x7f91a5ffa850: (void (std::__future_base::_State_baseV2::*)(std::__future_base::_State_baseV2 * const, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()> *, bool *)) 0x7f91c71d1540 <std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>) at /usr/include/c++/15/mutex:918
#23 std::__future_base::_State_baseV2::_M_set_result (this=0x55f794b13260, __res=..., __ignore_failure=true) at /usr/include/c++/15/future:437
#24 std::__future_base::_Deferred_state<std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >, void>::_M_complete_async(void) (this=0x55f794b13260) at /usr/include/c++/15/future:1721
#25 0x00007f91c40e684d in std::__future_base::_State_baseV2::wait (this=0x55f794b13260) at /usr/include/c++/15/future:359
#26 std::__basic_future<void>::_M_get_result (this=0x55f794b0f820) at /usr/include/c++/15/future:750
#27 std::future<void>::get (this=0x55f794b0f820) at /usr/include/c++/15/future:922
#28 QThreadCreateThread::run (this=0x55f794b0f810) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/thread/qthread.cpp:1390
#29 0x00007f91c418e88a in QThreadPrivate::start (arg=0x55f794b0f810) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/thread/qthread_unix.cpp:466
#30 0x00007f91c369b8f0 in start_thread () from /lib64/libc.so.6
#31 0x00007f91c371fc2c in __clone3 () from /lib64/libc.so.6

Thread 2 (Thread 0x7f91bebff6c0 (LWP 52682)):
#0  0x00007f91c36a4252 in __syscall_cancel_arch () from /lib64/libc.so.6
#1  0x00007f91c3697dd8 in __internal_syscall_cancel () from /lib64/libc.so.6
#2  0x00007f91c3697e31 in __syscall_cancel () from /lib64/libc.so.6
#3  0x00007f91c3711eb2 in ppoll () from /lib64/libc.so.6
#4  0x00007f91c2b7656f in ?? () from /lib64/libglib-2.0.so.0
#5  0x00007f91c2b76ce0 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#6  0x00007f91c42aead8 in QEventDispatcherGlib::processEvents (this=0x7f91b8000880, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#7  0x00007f91c3fe7733 in QEventLoop::exec (this=0x7f91bebfe880, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/global/qflags.h:77
#8  0x00007f91c40f2ad5 in QThread::exec (this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/thread/qthread.cpp:672
#9  0x00007f91c5975e1e in ?? () from /lib64/libQt6DBus.so.6
#10 0x00007f91c418e88a in QThreadPrivate::start (arg=0x7f91c59fee40) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/thread/qthread_unix.cpp:466
#11 0x00007f91c369b8f0 in start_thread () from /lib64/libc.so.6
#12 0x00007f91c371fc2c in __clone3 () from /lib64/libc.so.6

Thread 1 (Thread 0x7f91bf40a1c0 (LWP 52653)):
[KCrash Handler]
#4  0x00007f91c71d256e in KWin::DrmAtomicCommit::addProperty (this=0x55f7957f7ac0, prop=..., value=1) at /usr/src/debug/kwin-6.6.5/src/backends/drm/drm_commit.cpp:61
#5  0x00007f91c71d796a in KWin::DrmAbstractColorOp::matchPipeline (this=<optimized out>, commit=<optimized out>, pipeline=...) at /usr/src/debug/kwin-6.6.5/src/backends/drm/drm_colorop.cpp:136
#6  0x00007f91c720b2d3 in operator() (__closure=<synthetic pointer>, pipeline=<optimized out>) at /usr/src/debug/kwin-6.6.5/src/backends/drm/drm_pipeline.cpp:278
#7  std::__invoke_impl<bool, KWin::DrmPipeline::prepareAtomicPlane(KWin::DrmAtomicCommit*, KWin::DrmPlane*, KWin::DrmPipelineLayer*, const std::shared_ptr<KWin::OutputFrame>&)::<lambda(KWin::DrmColorOp*)>&, KWin::DrmColorOp* const&> (__f=<synthetic pointer>...) at /usr/include/c++/15/bits/invoke.h:63
#8  std::__invoke<KWin::DrmPipeline::prepareAtomicPlane(KWin::DrmAtomicCommit*, KWin::DrmPlane*, KWin::DrmPipelineLayer*, const std::shared_ptr<KWin::OutputFrame>&)::<lambda(KWin::DrmColorOp*)>&, KWin::DrmColorOp* const&> (__fn=<synthetic pointer>...) at /usr/include/c++/15/bits/invoke.h:98
#9  std::ranges::__find_if_fn::operator()<QList<KWin::DrmColorOp*>::const_iterator, QList<KWin::DrmColorOp*>::const_iterator, std::identity, KWin::DrmPipeline::prepareAtomicPlane(KWin::DrmAtomicCommit*, KWin::DrmPlane*, KWin::DrmPipelineLayer*, const std::shared_ptr<KWin::OutputFrame>&)::<lambda(KWin::DrmColorOp*)> > (this=<optimized out>, __proj=..., __first=..., __last=..., __pred=...) at /usr/include/c++/15/bits/ranges_util.h:560
#10 std::ranges::__find_if_fn::operator()<const QList<KWin::DrmColorOp*>&> (this=<optimized out>, __proj=..., __r=<synthetic pointer>..., __pred=...) at /usr/include/c++/15/bits/ranges_util.h:571
#11 KWin::DrmPipeline::prepareAtomicPlane (this=this@entry=0x55f794b13860, commit=commit@entry=0x55f7955853a0, plane=0x55f79488dac0, layer=0x55f794bb00d0, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...}) at /usr/src/debug/kwin-6.6.5/src/backends/drm/drm_pipeline.cpp:277
#12 0x00007f91c720bd5d in KWin::DrmPipeline::prepareAtomicCommit (this=0x55f794b13860, commit=commit@entry=0x55f7955853a0, mode=mode@entry=KWin::DrmPipeline::CommitMode::Test, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...}) at /usr/src/debug/kwin-6.6.5/src/backends/drm/drm_pipeline.cpp:189
#13 0x00007f91c720c041 in KWin::DrmPipeline::commitPipelinesAtomic (pipelines=..., mode=mode@entry=KWin::DrmPipeline::CommitMode::Test, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...}, unusedObjects=...) at /usr/src/debug/kwin-6.6.5/src/backends/drm/drm_pipeline.cpp:128
#14 0x00007f91c720c63a in KWin::DrmPipeline::testPresent (this=0x55f794b13860, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...}) at /usr/src/debug/kwin-6.6.5/src/backends/drm/drm_pipeline.cpp:61
#15 KWin::DrmPipeline::testPresent (this=0x55f794b13860, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...}) at /usr/src/debug/kwin-6.6.5/src/backends/drm/drm_pipeline.cpp:53
#16 0x00007f91c71fcca2 in KWin::DrmOutput::testPresentation (this=0x55f794b13d40, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...}) at /usr/src/debug/kwin-6.6.5/src/backends/drm/drm_output.cpp:316
#17 0x00007f91c6ece585 in KWin::Compositor::composite (this=<optimized out>, renderLoop=<optimized out>) at /usr/src/debug/kwin-6.6.5/src/compositor.cpp:826
#18 0x00007f91c4043a2e in QtPrivate::QSlotObjectBase::call (this=0x55f794ef2030, r=<optimized out>, a=0x7ffee52dc2b0) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/kernel/qobjectdefs_impl.h:461
#19 doActivate<false> (sender=0x55f794afe510, signal_index=5, argv=0x7ffee52dc2b0) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/kernel/qobject.cpp:4371
#20 0x00007f91c6f0015b in QMetaObject::activate<void, KWin::RenderLoop*> (sender=<optimized out>, mo=<optimized out>, local_signal_index=2, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs.h:319
#21 KWin::RenderLoop::frameRequested (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin-6.6.5/build/src/kwin_autogen/include/moc_renderloop.cpp:171
#22 0x00007f91c40372d6 in QObject::event (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/kernel/qobject.cpp:1453
#23 0x00007f91c51e8198 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55f794afe510, e=0x7ffee52dc430) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/widgets/kernel/qapplication.cpp:3276
#24 0x00007f91c3fd92d8 in QCoreApplication::notifyInternal2 (receiver=0x55f794afe510, event=0x7ffee52dc430) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/kernel/qcoreapplication.cpp:1109
#25 0x00007f91c418de7c in QTimerInfoList::activateTimers (this=0x55f7948492c8) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/kernel/qtimerinfo_unix.cpp:426
#26 0x00007f91c4197314 in QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=..., flags@entry=...) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/kernel/qeventdispatcher_unix.cpp:503
#27 0x00007f91c4d8fea1 in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/gui/platform/unix/qunixeventdispatcher.cpp:28
#28 0x00007f91c3fe7733 in QEventLoop::exec (this=0x7ffee52dc600, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/global/qflags.h:77
#29 0x00007f91c3fde1e3 in QCoreApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/corelib/kernel/qcoreapplication.cpp:1452
#30 0x00007f91c482e9b0 in QGuiApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/gui/kernel/qguiapplication.cpp:2005
#31 0x00007f91c51e5589 in QApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.11.0/src/widgets/kernel/qapplication.cpp:2546
#32 0x000055f783a069b2 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin-6.6.5/src/main_wayland.cpp:640

Reported using DrKonqi
Comment 1 Nathan Babb 2026-05-30 21:56:55 UTC
Confirmed `options nvidia-drm color_pipeline=0` in modprobe config works around the crash.
Comment 2 Efe Ciftci 2026-05-31 07:52:50 UTC
I confirm this bug as well. The workaround in comment #1 and https://us.download.nvidia.com/XFree86/Linux-x86_64/610.43.02/README/wayland-issues.html works:

> On Linux v6.19 and newer kernels, the nvidia-drm module supports the per-plane DRM color pipeline API, allowing Wayland compositors to offload color management (e.g. for HDR) to NVIDIA display hardware via the upstream COLOR_PIPELINE plane property and associated colorops, in place of NVIDIA's vendor-specific color properties.
> 
> Some Wayland compositors may not yet correctly handle color pipelines that contain non-bypassable colorops, which can cause a blank screen (e.g. when enabling system HDR).
> 
> As a workaround until affected compositors are updated, DRM color pipeline support in nvidia-drm can be disabled with the color_pipeline=0 module parameter for the nvidia-drm kernel module. E.g., to disable it:
> 
> modprobe -r nvidia_drm ; modprobe nvidia_drm color_pipeline=0

Operating System: KDE neon User Edition
KDE Plasma Version: 6.6.5
KDE Frameworks Version: 6.26.0
Qt Version: 6.11.1
Kernel Version: 7.0.0-14-generic (64-bit)
Graphics Platform: Wayland
Processors: 32 × Intel® Core™ i9-14900F
Memory: 32 GiB of RAM (31.1 GiB usable)
Graphics Processor: NVIDIA GeForce RTX 5070 Ti (Driver: nvidia-open, version: 610.43.02-1ubuntu1)
Manufacturer: ASUS
Comment 3 Zamundaaa 2026-06-02 14:14:28 UTC
This should be fixed since https://invent.kde.org/plasma/kwin/-/commit/cac455ad1b88401f2917e1c143424c7788a85665
Comment 4 Zamundaaa 2026-06-09 11:49:47 UTC
*** Bug 521119 has been marked as a duplicate of this bug. ***
Comment 5 Christophe Marin 2026-06-11 19:24:56 UTC
Created attachment 193082 [details]
kwin crash when unlocking session

I'm still getting a crash when unlocking screen with our kwin package tracking git (currently at 8921b6dd).

The backtrace looks similar to the OP one
Comment 6 TraceyC 2026-06-12 22:14:03 UTC
The backtrace indicates kwin 6.6.90

#4  0x00007faaa562cb0e in KWin::DrmAtomicCommit::addProperty (this=0x7faa5c009060, prop=..., value=1) at /usr/src/debug/kwin-6.6.90git.20260610T154349~8921b6dd/src/backends/drm/drm_commit.cpp:61
Comment 7 Christophe Marin 2026-06-12 22:31:03 UTC
(In reply to TraceyC from comment #6)
> The backtrace indicates kwin 6.6.90
> 

Doesn't matter, what does is the git revision (from the master branch).
https://invent.kde.org/plasma/kwin/-/commit/cac455ad1b88401f2917e1c143424c7788a85665 was pushed in the 6.6 branch but not in master
Comment 8 Zamundaaa 2026-06-14 22:00:06 UTC
The fix in master and 6.7 is different, because they have different code: https://invent.kde.org/plasma/kwin/-/commit/44b4557b5c8dd74f9edbedba1d919398fd41176d
Comment 9 Christophe Marin 2026-06-15 12:59:37 UTC
(In reply to Zamundaaa from comment #8)
> The fix in master and 6.7 is different, because they have different code:
> https://invent.kde.org/plasma/kwin/-/commit/
> 44b4557b5c8dd74f9edbedba1d919398fd41176d

Then it's not fixed. With kwin master currently at e65ba0c8:

Thread 15 (Thread 0x7f71119ff6c0 (LWP 13717)):
#0  0x00007f718c2a4252 in __syscall_cancel_arch () at /lib64/libc.so.6
#1  0x00007f718c297dd8 in __internal_syscall_cancel () at /lib64/libc.so.6
#2  0x00007f718c29816c in __futex_abstimed_wait_common () at /lib64/libc.so.6
#3  0x00007f718c29afc5 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#4  0x00007f718cd95fa4 in QWaitConditionPrivate::wait_relative (this=<optimized out>, deadline=...) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qwaitcondition_unix.cpp:58
#5  QWaitConditionPrivate::wait (this=0x7f7144003e40, deadline=...) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qwaitcondition_unix.cpp:66
#6  QWaitCondition::wait (this=<optimized out>, mutex=0x55b811f23f68, deadline=...) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qwaitcondition_unix.cpp:146
#7  0x00007f718ccf2fa3 in QThreadPoolThread::run (this=0x55b812592180) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qthreadpool.cpp:120
#8  0x00007f718cd8ffa0 in QThreadPrivate::start (arg=0x55b812592180) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qthread_unix.cpp:466
#9  0x00007f718c29b8f0 in start_thread () at /lib64/libc.so.6
#10 0x00007f718c31fc2c in __clone3 () at /lib64/libc.so.6

Thread 14 (Thread 0x7f71111fe6c0 (LWP 13715)):
#0  0x00007f718c2a4252 in __syscall_cancel_arch () at /lib64/libc.so.6
#1  0x00007f718c297dd8 in __internal_syscall_cancel () at /lib64/libc.so.6
#2  0x00007f718c29816c in __futex_abstimed_wait_common () at /lib64/libc.so.6
#3  0x00007f718c29afc5 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#4  0x00007f718cd95fa4 in QWaitConditionPrivate::wait_relative (this=<optimized out>, deadline=...) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qwaitcondition_unix.cpp:58
#5  QWaitConditionPrivate::wait (this=0x55b8125e8ab0, deadline=...) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qwaitcondition_unix.cpp:66
#6  QWaitCondition::wait (this=<optimized out>, mutex=0x55b811f23f68, deadline=...) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qwaitcondition_unix.cpp:146
#7  0x00007f718ccf2fa3 in QThreadPoolThread::run (this=0x55b81284c960) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qthreadpool.cpp:120
#8  0x00007f718cd8ffa0 in QThreadPrivate::start (arg=0x55b81284c960) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qthread_unix.cpp:466
#9  0x00007f718c29b8f0 in start_thread () at /lib64/libc.so.6
#10 0x00007f718c31fc2c in __clone3 () at /lib64/libc.so.6

Thread 13 (Thread 0x7f71247ff6c0 (LWP 13714)):
#0  0x00007f718c2a4252 in __syscall_cancel_arch () at /lib64/libc.so.6
#1  0x00007f718c297dd8 in __internal_syscall_cancel () at /lib64/libc.so.6
#2  0x00007f718c29816c in __futex_abstimed_wait_common () at /lib64/libc.so.6
#3  0x00007f718c29afc5 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#4  0x00007f718cd95fa4 in QWaitConditionPrivate::wait_relative (this=<optimized out>, deadline=...) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qwaitcondition_unix.cpp:58
#5  QWaitConditionPrivate::wait (this=0x55b8111b0fa0, deadline=...) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qwaitcondition_unix.cpp:66
#6  QWaitCondition::wait (this=<optimized out>, mutex=0x55b811f23f68, deadline=...) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qwaitcondition_unix.cpp:146
#7  0x00007f718ccf2fa3 in QThreadPoolThread::run (this=0x55b811a2aba0) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qthreadpool.cpp:120
#8  0x00007f718cd8ffa0 in QThreadPrivate::start (arg=0x55b811a2aba0) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qthread_unix.cpp:466
#9  0x00007f718c29b8f0 in start_thread () at /lib64/libc.so.6
#10 0x00007f718c31fc2c in __clone3 () at /lib64/libc.so.6

Thread 12 (Thread 0x7f7166bfd6c0 (LWP 2615)):
#0  0x00007f718c2a4252 in __syscall_cancel_arch () at /lib64/libc.so.6
#1  0x00007f718c297dd8 in __internal_syscall_cancel () at /lib64/libc.so.6
#2  0x00007f718c29816c in __futex_abstimed_wait_common () at /lib64/libc.so.6
#3  0x00007f718c29afc5 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#4  0x00007f717e379800 in ??? () at /lib64/libnvidia-eglcore.so.610.43.02
#5  0x00007f717e708be9 in ??? () at /lib64/libnvidia-eglcore.so.610.43.02
#6  0x00007f717e37d11a in ??? () at /lib64/libnvidia-eglcore.so.610.43.02
#7  0x00007f718c29b8f0 in start_thread () at /lib64/libc.so.6
#8  0x00007f718c31fc2c in __clone3 () at /lib64/libc.so.6

Thread 11 (Thread 0x7f713ffff6c0 (LWP 2650)):
#0  0x00007f718c2a4252 in __syscall_cancel_arch () at /lib64/libc.so.6
#1  0x00007f718c297dd8 in __internal_syscall_cancel () at /lib64/libc.so.6
#2  0x00007f718c297e31 in __syscall_cancel () at /lib64/libc.so.6
#3  0x00007f718c311eb2 in ppoll () at /lib64/libc.so.6
#4  0x00007f718b70856f in ??? () at /lib64/libglib-2.0.so.0
#5  0x00007f718b708ce0 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#6  0x00007f718ceabc28 in QEventDispatcherGlib::processEvents (this=0x7f7134000c00, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/kernel/qeventdispatcher_glib.cpp:402
#7  0x00007f718cbe9a73 in QEventLoop::exec (this=0x7f713fffe8b0, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/global/qflags.h:78
#8  0x00007f718ccf5895 in QThread::exec (this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qthread.cpp:672
#9  0x00007f718cd8ffa0 in QThreadPrivate::start (arg=0x55b811d83b90) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qthread_unix.cpp:466
#10 0x00007f718c29b8f0 in start_thread () at /lib64/libc.so.6
#11 0x00007f718c31fc2c in __clone3 () at /lib64/libc.so.6

Thread 10 (Thread 0x7f714e9fd6c0 (LWP 2627)):
#0  0x00007f718c2a4252 in __syscall_cancel_arch () at /lib64/libc.so.6
#1  0x00007f718c297dd8 in __internal_syscall_cancel () at /lib64/libc.so.6
#2  0x00007f718c297e31 in __syscall_cancel () at /lib64/libc.so.6
#3  0x00007f718c311eb2 in ppoll () at /lib64/libc.so.6
#4  0x00007f718b70856f in ??? () at /lib64/libglib-2.0.so.0
#5  0x00007f718b708ce0 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#6  0x00007f718ceabc28 in QEventDispatcherGlib::processEvents (this=0x7f7144000c40, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/kernel/qeventdispatcher_glib.cpp:402
#7  0x00007f718cbe9a73 in QEventLoop::exec (this=0x7f714e9fc8b0, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/global/qflags.h:78
#8  0x00007f718ccf5895 in QThread::exec (this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qthread.cpp:672
#9  0x00007f718cd8ffa0 in QThreadPrivate::start (arg=0x55b811668708) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qthread_unix.cpp:466
#10 0x00007f718c29b8f0 in start_thread () at /lib64/libc.so.6
#11 0x00007f718c31fc2c in __clone3 () at /lib64/libc.so.6

Thread 9 (Thread 0x7f712c8486c0 (LWP 13716)):
#0  0x00007f718c2a4252 in __syscall_cancel_arch () at /lib64/libc.so.6
#1  0x00007f718c297dd8 in __internal_syscall_cancel () at /lib64/libc.so.6
#2  0x00007f718c29816c in __futex_abstimed_wait_common () at /lib64/libc.so.6
#3  0x00007f718c29afc5 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#4  0x00007f718cd95fa4 in QWaitConditionPrivate::wait_relative (this=<optimized out>, deadline=...) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qwaitcondition_unix.cpp:58
#5  QWaitConditionPrivate::wait (this=0x55b8111b5fe0, deadline=...) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qwaitcondition_unix.cpp:66
#6  QWaitCondition::wait (this=<optimized out>, mutex=0x55b811f23f68, deadline=...) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qwaitcondition_unix.cpp:146
#7  0x00007f718ccf2fa3 in QThreadPoolThread::run (this=0x55b811a2abd0) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qthreadpool.cpp:120
#8  0x00007f718cd8ffa0 in QThreadPrivate::start (arg=0x55b811a2abd0) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qthread_unix.cpp:466
#9  0x00007f718c29b8f0 in start_thread () at /lib64/libc.so.6
#10 0x00007f718c31fc2c in __clone3 () at /lib64/libc.so.6

Thread 8 (Thread 0x7f71673fe6c0 (LWP 2613)):
#0  0x00007f718c2a4252 in __syscall_cancel_arch () at /lib64/libc.so.6
#1  0x00007f718c297dd8 in __internal_syscall_cancel () at /lib64/libc.so.6
#2  0x00007f718c29816c in __futex_abstimed_wait_common () at /lib64/libc.so.6
#3  0x00007f718c29ade8 in pthread_cond_wait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#4  0x00007f717e37979f in ??? () at /lib64/libnvidia-eglcore.so.610.43.02
#5  0x00007f717e6fddb8 in ??? () at /lib64/libnvidia-eglcore.so.610.43.02
#6  0x00007f717e37d11a in ??? () at /lib64/libnvidia-eglcore.so.610.43.02
#7  0x00007f718c29b8f0 in start_thread () at /lib64/libc.so.6
#8  0x00007f718c31fc2c in __clone3 () at /lib64/libc.so.6

Thread 7 (Thread 0x7f71663fc6c0 (LWP 2616)):
#0  0x00007f718c2a4252 in __syscall_cancel_arch () at /lib64/libc.so.6
#1  0x00007f718c297dd8 in __internal_syscall_cancel () at /lib64/libc.so.6
#2  0x00007f718c29816c in __futex_abstimed_wait_common () at /lib64/libc.so.6
#3  0x00007f718c29afc5 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#4  0x00007f717e379800 in ??? () at /lib64/libnvidia-eglcore.so.610.43.02
#5  0x00007f717e6e7214 in ??? () at /lib64/libnvidia-eglcore.so.610.43.02
#6  0x00007f717e37d11a in ??? () at /lib64/libnvidia-eglcore.so.610.43.02
#7  0x00007f718c29b8f0 in start_thread () at /lib64/libc.so.6
#8  0x00007f718c31fc2c in __clone3 () at /lib64/libc.so.6

Thread 6 (Thread 0x7f7164e826c0 (LWP 2623)):
#0  0x00007f718c2a4252 in __syscall_cancel_arch () at /lib64/libc.so.6
#1  0x00007f718c297dd8 in __internal_syscall_cancel () at /lib64/libc.so.6
#2  0x00007f718c29816c in __futex_abstimed_wait_common () at /lib64/libc.so.6
#3  0x00007f718c29afc5 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#4  0x00007f717e379800 in ??? () at /lib64/libnvidia-eglcore.so.610.43.02
#5  0x00007f717e84b1f1 in ??? () at /lib64/libnvidia-eglcore.so.610.43.02
#6  0x00007f717e83d97e in ??? () at /lib64/libnvidia-eglcore.so.610.43.02
#7  0x00007f717e37d11a in ??? () at /lib64/libnvidia-eglcore.so.610.43.02
#8  0x00007f718c29b8f0 in start_thread () at /lib64/libc.so.6
#9  0x00007f718c31fc2c in __clone3 () at /lib64/libc.so.6

Thread 5 (Thread 0x7f714f1fe6c0 (LWP 2626)):
#0  0x00007f718c2a4252 in __syscall_cancel_arch () at /lib64/libc.so.6
#1  0x00007f718c297dd8 in __internal_syscall_cancel () at /lib64/libc.so.6
#2  0x00007f718c29816c in __futex_abstimed_wait_common () at /lib64/libc.so.6
#3  0x00007f718c29b1dc in pthread_cond_clockwait@GLIBC_2.30 () at /lib64/libc.so.6
#4  0x00007f718fe312fc in KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, QString const&)::{lambda()#1}::operator()() const [clone .lto_priv.0] () at /usr/include/c++/15/bits/std_mutex.h:187
#5  0x00007f718fe33329 in std::__invoke_impl<void, KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__f=<optimized out>) at /usr/include/c++/15/bits/invoke.h:63
#6  std::__invoke<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__fn=<optimized out>) at /usr/include/c++/15/bits/invoke.h:98
#7  std::invoke<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__fn=<optimized out>) at /usr/include/c++/15/functional:122
#8  operator()<> (__closure=<optimized out>) at /usr/include/qt6/QtCore/qthread.h:139
#9  std::__invoke_impl<void, QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > (__f=<optimized out>) at /usr/include/c++/15/bits/invoke.h:63
#10 std::__invoke<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > (__fn=<optimized out>) at /usr/include/c++/15/bits/invoke.h:98
#11 std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >::_M_invoke<0> (this=<optimized out>) at /usr/include/c++/15/bits/std_thread.h:303
#12 std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >::operator() (this=<optimized out>) at /usr/include/c++/15/bits/std_thread.h:310
#13 std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >, void>::operator() (this=0x7f714f1fd870) at /usr/include/c++/15/future:1441
#14 std::__invoke_impl<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >, void>&> (__f=...) at /usr/include/c++/15/bits/invoke.h:63
#15 std::__invoke_r<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >, void>&> (__fn=...) at /usr/include/c++/15/bits/invoke.h:116
#16 std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>(), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >, void> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/15/bits/std_function.h:293
#17 0x00007f718fe292a1 in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>::operator() (this=<optimized out>) at /usr/include/c++/15/bits/std_function.h:593
#18 std::__future_base::_State_baseV2::_M_do_set (this=0x55b8116644a0, __f=<optimized out>, __did_set=0x7f714f1fd827) at /usr/include/c++/15/future:598
#19 0x00007f718c2a0da6 in __pthread_once_slow.isra.0 () at /lib64/libc.so.6
#20 0x00007f718c2a0e39 in pthread_once@GLIBC_2.2.5 () at /lib64/libc.so.6
#21 0x00007f718fe33518 in __gthread_once (__once=0x55b8116644b8, __func=<optimized out>) at /usr/include/c++/15/x86_64-suse-linux/bits/gthr-default.h:746
#22 std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>*, bool*> (__once=..., __f=@0x7f714f1fd840: (void (std::__future_base::_State_baseV2::*)(std::__future_base::_State_baseV2 * const, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()> *, bool *)) 0x7f718fe29270 <std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>) at /usr/include/c++/15/mutex:918
#23 std::__future_base::_State_baseV2::_M_set_result (this=0x55b8116644a0, __res=..., __ignore_failure=true) at /usr/include/c++/15/future:437
#24 std::__future_base::_Deferred_state<std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >, void>::_M_complete_async(void) (this=0x55b8116644a0) at /usr/include/c++/15/future:1721
#25 0x00007f718cceb96d in std::__future_base::_State_baseV2::wait (this=0x55b8116644a0) at /usr/include/c++/15/future:359
#26 std::__basic_future<void>::_M_get_result (this=0x55b8116661e0) at /usr/include/c++/15/future:750
#27 std::future<void>::get (this=0x55b8116661e0) at /usr/include/c++/15/future:922
#28 QThreadCreateThread::run (this=0x55b8116661d0) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qthread.cpp:1390
#29 0x00007f718cd8ffa0 in QThreadPrivate::start (arg=0x55b8116661d0) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qthread_unix.cpp:466
#30 0x00007f718c29b8f0 in start_thread () at /lib64/libc.so.6
#31 0x00007f718c31fc2c in __clone3 () at /lib64/libc.so.6

Thread 4 (Thread 0x7f714f9ff6c0 (LWP 2625)):
#0  0x00007f718c2a4252 in __syscall_cancel_arch () at /lib64/libc.so.6
#1  0x00007f718c297dd8 in __internal_syscall_cancel () at /lib64/libc.so.6
#2  0x00007f718c29816c in __futex_abstimed_wait_common () at /lib64/libc.so.6
#3  0x00007f718c29b1dc in pthread_cond_clockwait@GLIBC_2.30 () at /lib64/libc.so.6
#4  0x00007f718fe312fc in KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, QString const&)::{lambda()#1}::operator()() const [clone .lto_priv.0] () at /usr/include/c++/15/bits/std_mutex.h:187
#5  0x00007f718fe33329 in std::__invoke_impl<void, KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__f=<optimized out>) at /usr/include/c++/15/bits/invoke.h:63
#6  std::__invoke<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__fn=<optimized out>) at /usr/include/c++/15/bits/invoke.h:98
#7  std::invoke<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__fn=<optimized out>) at /usr/include/c++/15/functional:122
#8  operator()<> (__closure=<optimized out>) at /usr/include/qt6/QtCore/qthread.h:139
#9  std::__invoke_impl<void, QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > (__f=<optimized out>) at /usr/include/c++/15/bits/invoke.h:63
#10 std::__invoke<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > (__fn=<optimized out>) at /usr/include/c++/15/bits/invoke.h:98
#11 std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >::_M_invoke<0> (this=<optimized out>) at /usr/include/c++/15/bits/std_thread.h:303
#12 std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >::operator() (this=<optimized out>) at /usr/include/c++/15/bits/std_thread.h:310
#13 std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >, void>::operator() (this=0x7f714f9fe870) at /usr/include/c++/15/future:1441
#14 std::__invoke_impl<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >, void>&> (__f=...) at /usr/include/c++/15/bits/invoke.h:63
#15 std::__invoke_r<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >, void>&> (__fn=...) at /usr/include/c++/15/bits/invoke.h:116
#16 std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>(), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >, void> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/15/bits/std_function.h:293
#17 0x00007f718fe292a1 in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>::operator() (this=<optimized out>) at /usr/include/c++/15/bits/std_function.h:593
#18 std::__future_base::_State_baseV2::_M_do_set (this=0x55b811664080, __f=<optimized out>, __did_set=0x7f714f9fe827) at /usr/include/c++/15/future:598
#19 0x00007f718c2a0da6 in __pthread_once_slow.isra.0 () at /lib64/libc.so.6
#20 0x00007f718c2a0e39 in pthread_once@GLIBC_2.2.5 () at /lib64/libc.so.6
#21 0x00007f718fe33518 in __gthread_once (__once=0x55b811664098, __func=<optimized out>) at /usr/include/c++/15/x86_64-suse-linux/bits/gthr-default.h:746
#22 std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>*, bool*> (__once=..., __f=@0x7f714f9fe840: (void (std::__future_base::_State_baseV2::*)(std::__future_base::_State_baseV2 * const, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()> *, bool *)) 0x7f718fe29270 <std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>) at /usr/include/c++/15/mutex:918
#23 std::__future_base::_State_baseV2::_M_set_result (this=0x55b811664080, __res=..., __ignore_failure=true) at /usr/include/c++/15/future:437
#24 std::__future_base::_Deferred_state<std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:67&& ...)> > >, void>::_M_complete_async(void) (this=0x55b811664080) at /usr/include/c++/15/future:1721
#25 0x00007f718cceb96d in std::__future_base::_State_baseV2::wait (this=0x55b811664080) at /usr/include/c++/15/future:359
#26 std::__basic_future<void>::_M_get_result (this=0x55b811665020) at /usr/include/c++/15/future:750
#27 std::future<void>::get (this=0x55b811665020) at /usr/include/c++/15/future:922
#28 QThreadCreateThread::run (this=0x55b811665010) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qthread.cpp:1390
#29 0x00007f718cd8ffa0 in QThreadPrivate::start (arg=0x55b811665010) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qthread_unix.cpp:466
#30 0x00007f718c29b8f0 in start_thread () at /lib64/libc.so.6
#31 0x00007f718c31fc2c in __clone3 () at /lib64/libc.so.6

Thread 3 (Thread 0x7f7186dff6c0 (LWP 2601)):
#0  0x00007f718c2a4252 in __syscall_cancel_arch () at /lib64/libc.so.6
#1  0x00007f718c297dd8 in __internal_syscall_cancel () at /lib64/libc.so.6
#2  0x00007f718c297e31 in __syscall_cancel () at /lib64/libc.so.6
#3  0x00007f718c311eb2 in ppoll () at /lib64/libc.so.6
#4  0x00007f718b70856f in ??? () at /lib64/libglib-2.0.so.0
#5  0x00007f718b708ce0 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#6  0x00007f718ceabc28 in QEventDispatcherGlib::processEvents (this=0x7f7180000880, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/kernel/qeventdispatcher_glib.cpp:402
#7  0x00007f718cbe9a73 in QEventLoop::exec (this=0x7f7186dfe870, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/global/qflags.h:78
#8  0x00007f718ccf5895 in QThread::exec (this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qthread.cpp:672
#9  0x00007f718e46bcde in ??? () at /lib64/libQt6DBus.so.6
#10 0x00007f718cd8ffa0 in QThreadPrivate::start (arg=0x7f718e4f6e40) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/thread/qthread_unix.cpp:466
#11 0x00007f718c29b8f0 in start_thread () at /lib64/libc.so.6
#12 0x00007f718c31fc2c in __clone3 () at /lib64/libc.so.6

Thread 2 (Thread 0x7f7167bff6c0 (LWP 2612)):
#0  0x00007f718c2a4252 in __syscall_cancel_arch () at /lib64/libc.so.6
#1  0x00007f718c297dd8 in __internal_syscall_cancel () at /lib64/libc.so.6
#2  0x00007f718c29816c in __futex_abstimed_wait_common () at /lib64/libc.so.6
#3  0x00007f718c29afc5 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libc.so.6
#4  0x00007f717e379800 in ??? () at /lib64/libnvidia-eglcore.so.610.43.02
#5  0x00007f717e6ea43a in ??? () at /lib64/libnvidia-eglcore.so.610.43.02
#6  0x00007f717e37d11a in ??? () at /lib64/libnvidia-eglcore.so.610.43.02
#7  0x00007f718c29b8f0 in start_thread () at /lib64/libc.so.6
#8  0x00007f718c31fc2c in __clone3 () at /lib64/libc.so.6

Thread 1 (Thread 0x7f71878c4c80 (LWP 2552)):
[KCrash Handler]
#4  0x00007f718fe2c84e in KWin::DrmAtomicCommit::addProperty (this=0x7f7140006270, prop=..., value=1) at /usr/src/debug/kwin-6.7.80git.20260612T140333~e65ba0c8/src/backends/drm/drm_commit.cpp:61
#5  0x00007f718fe24a1d in KWin::DrmAbstractColorOp::matchPipeline (this=0x55b8115b9d90, commit=0x55b812a22970, pipeline=...) at /usr/src/debug/kwin-6.7.80git.20260612T140333~e65ba0c8/src/backends/drm/drm_colorop.cpp:262
#6  0x00007f718fe5654b in operator() (__closure=<synthetic pointer>, pipeline=<optimized out>) at /usr/src/debug/kwin-6.7.80git.20260612T140333~e65ba0c8/src/backends/drm/drm_pipeline.cpp:281
#7  std::__invoke_impl<bool, KWin::DrmPipeline::prepareAtomicPlane(KWin::DrmAtomicCommit*, KWin::DrmPlane*, KWin::DrmPipelineLayer*, const std::shared_ptr<KWin::OutputFrame>&)::<lambda(KWin::DrmColorOp*)>&, KWin::DrmColorOp* const&> (__f=<synthetic pointer>...) at /usr/include/c++/15/bits/invoke.h:63
#8  std::__invoke<KWin::DrmPipeline::prepareAtomicPlane(KWin::DrmAtomicCommit*, KWin::DrmPlane*, KWin::DrmPipelineLayer*, const std::shared_ptr<KWin::OutputFrame>&)::<lambda(KWin::DrmColorOp*)>&, KWin::DrmColorOp* const&> (__fn=<synthetic pointer>...) at /usr/include/c++/15/bits/invoke.h:98
#9  std::ranges::__find_if_fn::operator()<QList<KWin::DrmColorOp*>::const_iterator, QList<KWin::DrmColorOp*>::const_iterator, std::identity, KWin::DrmPipeline::prepareAtomicPlane(KWin::DrmAtomicCommit*, KWin::DrmPlane*, KWin::DrmPipelineLayer*, const std::shared_ptr<KWin::OutputFrame>&)::<lambda(KWin::DrmColorOp*)> > (this=<optimized out>, __proj=..., __first=..., __last=..., __pred=...) at /usr/include/c++/15/bits/ranges_util.h:560
#10 std::ranges::__find_if_fn::operator()<const QList<KWin::DrmColorOp*>&> (this=<optimized out>, __proj=..., __r=<synthetic pointer>..., __pred=...) at /usr/include/c++/15/bits/ranges_util.h:571
#11 KWin::DrmPipeline::prepareAtomicPlane (this=this@entry=0x55b811664e80, commit=commit@entry=0x55b812a22970, plane=0x55b81157a7f0, layer=0x55b811f41640, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...}) at /usr/src/debug/kwin-6.7.80git.20260612T140333~e65ba0c8/src/backends/drm/drm_pipeline.cpp:280
#12 0x00007f718fe57dcd in KWin::DrmPipeline::prepareAtomicCommit (this=0x55b811664e80, commit=commit@entry=0x55b812a22970, mode=mode@entry=KWin::DrmPipeline::CommitMode::Test, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...}) at /usr/src/debug/kwin-6.7.80git.20260612T140333~e65ba0c8/src/backends/drm/drm_pipeline.cpp:189
#13 0x00007f718fe580ad in KWin::DrmPipeline::commitPipelinesAtomic (pipelines=..., mode=mode@entry=KWin::DrmPipeline::CommitMode::Test, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...}, unusedObjects=...) at /usr/src/debug/kwin-6.7.80git.20260612T140333~e65ba0c8/src/backends/drm/drm_pipeline.cpp:128
#14 0x00007f718fe58bda in KWin::DrmPipeline::testPresent (this=0x55b811664e80, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...}) at /usr/src/debug/kwin-6.7.80git.20260612T140333~e65ba0c8/src/backends/drm/drm_pipeline.cpp:61
#15 KWin::DrmPipeline::testPresent (this=this@entry=0x55b811664e80, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...}) at /usr/src/debug/kwin-6.7.80git.20260612T140333~e65ba0c8/src/backends/drm/drm_pipeline.cpp:53
#16 0x00007f718fe58d12 in KWin::DrmOutput::testPresentation (this=0x55b811665140, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...}) at /usr/src/debug/kwin-6.7.80git.20260612T140333~e65ba0c8/src/backends/drm/drm_output.cpp:307
#17 0x00007f718faec8f9 in KWin::Compositor::setupLayers (this=<optimized out>, sceneView=0x55b8124692e0, logicalOutput=0x55b811a26520, backendOutput=<optimized out>, outputLayers=<optimized out>, assignments=std::unordered_map with 1 element = {...}, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...}, type=KWin::Compositor::SetupType::Ideal, toUpdate=std::unordered_set with 1 element = {...}) at /usr/src/debug/kwin-6.7.80git.20260612T140333~e65ba0c8/src/compositor.cpp:644
#18 0x00007f718faf316b in KWin::Compositor::composite (this=<optimized out>, renderLoop=<optimized out>) at /usr/include/c++/15/optional:326
#19 0x00007f718cc4626e in QtPrivate::QSlotObjectBase::call (this=0x55b81248dee0, r=<optimized out>, a=0x7ffcdce69f90) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/kernel/qobjectdefs_impl.h:462
#20 doActivate<false> (sender=0x55b81157c680, signal_index=5, argv=0x7ffcdce69f90) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/kernel/qobject.cpp:4372
#21 0x00007f718fb460cb in QMetaObject::activate<void, KWin::RenderLoop*> (sender=<optimized out>, mo=<optimized out>, local_signal_index=2, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs.h:320
#22 KWin::RenderLoop::frameRequested (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin-6.7.80git.20260612T140333~e65ba0c8/build/src/kwin_autogen/include/moc_renderloop.cpp:171
#23 0x00007f718cc39e76 in QObject::event (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/kernel/qobject.cpp:1454
#24 0x00007f718dde82d8 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6
#25 0x00007f718cbdb0c8 in QCoreApplication::notifyInternal2 (receiver=0x55b81157c680, event=0x7ffcdce6a110) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/kernel/qcoreapplication.cpp:1114
#26 0x00007f718cd8f57c in QTimerInfoList::activateTimers (this=0x55b8110ff088) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/kernel/qtimerinfo_unix.cpp:427
#27 0x00007f718cd98b54 in QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/kernel/qeventdispatcher_unix.cpp:504
#28 0x00007f718d995f81 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Gui.so.6
#29 0x00007f718cbe9a73 in QEventLoop::exec (this=0x7ffcdce6a2e0, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/global/qflags.h:78
#30 0x00007f718cbdf0c3 in QCoreApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.11.1/src/corelib/kernel/qcoreapplication.cpp:1457
#31 0x000055b7e722190b in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin-6.7.80git.20260612T140333~e65ba0c8/src/main_wayland.cpp:657
Comment 10 Zamundaaa 2026-06-16 17:53:10 UTC
How are you triggering the crash?
Comment 11 TraceyC 2026-06-16 17:55:49 UTC
.
Comment 12 Christophe Marin 2026-06-16 18:39:24 UTC
(In reply to Zamundaaa from comment #10)
> How are you triggering the crash?

It happens when unlocking session due to idleness. After kwin crashed and restarted once, the crash doesn't happen. Coincidentally, firefox also crashes when that happens
Comment 13 Christophe Marin 2026-06-16 19:07:30 UTC
(In reply to Christophe Marin from comment #12)
> (In reply to Zamundaaa from comment #10)
> > How are you triggering the crash?
> 
> It happens when unlocking session due to idleness. After kwin crashed and
> restarted once, the crash doesn't happen. Coincidentally, firefox also
> crashes when that happens

More details:
- session restoration on login is disabled
- powerdevilrc content:

[AC][Display]
DimDisplayIdleTimeoutSec=600
TurnOffDisplayIdleTimeoutSec=1200
TurnOffDisplayIdleTimeoutWhenLockedSec=120

[AC][SuspendAndShutdown]
AutoSuspendAction=0

I tried reducing the idle timeout, but it didn't trigger the crash. Something else must be involved, but I don't see what I could try.
Comment 14 zazomazzo 2026-06-19 12:48:01 UTC
I can reproduce what looks like the same crash, but in a more severe variant: it happens on every login / compositor startup, not only intermittently on idle screen lock.

Symptom: KWin segfaults immediately during compositor startup, restarts, and crashes again in a loop, so the Plasma session never comes up. ("Failed to start KDE Plasma Workspace.")

Environment:
- KWin / Plasma 6.7.0 (Wayland)
- nvidia-open driver 610.43.02 (same as this report), DRM color pipeline support
- CachyOS (Arch-based), kernel 7.0.12-1-cachyos (linux-cachyos)
- The previous Plasma 6.6.5 stack on the exact same driver was unaffected; the crash started right after the 6.6.5 → 6.7.0 upgrade.

Crashing thread backtrace (from coredumpctl, journald):
kernel: kwin_wayland[1018]: segfault at 38 ip ... in libkwin.so.6.7.0[58c038,...]

Stack trace of thread 1018 (kwin_wayland), SIGSEGV:
#0  libkwin.so.6 + 0x58c038
#1  libkwin.so.6 + 0x584870
#2  libkwin.so.6 + 0x5c1521
#3  libkwin.so.6 + 0x5c3199
#4  libkwin.so.6 + 0x5c34e2
#5  libkwin.so.6 + 0x5b4c15
#6  KWin::DrmOutput::testPresentation(std::shared_ptr<KWin::OutputFrame> const&)   (libkwin.so.6 + 0x5b5bef)
#7  KWin::Compositor::setupLayers(...)                                             (libkwin.so.6 + 0x1ab554)
#8  KWin::Compositor::composite(KWin::RenderLoop*)                                 (libkwin.so.6 + 0x1ae11b)
#9  libQt6Core.so.6 + 0x1f081b
#10 KWin::RenderLoop::frameRequested(KWin::RenderLoop*)                            (libkwin.so.6 + 0x2172b7)
... QCoreApplication event loop / QTimerInfoList::activateTimers ...

This matches the path described here (Compositor::composite() → setupLayers() → DrmOutput::testPresentation() → DrmPipeline::testPresent() → color-op pipeline) and is triggered by the Qt render loop timer. The deeper frames (#0–#5) are unresolved in my dump (no debug symbols installed), but frame #6 DrmOutput::testPresentation plus the identical driver version 610.43.02 strongly suggest the same root cause in the new NVIDIA DRM color pipeline.

Workaround confirmed: adding options nvidia-drm color_pipeline=0 (modprobe) and rebuilding the initramfs lets KWin 6.7.0 start normally.

I'm happy to provide a fully symbolized backtrace if kwin-debug/debuginfod symbols would help — just let me know which frames are most useful.
Comment 15 Bug Janitor Service 2026-06-19 13:34:09 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/9426
Comment 16 Zamundaaa 2026-06-19 14:30:39 UTC
*** Bug 521722 has been marked as a duplicate of this bug. ***
Comment 17 Zamundaaa 2026-06-19 15:01:59 UTC
Git commit cf00d9712316edecb4e1014bffe925136a74f072 by Xaver Hugl.
Committed on 19/06/2026 at 13:32.
Pushed by zamundaaa into branch 'Plasma/6.7'.

backends/drm: disable color pipelines on Nvidia

They trigger crashes in KWin, and I haven't found a way to even replicate that
crash on my setup, so let's just turn it off until it's fixed.

M  +1    -1    src/backends/drm/drm_gpu.cpp

https://invent.kde.org/plasma/kwin/-/commit/cf00d9712316edecb4e1014bffe925136a74f072
Comment 18 Efe Ciftci 2026-06-19 16:31:05 UTC
It seems the problem was solved for me with the arrival of Plasma 6.7, before this latest MR. I undid the workaround and encountered zero crashes in the last few days.

Operating System: KDE neon User Edition
KDE Plasma Version: 6.7.0
KDE Frameworks Version: 6.27.0
Qt Version: 6.11.1
Kernel Version: 7.0.0-14-generic (64-bit)
Graphics Platform: Wayland
Processors: 32 × Intel® Core™ i9-14900F
Memory: 32 GiB of RAM (31.1 GiB usable)
Graphics Processor: NVIDIA GeForce RTX 5070 Ti (Driver: nvidia-open, version: 610.43.02-1ubuntu1)
Manufacturer: ASUS
Comment 19 TraceyC 2026-06-19 16:41:41 UTC
(In reply to Efe Ciftci from comment #18)
> It seems the problem was solved for me with the arrival of Plasma 6.7,
> before this latest MR. I undid the workaround and encountered zero crashes
> in the last few days.
> 
That's great news, thanks for confirming. Since the fix was merged into 6.6.6, I'll mark this resolved. If anyone still experiences this crash with the same backtrace, feel free to reopen.
Comment 20 Luan Vitor Simião Oliveira 2026-06-20 00:35:04 UTC
since the commit mentioned not being able to repro, full screening (f11) vscode on my 1080p non-hdr screen seems to trigger it very consistently.
will attach a drm_info and kscreendoctor output
Comment 21 Luan Vitor Simião Oliveira 2026-06-20 00:35:40 UTC
Created attachment 193403 [details]
drminfo
Comment 22 Luan Vitor Simião Oliveira 2026-06-20 00:36:39 UTC
Created attachment 193404 [details]
kscreendoctor
Comment 23 Christophe Marin 2026-06-20 12:38:58 UTC
(In reply to Christophe Marin from comment #13)

> I tried reducing the idle timeout, but it didn't trigger the crash.
> Something else must be involved, but I don't see what I could try.

I'm still looking for a reliable way to reproduce in master (currently at ffdf99a2).  I tested Bug 521722 description, no luck.

I didn't notice before, but discord also crashes at the same time kwin_wayland and firefox do.
Nothing worth noting in the journalctl output:

juin 20 12:48:53 kscreenlocker_greet[106542]: file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/lockscreen/LockScreenUi.qml:251:9: QML Connections: Detected function "onPamTimeoutChanged" in Connections element. This is probably intended to be a signal handler but no signal of the target matches the name.
juin 20 12:48:53 kscreenlocker_greet[106542]: file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/lockscreen/LockScreenUi.qml:251:9: QML Connections: Detected function "onPamTimeoutChanged" in Connections element. This is probably intended to be a signal handler but no signal of the target matches the name.
juin 20 12:48:53 kwin_wayland_wrapper[34810]: KCrash: Application 'kwin_wayland' crashing... crashRecursionCounter = 2

[cut]
Then everything tries to reconnect

juin 20 12:48:54 kwin_wayland_wrapper[34936]:  12:48:54 | WARN | Connection error: socket disconnected
juin 20 12:48:54 kwin_wayland_wrapper[34936]:       ... | WARN | failed to send message: Broken pipe
juin 20 12:48:54 kwin_wayland_wrapper[34936]: (EE) failed to read Wayland events: Broken pipe
juin 20 12:48:54 kmail[90165]: The Wayland connection broke. Did the Wayland compositor die?
juin 20 12:48:54 kscreenlocker_greet[106542]: Could not create EGL surface (EGL error 0x3003)
juin 20 12:48:54 kmail[90165]: Attempting wayland reconnect
juin 20 12:48:54 kmail[90165]: Failed to write to the pipe: Bad file descriptor.
juin 20 12:48:54 konsole[44392]: The Wayland connection broke. Did the Wayland compositor die?
juin 20 12:48:54 konsole[44392]: Attempting wayland reconnect
juin 20 12:48:54 kate[93240]: The Wayland connection broke. Did the Wayland compositor die?

juin 20 12:48:54 kscreenlocker_greet[106542]: eglSwapBuffers failed with 0x300d, surface: 0x0
juin 20 12:48:54 kscreenlocker_greet[106542]: The Wayland connection broke. Did the Wayland compositor die?

etc...
Comment 24 Zamundaaa 2026-06-20 13:57:16 UTC
*** Bug 521746 has been marked as a duplicate of this bug. ***
Comment 25 Nathan Babb 2026-06-20 16:59:47 UTC
Created attachment 193450 [details]
Updated stacktrace for kwin 6.7.0.

The crash is still happening for me after removing the `options nvidia-drm color_pipeline=0`. This kcrash file is updated for kwin 6.7.0.
Comment 26 TraceyC 2026-06-21 01:56:23 UTC
There are other reports of this crash with the same backtrace. Reopening.
Comment 27 TraceyC 2026-06-21 02:01:52 UTC
*** Bug 520968 has been marked as a duplicate of this bug. ***
Comment 28 TraceyC 2026-06-21 02:02:21 UTC
*** Bug 521785 has been marked as a duplicate of this bug. ***
Comment 29 Raymond Wang 2026-06-21 02:13:09 UTC
Created attachment 193472 [details]
Proposed fix: cache DrmObject ID to prevent use-after-free in DrmAtomicCommit::addProperty

My AI hermes made a fix for this issue

I am using fedora44 KDE6.7, my laptop pops windows to say kwin crashed several times these days. Yesterday I found if I left the computer for a while it's screen will go dark and I can't light the screen by press any key of my keyboard. I can only press the power button and close the computer forcely and restart it. 
And there's another phenomenan, if I play some videos in my mpv player and click stop for a while, the mpv player will crash and a window will pop out to say the kwin crashed.
My AI agent Hermes found someone raised this bug after searching for the Internet and told me we can download the source code of kwin and make a fix and compile it then install it to my computer. The attachment is the fix patch my hermes ai agent told me to upload to this page.
Comment 30 Bug Janitor Service 2026-06-22 13:16:56 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/9450
Comment 31 Zamundaaa 2026-06-22 17:46:21 UTC
Git commit bdf2ed2ae15e77b798eb6020dff797bd5dce56a3 by Xaver Hugl.
Committed on 22/06/2026 at 14:47.
Pushed by zamundaaa into branch 'master'.

backends/drm: check all colorops for the bypass capability

There can be non-bypassable colorops after the last one we use.

M  +7    -0    src/backends/drm/drm_colorop.cpp

https://invent.kde.org/plasma/kwin/-/commit/bdf2ed2ae15e77b798eb6020dff797bd5dce56a3
Comment 32 Zamundaaa 2026-06-22 22:37:23 UTC
Git commit 211b748ea9b32fdfae10c2c8d7c845e660e8f318 by Xaver Hugl.
Committed on 22/06/2026 at 22:03.
Pushed by zamundaaa into branch 'Plasma/6.7'.

backends/drm: check all colorops for the bypass capability

There can be non-bypassable colorops after the last one we use.
(cherry picked from commit bdf2ed2ae15e77b798eb6020dff797bd5dce56a3)

M  +7    -0    src/backends/drm/drm_colorop.cpp

https://invent.kde.org/plasma/kwin/-/commit/211b748ea9b32fdfae10c2c8d7c845e660e8f318
Comment 33 TraceyC 2026-07-20 13:54:31 UTC
*** Bug 523287 has been marked as a duplicate of this bug. ***