Mesa (main): venus: remember image wsi states

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


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

Author: Chia-I Wu <olvaffe at gmail.com>
Date:   Thu May 13 15:23:48 2021 -0700

venus: remember image wsi states

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_android.c |  1 +
 src/virtio/vulkan/vn_image.h   |  4 ++++
 src/virtio/vulkan/vn_wsi.c     | 11 ++++++++++-
 3 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/virtio/vulkan/vn_android.c b/src/virtio/vulkan/vn_android.c
index 7b834df8912..bb18c4c5919 100644
--- a/src/virtio/vulkan/vn_android.c
+++ b/src/virtio/vulkan/vn_android.c
@@ -498,6 +498,7 @@ vn_android_image_from_anb(struct vn_device *dev,
    if (result != VK_SUCCESS)
       goto fail;
 
+   img->is_wsi = true;
    /* Android WSI image owns the memory */
    img->private_memory = memory;
    *out_img = img;
diff --git a/src/virtio/vulkan/vn_image.h b/src/virtio/vulkan/vn_image.h
index f5560aa9acf..a8266af01ee 100644
--- a/src/virtio/vulkan/vn_image.h
+++ b/src/virtio/vulkan/vn_image.h
@@ -33,6 +33,10 @@ struct vn_image {
 
    VkMemoryRequirements2 memory_requirements[4];
    VkMemoryDedicatedRequirements dedicated_requirements[4];
+
+   bool is_wsi;
+   VkBuffer prime_blit_buffer;
+
    /* For VK_ANDROID_native_buffer, the WSI image owns the memory, */
    VkDeviceMemory private_memory;
    /* For VK_ANDROID_external_memory_android_hardware_buffer, real image
diff --git a/src/virtio/vulkan/vn_wsi.c b/src/virtio/vulkan/vn_wsi.c
index ea62bda2797..72b274267fb 100644
--- a/src/virtio/vulkan/vn_wsi.c
+++ b/src/virtio/vulkan/vn_wsi.c
@@ -116,7 +116,16 @@ vn_wsi_create_image(struct vn_device *dev,
          vn_log(dev->instance, "forcing scanout image linear");
    }
 
-   return vn_image_create(dev, create_info, alloc, out_img);
+   struct vn_image *img;
+   VkResult result = vn_image_create(dev, create_info, alloc, &img);
+   if (result != VK_SUCCESS)
+      return result;
+
+   img->is_wsi = true;
+   img->prime_blit_buffer = wsi_info->prime_blit_buffer;
+
+   *out_img = img;
+   return VK_SUCCESS;
 }
 
 /* surface commands */



More information about the mesa-commit mailing list