Bug 465712 - After upgrade to 5.27, periodic visual glitches when monitors' refresh rates don't match
Summary: After upgrade to 5.27, periodic visual glitches when monitors' refresh rates ...
Status: RESOLVED UPSTREAM
Alias: None
Product: kwin
Classification: Plasma
Component: multi-screen (show other bugs)
Version: 5.27.0
Platform: openSUSE Linux
: HI major
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: regression
: 466408 (view as bug list)
Depends on:
Blocks:
 
Reported: 2023-02-14 14:55 UTC by Jakub Narolewski
Modified: 2024-01-19 13:48 UTC (History)
11 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jakub Narolewski 2023-02-14 14:55:01 UTC
SUMMARY

I have just upgraded my openSUSE installation and I hit a weird issue. I'm getting periodic black screen flashes at random'ish intervals and sometimes when interacting with Plasma elements. It happens only on my main screen - secondary seems to be fine.

I do not see any errors in journalctl nor in dmesg that could be connected to it.

STEPS TO REPRODUCE
1.  Log in to the Plasma Desktop
2.  Patiently observe the main monitor or click some stuff

OBSERVED RESULT
Main monitor flashes black.

EXPECTED RESULT
Main monitor works properly.

SOFTWARE/OS VERSIONS

Operating System: openSUSE Tumbleweed 20230213
KDE Plasma Version: 5.27.0
KDE Frameworks Version: 5.103.0
Qt Version: 5.15.8
Kernel Version: 6.1.10-1-default (64-bit)
Graphics Platform: X11
Processors: 16 × AMD Ryzen 7 2700X Eight-Core Processor
Memory: 31,3 GiB of RAM
Graphics Processor: NVIDIA GeForce RTX 2080 Ti/PCIe/SSE2
Manufacturer: Micro-Star International Co., Ltd.
Product Name: MS-7B78
System Version: 1.0
Comment 1 Jakub Narolewski 2023-02-14 15:03:30 UTC
It seemed to stop when I switched my main screen to the 60Hz - the same refresh rate as my secondary screen - it was set to the 144Hz
Comment 2 Jakub Narolewski 2023-02-14 21:23:51 UTC
Happens also inside the Wayland session. I can confirm that the monitor itself works fine under Windows 11 with refresh rate set to 144Hz.
Comment 3 Jakub Narolewski 2023-02-15 08:19:22 UTC
I observe no flashes when I switch off my secondary display and switch main one to the 144Hz - so it works fine in single monitor mode.
What is interesting the flashes are there even on the SDDM screen, as soon as I boot my system. SDDM seems to force some higher refresh rate by default.
Comment 4 David Edmundson 2023-02-15 09:20:35 UTC
This isn't globally reproducible, can you try some tests to narrow this down

 - Was this definitely a non-issue on older Plasma?

 - Does this happen if you run a different (non-compositor) window manager. Can you run "openbox --replace" and see if goes away. That will show if the issue might be lower in the stack.

 - Can you run "kscreen-doctor --monitor" and rerproduce some flickering, to check if we're reconfiguring the monitor constantly
