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.

Reply via email to