Bug 521934 - KWin crashes in KWin::RenderDevice::drmDevice when program/game opens in full-screen on my external monitor connected to laptop
Summary: KWin crashes in KWin::RenderDevice::drmDevice when program/game opens in full...
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: multi-screen (other bugs)
Version First Reported In: 6.7.0
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: multiscreen
Depends on:
Blocks:
 
Reported: 2026-06-21 15:52 UTC by sko201mail
Modified: 2026-06-24 15:27 UTC (History)
3 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description sko201mail 2026-06-21 15:52:49 UTC
DESCRIPTION

I have a second monitor connected to my laptop through HDMI. I have NVIDIA GeForce RTX 5070 Max-Q Mobile Discrete graphics card with nvidia-open driver package. My CPU is Intel Core i5-14450HX. When i updated to Plasma 6.7, when i opened some programs/games in full screen on my second monitor, my KWin crashed. I was able to reproduce the error using firefox and game "Buckshot roulette" from Steam. KWin doesn't crash if i open window in full screen on my main (laptop) monitor. I use a wayland session and am using standard "Breeze" theme with dark mode and no official/unnoficial widgets on either of my screens.

STEPS TO REPRODUCE
1. Connect a second monitor
2. Open firefox and drag it onto a second monitor
3. Press F11

OBSERVED RESULT

Screen goes black. Then it shows one or multiple messages that KWin had just crashed. I still have mouse and KRunner, from where i can open Konsole.

EXPECTED RESULT

Program/game opens full-screen.

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

ADDITIONAL INFORMATION
Backtrace:
[Thread debugging using libthread_db enabled]                                                                                                                                                                                               
Using host libthread_db library "/usr/lib/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_MieFyR --xwayland'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44
44            return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
[Current thread is 1 (Thread 0x7f2b2e0fa180 (LWP 23826))]
(gdb) bt full
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44
        tid = <optimized out>
        ret = 0
        pd = <optimized out>
        old_mask = {__val = {0}}
        ret = <optimized out>
#1  0x00007f2b34c9a363 in __pthread_kill_internal (threadid=<optimized out>, signo=11) at pthread_kill.c:89
No locals.
#2  0x00007f2b34c3e7d0 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#3  0x00007f2b38a1e01d in KCrash::defaultCrashHandler (sig=11) at /usr/src/debug/kcrash/kcrash-6.27.0/src/kcrash.cpp:630
        data = {<KCrash::MetadataWriter> = {_vptr.MetadataWriter = 0x7f2b38a23848 <vtable for KCrash::Metadata+16>}, argv = {_M_elems = {0x0, 0x7f2b38a2142a "--qtversion", 0x55d2eaae3db0 "6.11.1", 
              0x7f2b38a2143d "--kdeframeworksversion", 0x7f2b38a21436 "6.27.0", 0x7f2b38a21475 "--platform", 0x7f2b38a2146d "wayland", 0x7f2b38a214a6 "--appname", 0x55d2eaae3e90 "kwin_wayland", 0x7f2b38a214b0 "--apppath", 
              0x55d2eaae3f30 "/usr/bin", 0x7f2b38a214bd "--signal", 0x7fff584fc056 "11", 0x7f2b38a214cb "--pid", 0x7fff584fc060 "23826", 0x7f2b38a214d1 "--appversion", 0x55d2eaae2e50 "6.7.0", 0x7f2b38a214de "--programname", 
              0x55d2eaae2be0 "KWin", 0x7f2b38a214ec "--bugaddress", 0x55d2eaae05f0 "submit@bugs.kde.org", 0x0 <repeats 17 times>}}, argc = 21, m_writer = 0x7fff584fc000}
        platformName = {d = {d = 0x55d2ec5a0870, ptr = 0x55d2ec5a0880 "wayland-org.kde.kwin.qpa", size = 24}, static _empty = 0 '\000'}
        about = 0x55d2eaacebb0
        argv = 0x7fff584fc088
        i = <optimized out>
        ini = {<KCrash::MetadataWriter> = {_vptr.MetadataWriter = 0x7f2b38a23878 <vtable for KCrash::MetadataINIWriter+16>}, writable = false, fd = 198}
        sigtxt = "11\000\000\000\000\000\340\220@"
        pidtxt = "23826\000\000\000\000\000\000\000\000\000\200?\000\000\000"
        argc = <optimized out>
        crashRecursionCounter = 2
