Skip to content
  • Vlad Zahorodnii's avatar
    [x11] Fix visual artifacts during interactive resize · 56d5f3a4
    Vlad Zahorodnii authored
    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
    56d5f3a4