From 1c5e5aa4eb5ccc5263d631e68723bd782392111e Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 30 Jul 2025 13:38:31 -0400 Subject: [PATCH] zink: also add access stage sync when rebinding buffers cc: mesa-stable Part-of: --- src/gallium/drivers/zink/zink_context.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index 94b3b94b6c7..2a553ec918b 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -4402,6 +4402,7 @@ rebind_ubo(struct zink_context *ctx, gl_shader_stage shader, unsigned slot) if (res) { res->obj->unordered_read = false; res->obj->access |= VK_ACCESS_SHADER_READ_BIT; + res->obj->access_stage |= mesa_to_vk_shader_stage(shader); } ctx->invalidate_descriptor_state(ctx, shader, ZINK_DESCRIPTOR_TYPE_UBO, slot, 1); return res; @@ -4424,6 +4425,7 @@ rebind_ssbo(struct zink_context *ctx, gl_shader_stage shader, unsigned slot) if (res) { res->obj->unordered_read = false; res->obj->access |= VK_ACCESS_SHADER_READ_BIT; + res->obj->access_stage |= mesa_to_vk_shader_stage(shader); if (ctx->writable_ssbos[shader] & BITFIELD_BIT(slot)) { res->obj->unordered_write = false; res->obj->access |= VK_ACCESS_SHADER_WRITE_BIT; @@ -4447,6 +4449,7 @@ rebind_tbo(struct zink_context *ctx, gl_shader_stage shader, unsigned slot) if (res) { res->obj->unordered_read = false; res->obj->access |= VK_ACCESS_SHADER_READ_BIT; + res->obj->access_stage |= mesa_to_vk_shader_stage(shader); } ctx->invalidate_descriptor_state(ctx, shader, ZINK_DESCRIPTOR_TYPE_SAMPLER_VIEW, slot, 1); return res; @@ -4469,6 +4472,7 @@ rebind_ibo(struct zink_context *ctx, gl_shader_stage shader, unsigned slot) if (res) { res->obj->unordered_read = false; res->obj->access |= VK_ACCESS_SHADER_READ_BIT; + res->obj->access_stage |= mesa_to_vk_shader_stage(shader); if (image_view->base.access & PIPE_IMAGE_ACCESS_WRITE) { res->obj->unordered_write = false; res->obj->access |= VK_ACCESS_SHADER_WRITE_BIT;