diff options
author | Timothy Arceri <[email protected]> | 2017-03-17 11:02:14 +1100 |
---|---|---|
committer | Timothy Arceri <[email protected]> | 2017-03-18 14:15:52 +1100 |
commit | 9e42b93f338d73d5bb97279060cedef70622c1d0 (patch) | |
tree | 5feea530ad16cdb8af95288101beb03c0cc6d94e /src/gallium/state_trackers | |
parent | 40bc1afc9437433f2f1d1c0a6980376ff5670638 (diff) |
st/dri: wait for thread to finish before unbinding context
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 <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers')
-rw-r--r-- | src/gallium/state_trackers/dri/dri_context.c | 3 |
1 files changed, 3 insertions, 0 deletions
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 |