Summary: | After porting to OffscreenEffect the Invert effect doesn't play well with Wobbly windows (window disappears when dragged), window decoration buttons are not updated on hover | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | andriy.parhomenko |
Component: | effects-various | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | nate |
Priority: | NOR | Keywords: | regression |
Version: | git master | ||
Target Milestone: | --- | ||
Platform: | Neon | ||
OS: | Linux | ||
See Also: | https://bugs.kde.org/show_bug.cgi?id=464417 | ||
Latest Commit: | https://invent.kde.org/plasma/kwin/commit/0bd48513262465755c7cd531daf109c4ed35b222 | Version Fixed In: | 5.27 |
Description
andriy.parhomenko
2022-12-11 01:18:07 UTC
I'm sorry for accidentally swapping expected and observed results in the description, it should be vice versa Can reproduce. A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/3412 Git commit 0bd48513262465755c7cd531daf109c4ed35b222 by Vlad Zahorodnii. Committed on 10/01/2023 at 12:05. Pushed by vladz into branch 'master'. effects: Fix projection matrix logic in OffscreenEffect WindowPaintData contains two projection matrices - screenProjectionMatrix and projectionMatrix. I'm not sure why we have two. screenProjectionMatrix is initialized by the scene. While projectionMatrix is usually updated by the effects. The two are not in sync. On the other hand, OffscreenEffect takes into account only screenProjectionMatrix. It means that if a window is transformed by two offscreen effects, the final result is going to be broken because an OffscreenEffect must use the projection matrix specified by another OffscreenEffect, which it doesn't. This change cleans up projection matrix properties in WindowPaintData, so there's only one projection matrix property. With that, offscreen effects can be properly nested. M +1 -1 src/effects/backgroundcontrast/contrast.cpp M +6 -13 src/libkwineffects/kwineffects.cpp M +1 -9 src/libkwineffects/kwineffects.h M +1 -1 src/libkwineffects/kwinoffscreeneffect.cpp M +1 -16 src/scene/itemrenderer_opengl.cpp M +0 -1 src/scene/itemrenderer_opengl.h https://invent.kde.org/plasma/kwin/commit/0bd48513262465755c7cd531daf109c4ed35b222 I've tried the recent build of KDE Neon Developer. The issue with Wobbly windows is indeed fixed. But the issue with rendering window decoration buttons (maximize, minimize, close) on mouse hover still persists: when the Invert effect is enabled the buttons are not rerendered instantly, but have glitches, circles may be rendered on multiple buttons simultaneously, partially rendered or not rendered at all. Should I open a separate bugreport? Yes please. |