From 849ab4ea0caf9e2ce3d4bb5d2f1308edff9913fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Fri, 21 May 2021 17:52:27 -0400 Subject: [PATCH] mesa: execute glFlush asynchronously if no image has been imported/exported This improves viewperf performance and it shouldn't break synchronization with external clients when it's indirectly implied by glFlush. This should not break the cases described in: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4903 Acked-By: Mike Blumenkrantz Reviewed-by: Adam Jackson Part-of: --- src/mesa/main/context.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index d83fab6954f..b94a6d272d2 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -1772,7 +1772,9 @@ _mesa_flush(struct gl_context *ctx) { FLUSH_VERTICES(ctx, 0, 0); if (ctx->Driver.Flush) { - ctx->Driver.Flush(ctx, 0); + bool async = !ctx->Shared->HasExternallySharedImages; + + ctx->Driver.Flush(ctx, async ? PIPE_FLUSH_ASYNC : 0); } }