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:
committed by
Marge Bot
parent
4483c6195d
commit
5f22d3f174
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user