radv: Don't skip barriers that only change queues.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Fri, 14 May 2021 11:57:11 +0000 (13:57 +0200)
committerMarge Bot <eric+marge@anholt.net>
Mon, 14 Jun 2021 11:20:59 +0000 (11:20 +0000)
We depend on the queue mask for some decisions ...

CC: mesa-stable
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10802>

src/amd/vulkan/radv_cmd_buffer.c

index fed80a1..b95347a 100644 (file)
@@ -6502,14 +6502,14 @@ radv_handle_image_transition(struct radv_cmd_buffer *cmd_buffer, struct radv_ima
          return;
    }
 
-   if (src_layout == dst_layout && src_render_loop == dst_render_loop)
-      return;
-
    unsigned src_queue_mask =
       radv_image_queue_family_mask(image, src_family, cmd_buffer->queue_family_index);
    unsigned dst_queue_mask =
       radv_image_queue_family_mask(image, dst_family, cmd_buffer->queue_family_index);
 
+   if (src_layout == dst_layout && src_render_loop == dst_render_loop && src_queue_mask == dst_queue_mask)
+      return;
+
    if (vk_format_has_depth(image->vk_format)) {
       radv_handle_depth_image_transition(cmd_buffer, image, src_layout, src_render_loop, dst_layout,
                                          dst_render_loop, src_queue_mask, dst_queue_mask, range,