zink: add general zink_resource_barrier() wrapper

this simplifies a bit of code where we may want to be throwing in barriers
regardless of the resource type

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8945>
This commit is contained in:
Mike Blumenkrantz 2020-09-08 10:08:45 -04:00 committed by Marge Bot
parent 6cbd25c04b
commit 466efcb247
3 changed files with 13 additions and 6 deletions

View file

@ -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)
{

View file

@ -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,

View file

@ -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);
}
}