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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22619>
This commit is contained in:
Chia-I Wu
2023-04-20 22:27:13 -07:00
committed by Marge Bot
parent 50e703f347
commit 380180516c
4 changed files with 7 additions and 7 deletions

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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);