Bug 521746 - HDR game crashing under Proton Wayland
Summary: HDR game crashing under Proton Wayland
Status: RESOLVED DUPLICATE of bug 520842
Alias: None
Product: kwin
Classification: Plasma
Component: generic-crash (other bugs)
Version First Reported In: 6.7.0
Platform: EndeavourOS Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-06-19 12:10 UTC by samueltscott
Modified: 2026-06-20 13:57 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments
gdb backtrace (20.11 KB, text/plain)
2026-06-19 12:10 UTC, samueltscott
Details

Note You need to log in before you can comment on or make changes to this bug.
Description samueltscott 2026-06-19 12:10:58 UTC
Created attachment 193354 [details]
gdb backtrace

DESCRIPTION

Steam game with HDR enabled under Proton Wayland crashes KWin

The game I'm testing with the most is Control Ultimate Edition, but I've also had the same crash with Cyberpunk 2077

STEPS TO REPRODUCE
1. Try to play a Steam game with HDR enabled under Proton Wayland (Launch args: PROTON_ENABLE_WAYLAND=1 DXVK_HDR=1 %command%)

OBSERVED RESULT

Game crashes and a lot of other processes will also crash

EXPECTED RESULT

Game and other processes do not crash and HDR works

SOFTWARE/OS VERSIONS
Operating System (available in the Info Center app, or by running `kinfo` in a terminal window): EndeavourOS
KDE Plasma Version: 6.7.0
KDE Frameworks Version: 6.27.0
Qt Version: 6.11.1

ADDITIONAL INFORMATION
This was working a few days ago before I updated to Plasma 6.7
Comment 1 samueltscott 2026-06-19 12:14:49 UTC
I am using a Nvidia GPU (RTX 4070 super)
Comment 2 TraceyC 2026-06-19 17:45:27 UTC
Thank you for the bug report. I'm not able to reproduce this on git-master. Unfortunately the backtrace is incomplete and missing debug symbols for the following lines that we need to figure out exactly what's going wrong:

#0  0x00007f6172f0981c in ??? () at /usr/lib/libkwin.so.6
#9  0x00007f616fff081b in ??? () at /usr/lib/libQt6Core.so.6

Could you please install debug packages and attach a new symbolicated backtrace generated by using `coredumpctl gdb` in a terminal window? See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports for details about how to do this. Thanks again!
Comment 3 samueltscott 2026-06-19 18:59:59 UTC
Here is the new backtrace with debug symbols:

(gdb) bt
#0  0x00007fd141f0981c in KWin::DrmAtomicCommit::addProperty (this=0x7fd0b8007230, prop=..., value=1) at /usr/src/debug/kwin/kwin-6.7.0/src/backends/drm/drm_commit.cpp:61
#1  0x00007fd141f07751 in KWin::DrmAbstractColorOp::matchPipeline (this=0x5636c0957ec0, commit=0x7fd0b8002fa0, pipeline=...) at /usr/src/debug/kwin/kwin-6.7.0/src/backends/drm/drm_colorop.cpp:262
#2  0x00007fd141f43553 in operator() (__closure=<synthetic pointer>, pipeline=<optimized out>) at /usr/src/debug/kwin/kwin-6.7.0/src/backends/drm/drm_pipeline.cpp:281
#3  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++/16.1.1/bits/invoke.h:63
#4  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++/16.1.1/bits/invoke.h:98
#5  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++/16.1.1/bits/ranges_util.h:560
#6  std::ranges::__find_if_fn::operator()<QList<KWin::DrmColorOp*> const&> (this=<optimized out>, __proj=..., __r=<synthetic pointer>..., __pred=...) at /usr/include/c++/16.1.1/bits/ranges_util.h:571
#7  KWin::DrmPipeline::prepareAtomicPlane
    (this=this@entry=0x5636c09ff0e0, commit=commit@entry=0x7fd0b8002fa0, plane=0x5636c088b5c0, layer=0x5636c0b4c300, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...})
    at /usr/src/debug/kwin/kwin-6.7.0/src/backends/drm/drm_pipeline.cpp:280
