https://bugs.kde.org/show_bug.cgi?id=493879
--- Comment #33 from Dinolek <k...@dinolek.me> --- (In reply to Zamundaaa from comment #32) > (In reply to Dinolek from comment #30) > > For me enabled is true at this point. > > > > When I test it with kscreen-doctor -d off: > > 1. External screen goes black > > 2. Internal screen turns on > > 3. After second internal screen turns off > > 4. External screen turns on > > > > I was testing it before with lockscreen timeout and in there internal screen > > is black all the time. > Ok, I think we had some miscommunication here. With "off" I meant that the > output is actually disabled in the display settings, or the lid is closed > (where KWin automatically disables it). I had the internal display disabled in the display settings. I added logs with both screens, as that case is broken too, though it looks like a different issue. > I sounds more like your internal display has issues than the external one, > or something else wakes the displays entirely. This bit > > sie 11 15:10:08 arch-portable kwin_wayland[71084]: removed dpms-off output > > "PHL 49732 9057 34 2020 0" > > sie 11 15:10:08 arch-portable kwin_wayland[71084]: updateDpmsMode "eDP-1" > > KWin::Output::DpmsMode::On > is quite weird... Could you get a backtrace of that particular > updateDpmsMode call? This updateDpmsMode call only happens when both monitors are on. With external monitor enabled only, internal monitor has DpmsMode::On all the time despite being off. KWin::DrmOutput::updateDpmsMode(KWin::Output::DpmsMode) KWin::DrmOutput::setDrmDpmsMode(KWin::Output::DpmsMode) KWin::DrmOutput::setDpmsMode(KWin::Output::DpmsMode) KWin::DpmsInputEventFilter::notify() non-virtual thunk to KWin::DpmsInputEventFilter::pointerMotion(KWin::PointerMotionEvent*) KWin::PointerInputRedirection::processMotionInternal(QPointF const&, QPointF const&, QPointF const&, std::chrono::duration<long, std::ratio<1l, 1000000l> >, KWin::InputDevice*, KWin::PointerInputRedirection::MotionType) KWin::PointerInputRedirection::processMotionAbsolute(QPointF const&, std::chrono::duration<long, std::ratio<1l, 1000000l> >, KWin::InputDevice*) KWin::PointerInputRedirection::updateAfterScreenChange() QtPrivate::QSlotObjectBase::Deleter::operator()(QtPrivate::QSlotObjectBase*) const inlined at /usr/include/c++/15.1.1/bits/unique_ptr.h:399:17 in void doActivate<false>(QObject*, int, void**) KWin::Workspace::updateOutputs(std::optional<QList<KWin::Output*> > const&) KWin::Workspace::applyOutputConfiguration(KWin::OutputConfiguration&, std::optional<QList<KWin::Output*> > const&) KWin::Workspace::updateOutputConfiguration() KWin::Workspace::slotOutputBackendOutputsQueried() QtPrivate::QSlotObjectBase::Deleter::operator()(QtPrivate::QSlotObjectBase*) const inlined at /usr/include/c++/15.1.1/bits/unique_ptr.h:399:17 in void doActivate<false>(QObject*, int, void**) KWin::DrmBackend::updateOutputs() KWin::DrmBackend::handleUdevEvent() QtPrivate::QSlotObjectBase::Deleter::operator()(QtPrivate::QSlotObjectBase*) const inlined at /usr/include/c++/15.1.1/bits/unique_ptr.h:399:17 in void doActivate<false>(QObject*, int, void**) QWeakPointer<QObject>::isNull() const inlined at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qpointer.h:86:23 in QSocketNotifier::event(QEvent*) QCoreApplicationPrivate::setEventSpontaneous(QEvent*, bool) inlined at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3305:49 in QApplicationPrivate::notify_helper(QObject*, QEvent*) QCoreApplication::notifyInternal2(QObject*, QEvent*) QEventDispatcherUNIXPrivate::activateSocketNotifiers() QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) std::__atomic_base<int>::load(std::memory_order) const inlined at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qatomic_cxx11.h:214:29 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) QCoreApplication::exec() main With only external monitor enabled in settings, after external monitor is sleeping, internal monitor gets enabled, affecting allOff macro. I get this after "removed dpms-off output "PHL 49732 9057 34 2020 0"": sie 12 09:00:02 arch-portable kwin_wayland[335550]: DrmBackend::applyOutputChanges toBeEnabled << "eDP-1" sie 12 09:00:02 arch-portable kwin_wayland[335550]: kwin_wayland_drm: Attempting to match QList(DrmConnector(id=99, gpu="/dev/dri/card1", name="eDP-1", connection="Connected", countMode=13), DrmConnector(id=107, gpu="/dev/dri/card1", name="HDMI-A-1", connection="Disconnected", countMode=0)) with QList(DrmObject(id=85, gpu="/dev/dri/card1"), DrmObject(id=89, gpu="/dev/dri/card1"), DrmObject(id=93, gpu="/dev/dri/card1"), DrmObject(id=97, gpu="/dev/dri/card1")) sie 12 09:00:02 arch-portable kwin_wayland[335550]: kwin_wayland_drm: Assigning CRTC 85 to connector 99 sie 12 09:00:02 arch-portable kwin_wayland[335550]: kwin_wayland_drm: Attempting to match QList(DrmConnector(id=107, gpu="/dev/dri/card1", name="HDMI-A-1", connection="Disconnected", countMode=0)) with QList(DrmObject(id=89, gpu="/dev/dri/card1"), DrmObject(id=93, gpu="/dev/dri/card1"), DrmObject(id=97, gpu="/dev/dri/card1")) sie 12 09:00:02 arch-portable kwin_wayland[335550]: kwin_wayland_drm: Attempting to match QList() with QList(DrmObject(id=89, gpu="/dev/dri/card1"), DrmObject(id=93, gpu="/dev/dri/card1"), DrmObject(id=97, gpu="/dev/dri/card1")) sie 12 09:00:02 arch-portable kwin_wayland[335550]: kwin_wayland_drm: Testing CRTC assignment... passed sie 12 09:00:02 arch-portable kwin_wayland[335550]: Output::setState "eDP-1" enabled = true KWin::Output::setState(KWin::Output::State const&) [clone .cold] QArrayDataPointer<char16_t>::QArrayDataPointer(QArrayDataPointer<char16_t> const&) inlined at /usr/include/qt6/QtCore/qstring.h:1340:51 in KWin::DrmOutput::applyQueuedChanges(std::shared_ptr<KWin::OutputChangeSet> const&) [clone .part.0] KWin::DrmBackend::applyOutputChanges(KWin::OutputConfiguration const&) KWin::Workspace::applyOutputConfiguration(KWin::OutputConfiguration&, std::optional<QList<KWin::Output*> > const&) KWin::Workspace::updateOutputConfiguration() KWin::Workspace::slotOutputBackendOutputsQueried() QtPrivate::QSlotObjectBase::Deleter::operator()(QtPrivate::QSlotObjectBase*) const inlined at /usr/include/c++/15.1.1/bits/unique_ptr.h:399:17 in void doActivate<false>(QObject*, int, void**) KWin::DrmBackend::updateOutputs() KWin::DrmBackend::handleUdevEvent() QtPrivate::QSlotObjectBase::Deleter::operator()(QtPrivate::QSlotObjectBase*) const inlined at /usr/include/c++/15.1.1/bits/unique_ptr.h:399:17 in void doActivate<false>(QObject*, int, void**) QWeakPointer<QObject>::isNull() const inlined at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qpointer.h:86:23 in QSocketNotifier::event(QEvent*) QCoreApplicationPrivate::setEventSpontaneous(QEvent*, bool) inlined at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3305:49 in QApplicationPrivate::notify_helper(QObject*, QEvent*) QCoreApplication::notifyInternal2(QObject*, QEvent*) QEventDispatcherUNIXPrivate::activateSocketNotifiers() QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) std::__atomic_base<int>::load(std::memory_order) const inlined at /usr/src/debug/qt6-base/qtbase/src/corelib/thread/qatomic_cxx11.h:214:29 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) QCoreApplication::exec() main sie 12 09:00:03 arch-portable kwin_wayland[335550]: kwin_wayland_drm: Received change event for monitored drm device "/dev/dri/card1" sie 12 09:00:03 arch-portable kwin_wayland[335550]: kwin_wayland_drm: New output on GPU /dev/dri/card1: PHL 242E1GJ sie 12 09:00:03 arch-portable kwin_wayland[335550]: adding output "PHL 49732 9057 34 2020 0" sie 12 09:00:03 arch-portable kwin_wayland[335550]: allOff "eDP-1" mode = KWin::Output::DpmsMode::On enabled = true sie 12 09:00:03 arch-portable kwin_wayland[335550]: turning it on sie 12 09:00:03 arch-portable kwin_wayland[335550]: DrmBackend::applyOutputChanges toBeDisabled << "eDP-1" sie 12 09:00:03 arch-portable kwin_wayland[335550]: DrmBackend::applyOutputChanges toBeEnabled << "HDMI-A-1" sie 12 09:00:03 arch-portable kwin_wayland[335550]: kwin_wayland_drm: Attempting to match QList(DrmConnector(id=99, gpu="/dev/dri/card1", name="eDP-1", connection="Connected", countMode=13), DrmConnector(id=107, gpu="/dev/dri/card1", name="HDMI-A-1", connection="Connected", countMode=45)) with QList(DrmObject(id=85, gpu="/dev/dri/card1"), DrmObject(id=89, gpu="/dev/dri/card1"), DrmObject(id=93, gpu="/dev/dri/card1"), DrmObject(id=97, gpu="/dev/dri/card1")) sie 12 09:00:03 arch-portable kwin_wayland[335550]: kwin_wayland_drm: Unassigning CRTC from connector 99 sie 12 09:00:03 arch-portable kwin_wayland[335550]: kwin_wayland_drm: Attempting to match QList(DrmConnector(id=107, gpu="/dev/dri/card1", name="HDMI-A-1", connection="Connected", countMode=45)) with QList(DrmObject(id=85, gpu="/dev/dri/card1"), DrmObject(id=89, gpu="/dev/dri/card1"), DrmObject(id=93, gpu="/dev/dri/card1"), DrmObject(id=97, gpu="/dev/dri/card1")) sie 12 09:00:03 arch-portable kwin_wayland[335550]: kwin_wayland_drm: Assigning CRTC 85 to connector 107 sie 12 09:00:03 arch-portable kwin_wayland[335550]: kwin_wayland_drm: Attempting to match QList() with QList(DrmObject(id=89, gpu="/dev/dri/card1"), DrmObject(id=93, gpu="/dev/dri/card1"), DrmObject(id=97, gpu="/dev/dri/card1")) sie 12 09:00:03 arch-portable kwin_wayland[335550]: kwin_wayland_drm: Testing CRTC assignment... passed sie 12 09:00:03 arch-portable kwin_wayland[335550]: Output::setState "HDMI-A-1" enabled = true sie 12 09:00:03 arch-portable kwin_wayland[335550]: Output::setState "eDP-1" enabled = false sie 12 09:00:04 arch-portable kwin_wayland[335550]: removing from off list: "PHL 49732 9057 34 2020 0" -- You are receiving this mail because: You are watching all bug changes.