From 5d7cb2495ad163671b95f58ac606c11a958b4a9a Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 19 Aug 2020 15:41:41 -0400 Subject: [PATCH] zink: add generic wrapper for checking whether a resource needs a barrier handy to not need to check ahead of time Reviewed-by: Bas Nieuwenhuizen Part-of: --- src/gallium/drivers/zink/zink_context.c | 8 ++++++++ src/gallium/drivers/zink/zink_context.h | 3 +++ 2 files changed, 11 insertions(+) diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index 0d1df53637c..f68261f4e8b 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -1206,6 +1206,14 @@ zink_resource_buffer_barrier(VkCommandBuffer cmdbuf, struct zink_resource *res, res->access_stage = pipeline; } +bool +zink_resource_needs_barrier(struct zink_resource *res, unsigned flags, VkPipelineStageFlags pipeline) +{ + if (res->base.target == PIPE_BUFFER) + return zink_resource_buffer_needs_barrier(res, flags, pipeline); + return zink_resource_image_needs_barrier(res, 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 8a8142a6b12..1dd832faeb9 100644 --- a/src/gallium/drivers/zink/zink_context.h +++ b/src/gallium/drivers/zink/zink_context.h @@ -223,6 +223,9 @@ void zink_resource_barrier(VkCommandBuffer cmdbuf, struct zink_resource *res, VkImageLayout new_layout, VkPipelineStageFlags pipeline); +bool +zink_resource_needs_barrier(struct zink_resource *res, unsigned flags, VkPipelineStageFlags pipeline); + void zink_begin_render_pass(struct zink_context *ctx, struct zink_batch *batch);