#4  <signal handler called>
No locals.
#5  KWin::RenderDevice::drmDevice (this=0x0) at /usr/include/c++/16.1.1/bits/unique_ptr.h:192
No locals.
#6  0x00007f2b3851c38d in KWin::EglGbmLayer::importScanoutBuffer (this=this@entry=0x55d2eb8a4330, buffer=0x55d2ec686860, frame=std::shared_ptr<KWin::OutputFrame> (use count 1, weak count 0) = {...})
    at /usr/src/debug/kwin/kwin-6.7.0/src/backends/drm/drm_egl_layer.cpp:104
        directScanoutDisabled = false
#7  0x00007f2b381a5920 in KWin::prepareDirectScanout (view=<optimized out>, logicalOutput=<optimized out>, backendOutput=<optimized out>, frame=...) at /usr/src/debug/kwin/kwin-6.7.0/src/compositor.cpp:391
        layer = 0x55d2eb8a4330
        candidate = 0x55d2eab47b50
        buffer = <optimized out>
        attrs = <optimized out>
        tearing = <optimized out>
        formats = {<QHash<unsigned int, KWin::ModifierList>> = {d = 0x55d2eacadb30}, <No data fields>}
        ret = <optimized out>
#8  KWin::Compositor::setupLayers (this=this@entry=0x55d2ead99210, sceneView=sceneView@entry=0x55d2eba2b280, logicalOutput=<optimized out>, backendOutput=<optimized out>, outputLayers=..., assignments=..., frame=..., 
    type=<optimized out>, toUpdate=...) at /usr/src/debug/kwin/kwin-6.7.0/src/compositor.cpp:642
        layer = <optimized out>
        __for_range = @0x7fff584fd0d0: {<QListSpecialMethods<KWin::Compositor::LayerData>> = {<QListSpecialMethodsBase<KWin::Compositor::LayerData>> = {<No data fields>}, <No data fields>}, d = {d = 0x55d2ec688540, 
            ptr = 0x55d2ec688550, size = 1}}
        __for_begin = <optimized out>
        __for_end = <optimized out>
        unusedOutputLayers = {<QListSpecialMethods<KWin::OutputLayer*>> = {<QListSpecialMethodsBase<KWin::OutputLayer*>> = {<No data fields>}, <No data fields>}, d = {d = 0x55d2ec54b9e0, ptr = <optimized out>, size = <optimized out>}}
        layers = {<QListSpecialMethods<KWin::Compositor::LayerData>> = {<QListSpecialMethodsBase<KWin::Compositor::LayerData>> = {<No data fields>}, <No data fields>}, d = {d = 0x55d2ec688540, ptr = 0x55d2ec688550, size = 1}}
        sortedLayers = <optimized out>
        underlay = <optimized out>
