From: Chia-I Wu Date: Fri, 21 Apr 2023 05:27:13 +0000 (-0700) Subject: anv,hasvk,radv: do not fall back to AHARDWAREBUFFER_FORMAT_BLOB X-Git-Tag: upstream/23.3.3~8825 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=380180516cc3cc5f16b9dbc40ad6ee4d1f52a29d;p=platform%2Fupstream%2Fmesa.git anv,hasvk,radv: do not fall back to AHARDWAREBUFFER_FORMAT_BLOB When allocating a VkDeviceMemory exportable as AHB, it seems incorrect to fall back to AHARDWAREBUFFER_FORMAT_BLOB when the image has no known AHB format. We should fail the allocation instead. Part-of: --- diff --git a/src/amd/vulkan/radv_android.c b/src/amd/vulkan/radv_android.c index 178a542..643dbc5 100644 --- a/src/amd/vulkan/radv_android.c +++ b/src/amd/vulkan/radv_android.c @@ -416,7 +416,7 @@ radv_ahb_format_for_vk_format(VkFormat vk_format) case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM: return AHARDWAREBUFFER_FORMAT_Y8Cb8Cr8_420; default: - return AHARDWAREBUFFER_FORMAT_BLOB; + return 0; } } diff --git a/src/intel/vulkan/anv_android.c b/src/intel/vulkan/anv_android.c index 8de11c6..b47d402 100644 --- a/src/intel/vulkan/anv_android.c +++ b/src/intel/vulkan/anv_android.c @@ -150,7 +150,7 @@ anv_ahb_format_for_vk_format(VkFormat vk_format) return HAL_PIXEL_FORMAT_NV12_Y_TILED_INTEL; #endif default: - return AHARDWAREBUFFER_FORMAT_BLOB; + return 0; } } diff --git a/src/intel/vulkan_hasvk/anv_android.c b/src/intel/vulkan_hasvk/anv_android.c index 1fbaea9..5c290b5 100644 --- a/src/intel/vulkan_hasvk/anv_android.c +++ b/src/intel/vulkan_hasvk/anv_android.c @@ -150,7 +150,7 @@ anv_ahb_format_for_vk_format(VkFormat vk_format) return HAL_PIXEL_FORMAT_NV12_Y_TILED_INTEL; #endif default: - return AHARDWAREBUFFER_FORMAT_BLOB; + return 0; } } diff --git a/src/vulkan/runtime/vk_android.c b/src/vulkan/runtime/vk_android.c index 6cdb8fe..db9bee1 100644 --- a/src/vulkan/runtime/vk_android.c +++ b/src/vulkan/runtime/vk_android.c @@ -150,13 +150,13 @@ vk_alloc_ahardware_buffer(const VkMemoryAllocateInfo *pAllocateInfo) /* If caller passed dedicated information. */ if (dedicated_info && dedicated_info->image) { VK_FROM_HANDLE(vk_image, image, dedicated_info->image); + + if (!image->ahb_format) + return NULL; + w = image->extent.width; h = image->extent.height; layers = image->array_layers; - assert(image->ahb_format != 0); - /* TODO: This feels a bit sketchy. We should probably be taking the - * external format into account somehow. - */ format = image->ahb_format; usage = vk_image_usage_to_ahb_usage(image->create_flags, image->usage);