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 <michael.blumenkrantz@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11341>
This commit is contained in:
Marek Olšák 2021-05-21 17:52:27 -04:00 committed by Marge Bot
parent 0336b13e1e
commit 849ab4ea0c

View file

@ -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);
}
}