#9  0x00007f2b381a7a47 in KWin::Compositor::composite (this=<optimized out>, renderLoop=<optimized out>) at /usr/src/debug/kwin/kwin-6.7.0/src/compositor.cpp:776
        scene = <optimized out>
        output = 0x55d2eacbc700
        logicalOutput = 0x55d2eba0ff60
        primaryView = <optimized out>
        _duration = std::unique_ptr<KWin::FTraceDuration> = {get() = 0x0}
        totalTimeQuery = <optimized out>
        frame = std::shared_ptr<KWin::OutputFrame> (use count 1, weak count 0) = {get() = 0x55d2ec0f7970}
        desiredArtificalHdrHeadroom = std::optional [no contained value]
        maxDimChange = <optimized out>
        maxUndimChange = <optimized out>
        activeWindow = <optimized out>
        activeFullscreenItem = <optimized out>
        wantsAdaptiveSync = <optimized out>
        vrr = <optimized out>
        tearing = <optimized out>
        unusedOutputLayers = {<QListSpecialMethods<KWin::OutputLayer*>> = {<QListSpecialMethodsBase<KWin::OutputLayer*>> = {<No data fields>}, <No data fields>}, d = {d = 0x55d2ec6fb210, ptr = 0x55d2ec6fb220, size = 3}}
        overlaysAllowed = <optimized out>
        allowedOutputLayers = {<QListSpecialMethods<KWin::OutputLayer*>> = {<QListSpecialMethodsBase<KWin::OutputLayer*>> = {<No data fields>}, <No data fields>}, d = {d = 0x55d2ec783ac0, ptr = 0x55d2ec783ad0, size = 2}}
        layerCandidates = {<QListSpecialMethods<KWin::Item*>> = {<QListSpecialMethodsBase<KWin::Item*>> = {<No data fields>}, <No data fields>}, d = {d = 0x55d2ec7916b0, ptr = 0x55d2ec7916c0, size = 1}}
        idealLayerAssignments = std::optional containing std::unordered_map with 1 element = {[0x55d2eb8a4330] = 0x55d2eab47b50}
        scenePlusCursor = {<QListSpecialMethods<KWin::Item*>> = {<QListSpecialMethodsBase<KWin::Item*>> = {<No data fields>}, <No data fields>}, d = {d = 0x55d2ec68c7c0, ptr = 0x55d2ec68c7d0, size = 1}}
        sceneOnly = {<QListSpecialMethods<KWin::Item*>> = {<QListSpecialMethodsBase<KWin::Item*>> = {<No data fields>}, <No data fields>}, d = {d = 0x55d2ec57c440, ptr = 0x55d2ec57c450, size = 1}}
--Type <RET> for more, q to quit, c to continue without paging--
        toUpdate = std::unordered_set with 1 element = {[0] = 0x55d2eb8a4690}
        layers = <optimized out>
        result = <optimized out>
        renderLayers = {__layers = @0x55d2ebbb82d0, __toUpdate = std::unordered_set with 49 elements = {[0] = 0x55d2ebbbfa20, [1] = 0x7f2b3818c680 <KWin::RootItem::qt_metacast(char const*)>, 
            [2] = 0xff097400387f8348<error reading variable: Cannot access memory at address 0x87f8b48fa1e0ff3>...}, __result = @0x7fff584fd440, __logicalOutput = @0x7f2b386694cd, __output = @0x55d2ec57c440, 
          __frame = <error reading variable: Cannot access memory at address 0x31450f75012883f8>}
        forceRepaintForBrightness = <optimized out>
        forceRepaintForDimming = <optimized out>
        forceRepaintForOffscreenAnimations = <optimized out>
#10 0x00007f2b355f081b in QtPrivate::QSlotObjectBase::call (this=<optimized out>, r=<optimized out>, a=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:462
No locals.
#11 doActivate<false> (sender=0x55d2eac6b0b0, signal_index=5, argv=0x7fff584fd620) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4372
        obj = {m_slotObject = std::unique_ptr<QtPrivate::QSlotObjectBase> = {get() = 0x55d2ec288920}}
        td = <optimized out>
        receiverInSameThread = <optimized out>
        receiver = <optimized out>
        senderData = {previous = 0x0, receiver = 0x55d2ead99210, sender = 0x55d2eac6b0b0, signal = 5}
        lock = <optimized out>
        c = 0x55d2ebfbb960
        connections = {<QSharedDataPointerBase<QExplicitlySharedDataPointer, QObjectPrivate::ConnectionData>> = {d = {ptr = 0x55d2ebc10c30}}, <No data fields>}
        list = 0x55d2ebc10cd0
        inSenderThread = <optimized out>
        highestConnectionId = 3
        signalVector = 0x55d2ebc10c60
        currentThreadId = 0x7f2b2e0fa180
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#12 0x00007f2b381ff17b 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
        _a = {0x0, 0x7fff584fd618}
