Mesa (master): anv/android: fix images created with external format support

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Oct 8 04:41:18 UTC 2019


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

Author: Tapani Pälli <tapani.palli at intel.com>
Date:   Mon Oct  7 09:07:48 2019 +0300

anv/android: fix images created with external format support

This fixes a case where user first creates image and then later binds it
with memory created from AHW buffer.

Cc: <mesa-stable at lists.freedesktop.org>
Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>

---

 src/intel/vulkan/anv_image.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c
index 36c43f26634..66116a8a67d 100644
--- a/src/intel/vulkan/anv_image.c
+++ b/src/intel/vulkan/anv_image.c
@@ -735,6 +735,17 @@ anv_CreateImage(VkDevice device,
       return anv_image_from_external(device, pCreateInfo, create_info,
                                      pAllocator, pImage);
 
+   bool use_external_format = false;
+   const struct VkExternalFormatANDROID *ext_format =
+      vk_find_struct_const(pCreateInfo->pNext, EXTERNAL_FORMAT_ANDROID);
+
+   /* "If externalFormat is zero, the effect is as if the
+    * VkExternalFormatANDROID structure was not present. Otherwise, the image
+    * will have the specified external format."
+    */
+   if (ext_format && ext_format->externalFormat != 0)
+      use_external_format = true;
+
    const VkNativeBufferANDROID *gralloc_info =
       vk_find_struct_const(pCreateInfo->pNext, NATIVE_BUFFER_ANDROID);
    if (gralloc_info)
@@ -750,6 +761,7 @@ anv_CreateImage(VkDevice device,
    return anv_image_create(device,
       &(struct anv_image_create_info) {
          .vk_info = pCreateInfo,
+         .external_format = use_external_format,
       },
       pAllocator,
       pImage);




More information about the mesa-commit mailing list