Summary: | Wayland: auto-hiding panel flickering | ||
---|---|---|---|
Product: | [Plasma] plasmashell | Reporter: | gudvinr+kde |
Component: | Panel | Assignee: | Plasma Bugs List <plasma-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | nate, this.is.reid |
Priority: | NOR | ||
Version: | 5.23.0 | ||
Target Milestone: | 1.0 | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/plasma/kwin/commit/8ca83ef190dfb0bf32719073fc7360ddfea799b6 | Version Fixed In: | 5.23.3 |
Attachments: | Issue recording |
Cannot reproduce flickering, but the animation is known to be not working at all. See Bug 443711. Git commit 1e634be2f5ec286d562b7f990a4e5b98a684a224 by Vlad Zahorodnii. Committed on 29/10/2021 at 12:08. Pushed by vladz into branch 'master'. effects/slidingpopups: Schedule workspace repaints For optimization purposes, kwin will ignore repaint regions scheduled by invisible windows, e.g. hidden docks, minimized windows, etc. The problem is that it sort of breaks w->addRepaintFull(). If a lot of animation frames are dropped, for example due to heavy cpu load, the sliding popups animation can jump from the middle of animation right up to the end. It will schedule a repaint but it will be ignored. In order to work around that issue, this change makes the sliding popups effect schedule workspace repaints in postPaintScreen() to ensure that the Scene will always repaint dirty regions. Hopefully, this should fix bugs where auto-hide panels sometimes flicker on Wayland. M +1 -1 src/effects/slidingpopups/slidingpopups.cpp https://invent.kde.org/plasma/kwin/commit/1e634be2f5ec286d562b7f990a4e5b98a684a224 Git commit 8ca83ef190dfb0bf32719073fc7360ddfea799b6 by Vlad Zahorodnii. Committed on 29/10/2021 at 12:09. Pushed by vladz into branch 'Plasma/5.23'. effects/slidingpopups: Schedule workspace repaints For optimization purposes, kwin will ignore repaint regions scheduled by invisible windows, e.g. hidden docks, minimized windows, etc. The problem is that it sort of breaks w->addRepaintFull(). If a lot of animation frames are dropped, for example due to heavy cpu load, the sliding popups animation can jump from the middle of animation right up to the end. It will schedule a repaint but it will be ignored. In order to work around that issue, this change makes the sliding popups effect schedule workspace repaints in postPaintScreen() to ensure that the Scene will always repaint dirty regions. Hopefully, this should fix bugs where auto-hide panels sometimes flicker on Wayland. (cherry picked from commit 1e634be2f5ec286d562b7f990a4e5b98a684a224) M +1 -1 src/effects/slidingpopups/slidingpopups.cpp https://invent.kde.org/plasma/kwin/commit/8ca83ef190dfb0bf32719073fc7360ddfea799b6 *** Bug 443711 has been marked as a duplicate of this bug. *** |
Created attachment 142951 [details] Issue recording SUMMARY Sometimes panel that set as "Auto hide" starts flickering when I remove mouse while it tries to hide. Then it doesn't stop flickering until I make couple of "hover-release" cycles. It seems like it raises and hiddens by itself while I move mouse cursor elsewhere on the screen. If I don't move cursor for a while it doesn't flicker. STEPS TO REPRODUCE 1. Add auto-hiding panel 2. Use Wayland session for a while OBSERVED RESULT Panel starts flickering EXPECTED RESULT Usable wayland session without epilepsy-enabled panels. SOFTWARE/OS VERSIONS Operating System: Arch Linux KDE Plasma Version: 5.23.2 KDE Frameworks Version: 5.87.0 Qt Version: 5.15.2 Kernel Version: 5.14.14-arch1-1 (64-bit) Graphics Platform: Wayland Graphics Processor: AMD VEGAM ADDITIONAL INFORMATION I'd like to make a video