#13 KWin::RenderLoop::frameRequested (this=<optimized out>, _t1=<optimized out>) at /usr/src/debug/kwin/build/src/kwin_autogen/include/moc_renderloop.cpp:171
No locals.
#14 0x00007f2b355e7cf9 in QObject::event (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1454
        __PRETTY_FUNCTION__ = <optimized out>
#15 0x00007f2b3690411f in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55d2eac6b0b0, e=0x7fff584fd7c0) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3276
        consumed = false
        filtered = false
        threadData = <optimized out>
#16 0x00007f2b35583658 in QCoreApplication::notifyInternal2 (receiver=0x55d2eac6b0b0, event=0x7fff584fd7c0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1114
        d = <optimized out>
        threadData = 0x55d2ea959ee0
        selfRequired = <optimized out>
        result = false
        cbdata = {0x55d2eac6b0b0, 0x7fff584fd7c0, 0x7fff584fd73f}
        scopeLevelCounter = {threadData = 0x55d2ea959ee0}
#17 0x00007f2b3576b2f5 in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x7fff584fd7c0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1559
No locals.
#18 QTimerInfoList::activateTimers (this=0x55d2eaa15568) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qtimerinfo_unix.cpp:427
        e = {<QEvent> = {_vptr.QEvent = 0x7f2b35a84b50 <vtable for QTimerEvent+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, 
                stringdata = 0x7f2b35932728 <QEvent::qt_staticMetaObjectStaticContent<(anonymous namespace)::qt_meta_tag_ZN6QEventE_t>+1512>, 
                data = 0x7f2b35932140 <QEvent::qt_staticMetaObjectStaticContent<(anonymous namespace)::qt_meta_tag_ZN6QEventE_t>>, static_metacall = 0x0, relatedMetaObjects = 0x0, 
                metaTypes = 0x7f2b35a84cf0 <QEvent::qt_staticMetaObjectRelocatingContent<(anonymous namespace)::qt_meta_tag_ZN6QEventE_t>>, extradata = 0x0}}, t = 1, m_posted = false, m_spont = false, m_accept = true, 
            m_unused = false, m_reserved = 0, m_inputEvent = 0, m_pointerEvent = 0, m_singlePointEvent = 0}, m_id = (unknown: 0x6700000a)}
        currentTimerInfo = 0x0
        now = <optimized out>
        stillActive = {__now = <synthetic pointer>Python Exception <class 'gdb.error'>: value has been optimized out
}
        it = <optimized out>
        maxCount = 0
        n_act = <optimized out>
#19 0x00007f2b35776bd2 in QEventDispatcherUNIXPrivate::activateTimers (this=0x55d2eaa15490) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:222
No locals.
#20 QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=..., flags@entry=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:504
        d = 0x55d2eaa15490
--Type <RET> for more, q to quit, c to continue without paging--c
        threadData = <optimized out>
        include_timers = <optimized out>
        include_notifiers = <optimized out>
        wait_for_events = <optimized out>
        canWait = <optimized out>
        deadline = <optimized out>
        nevents = 1
#21 0x00007f2b36583543 in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at /usr/src/debug/qt6-base/qtbase/src/gui/platform/unix/qunixeventdispatcher.cpp:28
        didSendEvents = <optimized out>
#22 0x00007f2b35591983 in QEventLoop::processEvents (this=0x7fff584fd9a0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:109
        d = <optimized out>
        threadData = <optimized out>
#23 QEventLoop::exec (this=0x7fff584fd9a0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:198
        d = 0x55d2ebe41fd0
        threadData = <optimized out>
        locker = {m_mutex = 0x55d2ea95b658, m_isLocked = false}
        ref = <optimized out>
        app = <optimized out>
