summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>2023-05-08 17:25:17 -0400
committerEric Engestrom <eric@engestrom.ch>2023-05-09 16:56:44 +0100
commitad8e43e36c8128bb79f2084c66fcf660a54e749e (patch)
treecc6b8ffe0ea5045a07cc54e0ced4421504c0f674
parente70c232a01838fa693826cd2fc8786f69252c4d1 (diff)
downloadmesa-ad8e43e36c8128bb79f2084c66fcf660a54e749e.tar.gz
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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22907> (cherry picked from commit 4b7245284dc47727cf5d2c3d24619db983a0074a)
-rw-r--r--.pick_status.json2
-rw-r--r--src/gallium/drivers/zink/zink_context.c8
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,