Bug 509635 - Screen stays black on login / settings can't be applied using 4k@60Hz + Prefer Accuracy (Bandwidth issues?) in multi screen setup
Summary: Screen stays black on login / settings can't be applied using 4k@60Hz + Pref...
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: multi-screen (other bugs)
Version First Reported In: 6.4.5
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: multiscreen, wayland-only
Depends on:
Blocks:
 
Reported: 2025-09-18 12:27 UTC by postix
Modified: 2025-10-21 22:03 UTC (History)
2 users (show)

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


Attachments
Autogenerated config file, where the issue appears (6.40 KB, application/json)
2025-09-19 11:22 UTC, postix
Details
Autogenerated config file, where the issue does not appear (6.40 KB, application/json)
2025-09-19 11:23 UTC, postix
Details
drm debug log (138.39 KB, text/x-log)
2025-10-16 20:03 UTC, postix
Details
drm debug log (zipped), when primary didn't turn on (2.42 MB, application/zip)
2025-10-17 09:45 UTC, postix
Details
Debug log, when applying config failed! (1.80 MB, application/x-troff-man)
2025-10-17 10:06 UTC, postix
Details
drm debug output, with 4k@60Hz and Accuracy, where the 2nd screen froze (1.96 MB, application/zip)
2025-10-17 13:54 UTC, postix
Details
drm debug log after having applied the MR (899.04 KB, application/zip)
2025-10-18 13:52 UTC, postix
Details

Note You need to log in before you can comment on or make changes to this bug.
Description postix 2025-09-18 12:27:43 UTC
Follow up from bug #507702

It gets even more weird:

1) 2nd DP monitor attached
2) marked as enabled, got the error
3) marked 2nd monitor as primary
3) marked 1st DP monitor as disabled
4) hit apply:

The 2nd DP monitor turns on. I could not click on "Apply configuration", because the screen placed some HUD message on top of it, so the configuration got reverted.

Now the 2nd DP monitor turned off again and the 1st DP monitor turned on again, but I got no cursor and the screen appeared frozen.
Hitting "Meta" to open kicker made the screen briefly flicker once.

Switched to another TTY, killed the session with loginctl and logged back in, both screens turned on, but only showed a black screen with a usable cursor.

Disconnected the 2nd DP monitor, killed the session again and logged back in: The screen scaling of the 1st DP monitor had been reset from 2.0 to 1.0.

So, for now I am left to use only a single screen.

SOFTWARE/OS VERSIONS
Operating System: openSUSE Tumbleweed 20250914
KDE Plasma Version: 6.4.5
KDE Frameworks Version: 6.17.0
Qt Version: 6.9.2
Kernel Version: 6.16.7-1-default (64-bit)
Graphics Platform: Wayland
Graphics Processor: AMD Radeon RX 580 Series

ADDITIONAL INFORMATION
Comment 1 postix 2025-09-18 12:32:36 UTC
I plugged in the 2nd DP monitor again:
The primary screen (1st DP monitor) froze, the 2nd did not turn on and the cursor vanished.

On unplugging the 2nd DP monitor now:
The 1st DP monitor was usable again, but the scaling reset once more.
Comment 2 postix 2025-09-18 12:36:41 UTC
> kscreen-doctor info
doesn't print anything for me. How odd.
Comment 3 postix 2025-09-19 11:22:14 UTC
Created attachment 185087 [details]
Autogenerated config file, where the issue appears

When restarting kwin or logging back in, kwinoutputconfig.json becomes overwritten. I've attached the auto generated file for the user, where the issue appears.
Comment 4 postix 2025-09-19 11:23:51 UTC
Created attachment 185088 [details]
Autogenerated config file, where the issue does not appear

This config file is from a newly created user, where things just work fine.
Comment 5 postix 2025-09-19 16:57:23 UTC
The X11 session works fine.

In Journalctl I also see

