https://bugs.kde.org/show_bug.cgi?id=520974
Bug ID: 520974
Summary: All displays go blank when Samsung S85F TV is turned
on / connected via HDMI. System remains alive (SSH
works). Unplugging or turning off the TV immediately
restores all displays. Hyprland works perfectly.
Classification: Plasma
Product: kwin
Version First 6.6.5
Reported In:
Platform: CachyOS
OS: Linux
Status: REPORTED
Severity: major
Priority: NOR
Component: wayland-generic
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
PREFACE! DISCLAIMER!!!
This is a real issue I'm having. I could find no way to fix it myself, I
desperately tried to get Claude to help. It's overly confident and I doubt it's
confirmed the exact cause. However, in debugging I have confirmed that the TV
does work in Hyprland and also works in Windows. The debugging steps Claude ran
through are accurate (even if useless).
The issue is persistent up to the latest version of CachyOS.
I hope the following information is even remotely useful, and of course I'm
always willing to post logs/dumps if anyone has any ideas.
Thank you,
DESCRIPTION
---------------------
All displays go blank when a Samsung S85F TV is turned on or connected via
HDMI-A-1, while 3 DisplayPort monitors are also connected. The system remains
alive (SSH works). Turning the TV off or unplugging HDMI instantly restores all
displays. Hyprland works perfectly with all 4 displays simultaneously,
confirming this is a KWin-specific bug.
AI ESTIMATED cause (***confirmed*** via source analysis and debugfs): KWin
always selects AB30 (ARGB2101010, 10-bit) framebuffers due to
filterAndSortFormats() in src/core/outputlayer.cpp sorting by bitsPerColor
descending. When the TV connects, glEGLImageTargetTexture2DOES() in
src/opengl/eglimagetexture.cpp:44 fails with GL_INVALID_OPERATION for the HDMI
output — but there is no error check after this call. A GLFramebuffer is
constructed from the broken texture, glCheckFramebufferStatus returns
GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT, and because KWin uses a shared GL context
across all outputs, this cascades and breaks rendering for all displays. KWin
retries every frame without recovering.
The render test in doRenderTestBuffer()
(src/backends/drm/drm_egl_layer_surface.cpp:512) does not catch this because it
is guarded by if (!m_gpu->atomicModeSetting()) — with atomic modesetting (used
by the Nvidia driver), the GL render test is skipped entirely.
Hyprland uses XR24 (XRGB8888, 8-bit) for all outputs and works without issue.
STEPS TO REPRODUCE
----------------------------------
Boot into KDE Plasma on Wayland with 3 DisplayPort monitors connected (working
normally)
Turn on a Samsung S85F TV connected to HDMI-A-1, or plug in the HDMI cable
while the TV is already on
All 3 DP monitors immediately go blank (hardware cursor survives). KWin enters
an infinite GL error loop visible via journalctl.
Turn the TV off or unplug HDMI — all 3 DP monitors immediately restore.
OBSERVED RESULT
-----------------------------
All displays go blank. journalctl shows an infinite loop of:
kwin_wayland: GL_INVALID_OPERATION: <image> and <target> are incompatible
kwin_wayland: Invalid framebuffer status:
"GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"
kwin_wayland: Applying output configuration failed!
DRM debugfs confirms all 3 DP CRTCs lose their framebuffers (fb=0, crtc=(null))
the moment the TV is detected. The HDMI connector never receives a CRTC
assignment (max_requested_bpc=0, output_bpc=0, tmds_char_rate=0).
EXPECTED RESULT
----------------------------
All 4 displays work simultaneously. KWin should either successfully allocate a
compatible framebuffer format for the HDMI output, or fall back gracefully to
8-bit (XR24) when 10-bit EGL image creation fails for a given connector.
SOFTWARE/OS VERSIONS
--------------------------------------
Operating System: CachyOS, Kernel 7.0.10-1-cachyos
KDE Plasma Version: 6.6.5
KDE Frameworks Version: (run plasmashell --version to confirm)
Qt Version: (visible in Info Center)
GPU: NVIDIA RTX 5090, nvidia-open driver 595.71.05
Display Manager: plasmalogin (KWin runs as UID 959)
ADDITIONAL INFORMATION
-----------------------------------------
Displays: DP-1 (4K@240Hz, scaled 1.55×, PreferAccuracy), DP-2 (1080p@165Hz,
VRR), DP-3 (1080p@60Hz, portrait), HDMI-A-1 (Samsung S85F)
Samsung S85F EDID advertises DC_36bit, DC_30bit, DC_Y444, HDR (BT2020, ST2084,
HLG). Max TMDS clock: 340 MHz. 4K@60Hz only via YCbCr 4:2:0.
Hyprland debugfs shows the TV running at 3840×2160@30Hz on crtc-3 using
format=XR24 — plain 8-bit, no HDR negotiation, works immediately.
The following were confirmed ineffective: custom EDID with deep color flags
stripped, kwinoutputconfig.json edits (maxBitsPerColor: 8),
KWIN_DRM_PREFER_COLOR_DEPTH=24 (only sets max_bpc DRM property, does not affect
framebuffer format selection), patching doRenderTestBuffer() to remove the
atomicModeSetting guard (failure occurs during rendering, not the test).
--
You are receiving this mail because:
You are watching all bug changes.