From ad8e43e36c8128bb79f2084c66fcf660a54e749e Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 8 May 2023 17:25:17 -0400 Subject: zink: flush INDIRECT_BUFFER mem barrier for compute this is usable in gfx and compute, so don't desync Fixes: 3674839d110 ("zink: batch mem barrier hooks") Part-of: (cherry picked from commit 4b7245284dc47727cf5d2c3d24619db983a0074a) --- .pick_status.json | 2 +- src/gallium/drivers/zink/zink_context.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 4ee3a30b62d..40057e9bd75 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -220,7 +220,7 @@ "description": "zink: flush INDIRECT_BUFFER mem barrier for compute", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "3674839d11055627eacf4ccaa7c6a4c47ba87d6c" }, diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index d5fea776de1..04085fab7e6 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -3844,11 +3844,11 @@ zink_flush_memory_barrier(struct zink_context *ctx, bool is_compute) VK_ACCESS_SHADER_WRITE_BIT, VK_ACCESS_UNIFORM_READ_BIT); + if (ctx->memory_barrier & PIPE_BARRIER_INDIRECT_BUFFER) + mem_barrier(ctx, src, VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, + VK_ACCESS_SHADER_WRITE_BIT, + VK_ACCESS_INDIRECT_COMMAND_READ_BIT); if (!is_compute) { - if (ctx->memory_barrier & PIPE_BARRIER_INDIRECT_BUFFER) - mem_barrier(ctx, src, VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, - VK_ACCESS_SHADER_WRITE_BIT, - VK_ACCESS_INDIRECT_COMMAND_READ_BIT); if (ctx->memory_barrier & PIPE_BARRIER_VERTEX_BUFFER) mem_barrier(ctx, gfx_flags, VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, VK_ACCESS_SHADER_WRITE_BIT, -- cgit v1.2.1