[Mesa-dev] [PATCH 06/15] anv: add anv_ahw_usage_from_vk_usage helper function

Lionel Landwerlin lionel.g.landwerlin at intel.com
Tue Dec 11 11:55:33 UTC 2018


On 27/11/2018 10:53, Tapani Pälli wrote:
> v2: rebase to b43f955037c changes
>
> 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_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;
> +}




More information about the mesa-dev mailing list