[x11] Fix visual artifacts during interactive resize
Summary: When a window is being interactively resized, its contents may jump. The reason why that happens is because KWin renders partially resized client window. Composite extension spec says that a window will get a new pixmap each time it is resized or mapped. This applies to the frame window, but not to the client window itself. If the client window is resized, off-screen storage for the frame window won't be reallocated. Therefore, KWin may render partially resized client window if the client doesn't attempt to be in sync with our rendering loop. Currently, the only way to do that is to use extended frame counters, which are not supported by KWin. So, in order to fix visual artifacts during interactive resize, we need somehow forcefully re-allocate off-screen storage for the frame window. Unfortunately, Composite extension doesn't provide any request to do that, so the only option we have is to resize the frame window. BUG: 415839 FIXED-IN: 5.18.0 Reviewers: #kwin Subscribers: davidedmundson, ngraham, alexde, fredrik, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D26914
parent
9b3d9e58
Please register or sign in to comment