```
kwin_wayland[3001]: No backend specified, automatically choosing drm
kwin_wayland[3001]: kwin_xkbcommon: XKB: Multiple definitions of group 0 name in map 'nodeadkeys'; Using '>
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset commit failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_core: Applying output configuration failed!
kcminit_startup[3005]: Initializing  "/usr/lib64/qt6/plugins/plasma/kcms/systemsettings/kcm_fonts.so"
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset commit failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
kwin_wayland[3001]: kwin_wayland_drm: Atomic modeset test failed! Invalid argument
```
Comment 6 Zamundaaa 2025-10-14 11:42:20 UTC
Please follow https://invent.kde.org/plasma/kwin/-/wikis/Debugging/Debugging-DRM-issues to get a drm debug log of the failing modesets
Comment 7 postix 2025-10-16 20:01:49 UTC
Now, when I changed the PreverAccuracy to PreverEfficiency (+ ICC profile) for the 2nd screen in order try to trigger the issue, I ended up in having an extremely slow and unresponsive UI, until I unplug the  2nd screen.

Is there a way to change this via a configuration file?  I can only work over ssh or when using a single screen. I tried to edit kwinoutconfig.json, but this file gets overwritten always.
Comment 8 postix 2025-10-16 20:03:23 UTC
Created attachment 185844 [details]
drm debug log

Anyway, I already captured some DRM mode set issues. Please see the log file. 

I hope I copied the relevant parts, the whole file has a size of 12 MB compressed.
Comment 9 postix 2025-10-16 20:04:23 UTC
```
[28054.696145] [   T1793] [drm:create_validate_stream_for_sink [amdgpu]] Pruned mode 3840 x 2160 (clk 1188000) RGB 6-bpc -- Bandwidth validation failure (BW and Watermark)
[28054.696361] [   T1793] amdgpu 0000:0a:00.0: [drm:drm_mode_prune_invalid] Rejected mode: "3840x2160": 160 1409280 3840 3888 3920 4000 2160 2163 2168 2202 0x40 0x9 (ERROR)
[28054.696365] [   T1793] amdgpu 0000:0a:00.0: [drm:drm_mode_prune_invalid] Rejected mode: "3840x2160": 144 1277400 3840 3888 3920 4000 2160 2209 2214 2220 0x40 0x9 (ERROR)
[28054.696369] [   T1793] amdgpu 0000:0a:00.0: [drm:drm_mode_prune_invalid] Rejected mode: "3840x2160": 120 1188000 3840 4016 4104 4400 2160 2168 2178 2250 0x40 0x5 (ERROR)
[28054.696372] [   T1793] amdgpu 0000:0a:00.0: [drm:drm_mode_prune_invalid] Rejected mode: "3840x2160": 120 1186813 3840 4016 4104 4400 2160 2168 2178 2250 0x40 0x5 (ERROR)
[28054.696375] [   T1793] amdgpu 0000:0a:00.0: [drm:drm_mode_prune_invalid] Rejected mode: "3840x2160": 120 1097750 3840 3952 3984 4000 2160 2279 2284 2287 0x40 0x9 (ERROR)
[28054.696378] [   T1793] amdgpu 0000:0a:00.0: [drm:drm_mode_prune_invalid] Rejected mode: "3840x2160": 100 1188000 3840 4896 4984 5280 2160 2168 2178 2250 0x40 0x5 (ERROR)
```

```
[28054.698761] [   T1793] amdgpu 0000:0a:00.0: [drm:dce112_validate_bandwidth [amdgpu]] dce112_validate_bandwidth: Bandwidth validation failed!
[28054.698980] [   T1793] amdgpu 0000:0a:00.0: [drm:amdgpu_dm_atomic_check [amdgpu]] DC global validation failure: Bandwidth validation failure (BW and Watermark) (13)
[28054.699196] [   T1793] amdgpu 0000:0a:00.0: [drm:amdgpu_dm_atomic_check [amdgpu]] Atomic check failed with err: -22
```
Comment 10 Zamundaaa 2025-10-16 20:37:54 UTC
You need to edit the config json while kwin isn't running for it to not be overwritten. Or you can use
WAYLAND_DISPLAY=wayland-0
to use kscreen-doctor from ssh to recover.

The logs suggest bandwidth issues, but there's nothing about the actual failing commits in there... it's probably after the parts you attached. Could you upload the full logs somewhere? Compressed would be okay.
Comment 11 postix 2025-10-17 09:45:26 UTC
Created attachment 185857 [details]
drm debug log (zipped), when primary didn't turn on

Hi! I haven't yet recovered the 2nd screen, but ssh'd into the machine before logging in via SDDM:

1) The 2nd screen was detached, the primary was working
2) Started recording the debug log over ssh
3) Attached the 2nd screen
4) Logged in

