From 9e42b93f338d73d5bb97279060cedef70622c1d0 Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Fri, 17 Mar 2017 11:02:14 +1100 Subject: [PATCH] st/dri: wait for thread to finish before unbinding context MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Fixes a bunch of piglit crashes that hit an assert() when trying to delete the framebuffer. The assert() was triggered because WinSysDrawBuffer was set to NULL before glDeleteFramebuffers() was called. Tested-by: Michel Dänzer Reviewed-by: Marek Olšák --- src/gallium/state_trackers/dri/dri_context.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gallium/state_trackers/dri/dri_context.c b/src/gallium/state_trackers/dri/dri_context.c index 91d2d1fbbe8..92d79849c4a 100644 --- a/src/gallium/state_trackers/dri/dri_context.c +++ b/src/gallium/state_trackers/dri/dri_context.c @@ -206,6 +206,9 @@ dri_unbind_context(__DRIcontext * cPriv) if (--ctx->bind_count == 0) { if (ctx->st == ctx->stapi->get_current(ctx->stapi)) { + if (ctx->st->thread_finish) + ctx->st->thread_finish(ctx->st); + /* For conformance, unbind is supposed to flush the context. * However, if we do it here we might end up flushing a partially * destroyed context. Instead, we flush in dri_make_current and -- 2.30.2