glx: add intermediate X11 window controlled by GLX
Asynchronous window resizes cannot be kept in sync with GLX. To keep the underlying X11 window and the GLX drawable sizes in sync, embed a new X11 window so that GLX can synchronously resize. At a high level, to resize, we (1) wait until GLX is done drawing, (2) resize the X11 window, and (3) wait for the window to be resized before GLX resumes drawing. With Nvidia, glXWaitX() is sufficient to wait for the window to be resized. With Mesa, it is not, so after glXWaitX() we check if Xlib knows if the X server has already processed the resize and, if not, XSync(). Refs #26734 for GLX.
Loading
Please register or sign in to comment