[Mesa-stable] [PATCH 2/2] vl/dri3: support receiving new pixmap for front buffer

Leo Liu leo.liu at amd.com
Thu Jun 9 19:11:29 UTC 2016


With gstreamer-vaapi, the temporay pixmap for front buffer got realloc
each time, so when we receive a new pixmap for each frame, get a new
front buffer for it.

This also fix Totem player playback corruption.

Signed-off-by: Leo Liu <leo.liu at amd.com>
Cc: "12.0" <mesa-stable at lists.freedesktop.org>
---
 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 c69e677..f7f572e 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.7.4



More information about the mesa-stable mailing list