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

Author: Yiwei Zhang <zzyi...@chromium.org>
Date:   Sat Aug 26 13:05:56 2023 -0700

venus: use common vk_image_usage_to_ahb_usage helper

Signed-off-by: Yiwei Zhang <zzyi...@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25184>

---

 src/virtio/vulkan/vn_android.c         | 32 ++++----------------------------
 src/virtio/vulkan/vn_physical_device.c |  5 +++--
 2 files changed, 7 insertions(+), 30 deletions(-)

diff --git a/src/virtio/vulkan/vn_android.c b/src/virtio/vulkan/vn_android.c
index f45a7e0d858..d86d7388dd7 100644
--- a/src/virtio/vulkan/vn_android.c
+++ b/src/virtio/vulkan/vn_android.c
@@ -319,32 +319,6 @@ vn_android_drm_format_is_yuv(uint32_t format)
    }
 }
 
-uint64_t
-vn_android_get_ahb_usage(const VkImageUsageFlags usage,
-                         const VkImageCreateFlags flags)
-{
-   uint64_t ahb_usage = 0;
-   if (usage &
-       (VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT))
-      ahb_usage |= AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE;
-
-   if (usage & (VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT |
-                VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT))
-      ahb_usage |= AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER;
-
-   if (flags & VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT)
-      ahb_usage |= AHARDWAREBUFFER_USAGE_GPU_CUBE_MAP;
-
-   if (flags & VK_IMAGE_CREATE_PROTECTED_BIT)
-      ahb_usage |= AHARDWAREBUFFER_USAGE_PROTECTED_CONTENT;
-
-   /* must include at least one GPU usage flag */
-   if (ahb_usage == 0)
-      ahb_usage = AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE;
-
-   return ahb_usage;
-}
-
 VkResult
 vn_GetSwapchainGrallocUsage2ANDROID(
    VkDevice device,
@@ -909,7 +883,8 @@ vn_android_get_drm_format_modifier_info(
    if (!format)
       return false;
 
-   usage = vn_android_get_ahb_usage(format_info->usage, format_info->flags);
+   usage =
+      vk_image_usage_to_ahb_usage(format_info->flags, format_info->usage);
    ahb = vn_android_ahb_allocate(16, 16, 1, format, usage);
    if (!ahb)
       return false;
@@ -1090,7 +1065,8 @@ vn_android_device_allocate_ahb(struct vn_device *dev,
       height = image_info->extent.height;
       layers = image_info->arrayLayers;
       format = vk_image_format_to_ahb_format(image_info->format);
-      usage = vn_android_get_ahb_usage(image_info->usage, image_info->flags);
+      usage =
+         vk_image_usage_to_ahb_usage(image_info->flags, image_info->usage);
    } else {
       const VkPhysicalDeviceMemoryProperties *mem_props =
          &dev->physical_device->memory_properties;
diff --git a/src/virtio/vulkan/vn_physical_device.c 
b/src/virtio/vulkan/vn_physical_device.c
index ce32262d8af..3aada213d1e 100644
--- a/src/virtio/vulkan/vn_physical_device.c
+++ b/src/virtio/vulkan/vn_physical_device.c
@@ -15,6 +15,7 @@
 #include "git_sha1.h"
 #include "util/mesa-sha1.h"
 #include "venus-protocol/vn_protocol_driver_device.h"
+#include "vk_android.h"
 
 #include "vn_android.h"
 #include "vn_instance.h"
@@ -2042,8 +2043,8 @@ vn_GetPhysicalDeviceImageFormatProperties2(
          vk_find_struct(pImageFormatProperties->pNext,
                         ANDROID_HARDWARE_BUFFER_USAGE_ANDROID);
       if (ahb_usage) {
-         ahb_usage->androidHardwareBufferUsage = vn_android_get_ahb_usage(
-            pImageFormatInfo->usage, pImageFormatInfo->flags);
+         ahb_usage->androidHardwareBufferUsage = vk_image_usage_to_ahb_usage(
+            pImageFormatInfo->flags, pImageFormatInfo->usage);
       }
 
       /* AHBs with mipmap usage will ignore this property */

Reply via email to