#8  0x00007fd141f43c99 in KWin::DrmPipeline::prepareAtomicCommit
    (this=0x5636c09ff0e0, commit=commit@entry=0x7fd0b8002fa0, mode=mode@entry=KWin::DrmPipeline::CommitMode::Test, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...})
    at /usr/src/debug/kwin/kwin-6.7.0/src/backends/drm/drm_pipeline.cpp:189
#9  0x00007fd141f441a3 in KWin::DrmPipeline::prepareAtomicCommit (this=<optimized out>, commit=<optimized out>, mode=<optimized out>, frame=<optimized out>)
    at /usr/src/debug/kwin/kwin-6.7.0/src/backends/drm/drm_crtc.cpp:125
#10 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/kwin-6.7.0/src/backends/drm/drm_pipeline.cpp:128
#11 0x00007fd141f4469c in KWin::DrmPipeline::testPresent (this=0x5636c09ff0e0, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...})
    at /usr/src/debug/kwin/kwin-6.7.0/src/backends/drm/drm_pipeline.cpp:61
#12 KWin::DrmPipeline::testPresent (this=0x5636c09ff0e0, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...}) at /usr/src/debug/kwin/kwin-6.7.0/src/backends/drm/drm_pipeline.cpp:53
#13 0x00007fd141f359f9 in KWin::DrmOutput::testPresentation (this=0x5636c09ff590, frame=std::shared_ptr<KWin::OutputFrame> (use count 2, weak count 0) = {...})
    at /usr/src/debug/kwin/kwin-6.7.0/src/backends/drm/drm_output.cpp:307
#14 0x00007fd141ba5ebd in KWin::Compositor::setupLayers
    (this=this@entry=0x5636c05db950, sceneView=sceneView@entry=0x7fd130018eb0, logicalOutput=<optimized out>, backendOutput=<optimized out>, outputLayers=..., assignments=<optimized out>, frame=<optimized out>, type=<optimized out>, toUpdate=<optimized out>) at /usr/src/debug/kwin/kwin-6.7.0/src/compositor.cpp:650
#15 0x00007fd141ba7a47 in KWin::Compositor::composite (this=<optimized out>, renderLoop=<optimized out>) at /usr/src/debug/kwin/kwin-6.7.0/src/compositor.cpp:776
#16 0x00007fd13eff081b in QtPrivate::QSlotObjectBase::call (this=0x5636c0caadc0, r=<optimized out>, a=0x7ffe8472cd90, this=<optimized out>, r=<optimized out>, a=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:462
#17 doActivate<false> (sender=0x5636c09d2620, signal_index=5, argv=0x7ffe8472cd90) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4372
#18 0x00007fd141bff17b 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
#19 KWin::RenderLoop::frameRequested (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin/build/src/kwin_autogen/include/moc_renderloop.cpp:171
#20 0x00007fd13efe7cf9 in QObject::event (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1454
#21 0x00007fd14010411f in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5636c09d2620, e=0x7ffe8472cf30) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3276
#22 0x00007fd13ef83658 in QCoreApplication::notifyInternal2 (receiver=0x5636c09d2620, event=0x7ffe8472cf30) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1114
#23 0x00007fd13f16b2f5 in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x7ffe8472cf30) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1559
#24 QTimerInfoList::activateTimers (this=0x5636c020ec28) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qtimerinfo_unix.cpp:427
#25 0x00007fd13f176bd2 in QEventDispatcherUNIXPrivate::activateTimers (this=0x5636c020eb50) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:222
#26 QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=..., flags@entry=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:504
#27 0x00007fd13fd83543 in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at /usr/src/debug/qt6-base/qtbase/src/gui/platform/unix/qunixeventdispatcher.cpp:28
#28 0x00007fd13ef91983 in QEventLoop::processEvents (this=0x7ffe8472d110, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:109
#29 QEventLoop::exec (this=0x7ffe8472d110, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:198
#30 0x00007fd13ef86eaa in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1457
#31 0x00007fd14010033a in QApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2546
#32 0x00005636b5332040 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin/kwin-6.7.0/src/main_wayland.cpp:660
(gdb)
Comment 4 Zamundaaa 2026-06-20 13:57:16 UTC

*** This bug has been marked as a duplicate of bug 520842 ***