Module: Mesa Branch: main Commit: 876cb75599e2e1a669bd957192471f05a2e78dd0 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=876cb75599e2e1a669bd957192471f05a2e78dd0
Author: Mike Blumenkrantz <[email protected]> Date: Fri Sep 17 09:06:49 2021 -0400 zink: check for pending memory barrier before trying to flush it this function is surprisingly heavy to call unnecessarily Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12932> --- src/gallium/drivers/zink/zink_draw.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/zink/zink_draw.cpp b/src/gallium/drivers/zink/zink_draw.cpp index fde03630cb0..2725fa4fdf0 100644 --- a/src/gallium/drivers/zink/zink_draw.cpp +++ b/src/gallium/drivers/zink/zink_draw.cpp @@ -482,7 +482,8 @@ zink_draw_vbo(struct pipe_context *pctx, return; } - zink_flush_memory_barrier(ctx, false); + if (ctx->memory_barrier) + zink_flush_memory_barrier(ctx, false); update_barriers(ctx, false); if (unlikely(ctx->buffer_rebind_counter < screen->buffer_rebind_counter)) { @@ -843,7 +844,8 @@ zink_launch_grid(struct pipe_context *pctx, const struct pipe_grid_info *info) struct zink_batch *batch = &ctx->batch; update_barriers(ctx, true); - zink_flush_memory_barrier(ctx, true); + if (ctx->memory_barrier) + zink_flush_memory_barrier(ctx, true); if (zink_program_has_descriptors(&ctx->curr_compute->base)) screen->descriptors_update(ctx, true);
