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