diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index 40303f81f13..a6f5802a1b4 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -1223,6 +1223,15 @@ zink_resource_needs_barrier(struct zink_resource *res, VkImageLayout layout, VkA return zink_resource_image_needs_barrier(res, layout, flags, pipeline); } +void +zink_resource_barrier(struct zink_batch *batch, struct zink_resource *res, VkImageLayout layout, VkAccessFlags flags, VkPipelineStageFlags pipeline) +{ + if (res->base.target == PIPE_BUFFER) + zink_resource_buffer_barrier(batch, res, flags, pipeline); + else + zink_resource_image_barrier(batch, res, layout, flags, pipeline); +} + VkShaderStageFlagBits zink_shader_stage(enum pipe_shader_type type) { diff --git a/src/gallium/drivers/zink/zink_context.h b/src/gallium/drivers/zink/zink_context.h index 7de8c36a1fb..224c4f71eac 100644 --- a/src/gallium/drivers/zink/zink_context.h +++ b/src/gallium/drivers/zink/zink_context.h @@ -225,6 +225,8 @@ zink_resource_image_barrier(struct zink_batch *batch, struct zink_resource *res, bool zink_resource_needs_barrier(struct zink_resource *res, VkImageLayout layout, VkAccessFlags flags, VkPipelineStageFlags pipeline); +void +zink_resource_barrier(struct zink_batch *batch, struct zink_resource *res, VkImageLayout layout, VkAccessFlags flags, VkPipelineStageFlags pipeline); void zink_begin_render_pass(struct zink_context *ctx, diff --git a/src/gallium/drivers/zink/zink_draw.c b/src/gallium/drivers/zink/zink_draw.c index 9a8f5472170..80418dd2df6 100644 --- a/src/gallium/drivers/zink/zink_draw.c +++ b/src/gallium/drivers/zink/zink_draw.c @@ -497,12 +497,8 @@ update_descriptors(struct zink_context *ctx, struct zink_screen *screen, bool is else batch = zink_batch_no_rp(ctx); - if (transitions[i].res->base.target == PIPE_BUFFER) - zink_resource_buffer_barrier(batch, transitions[i].res, - transitions[i].access, transitions[i].stage); - else - zink_resource_image_barrier(batch, transitions[i].res, - transitions[i].layout, transitions[i].access, transitions[i].stage); + zink_resource_barrier(batch, transitions[i].res, + transitions[i].layout, transitions[i].access, transitions[i].stage); } }