#24 0x00007f2b35586eaa in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1457
        threadData = 0x55d2ea959ee0
        eventLoop = {<QObject> = {_vptr.QObject = 0x7f2b35a7fc08 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, 
                stringdata = 0x7f2b3592ddb0 <_ZN7QObject32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_125qt_meta_tag_ZN7QObjectE_tEEE.lto_priv.0+272>, 
                data = 0x7f2b3592dca0 <_ZN7QObject32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_125qt_meta_tag_ZN7QObjectE_tEEE.lto_priv.0>, 
                static_metacall = 0x7f2b355f0ff0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, 
                metaTypes = 0x7f2b35a829e0 <_ZN7QObject36qt_staticMetaObjectRelocatingContentIN12_GLOBAL__N_125qt_meta_tag_ZN7QObjectE_tEEE.lto_priv.0>, extradata = 0x0}}, d_ptr = {d = 0x55d2ebe41fd0}}, static staticMetaObject = {d = {
              superdata = {direct = 0x7f2b35a82a80 <QObject::staticMetaObject>}, stringdata = 0x7f2b358edd6c <_ZN10QEventLoop32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_129qt_meta_tag_ZN10QEventLoopE_tEEE.lto_priv.0+236>, 
              data = 0x7f2b358edc80 <_ZN10QEventLoop32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_129qt_meta_tag_ZN10QEventLoopE_tEEE.lto_priv.0>, 
              static_metacall = 0x7f2b3558af60 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, 
              metaTypes = 0x7f2b35a823e0 <_ZN10QEventLoop36qt_staticMetaObjectRelocatingContentIN12_GLOBAL__N_129qt_meta_tag_ZN10QEventLoopE_tEEE.lto_priv.0>, extradata = 0x0}}}
        returnCode = <optimized out>
