From 2ad443e4cc0a72b7d0b28195b5810cbf197961cb Mon Sep 17 00:00:00 2001 From: Leo Liu Date: Thu, 9 Jun 2016 12:53:54 -0400 Subject: [PATCH] vl/dri3: support receiving new pixmap for front buffer MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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" --- src/gallium/auxiliary/vl/vl_winsys_dri3.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 = -- 2.30.2