[Mesa-dev] [PATCH 2/8] anv: add from/to helpers with android and vulkan formats

Jason Ekstrand jason at jlekstrand.net
Wed Aug 22 14:11:04 UTC 2018


On Tue, Aug 21, 2018 at 3:27 AM Tapani Pälli <tapani.palli at intel.com> wrote:

> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
> ---
>  src/intel/vulkan/vk_format_info.h | 43
> +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 43 insertions(+)
>
> diff --git a/src/intel/vulkan/vk_format_info.h
> b/src/intel/vulkan/vk_format_info.h
> index a1cc6952c8f..0ae0a2d43ee 100644
> --- a/src/intel/vulkan/vk_format_info.h
> +++ b/src/intel/vulkan/vk_format_info.h
> @@ -27,6 +27,49 @@
>  #include <stdbool.h>
>  #include <vulkan/vulkan.h>
>
> +#ifdef ANDROID
> +#include <vndk/hardware_buffer.h>
> +static inline VkFormat
> +vk_format_from_android(unsigned android_format)
> +{
> +   switch (android_format) {
> +   case AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM:
> +   case AHARDWAREBUFFER_FORMAT_R8G8B8X8_UNORM:
>

How do you plan on handling the X?  Also, what are the semantics of it?
Are images created with this format expected to act as if they have no
alpha channel?  If so, then you may want to declare it as R8G8B8_UNORM and
we have logic in anv_image to turn that into R8G8B8A8_UNORM and whack
blending to treat it as if there is no alpha channel.


> +      return VK_FORMAT_R8G8B8A8_UNORM;
> +   case AHARDWAREBUFFER_FORMAT_R8G8B8_UNORM:
> +      return VK_FORMAT_R8G8B8_UNORM;
> +   case AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM:
> +      return VK_FORMAT_R5G6B5_UNORM_PACK16;
> +   case AHARDWAREBUFFER_FORMAT_R16G16B16A16_FLOAT:
> +      return VK_FORMAT_R16G16B16A16_SFLOAT;
> +   case AHARDWAREBUFFER_FORMAT_R10G10B10A2_UNORM:
> +      return VK_FORMAT_A2B10G10R10_UNORM_PACK32;
> +   case AHARDWAREBUFFER_FORMAT_BLOB:
> +   default:
> +      return VK_FORMAT_UNDEFINED;
> +   }
> +}
> +
> +static inline unsigned
> +android_format_from_vk(unsigned vk_format)
> +{
> +   switch (vk_format) {
> +   case VK_FORMAT_R8G8B8A8_UNORM:
> +      return AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM;
> +   case VK_FORMAT_R8G8B8_UNORM:
> +      return AHARDWAREBUFFER_FORMAT_R8G8B8_UNORM;
> +   case VK_FORMAT_R5G6B5_UNORM_PACK16:
> +      return AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM;
> +   case VK_FORMAT_R16G16B16A16_SFLOAT:
> +      return AHARDWAREBUFFER_FORMAT_R16G16B16A16_FLOAT;
> +   case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
> +      return AHARDWAREBUFFER_FORMAT_R10G10B10A2_UNORM;
> +   default:
> +      return AHARDWAREBUFFER_FORMAT_BLOB;
> +   }
> +}
> +#endif
> +
>  static inline VkImageAspectFlags
>  vk_format_aspects(VkFormat format)
>  {
> --
> 2.14.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180822/cb4646d3/attachment.html>


More information about the mesa-dev mailing list