#25 0x00007f2b3690033a in QApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2546
No locals.
#26 0x000055d2d6c1e040 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin/kwin-6.7.0/src/main_wayland.cpp:660
        environment = {d = {<QSharedDataPointerBase<QSharedDataPointer, QProcessEnvironmentPrivate>> = {d = {ptr = 0x55d2ea9c2620}}, <No data fields>}}
        a = {<KWin::Application> = {<QApplication> = {<QGuiApplication> = {<QCoreApplication> = {<QObject> = {_vptr.QObject = 0x55d2d6d2d4e8 <vtable for KWin::ApplicationWayland+16>, static staticMetaObject = {d = {superdata = {
                          direct = 0x0}, stringdata = 0x7f2b3592ddb0 <_ZN7QObject32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_125qt_meta_tag_ZN7QObjectE_tEEE.lto_priv.0+272>, 
                        data = 0x7f2b3592dca0 <_ZN7QObject32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_125qt_meta_tag_ZN7QObjectE_tEEE.lto_priv.0>, 
                        static_metacall = 0x7f2b355f0ff0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, 
                        metaTypes = 0x7f2b35a829e0 <_ZN7QObject36qt_staticMetaObjectRelocatingContentIN12_GLOBAL__N_125qt_meta_tag_ZN7QObjectE_tEEE.lto_priv.0>, extradata = 0x0}}, d_ptr = {d = 0x55d2ea93a030}}, 
                  static staticMetaObject = {d = {superdata = {direct = 0x7f2b35a82a80 <QObject::staticMetaObject>}, 
                      stringdata = 0x7f2b358ee048 <_ZN16QCoreApplication32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_135qt_meta_tag_ZN16QCoreApplicationE_tEEE.lto_priv.0+392>, 
                      data = 0x7f2b358edec0 <_ZN16QCoreApplication32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_135qt_meta_tag_ZN16QCoreApplicationE_tEEE.lto_priv.0>, 
                      static_metacall = 0x7f2b3558edc0 <QCoreApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, 
                      metaTypes = 0x7f2b35a82460 <_ZN16QCoreApplication36qt_staticMetaObjectRelocatingContentIN12_GLOBAL__N_135qt_meta_tag_ZN16QCoreApplicationE_tEEE.lto_priv.0>, extradata = 0x0}}, static self = 0x7fff584fde90}, 
                static staticMetaObject = {d = {superdata = {direct = 0x7f2b35a824e0 <QCoreApplication::staticMetaObject>}, 
                    stringdata = 0x7f2b3662c78c <_ZN15QGuiApplication32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_134qt_meta_tag_ZN15QGuiApplicationE_tEEE.lto_priv.0+780>, 
                    data = 0x7f2b3662c480 <_ZN15QGuiApplication32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_134qt_meta_tag_ZN15QGuiApplicationE_tEEE.lto_priv.0>, 
                    static_metacall = 0x7f2b35fc4e70 <QGuiApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, 
                    metaTypes = 0x7f2b367414a0 <_ZN15QGuiApplication36qt_staticMetaObjectRelocatingContentIN12_GLOBAL__N_134qt_meta_tag_ZN15QGuiApplicationE_tEEE.lto_priv.0>, extradata = 0x0}}}, static staticMetaObject = {d = {
                  superdata = {direct = 0x7f2b36741ea0 <QGuiApplication::staticMetaObject>}, 
                  stringdata = 0x7f2b36e147a8 <_ZN12QApplication32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_131qt_meta_tag_ZN12QApplicationE_tEEE.lto_priv.0+392>, 
                  data = 0x7f2b36e14620 <_ZN12QApplication32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_131qt_meta_tag_ZN12QApplicationE_tEEE.lto_priv.0>, 
                  static_metacall = 0x7f2b36909f40 <QApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, 
                  metaTypes = 0x7f2b36f632c0 <_ZN12QApplication36qt_staticMetaObjectRelocatingContentIN12_GLOBAL__N_131qt_meta_tag_ZN12QApplicationE_tEEE.lto_priv.0>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {
                  direct = 0x7f2b36f72360 <QApplication::staticMetaObject>}, stringdata = 0x7f2b387b6fb8 <_ZN4KWin11Application32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_135qt_meta_tag_ZN4KWin11ApplicationE_tEEE.lto_priv.0+280>, 
                data = 0x7f2b387b6ea0 <_ZN4KWin11Application32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_135qt_meta_tag_ZN4KWin11ApplicationE_tEEE.lto_priv.0>, 
                static_metacall = 0x7f2b382fb9b0 <KWin::Application::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, 
                metaTypes = 0x7f2b388f5a20 <_ZN4KWin11Application36qt_staticMetaObjectRelocatingContentIN12_GLOBAL__N_135qt_meta_tag_ZN4KWin11ApplicationE_tEEE.lto_priv.0>, extradata = 0x0}}, static crashes = 0, 
            m_eventFilters = {<QListSpecialMethods<QPointer<KWin::X11EventFilterContainer> >> = {<QListSpecialMethodsBase<QPointer<KWin::X11EventFilterContainer> >> = {<No data fields>}, <No data fields>}, d = {d = 0x55d2ec261b20, 
                ptr = 0x55d2ec261b30, size = 4}}, 
            m_genericEventFilters = {<QListSpecialMethods<QPointer<KWin::X11EventFilterContainer> >> = {<QListSpecialMethodsBase<QPointer<KWin::X11EventFilterContainer> >> = {<No data fields>}, <No data fields>}, d = {d = 0x0, 
                ptr = 0x0, size = 0}}, m_scene = std::unique_ptr<KWin::WorkspaceScene> = {get() = 0x55d2ebbc7cc0}, m_followLocale1 = false, m_configLock = false, m_initiallyLocked = false, m_supportsLockScreen = true, 
            m_supportsGlobalShortcuts = true, m_config = {<QSharedDataPointerBase<QExplicitlySharedDataPointer, KSharedConfig>> = {d = {ptr = 0x55d2eaacca50}}, <No data fields>}, 
            m_kxkbConfig = {<QSharedDataPointerBase<QExplicitlySharedDataPointer, KSharedConfig>> = {d = {ptr = 0x55d2eaba38c0}}, <No data fields>}, 
            m_inputConfig = {<QSharedDataPointerBase<QExplicitlySharedDataPointer, KSharedConfig>> = {d = {ptr = 0x55d2eaba3de0}}, <No data fields>}, 
            m_kdeglobals = {<QSharedDataPointerBase<QExplicitlySharedDataPointer, KSharedConfig>> = {d = {ptr = 0x55d2eaacf4e0}}, <No data fields>}, m_rootWindow = 1028, m_connection = 0x55d2ec2ca2d0, m_useKActivities = true, 
            m_session = std::unique_ptr<KWin::Session> = {get() = 0x55d2eab9d120}, m_outputBackend = std::unique_ptr<KWin::OutputBackend> = {get() = 0x55d2eab43750}, m_terminating = false, m_xwaylandScale = std::optional = {
              [contained value] = 1}, m_processEnvironment = {d = {<QSharedDataPointerBase<QSharedDataPointer, QProcessEnvironmentPrivate>> = {d = {ptr = 0x55d2ebe434b0}}, <No data fields>}}, 
            m_pluginManager = std::unique_ptr<KWin::PluginManager> = {get() = 0x55d2ebbc5fb0}, m_inputMethod = std::unique_ptr<KWin::InputMethod> = {get() = 0x55d2eae213b0}, 
            m_tabletModeManager = std::unique_ptr<KWin::TabletModeManager> = {get() = 0x55d2eae6f600}, m_gpuManager = std::unique_ptr<KWin::GpuManager> = {get() = 0x0}}, static staticMetaObject = {d = {superdata = {
                direct = 0x7f2b388f5f40 <KWin::Application::staticMetaObject>}, 
              stringdata = 0x55d2d6cf779c <KWin::ApplicationWayland::qt_staticMetaObjectStaticContent<(anonymous namespace)::qt_meta_tag_ZN4KWin18ApplicationWaylandE_t>+60>, 
              data = 0x55d2d6cf7760 <KWin::ApplicationWayland::qt_staticMetaObjectStaticContent<(anonymous namespace)::qt_meta_tag_ZN4KWin18ApplicationWaylandE_t>>, 
              static_metacall = 0x55d2d6c22770 <KWin::ApplicationWayland::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, 
              metaTypes = 0x55d2d6d2b840 <KWin::ApplicationWayland::qt_staticMetaObjectRelocatingContent<(anonymous namespace)::qt_meta_tag_ZN4KWin18ApplicationWaylandE_t>>, extradata = 0x0}}, 
          m_applicationsToStart = {<QListSpecialMethods<QString>> = {<QListSpecialMethodsBase<QString>> = {<No data fields>}, <No data fields>}, d = {d = 0x0, ptr = 0x0, size = 0}}, m_inputMethodServerToStart = {d = {d = 0x0, 
              ptr = 0x0, size = 0}, static _empty = 0 u'\000'}, m_sessionArgument = {d = {d = 0x0, ptr = 0x0, size = 0}, static _empty = 0 u'\000'}, m_startXWayland = true, m_xwayland = std::unique_ptr<KWin::Xwl::Xwayland> = {
            get() = 0x55d2ebe3ffe0}, m_xwaylandListenFds = {<QListSpecialMethods<int>> = {<QListSpecialMethodsBase<int>> = {<No data fields>}, <No data fields>}, d = {d = 0x55d2eaba37a0, ptr = 0x55d2eaba37b0, size = 2}}, 
          m_xwaylandDisplay = {d = {d = 0x55d2eaae40e0, ptr = 0x55d2eaae40f0 u":1", size = 2}, static _empty = 0 u'\000'}, m_xwaylandXauthority = {d = {d = 0x55d2eaad3600, ptr = 0x55d2eaad3610 u"/run/user/1000/xauth_MieFyR", 
              size = 27}, static _empty = 0 u'\000'}, m_xwaylandExtraEnvironment = {d = {d = {ptr = 0x55d2ebba2d00}}}, m_xwaylandFds = std::vector of length 1, capacity 1 = {{m_fd = -1}}, m_settingsWatcher = {value = {
              ptr = 0x55d2ea9c7560}, d = 0x55d2eaabf5a0}}
        xwaylandOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae4690}}, <No data fields>}}
        waylandSocketOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae4710}}, <No data fields>}}
        x11DisplayOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae4790}}, <No data fields>}}
        waylandDisplayOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae4810}}, <No data fields>}}
        virtualFbOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae4890}}, <No data fields>}}
        widthOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae4960}}, <No data fields>}}
        heightOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae4a30}}, <No data fields>}}
        fullscreenOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae4b00}}, <No data fields>}}
        scaleOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae4bd0}}, <No data fields>}}
        outputCountOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae4c50}}, <No data fields>}}
        waylandSocketFdOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae4d20}}, <No data fields>}}
        xwaylandListenFdOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae4ee0}}, <No data fields>}}
        xwaylandDisplayOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae5000}}, <No data fields>}}
        xwaylandXAuthorityOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae5080}}, <No data fields>}}
        replaceOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae5150}}, <No data fields>}}
        drmOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae5270}}, <No data fields>}}
        locale1Option = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae52f0}}, <No data fields>}}
        parser = {d = 0x55d2eaa148e0}
        inputMethodOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae6340}}, <No data fields>}}
        screenLockerOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae63c0}}, <No data fields>}}
        noScreenLockerOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae64e0}}, <No data fields>}}
        noGlobalShortcutsOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaae66d0}}, <No data fields>}}
        noActivitiesOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaaed270}}, <No data fields>}}
        exitWithSessionOption = {d = {<QSharedDataPointerBase<QSharedDataPointer, QCommandLineOptionPrivate>> = {d = {ptr = 0x55d2eaaed450}}, <No data fields>}}
        backendType = <optimized out>
        initialWindowSize = <optimized out>
        outputCount = 1
        outputScale = <optimized out>
        ok = true
        width = <optimized out>
        height = <optimized out>
        scale = <optimized out>
        fullscreen = false
        count = <optimized out>
        server = <optimized out>
        socketName = {d = {d = 0x55d2eaae44e0, ptr = 0x55d2eaae44f0 u"wayland-0", size = 9}, static _empty = 0 u'\000'}
        BackendType::Kms = BackendType::Kms
        BackendType::X11 = BackendType::X11
        BackendType::Wayland = BackendType::Wayland
        BackendType::Virtual = BackendType::Virtual
