diff options
-rw-r--r-- | src/gallium/auxiliary/vl/vl_winsys_dri3.c | 7 |
1 files changed, 6 insertions, 1 deletions
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 = |