Skip to content

vout: set northwest bit gravity on X11 windows

Jeffrey Knockel requested to merge jeffk/vlc:master into master

These commits fix black flickering on resize across a variety of X11 outputs (refs #25716 (closed)).

When we create an X11 window with the background pixel set to black, then, on resize, the X server will paint the window black before we have time to repaint the actual video, creating a black flicker. I'm attempting to fix this by using the X server's bit gravity feature, which preserves the contents of the window on resize until we have a chance to repaint them in their correct position and scale.

Since xcb/render and xcb/x11 are already creating their own X11 windows, I modified those windows on creation to enable bit gravity. For egl, it wasn't already creating its own window, so I have that output create a child window and then enable bit gravity on that.

Merge request reports