Comment 1 Bug Janitor Service 2026-06-22 21:58:39 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/9456
Comment 2 Zamundaaa 2026-06-22 21:58:57 UTC
Please attach the output of
journalctl --user-unit plasma-kwin_wayland --boot 0
(from when the external monitor is connected)

Do you have any environment variables set regarding Nvidia or DRI_PRIME?
Comment 3 Vlad Zahorodnii 2026-06-23 06:41:12 UTC
Git commit a9c0ccda4f24a9f6d690b62279e985be1b522ca4 by Vlad Zahorodnii, on behalf of Xaver Hugl.
Committed on 23/06/2026 at 06:25.
Pushed by vladz into branch 'master'.

backends/drm: check for the render device in importScanoutBuffer

While it shouldn't be nullptr, it seems like it can still happen in some
configurations.

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

https://invent.kde.org/plasma/kwin/-/commit/a9c0ccda4f24a9f6d690b62279e985be1b522ca4
Comment 4 Vlad Zahorodnii 2026-06-23 07:39:45 UTC
Git commit b69b7d2cc688f64dd8425b2c1bd3b45ba96a8dbf by Vlad Zahorodnii, on behalf of Xaver Hugl.
Committed on 23/06/2026 at 07:01.
Pushed by vladz into branch 'Plasma/6.7'.

backends/drm: check for the render device in importScanoutBuffer

While it shouldn't be nullptr, it seems like it can still happen in some
configurations.
(cherry picked from commit a9c0ccda4f24a9f6d690b62279e985be1b522ca4)

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

https://invent.kde.org/plasma/kwin/-/commit/b69b7d2cc688f64dd8425b2c1bd3b45ba96a8dbf