Bug 472280

Summary: libkscreen regression between 5.27.5 and 5.27.6: custom xorg configuration does not work anymore
Product: [Plasma] KScreen Reporter: dura
Component: commonAssignee: kscreen-bugs-null <kscreen-bugs-null>
Status: REPORTED ---    
Severity: normal CC: qydwhotmail
Priority: NOR    
Version: 5.27.6   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: xorg.conf
systemsettings with libkscreen-5.27.5
systemsettings with libkscreen-5.27.6
xrandr output on :0.0
xrandr output on :0.1

Description dura 2023-07-15 12:58:47 UTC
Created attachment 160302 [details]
xorg.conf

The only real change between libkscreen 5.27.5 and 5.27.6 is: https://invent.kde.org/plasma/libkscreen/-/commit/e23ccb5063e1ae70c6eae9df4875dbd9fe4e72e9
Seems pretty harmless at first glance, but it has big consequences on my unusual setup!

My X.org setup consists of two independents screen. The first screen DISPLAY=:0.0 has two monitors: BDM4065 and L22W-3, the second screen DISPLAY=:0.1 has one monitor: SR5003. See attached xorg.conf and systemsettings screenshots.

KDE5 is launched on first screen (DISPLAY=:0.0).

Like xrandr libkscreen 5.27.5 sees first two monitors (expected behaviour). libkscreen 5.27.6 includes the third one. See attached screenshots and xrandr outputs.

I've added custom modelines to SR5003 for precise refresh rates when watching movies. The problem is that I can't use them anymore with libkscreen 5.27.6 the refresh rate is always 60hz. With 5.27.5 (or 5.27.6 with above commit reverted) modelines are working as expected. Note that the custom modeline is selected with xrandr (xrandr --output HDMI-0 --mode 0x37a --screen 1).
Comment 1 dura 2023-07-15 12:59:49 UTC
Created attachment 160303 [details]
systemsettings with libkscreen-5.27.5
Comment 2 dura 2023-07-15 13:00:10 UTC
Created attachment 160304 [details]
systemsettings with libkscreen-5.27.6
Comment 3 dura 2023-07-15 13:01:41 UTC
Created attachment 160305 [details]
xrandr output on :0.0
Comment 4 dura 2023-07-15 13:02:00 UTC
Created attachment 160306 [details]
xrandr output on :0.1
Comment 5 Bug Janitor Service 2023-08-18 16:36:23 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/libkscreen/-/merge_requests/154
Comment 6 Fushan Wen 2023-08-18 16:40:38 UTC
Can you try if the patch fixes your problem?
Comment 7 dura 2023-08-18 22:23:39 UTC
(In reply to Fushan Wen from comment #6)
> Can you try if the patch fixes your problem?

Unfortunately, your change does not solve anything. I still need to comment line 150 to revert to correct behavior. I don't understand why it does not crash on line 153 as xCrtc is NULL.
Comment 8 Fushan Wen 2023-08-19 00:24:22 UTC
Git commit 23ddbe7e43774516255fdd46bf4864652cc4f189 by Fushan Wen.
Committed on 19/08/2023 at 02:24.
Pushed by fusionfuture into branch 'master'.

backends/xrandr: make sure `XRandRCrtc::update` is always called

Amends https://invent.kde.org/plasma/libkscreen/-/commit/00b8ca2193ef75c2aace4eda2aae78b64fe46f92

M  +1    -2    backends/xrandr/xrandr.cpp

https://invent.kde.org/plasma/libkscreen/-/commit/23ddbe7e43774516255fdd46bf4864652cc4f189
Comment 9 Bug Janitor Service 2023-08-19 00:25:00 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/libkscreen/-/merge_requests/156
Comment 10 Fushan Wen 2023-08-19 00:26:50 UTC
Git commit 984b78ef3eb121d8c965c5285984b345d8241232 by Fushan Wen.
Committed on 19/08/2023 at 02:24.
Pushed by fusionfuture into branch 'Plasma/5.27'.

backends/xrandr: make sure `XRandRCrtc::update` is always called

Amends https://invent.kde.org/plasma/libkscreen/-/commit/00b8ca2193ef75c2aace4eda2aae78b64fe46f92


(cherry picked from commit 23ddbe7e43774516255fdd46bf4864652cc4f189)

M  +1    -2    backends/xrandr/xrandr.cpp

https://invent.kde.org/plasma/libkscreen/-/commit/984b78ef3eb121d8c965c5285984b345d8241232
Comment 11 Fushan Wen 2023-08-19 00:29:17 UTC
(In reply to dura from comment #7)
> (In reply to Fushan Wen from comment #6)
> > Can you try if the patch fixes your problem?
> 
> Unfortunately, your change does not solve anything. I still need to comment
> line 150 to revert to correct behavior. I don't understand why it does not
> crash on line 153 as xCrtc is NULL.

It may have already crashed, but it's another process.