Unable to connect more than 3 monitors on Wayland with KDE, AMD GPU

I have been having the strangest issue. Without fail, no matter the configuration, when I connect a fourth monitor to my computer. The desktop freezes altogether and nothing displays on the newly connected screen. I can’t move the mouse or interact with the computer in any other way anything. I’ve tried different monitors, different cables, adapters, but no matter what it doesn’t work!

This is my current monitor setup: 4k@160hz connected with DP, 1080p@60hz connected with DP, 1080p@60hz connected with HDMI. I have tried connecting 1080p monitors, 480p monitors, lowering refresh rates and colour accuracy, nothing seems to let me go over 3 monitors. When I try it on X11, I can connect as many monitors as I want at whatever refresh rate I want, with no problems.

I have had this problem on both Arch (w/ CachyOS repos) and CachyOS, it has persisted multiple major KDE releases, Wayland updates, Kernel updates, etc. I can’t find absolutely anything that helps, and very few things on this topic in general. I am positively stumped. Thank you for any help.

== Current computer specs ==
Operating System: CachyOS Linux
KDE Plasma Version: 6.6.5
KDE Frameworks Version: 6.26.0
Qt Version: 6.11.1
Kernel Version: 7.0.9-1-cachyos (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 5600X 6-Core Processor
Memory: 32 GiB of RAM (31.2 GiB usable)
Graphics Processor: AMD Radeon RX 7900 XTX

== Relevant logs ==

May 20 12:26:40 TechtangularPrism org_kde_powerdevil[2780]: [  2780] Watching for display connection changes, resolved watch mode = Watch_Mode_Udev, poll loo>
May 20 12:26:40 TechtangularPrism org_kde_powerdevil[2780]: [  2780]                                          initial_stabilization_millisec: 0,  stabilizati>
May 20 12:26:40 TechtangularPrism org_kde_powerdevil[2780]: [  2780] libddcutil recheck thread 0x55d0e7db7a30 started
May 20 12:26:40 TechtangularPrism org_kde_powerdevil[2780]: [  3673][347.130847] Recheck interval: Sleeping for 200 milliseconds
May 20 12:26:40 TechtangularPrism org_kde_powerdevil[2780]: [  2780] libddcutil watch thread 0x55d0e7df6020 started
May 20 12:26:40 TechtangularPrism org_kde_powerdevil[2780]: [  2780] Display redetection finished.
May 20 12:26:40 TechtangularPrism org_kde_powerdevil[2780]: [  2780] Unquiescing libddcutil API...
May 20 12:26:40 TechtangularPrism org_kde_powerdevil[2780]: [  2780][347.130876] (ddca_get_display_refs) Returned DDCA_Display_Ref list:
May 20 12:26:40 TechtangularPrism org_kde_powerdevil[2780]: [  2780][347.130880]    DDCA_Display_Ref Display_Ref[12:bus /dev/i2c-7 @0x55d0e7e0a860]
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 00000000e58e0f03 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 00000000e58e0f03 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 00000000e58e0f03 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 000000008334ee79 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 000000001871b903 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 000000001871b903 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 000000008334ee79 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 000000008334ee79 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 000000008334ee79 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 000000004157e286 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 000000001871b903 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 000000001871b903 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Applying output configuration failed!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 000000004157e286 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 000000004157e286 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 000000004157e286 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 00000000e58e0f03 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 000000001871b903 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 000000001871b903 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 00000000e58e0f03 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 00000000e58e0f03 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 00000000e58e0f03 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 000000008334ee79 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 000000001871b903 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kernel: amdgpu 0000:0c:00.0: [drm] Adding stream 000000001871b903 to context failed with err 2!
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Atomic modeset test failed! Invalid argument
May 20 12:26:40 TechtangularPrism kwin_wayland[1960]: Applying output configuration failed!
May 20 12:27:19 TechtangularPrism systemd[1732]: app-systemsettings@68e4a310167646b19e5b75819e7e5ab6.service: Consumed 4.689s CPU time over 2min 51.515s wall>
May 20 12:27:25 TechtangularPrism kernel: [UFW BLOCK] IN=enp6s0 OUT= MAC=24:4b:fe:93:2f:02:0e:5c:ea:7e:7b:66:08:00 SRC=192.168.86.40 DST=192.168.86.38 LEN=60>
May 20 12:27:34 TechtangularPrism kernel: [UFW BLOCK] IN=enp6s0 OUT= MAC=24:4b:fe:93:2f:02:0e:5c:ea:7e:7b:66:08:00 SRC=192.168.86.40 DST=192.168.86.38 LEN=60>
May 20 12:27:35 TechtangularPrism baloo_file_extractor[3411]: Busy, paced indexing
May 20 12:28:21 TechtangularPrism org_kde_powerdevil[2780]: [  3674][448.247080] Udev event detected
May 20 12:28:21 TechtangularPrism org_kde_powerdevil[2780]: [  3674][448.247150] Udev_Event_Detail
May 20 12:28:21 TechtangularPrism org_kde_powerdevil[2780]: [  3674][448.247150]    prop_subsystem:  drm
May 20 12:28:21 TechtangularPrism org_kde_powerdevil[2780]: [  3674][448.247150]    prop_action:     change
May 20 12:28:21 TechtangularPrism org_kde_powerdevil[2780]: [  3674][448.247150]    prop_connector:  378
May 20 12:28:21 TechtangularPrism org_kde_powerdevil[2780]: [  3674][448.247150]    prop_devname:    /dev/dri/card1
May 20 12:28:21 TechtangularPrism org_kde_powerdevil[2780]: [  3674][448.247150]    prop_devmode:    (null)
May 20 12:28:21 TechtangularPrism org_kde_powerdevil[2780]: [  3674][448.247150]    prop_hotplug:    1
May 20 12:28:21 TechtangularPrism org_kde_powerdevil[2780]: [  3674][448.247150]    prop_major:      226
May 20 12:28:21 TechtangularPrism org_kde_powerdevil[2780]: [  3674][448.247150]    prop_minor:      1
May 20 12:28:21 TechtangularPrism org_kde_powerdevil[2780]: [  3674][448.247150]    sysname:         card1
May 20 12:28:21 TechtangularPrism org_kde_powerdevil[2780]: [  3674][448.247150]    syspath:         /sys/devices/pci0000:00/0000:00:03.1/0000:0a:00.0/0000:0>
May 20 12:28:21 TechtangularPrism org_kde_powerdevil[2780]: [  3674][448.247150]    attr_name:       (null)
May 20 12:28:21 TechtangularPrism org_kde_powerdevil[2780]: [  3674][448.247150] prop_connector = 378 -> /dev/i2c-6
May 20 12:28:21 TechtangularPrism org_kde_powerdevil[2780]: [  3674][448.247150] prop_connector = 378 -> card1-DP-1
May 20 12:28:21 TechtangularPrism org_kde_powerdevil[2780]: [  3674][448.247185] (dw_watch_display_connections) Time since last return from sleep = 448187877>
May 20 12:28:21 TechtangularPrism kwin_wayland[1960]: Could not find edid for connector DrmConnector(id=404, gpu="/dev/dri/card1", name="HDMI-A-1", connectio>

That just means the driver says no. KWin will fall back and turn off displays to recover the session after at most a few seconds though.

You can try Debugging DRM issues · Wiki · Plasma / KWin · GitLab to find the reason for why it doesn’t work.

Hello, thank you for your response.

KWin does not turn off the display to recover the session weirdly enough, it just makes the system extremely extremely laggy (~1 frame per 10 seconds) or frozen entirely.

I checked DRM logs. From what it shows, each time I connect the extra display I get a bandwidth issue:

[162586.489286] amdgpu 0000:0c:00.0: [drm:amdgpu_dm_atomic_check [amdgpu]] DC global validation failure: Bandwidth validation failure (BW and Watermark) (13)
[162586.489552] amdgpu 0000:0c:00.0: [drm:amdgpu_dm_atomic_check [amdgpu]] Atomic check failed with err: -22

The vexing thing is that there seem to be no bandwidth issues on X11, implying that something is wrong with the Wayland session’s interaction with the drivers. I checked issue 509635 but it didn’t provide an answer.

Checking the theoretical performance of my card (on Techpowerup, can’t attach links for some reason), it should be well within the pixel rate, with the amount of pixels per second of my setup without the extra monitor being (3840 * 2160 * 160) + (1920 * 1080 * 60 * 2) == 1 575 936 000 out of a theoretical 479.6 GPixel/s (admittedly I doubt this is the correct thing to be comparing against, but it’s the only thing I could find).