zink: assert batch is not in a renderpass when emitting pipeline barrier
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Wed, 19 Aug 2020 18:50:05 +0000 (14:50 -0400)
committerMarge Bot <eric+marge@anholt.net>
Fri, 19 Feb 2021 02:05:13 +0000 (02:05 +0000)
this is only valid for subpasses which have self-dependencies set, and we
don't currently do that

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8945>

src/gallium/drivers/zink/zink_context.c

index 73570e9..8bc0429 100644 (file)
@@ -1089,6 +1089,7 @@ void
 zink_resource_barrier(struct zink_batch *batch, struct zink_resource *res,
                       VkImageLayout new_layout, VkPipelineStageFlags pipeline)
 {
+   assert(!batch->in_rp);
    if (!pipeline)
       pipeline = pipeline_dst_stage(new_layout);
    if (!zink_resource_image_needs_barrier(res, new_layout, pipeline))
@@ -1177,6 +1178,7 @@ zink_resource_buffer_needs_barrier(struct zink_resource *res, VkAccessFlags flag
 void
 zink_resource_buffer_barrier(struct zink_batch *batch, struct zink_resource *res, VkAccessFlags flags, VkPipelineStageFlags pipeline)
 {
+   assert(!batch->in_rp);
    if (!pipeline)
       pipeline = pipeline_access_stage(flags);
    if (!zink_resource_buffer_needs_barrier(res, flags, pipeline))