Mesa (main): venus: add vn_image_memory_barrier_has_present_src

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jun 3 06:13:17 UTC 2021


Module: Mesa
Branch: main
Commit: 142e452e9a38771de2f832991208866a3c4e73cc
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=142e452e9a38771de2f832991208866a3c4e73cc

Author: Chia-I Wu <olvaffe at gmail.com>
Date:   Thu May  6 09:41:35 2021 -0700

venus: add vn_image_memory_barrier_has_present_src

And call it regardless of ANDROID or not.

Signed-off-by: Chia-I Wu <olvaffe at gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10709>

---

 src/virtio/vulkan/vn_command_buffer.c | 26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/src/virtio/vulkan/vn_command_buffer.c b/src/virtio/vulkan/vn_command_buffer.c
index b782aebfce6..e2836a31232 100644
--- a/src/virtio/vulkan/vn_command_buffer.c
+++ b/src/virtio/vulkan/vn_command_buffer.c
@@ -17,6 +17,18 @@
 #include "vn_image.h"
 #include "vn_render_pass.h"
 
+static bool
+vn_image_memory_barrier_has_present_src(
+   const VkImageMemoryBarrier *img_barriers, uint32_t count)
+{
+   for (uint32_t i = 0; i < count; i++) {
+      if (img_barriers[i].oldLayout == VK_IMAGE_LAYOUT_PRESENT_SRC_KHR ||
+          img_barriers[i].newLayout == VK_IMAGE_LAYOUT_PRESENT_SRC_KHR)
+         return true;
+   }
+   return false;
+}
+
 static void
 vn_cmd_begin_render_pass(struct vn_command_buffer *cmd,
                          const struct vn_render_pass *pass,
@@ -1033,19 +1045,13 @@ vn_get_intercepted_barriers(struct vn_command_buffer *cmd,
                             const VkImageMemoryBarrier *img_barriers,
                             uint32_t count)
 {
-   /* XXX drop the #ifdef after fixing common wsi */
-#ifdef ANDROID
-   bool has_present_src = false;
-   for (uint32_t i = 0; i < count; i++) {
-      if (img_barriers[i].oldLayout == VK_IMAGE_LAYOUT_PRESENT_SRC_KHR ||
-          img_barriers[i].newLayout == VK_IMAGE_LAYOUT_PRESENT_SRC_KHR) {
-         has_present_src = false;
-         break;
-      }
-   }
+   const bool has_present_src =
+      vn_image_memory_barrier_has_present_src(img_barriers, count);
    if (!has_present_src)
       return img_barriers;
 
+   /* XXX drop the #ifdef after fixing common wsi */
+#ifdef ANDROID
    size_t size = sizeof(VkImageMemoryBarrier) * count;
    /* avoid shrinking in case of non efficient reallocation implementation */
    VkImageMemoryBarrier *barriers = cmd->builder.image_barriers;



More information about the mesa-commit mailing list