egl/x11: Re-allocate buffers if format is suboptimal

If PresentCompleteNotify event says the pixmap was presented
with mode PresentCompleteModeSuboptimalCopy, it means the pixmap
could possibly have been flipped instead if allocated with a
different format/modifier.

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
This commit is contained in:
Louis-Francis Ratté-Boulianne
2017-10-06 01:26:51 -04:00
committed by Daniel Stone
parent 069fdd5f9f
commit 3160cb86aa
6 changed files with 44 additions and 7 deletions

View File

@@ -372,7 +372,9 @@ dri3_create_drawable(struct glx_screen *base, XID xDrawable,
pdraw->base.psc = &psc->base;
if ((psc->image && psc->image->base.version >= 15) &&
(pdp->dri3Major > 1 || (pdp->dri3Major == 1 && pdp->dri3Minor >= 2)))
(pdp->dri3Major > 1 || (pdp->dri3Major == 1 && pdp->dri3Minor >= 2)) &&
(pdp->presentMajor > 1 ||
(pdp->presentMajor == 1 && pdp->presentMinor >= 2)))
has_multibuffer = true;
(void) __glXInitialize(psc->base.dpy);