zink: fill in sync flags for a couple barriers

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35476>
This commit is contained in:
Mike Blumenkrantz
2025-06-11 15:17:37 -04:00
committed by Marge Bot
parent 4483c6195d
commit 5f22d3f174
+3 -3
View File
@@ -3222,7 +3222,7 @@ begin_rendering(struct zink_context *ctx, bool check_msaa_expand)
if (screen->driver_workarounds.general_layout)
layout = VK_IMAGE_LAYOUT_GENERAL;
unsigned idx = util_format_is_depth_or_stencil(res->base.b.format) ? PIPE_MAX_COLOR_BUFS : 0;
screen->image_barrier(ctx, res, layout, 0, 0);
screen->image_barrier(ctx, res, layout, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT);
res->obj->unordered_read = res->obj->unordered_write = false;
ctx->dynamic_fb.attachments[idx].resolveMode = VK_RESOLVE_MODE_AVERAGE_BIT;
ctx->dynamic_fb.attachments[idx].resolveImageLayout = zink_resource(surf->base.texture)->layout;
@@ -4784,7 +4784,7 @@ zink_copy_buffer(struct zink_context *ctx, struct zink_resource *dst, struct zin
bool unordered_src = !valid_write && !zink_check_unordered_transfer_access(src, 0, &box);
/* unsync should only occur during subdata with staging resource */
if (!unsync)
zink_screen(ctx->base.screen)->buffer_barrier(ctx, src, VK_ACCESS_TRANSFER_READ_BIT, 0);
zink_screen(ctx->base.screen)->buffer_barrier(ctx, src, VK_ACCESS_TRANSFER_READ_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT);
bool unordered_dst = zink_resource_buffer_transfer_dst_barrier(ctx, dst, dst_offset, size);
bool can_unorder = unordered_dst && unordered_src && !ctx->no_reorder;
VkCommandBuffer cmdbuf = unsync ? ctx->bs->unsynchronized_cmdbuf :
@@ -4845,7 +4845,7 @@ zink_copy_image_buffer(struct zink_context *ctx, struct zink_resource *dst, stru
assert(!(map_flags & PIPE_MAP_UNSYNCHRONIZED));
if (zink_is_swapchain(img))
needs_present_readback = zink_kopper_acquire_readback(ctx, img, &use_img);
zink_screen(ctx->base.screen)->image_barrier(ctx, use_img, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, 0, 0);
zink_screen(ctx->base.screen)->image_barrier(ctx, use_img, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_ACCESS_TRANSFER_READ_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT);
zink_resource_buffer_transfer_dst_barrier(ctx, buf, dstx, src_box->width);
}