On 27/11/2018 10:53, Tapani Pälli wrote:
v2: rebase to b43f955037c changes

Signed-off-by: Tapani Pälli <tapani.pa...@intel.com>


Reviewed-by: Lionel Landwerlin <lionel.g.landwer...@intel.com>


---
  src/intel/vulkan/anv_android.c       | 31 ++++++++++++++++++++++++++++
  src/intel/vulkan/anv_android.h       |  2 ++
  src/intel/vulkan/anv_android_stubs.c |  7 +++++++
  3 files changed, 40 insertions(+)

diff --git a/src/intel/vulkan/anv_android.c b/src/intel/vulkan/anv_android.c
index 54b62b9d02f..f2dd16212c1 100644
--- a/src/intel/vulkan/anv_android.c
+++ b/src/intel/vulkan/anv_android.c
@@ -202,6 +202,37 @@ anv_GetAndroidHardwareBufferPropertiesANDROID(
     return VK_SUCCESS;
  }
+/* Construct ahw usage mask from image usage bits, see
+ * 'AHardwareBuffer Usage Equivalence' in Vulkan spec.
+ */
+uint64_t
+anv_ahw_usage_from_vk_usage(const VkImageCreateFlags vk_create,
+                            const VkImageUsageFlags vk_usage)
+{
+   uint64_t ahw_usage = 0;
+
+   if (vk_usage & VK_IMAGE_USAGE_SAMPLED_BIT)
+      ahw_usage |= AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE;
+
+   if (vk_usage & VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT)
+      ahw_usage |= AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE;
+
+   if (vk_usage & VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT)
+      ahw_usage |= AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT;
+
+   if (vk_create & VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT)
+      ahw_usage |= AHARDWAREBUFFER_USAGE_GPU_CUBE_MAP;
+
+   if (vk_create & VK_IMAGE_CREATE_PROTECTED_BIT)
+      ahw_usage |= AHARDWAREBUFFER_USAGE_PROTECTED_CONTENT;
+
+   /* No usage bits set - set at least one GPU usage. */
+   if (ahw_usage == 0)
+      ahw_usage = AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE;
+
+   return ahw_usage;
+}
+
  VkResult
  anv_image_from_gralloc(VkDevice device_h,
                         const VkImageCreateInfo *base_info,
diff --git a/src/intel/vulkan/anv_android.h b/src/intel/vulkan/anv_android.h
index a27c364471b..8d748cecc39 100644
--- a/src/intel/vulkan/anv_android.h
+++ b/src/intel/vulkan/anv_android.h
@@ -34,4 +34,6 @@ VkResult anv_image_from_gralloc(VkDevice device_h,
                                  const VkAllocationCallbacks *alloc,
                                  VkImage *pImage);
+uint64_t anv_ahw_usage_from_vk_usage(const VkImageCreateFlags vk_create,
+                                     const VkImageUsageFlags vk_usage);
  #endif /* ANV_ANDROID_H */
diff --git a/src/intel/vulkan/anv_android_stubs.c 
b/src/intel/vulkan/anv_android_stubs.c
index a6fe5a5e6b3..0671d5635ee 100644
--- a/src/intel/vulkan/anv_android_stubs.c
+++ b/src/intel/vulkan/anv_android_stubs.c
@@ -32,3 +32,10 @@ anv_image_from_gralloc(VkDevice device_h,
  {
     return VK_ERROR_EXTENSION_NOT_PRESENT;
  }
+
+uint64_t
+anv_ahw_usage_from_vk_usage(const VkImageCreateFlags vk_create,
+                            const VkImageUsageFlags vk_usage)
+{
+   return 0;
+}


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to