LightlyShaders
LightlyShaders copied to clipboard
Needs optimization for stacked maximized windows
Summary
While LightlyShaders is being used, it causes desktop widgets to blur as they slide out if there is a window in the same corner of the desktop. This only occurs if the widget is located in the same region as the application window. In addition, the widgets don't move smoothly if an application is maximized.
Steps to reproduce
- Turn on LightlyShaders.
- Add a panel, and then add a widget (i.e. System Tray) to it.
- Open a window and place it in the same corner as the widget.
- Click on the widget to open it.
- See a momentary blur/not smooth movement as the widget opens.
Current behaviour (bug)
Desktop widgets do not slide out smoothly/show a momentary blur when LightlyShaders is enabled if an application window is located in the the same corner of the desktop as the region to which the widget belongs. (For example, if the calendar widget is in the top right corner, and an application is placed in that corner, the animation to open the calendar shows a momentary blur.)
Expected behaviour (correct)
The widgets would slide out smoothly and without a blur flicker regardless of whether there is an application window located in the same spot.
Relevant logs and/or media (optional)
https://user-images.githubusercontent.com/70250943/153777825-04968f0b-7164-4e43-a4b1-c6c7294323ec.mp4
Software/Os Versions
Operating System: Manjaro Linux KDE Plasma Version: 5.23.5 KDE Frameworks Version: 5.90.0 Qt Version: 5.15.2 Kernel Version: 5.16.5-1-MANJARO (64-bit) Graphics Platform: X11
Other comment (optional)
While the blur flicker seems to only happen when an application is in the same corner as the widget, the "not smooth movement" problem seems to occur even when a window is maximized. In addition, it seems to get worse as more windows are opened.
When the window is placed near the edge of the screen it uses way more performance hungry hack to paint shadow in corners (otherwise they appear just black or with weird artifacts). So the most likely cause of the flicker is the dropped down fps of KWin. I don't think we can do anything here for now, but I'll keep the issue open in case I'll find some workaround or there will be another way to restore shadows for this particular case.
I see. That's unfortunate. Since I almost always have windows on the screen's edges or maximized, that's probably why I've been having performance issues with this effect, despite having a fairly powerful system.
Hopefully the KDE developers will find a way to get the Korners bug fixed at some point soon so it's not necessary to take a performance hit in order to have rounded corners. :(
As far as I know, the solution of Korners bug is almost here thanks to the work of psifidotos. Yet, looks like it will not let to round the bottom corners, so the hack introduced in this plugin still will be needed in such cases.
If you have many maximized windows stacked on each other, the plugin will not identify them as such, that are hidden by each other, because of the algorithm used for that (it skips some pixels at the edge of a window to fix some other glitches connected with repainting of windows). When I'll have some spare time I'll look into it and try to improve the algorithm for this particular case.
Rounded corners are a trend these days and I don't think the kde team is thinking about implementing them. Kde 5, although very similar to windows 10, is very distinctive. I like kde's close-to-default look, and I think the rounded corners solution will be nice by the time it's added.
I just have trouble understanding why they decided to go with rounded top corners and sharp bottom corners in the default style. Because you're right, the regular kde appearance looks very good, but the lack of consistency when it comes to corners is puzzling.
HM. A theme-level implementation would be a good solution.
Hi! I have found a workaround so far :) - Window Gaps KWin script
Ohh, you're right! Performance is much better when you enable inner and outer gaps when using kwin-bismuth (Window Tiling) as well.
This issue is fixed in upcoming version 2.0.
2.0 code is in master branch now.