From 86e1e1dafd263eb87c4b373eecabc3e5e667ed51 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 30 Nov 2020 12:27:24 -0500 Subject: [PATCH] zink: reorder barrier util functions to set up barrier struct before batch no functional changes Reviewed-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/zink_context.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index 43fc07fe91d..d479a3a9ff5 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -1602,9 +1602,6 @@ zink_resource_image_barrier(struct zink_context *ctx, struct zink_batch *batch, flags = access_dst_flags(new_layout); if (!zink_resource_image_needs_barrier(res, new_layout, flags, pipeline)) return; - /* only barrier if we're changing layout or doing something besides read -> read */ - batch = zink_batch_no_rp(ctx); - assert(!batch->in_rp); VkImageSubresourceRange isr = { res->aspect, 0, VK_REMAINING_MIP_LEVELS, @@ -1623,6 +1620,9 @@ zink_resource_image_barrier(struct zink_context *ctx, struct zink_batch *batch, res->obj->image, isr }; + /* only barrier if we're changing layout or doing something besides read -> read */ + batch = zink_batch_no_rp(ctx); + assert(!batch->in_rp); vkCmdPipelineBarrier( batch->state->cmdbuf, res->access_stage ? res->access_stage : VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, @@ -1695,9 +1695,6 @@ zink_resource_buffer_barrier(struct zink_context *ctx, struct zink_batch *batch, pipeline = pipeline_access_stage(flags); if (!zink_resource_buffer_needs_barrier(res, flags, pipeline)) return; - /* only barrier if we're changing layout or doing something besides read -> read */ - batch = zink_batch_no_rp(ctx); - assert(!batch->in_rp); VkBufferMemoryBarrier bmb = { VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER, NULL, @@ -1709,7 +1706,9 @@ zink_resource_buffer_barrier(struct zink_context *ctx, struct zink_batch *batch, res->obj->offset, res->base.width0 }; - + /* only barrier if we're changing layout or doing something besides read -> read */ + batch = zink_batch_no_rp(ctx); + assert(!batch->in_rp); vkCmdPipelineBarrier( batch->state->cmdbuf, res->access_stage ? res->access_stage : pipeline_access_stage(res->access),