From: Leo Liu Date: Thu, 9 Jun 2016 16:53:54 +0000 (-0400) Subject: vl/dri3: support receiving new pixmap for front buffer X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2ad443e4cc0a72b7d0b28195b5810cbf197961cb;p=mesa.git vl/dri3: support receiving new pixmap for front buffer With glx of gstreamer-vaapi, the temporary pixmap for front buffer gets renewed in each frame, so when we receive a new pixmap, should get a new front buffer for it. This also fixes Totem player playback corruption. Signed-off-by: Leo Liu Reviewed-by: Michel Dänzer Cc: "12.0" --- diff --git a/src/gallium/auxiliary/vl/vl_winsys_dri3.c b/src/gallium/auxiliary/vl/vl_winsys_dri3.c index c69e67796c0..f7f572ea5c2 100644 --- a/src/gallium/auxiliary/vl/vl_winsys_dri3.c +++ b/src/gallium/auxiliary/vl/vl_winsys_dri3.c @@ -358,8 +358,13 @@ dri3_set_drawable(struct vl_dri3_screen *scrn, Drawable drawable) if (error) { if (error->error_code != BadWindow) ret = false; - else + else { scrn->is_pixmap = true; + if (scrn->front_buffer) { + dri3_free_front_buffer(scrn, scrn->front_buffer); + scrn->front_buffer = NULL; + } + } free(error); } else scrn->special_event =