Bug 505887 - Enabling titlebar blur in Klassy prevents direct scanout
Summary: Enabling titlebar blur in Klassy prevents direct scanout
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: compositing (other bugs)
Version First Reported In: 6.4.0
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: regression
Depends on:
Blocks:
 
Reported: 2025-06-21 05:48 UTC by Ye Jingchen
Modified: 2025-07-28 12:59 UTC (History)
1 user (show)

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


Attachments
Blurred bar stretched out behind Breeze's title bar (38.10 KB, image/webp)
2025-06-21 11:33 UTC, Ye Jingchen
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ye Jingchen 2025-06-21 05:48:50 UTC
SUMMARY
After enabling "Blur titlebars that have transparency" in Klassy Window Decoration settings, (with Blur effect in System Settings enabled), full screen window can no longer trigger direct scanout.

STEPS TO REPRODUCE
1. Enable "Show Compositing" in System Settings > Windows Management > Desktop Effects
2. Also enable the "Blur" effect
3. Install Klassy[1] and enable it in Window Decorations
4. Open Klassy's setting, Open Titlebar tab > Titlebar Opacity
5. Set both transparency to 80%, and check "Blur titlebars that have transparency" below, click apply
6. Full screen a window (MPV or F11 in browsers)

[1] https://github.com/paulmcauley/klassy/

OBSERVED RESULT
The compositing indicator still displays

EXPECTED RESULT
The compositing indicator should disappear.

SOFTWARE/OS VERSIONS

Operating System: Arch Linux 
KDE Plasma Version: 6.4.0
KDE Frameworks Version: 6.15.0
Qt Version: 6.9.1
Kernel Version: 6.15.2-arch1-1 (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 PRO 6850HS with Radeon Graphics
Memory: 16 GiB of RAM (14.9 GiB usable)
Graphics Processor: AMD Radeon Graphics
Manufacturer: HP
Product Name: HP EliteBook 845 14 inch G9 Notebook PC

ADDITIONAL INFORMATION
I am not quite sure whether this is in kwin or klassy, but blur effect in background window probably should not prevent direct scanout?
Also, the problem does not go away by simply switching back to Breeze decoration. I have to disable and re-enable Blur effect to make compositing indicator to disappear for full screen window.
Comment 1 Ye Jingchen 2025-06-21 11:33:20 UTC
Created attachment 182480 [details]
Blurred bar stretched out behind Breeze's title bar

I played with window decorations a bit, switching between Breeze and Klassy, and this blurred background stretched out behind title bar after switching from Klassy (with blurred titlebar) to Breeze. The blurred bar moves and resizes with the window, and its color changes according to contents behind, just like a working blurred titlebar. 

Not sure if it is related to preventing direct scanout, but it also disappears after turning off blur effect.
Comment 2 Bug Janitor Service 2025-06-23 12:20:21 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/7806
Comment 3 Vlad Zahorodnii 2025-06-23 16:17:21 UTC
Git commit b5a1a61970589725e7688f0cbfbdd2f785d5572b by Vlad Zahorodnii.
Committed on 23/06/2025 at 14:45.
Pushed by vladz into branch 'master'.

plugins/blur: Update blur region when decoration is destroyed

Otherwise the blur effect will keep the ItemEffect around, which will
block direct scanout.

M  +4    -1    src/plugins/blur/blur.cpp

https://invent.kde.org/plasma/kwin/-/commit/b5a1a61970589725e7688f0cbfbdd2f785d5572b
Comment 4 Ye Jingchen 2025-06-25 12:41:46 UTC
I don't think this is fixed in 6.4.1?  I've updated to 6.4.1 on Arch Linux, but the bug still appears.
Comment 5 Vlad Zahorodnii 2025-07-28 12:59:41 UTC
Git commit d180b9dacbe4728dd31db7f1671929de2f5fa895 by Vlad Zahorodnii.
Committed on 28/07/2025 at 11:24.
Pushed by vladz into branch 'master'.

plugins/blur: Update blur region when decoration is destroyed

Otherwise the blur effect will keep the ItemEffect around, which will
block direct scanout.
(cherry picked from commit b5a1a61970589725e7688f0cbfbdd2f785d5572b)

M  +4    -1    src/plugins/blur/blur.cpp

https://invent.kde.org/plasma/kwin-x11/-/commit/d180b9dacbe4728dd31db7f1671929de2f5fa895