The primary screen stayed black. I've waited ~ 10 seconds, then stopped the recording.

5) Detached the 2nd screen and the 2nd screen showed an image (Plasma desktop) again.
Comment 12 postix 2025-10-17 10:06:18 UTC
Created attachment 185858 [details]
Debug log, when applying config failed!

Follow up:

1) Logged in
2) disabled the 2nd screen with kscreen-doctor over ssh
3) Changed the setting to prefer performance in kscreen
4) Started the recording
5) ran WAYLAND_DISPLAY=wayland-0 kscreen-doctor output.DP2-enable over ssh
> applying config failed! The driver rejected the output configuration
6) stopped the recording
Comment 13 postix 2025-10-17 10:17:22 UTC
:-( Unfortunately I cannot get the 2nd screen working again in the moment and will continue working with only a single screen today.
Comment 14 postix 2025-10-17 10:20:38 UTC
I got a another data point

kscreen-doctor output.DP2.mode.3840x2160@30
kscreen-doctor output.DP2.enable

works!

kscreen-doctor output.DP2.mode.3840x2160@60
kscreen-doctor output.DP2.enable

gives me
> applying config failed! The driver rejected the output configuration
Comment 15 postix 2025-10-17 10:24:39 UTC
Sooo, I found steps to reproduce for me:


- Fails:    3840x2160@60Hz & Prefer Accuracy
- Works: 3840x2160@30Hz & Prefer Accuracy
- Works: 3840x2160@60Hz & Prefer Efficiency
Comment 16 Zamundaaa 2025-10-17 13:13:26 UTC
Hmm, I looked up the specific warnings in the kernel and it *seems* like it's not about connector bandwidth but about GPU memory bandwidth.
When the screen is enabled at 60Hz with "prefer efficiency", does changing the setting to "prefer accuracy" work then?

If that gets rejected, we likely just need an automatic fallback to lower bandwidth formats in KWin. It's annoying, but not entirely unexpected...
Comment 17 postix 2025-10-17 13:26:00 UTC
(In reply to Zamundaaa from comment #16)
> When the screen is enabled at 60Hz with "prefer efficiency", does changing
> the setting to "prefer accuracy" work then?

This gets rejected. 

Using a single screen with 4k@60Hz is fine with "prefer accuracy".
Using two screens with 4k@50Hz and both "prefer efficiency" works too, but not setting one of the screen to "prefer accuracy".
Comment 18 postix 2025-10-17 13:26:17 UTC
4k@60Hz, not 50Hz
Comment 19 Bug Janitor Service 2025-10-17 13:28:09 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/8265
Comment 20 postix 2025-10-17 13:37:27 UTC
I've tested it again:

both screen turned on and working with 4k@60Hz and both with prefer efficiency.
When I set the 2nd screen now to accuracy, it was *not* rejected, but the screen is frozen.
Comment 21 postix 2025-10-17 13:37:53 UTC
and the cursor on the primary screen feels a bit sluggish.
Comment 22 postix 2025-10-17 13:39:10 UTC
(Sorry for the many single posts in a row)

When I tried to change it now back from 4k@60Hz with Prefer Accuracy + Prefer Efficiency to both Prefer Efficiency, the config got rejected.
Comment 23 postix 2025-10-17 13:40:50 UTC
Changing it back the following way 60 Hz Accuracy -> 30 Hz Accuracy -> 30 Hz Efficiency -> 60 Hz Efficiency works ...
Comment 24 postix 2025-10-17 13:44:07 UTC
I can interchange 30 Hz with 50 Hz fwiw.

> A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/8265
I could test the patch later over the weekend.
Comment 25 Zamundaaa 2025-10-17 13:45:03 UTC
(In reply to postix from comment #20)
> When I set the 2nd screen now to accuracy, it was *not* rejected, but the
> screen is frozen.
Oof. That part sounds like a driver bug. Anything in the kwin or dmesg logs when you do that?
Comment 26 postix 2025-10-17 13:51:54 UTC
Weirdly, it took me few tries to get it not rejected this time, but finally I managed to get it into the state, where it froze:

The following got spammed in the log for kwin_wayland:

```
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Applying output configuration failed!
15:47:43 kwin_wayland[4651]: Atomic modeset commit failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Atomic modeset test failed! Invalid argument
15:47:43 kwin_wayland[4651]: Applying output configuration failed!
```

I will check the dmesg output next
Comment 27 postix 2025-10-17 13:54:48 UTC
Created attachment 185860 [details]
drm debug output, with 4k@60Hz and Accuracy, where the 2nd screen froze
Comment 28 postix 2025-10-17 13:55:28 UTC
> The following got spammed in the log for kwin_wayland:
This was just a snippet, it got spammed over the whole time of freezing, until the config got reset to 30 Hz automatically
Comment 29 postix 2025-10-17 14:04:10 UTC
Even if this is not a IM but a bug tracker, ... let me say thank you very, very much at this point for your help and work! It's very much appreciated :-)
Comment 30 postix 2025-10-18 13:52:01 UTC
Created attachment 185881 [details]
drm debug log after having applied the MR

I've tested your MR on the master branch of kwin: Works! \o/

I see the following output in journalctl, when going from 4k@60Hz Prefer Efficiency to Prefer Accuracy:

```
kwin_wayland[2708896]: Failed to find a working output layer configuration! Enabled layers:
kwin_wayland[2708896]: src QRectF(0,0 3840x2160) -> dst QRect(0,0 3840x2160)
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
kwin_wayland[2708896]: Atomic modeset test failed! Invalid argument
```
I've also attached the corresponding drm debug log for the same step.
Comment 31 Zamundaaa 2025-10-21 10:51:07 UTC
(In reply to postix from comment #30)
> I see the following output in journalctl, when going from 4k@60Hz Prefer
> Efficiency to Prefer Accuracy:
> 
> ```
> kwin_wayland[2708896]: Failed to find a working output layer configuration!
> Enabled layers:
> kwin_wayland[2708896]: src QRectF(0,0 3840x2160) -> dst QRect(0,0 3840x2160)
Aha, there's a bit more to do then. That one I looked into before, but didn't finish... We're supposed to do the low bandwidth fallback immediately, rather than when trying to present an image later fails.
Comment 32 Bug Janitor Service 2025-10-21 11:20:41 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/8290
Comment 33 Zamundaaa 2025-10-21 13:33:43 UTC
Git commit f67e5b6f2b7a7d23fbb343c235c2f4a4c0b6f0ba by Xaver Hugl.
Committed on 21/10/2025 at 10:40.
Pushed by zamundaaa into branch 'master'.

backends/drm: expand the implicit modifier fallback to low bandwidth formats

32 vs 64 bits per color usually makes a much bigger difference vs. how much
bandwidth a modifier needs.
This bundles the two into one single fallback, to make sure that we don't do
more atomic tests than before. When we finally get the KMS API to know whether
or not reducing bandwidth will help, we can split this up into two steps.

M  +10   -7    src/backends/drm/drm_gpu.cpp
M  +2    -2    src/backends/drm/drm_gpu.h
M  +1    -1    src/backends/drm/drm_layer.cpp
M  +14   -4    src/backends/drm/drm_plane.cpp
M  +2    -2    src/backends/drm/drm_plane.h

https://invent.kde.org/plasma/kwin/-/commit/f67e5b6f2b7a7d23fbb343c235c2f4a4c0b6f0ba
Comment 34 Zamundaaa 2025-10-21 15:14:20 UTC
Git commit ade8159b2730a89d698d49db87032fa65fc62c27 by Xaver Hugl.
Committed on 21/10/2025 at 14:40.
Pushed by zamundaaa into branch 'Plasma/6.5'.

backends/drm: expand the implicit modifier fallback to low bandwidth formats

32 vs 64 bits per color usually makes a much bigger difference vs. how much
bandwidth a modifier needs.
This bundles the two into one single fallback, to make sure that we don't do
more atomic tests than before. When we finally get the KMS API to know whether
or not reducing bandwidth will help, we can split this up into two steps.


(cherry picked from commit f67e5b6f2b7a7d23fbb343c235c2f4a4c0b6f0ba)

Co-authored-by: Xaver Hugl <xaver.hugl@kde.org>

M  +10   -7    src/backends/drm/drm_gpu.cpp
M  +2    -2    src/backends/drm/drm_gpu.h
M  +1    -1    src/backends/drm/drm_layer.cpp
M  +14   -4    src/backends/drm/drm_plane.cpp
M  +2    -2    src/backends/drm/drm_plane.h

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