Comment 5 Jakub Narolewski 2023-02-15 09:43:31 UTC
(In reply to David Edmundson from comment #4)
>  - Was this definitely a non-issue on older Plasma?
>
Yes. I was using 5.26 for very long time without issues.

>  - Does this happen if you run a different (non-compositor) window manager. Can you run "openbox --replace" and see if goes away. That will show if the issue might be lower in the stack.
>
Will check this soon.

>  - Can you run "kscreen-doctor --monitor" and rerproduce some flickering, to check if we're reconfiguring the monitor constantly
>
Is --monitor a valid flag for kscreen-doctor? I get `Unknown option 'monitor'` and --help is not listing it.
Comment 6 Jakub Narolewski 2023-02-15 10:21:20 UTC
(In reply to David Edmundson from comment #4)

>  - Can you run "kscreen-doctor --monitor" and rerproduce some flickering, to
> check if we're reconfiguring the monitor constantly

To be also perfectly clear as how it looks like as I think that "flickering" undersells it a bit :P

https://streamable.com/onjidu
Comment 7 Jakub Narolewski 2023-02-15 11:04:44 UTC
(In reply to David Edmundson from comment #4)

>  - Can you run "kscreen-doctor --monitor" and rerproduce some flickering, to
> check if we're reconfiguring the monitor constantly

I guess it should be "kscreen-console monitor". No, when this occurs no new stuff is printed by it.
But!
The flash occurs every single time I launch and close kscreen-console in terminal when monitor is set to 144Hz - will attach a link do video soon.
Comment 8 Jakub Narolewski 2023-02-15 12:45:16 UTC
Using snapper I have booted a snapshot from before the upgrade. Now I'm at:

Operating System: openSUSE Tumbleweed 20230209
KDE Plasma Version: 5.26.5
KDE Frameworks Version: 5.102.0
Qt Version: 5.15.8
Kernel Version: 6.1.10-1-default (64-bit)
Graphics Platform: X11
Processors: 16 × AMD Ryzen 7 2700X Eight-Core Processor
Memory: 31,3 GiB of RAM
Graphics Processor: NVIDIA GeForce RTX 2080 Ti/PCIe/SSE2
Manufacturer: Micro-Star International Co., Ltd.
Product Name: MS-7B78
System Version: 1.0

And the problem went away.
Comment 9 Jakub Narolewski 2023-02-15 13:07:26 UTC
(In reply to David Edmundson from comment #4)

>  - Does this happen if you run a different (non-compositor) window manager.
> Can you run "openbox --replace" and see if goes away. That will show if the
> issue might be lower in the stack.

It also happens with openbox. This video shows behavior of kscreen-console for 60 and 144Hz. You can see the same flashes every time the kscreen-console is launched or closed while monitor is set to 144Hz: https://streamable.com/p0tzlx
Comment 10 Jakub Narolewski 2023-02-15 18:38:25 UTC
kscreen-console is using libkscreen to slurp the screen config from the system and I see quite a bit of changes there lately: https://invent.kde.org/plasma/libkscreen/-/commits/v5.27.0 I wonder if the way forward would be to bisect it and check if something there influences it.
Comment 11 Liz 2023-02-16 19:08:25 UTC
I can confirm that I am seeing the same thing on my pc.

> It seemed to stop when I switched my main screen to the 60Hz - the same refresh rate as my secondary screen - it was set to the 144Hz
I can confirm that 60Hz refresh rate fixed it for me as well. My monitors support 60, 120, and 240. All but of which besides 60 cause issues now.

> Was this definitely a non-issue on older Plasma?
Yes, I was running kde plasma 5.26 before with no issue

> Does this happen if you run a different (non-compositor) window manager. Can you run "openbox --replace" and see if goes away. That will show if the issue might be lower in the stack.
The same issue occurs when using openbox --replace although i do receive the warning

> Openbox-Warning: Openbox is configured for 4 desktops, but the current session has 1.  Overriding the Openbox configuration.

> Priorities changed: QMap((444, KScreen::Output(444, "DP-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(445, KScreen::Output(445, "DP-1", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(446, KScreen::Output(446, "HDMI-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(447, KScreen::Output(447, "DP-2", connected enabled priority 1, pos: QPoint(0,0), res: QSize(1920, 1080), modeId: "451", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(471, KScreen::Output(471, "DP-3", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(472, KScreen::Output(472, "DP-4", connected enabled priority 2, pos: QPoint(1920,0), res: QSize(1920, 1080), modeId: "451", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(473, KScreen::Output(473, "DP-5", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(474, KScreen::Output(474, "USB-C-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false)))
> Priorities changed: QMap((444, KScreen::Output(444, "DP-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(445, KScreen::Output(445, "DP-1", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(446, KScreen::Output(446, "HDMI-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(447, KScreen::Output(447, "DP-2", connected enabled priority 1, pos: QPoint(0,0), res: QSize(1920, 1080), modeId: "448", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(471, KScreen::Output(471, "DP-3", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(472, KScreen::Output(472, "DP-4", connected enabled priority 2, pos: QPoint(1920,0), res: QSize(1920, 1080), modeId: "451", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(473, KScreen::Output(473, "DP-5", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(474, KScreen::Output(474, "USB-C-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false)))
> Priorities changed: QMap((444, KScreen::Output(444, "DP-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(445, KScreen::Output(445, "DP-1", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(446, KScreen::Output(446, "HDMI-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(447, KScreen::Output(447, "DP-2", connected enabled priority 1, pos: QPoint(0,0), res: QSize(1920, 1080), modeId: "448", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(471, KScreen::Output(471, "DP-3", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(472, KScreen::Output(472, "DP-4", connected enabled priority 2, pos: QPoint(1920,0), res: QSize(1920, 1080), modeId: "451", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(473, KScreen::Output(473, "DP-5", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(474, KScreen::Output(474, "USB-C-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false)))
> Priorities changed: QMap((444, KScreen::Output(444, "DP-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(445, KScreen::Output(445, "DP-1", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(446, KScreen::Output(446, "HDMI-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(447, KScreen::Output(447, "DP-2", connected enabled priority 1, pos: QPoint(0,0), res: QSize(1920, 1080), modeId: "448", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(471, KScreen::Output(471, "DP-3", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(472, KScreen::Output(472, "DP-4", connected enabled priority 2, pos: QPoint(1920,0), res: QSize(1920, 1080), modeId: "448", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(473, KScreen::Output(473, "DP-5", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(474, KScreen::Output(474, "USB-C-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false)))
> Priorities changed: QMap((444, KScreen::Output(444, "DP-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(445, KScreen::Output(445, "DP-1", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(446, KScreen::Output(446, "HDMI-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(447, KScreen::Output(447, "DP-2", connected enabled priority 1, pos: QPoint(0,0), res: QSize(1920, 1080), modeId: "448", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(471, KScreen::Output(471, "DP-3", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(472, KScreen::Output(472, "DP-4", connected enabled priority 2, pos: QPoint(1920,0), res: QSize(1920, 1080), modeId: "448", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(473, KScreen::Output(473, "DP-5", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(474, KScreen::Output(474, "USB-C-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false)))
> Priorities changed: QMap((444, KScreen::Output(444, "DP-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(445, KScreen::Output(445, "DP-1", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(446, KScreen::Output(446, "HDMI-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(447, KScreen::Output(447, "DP-2", connected enabled priority 1, pos: QPoint(0,0), res: QSize(1920, 1080), modeId: "448", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(471, KScreen::Output(471, "DP-3", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(472, KScreen::Output(472, "DP-4", connected enabled priority 2, pos: QPoint(1920,0), res: QSize(1920, 1080), modeId: "451", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(473, KScreen::Output(473, "DP-5", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(474, KScreen::Output(474, "USB-C-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false)))
> Priorities changed: QMap((444, KScreen::Output(444, "DP-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(445, KScreen::Output(445, "DP-1", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(446, KScreen::Output(446, "HDMI-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(447, KScreen::Output(447, "DP-2", connected enabled priority 1, pos: QPoint(0,0), res: QSize(1920, 1080), modeId: "448", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(471, KScreen::Output(471, "DP-3", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(472, KScreen::Output(472, "DP-4", connected enabled priority 2, pos: QPoint(1920,0), res: QSize(1920, 1080), modeId: "451", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(473, KScreen::Output(473, "DP-5", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(474, KScreen::Output(474, "USB-C-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false)))
> Priorities changed: QMap((444, KScreen::Output(444, "DP-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(445, KScreen::Output(445, "DP-1", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(446, KScreen::Output(446, "HDMI-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(447, KScreen::Output(447, "DP-2", connected enabled priority 1, pos: QPoint(0,0), res: QSize(1920, 1080), modeId: "451", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(471, KScreen::Output(471, "DP-3", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(472, KScreen::Output(472, "DP-4", connected enabled priority 2, pos: QPoint(1920,0), res: QSize(1920, 1080), modeId: "451", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(473, KScreen::Output(473, "DP-5", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false))(474, KScreen::Output(474, "USB-C-0", disconnected disabled priority 0, pos: QPoint(0,0), res: QSize(-1, -1), modeId: "", scale: 1, clone: no, rotation: KScreen::Output::None, followPreferredMode: false)))
Comment 12 Liam Dawe 2023-02-17 18:51:57 UTC
I just upgraded Fedora 37, and I am seeing this exact issue. Driving me insane.

This is on Plasma 5.26.5 so it's not just on 5.27 that this happens.

I can confirm disabling my 60Hz monitor and sticking to my 180Hz monitor solves it, but obviously that's not an actual fix.
Comment 13 Jakub Narolewski 2023-02-17 21:09:48 UTC
(In reply to Liam Dawe from comment #12)
> I just upgraded Fedora 37, and I am seeing this exact issue. Driving me
> insane.
> 
> This is on Plasma 5.26.5 so it's not just on 5.27 that this happens.
> 
> I can confirm disabling my 60Hz monitor and sticking to my 180Hz monitor
> solves it, but obviously that's not an actual fix.

F37 is now on KDE Frameworks 5.103.0? I think that libkscreen / kscreen are packaged in it and in my case, apart from plasma 5.26.5 -> 5.27.0, frameworks were updated to 5.103
Comment 14 Liam Dawe 2023-02-18 10:20:36 UTC
Yes this also on KDE Frameworks 5.103.0.

I also tried kscreen-console monitor, and keeping it open while seeing the black screen flashing it doesn't seem to report anything. This is all it gave me while I saw it do it many times:

[liam@desktop-f7tu9t7 ~]$ kscreen-console monitor
kf.i18n: KLocalizedString: Using an empty domain, fix the code. msgid: "(c) 2012 KScreen Team" msgid_plural: "" msgctxt: ""
kf.i18n: KLocalizedString: Using an empty domain, fix the code. msgid: "KScreen Console" msgid_plural: "" msgctxt: ""
kf.i18n: KLocalizedString: Using an empty domain, fix the code. msgid: "KScreen Console" msgid_plural: "" msgctxt: ""
kf.i18n: KLocalizedString: Using an empty domain, fix the code. msgid: "Maintainer" msgid_plural: "" msgctxt: ""
kf.i18n: KLocalizedString: Using an empty domain, fix the code. msgid: "Alejandro Fiestas Olivares" msgid_plural: "" msgctxt: ""
kf.i18n: KLocalizedString: Using an empty domain, fix the code. msgid: "KScreen Console is a CLI tool to query KScreen status\n\nCommands:\n  bug             Show information needed for a bug report\n  config          Show KScreen config files\n  outputs         Show output information\n  monitor         Monitor for changes\n  json            Show current KScreen config" msgid_plural: "" msgctxt: ""
kf.i18n: KLocalizedString: Using an empty domain, fix the code. msgid: "Command to execute" msgid_plural: "" msgctxt: ""
kf.i18n: KLocalizedString: Using an empty domain, fix the code. msgid: "Arguments for the specified command" msgid_plural: "" msgctxt: ""
Remember to enable KSRandR or KSRandR11 in kdebugdialog

So that's not a way to detect it happening.
Comment 15 Liam Dawe 2023-02-18 10:33:34 UTC
I can also confirm that matching the refresh rate on both monitors also fixes it, in addition to turning off one monitor.
Comment 16 Jakub Narolewski 2023-02-19 09:26:12 UTC
This is somehow connected to the VRR / Adaptive-Sync / G-Sync. The problem went away when I disabled Adaptive-Sync in the OSD of my main monitor. For the record, it identifies as: Electronics-LG ULTRAGEAR-107NTZN7V189

I also see, that kscreen-console reports:

    {
        "enabled": true,
        "id": "c5319b8612a23fdfa95b46e53bc99d79",
        "metadata": {
            "fullname": "xrandr-LG Electronics-LG ULTRAGEAR-107NTZN7V189",
            "name": "DP-2"
        },
        "mode": {
            "refresh": 143.97325134277344,
            "size": {
                "height": 1440,
                "width": 2560
            }
        },
        "overscan": 0,
        "pos": {
            "x": 0,
            "y": 0
        },
        "priority": 1,
        "rgbrange": 0,
        "rotation": 1,
        "scale": 1,
        "vrrpolicy": 2
    }

with vrrpolicy set to 2 - which if I understand it - means "Automatic". Is there some way to force it to 0?
Comment 17 Nate Graham 2023-02-28 20:32:16 UTC
*** Bug 466408 has been marked as a duplicate of this bug. ***
Comment 18 Zamundaaa 2023-04-19 13:20:57 UTC
> vrrpolicy set to 2 - which if I understand it - means "Automatic". Is there some way to force it to 0?
This setting only has an effect on Wayland, where NVidia doesn't actually support vrr atm.

Is this still happening with 5.27.2 or newer? https://invent.kde.org/plasma/libkscreen/-/merge_requests/55 has been reverted in it because it caused other problems with NVidia, this might have the same cause
Comment 19 Liam Dawe 2023-04-25 13:27:00 UTC
I can confirm that as of now it does seem to work properly :)
Comment 20 Jakub Narolewski 2023-05-01 20:00:02 UTC
My HW setup changed a bit recently as my 60 Hz monitor died tragically. I now run two LG ULTRAGEARs - both capable of 144 Hz.

As soon as I switch Adaptive-Sync to ON in OSD settings of one of the monitors the flickering returns - even if both of them are set to 144 Hz. 
What is interesting is that when I turn Adaptive-Sync ON and then OFF I have to reboot my PC to get rig of the problem. Easy workaround in my case is to just turn off Adaptive-Sync to OFF on both monitors.

The situation from the time of original bugreport is also still valid - turning Adaptive-Sync to ON and setting both of the monitors to 60 Hz also fixes this situation.

I'm now running Plasma 5.27.4 on up-to-date openSUSE.
Comment 21 Nate Graham 2023-05-14 18:45:12 UTC
Thanks for the info.
Comment 22 Corbin 2023-11-12 00:44:07 UTC
I had this same issue, 144Hz main monitor, 60Hz secondary monitor, with the same Nvidia 2080Ti GPU. 
Fortunately, the issue was fixed with the latest driver release, I believe it was Version:	535.129.03
Release Date:	2023.10.31 (https://www.nvidia.com/Download/driverResults.aspx/213194/).

I have no more sudden black flickers of parts of the monitors when running at my preferred refresh rates.

In other words, I don't think this was a Plasma bug to begin with.

In my opinion this is resolved.
Comment 23 David Edmundson 2024-01-17 15:57:45 UTC
>Fortunately, the issue was fixed with the latest driver release, I believe it was Version:	535.129.03
>In my opinion this is resolved.

Jakob, have you also seen similar results.
Comment 24 Jakub Narolewski 2024-01-17 16:12:56 UTC
(In reply to David Edmundson from comment #23)
> >Fortunately, the issue was fixed with the latest driver release, I believe it was Version:	535.129.03
> >In my opinion this is resolved.
> 
> Jakob, have you also seen similar results.

Ah, sorry. I had both of my monitors set to 60hz for so long that I kinda forgot about this issue. The situation is as follows: both of my monitors are now set to 144Hz, both have Adaptive Sync enabled and nvidia driver is reported as of version: 545.29.06

I observe no flickering now :]
Comment 25 Nate Graham 2024-01-18 22:08:11 UTC
Great! And is the originally-reported issue of problems with non-matching refresh rates also fixed?
Comment 26 Jakub Narolewski 2024-01-19 12:20:38 UTC
(In reply to Nate Graham from comment #25)
> Great! And is the originally-reported issue of problems with non-matching
> refresh rates also fixed?

That is correct. I feel like this issue, for the scope it was originally created, can be closed now. Not sure if I should do it or how the rites require.
Comment 27 Zamundaaa 2024-01-19 13:48:18 UTC
Thanks for confirming.

> Not sure if I should do it or how the rites require
You can always close your own bug reports for whatever reason you have :)