radv: Set vk_image.ahardware_buffer_format
Reviewed-by: Lina Versace <lina@kiwitree.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22038>
This commit is contained in:
committed by
Marge Bot
parent
0a86df21d0
commit
d75f797246
@@ -411,8 +411,8 @@ vk_format_from_android(unsigned android_format, unsigned android_usage)
|
||||
}
|
||||
}
|
||||
|
||||
static inline unsigned
|
||||
android_format_from_vk(unsigned vk_format)
|
||||
unsigned
|
||||
radv_ahb_format_for_vk_format(VkFormat vk_format)
|
||||
{
|
||||
switch (vk_format) {
|
||||
case VK_FORMAT_R8G8B8A8_UNORM:
|
||||
@@ -751,7 +751,7 @@ radv_create_ahb_memory(struct radv_device *device, struct radv_device_memory *me
|
||||
w = image->info.width;
|
||||
h = image->info.height;
|
||||
layers = image->info.array_size;
|
||||
format = android_format_from_vk(image->vk.format);
|
||||
format = radv_ahb_format_for_vk_format(image->vk.format);
|
||||
usage = vk_image_usage_to_ahb_usage(image->vk.create_flags, image->vk.usage);
|
||||
} else if (dedicated_info && dedicated_info->buffer) {
|
||||
RADV_FROM_HANDLE(radv_buffer, buffer, dedicated_info->buffer);
|
||||
|
||||
@@ -1974,11 +1974,13 @@ radv_image_create(VkDevice _device, const struct radv_image_create_info *create_
|
||||
image->planes[plane].surface.modifier = modifier;
|
||||
}
|
||||
|
||||
bool delay_layout =
|
||||
external_info && (external_info->handleTypes &
|
||||
VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID);
|
||||
if (image->vk.external_handle_types &
|
||||
VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID) {
|
||||
#ifdef ANDROID
|
||||
image->vk.ahardware_buffer_format =
|
||||
radv_ahb_format_for_vk_format(image->vk.format);
|
||||
#endif
|
||||
|
||||
if (delay_layout) {
|
||||
*pImage = radv_image_to_handle(image);
|
||||
assert(!(image->vk.create_flags & VK_IMAGE_CREATE_SPARSE_BINDING_BIT));
|
||||
return VK_SUCCESS;
|
||||
|
||||
@@ -2851,6 +2851,8 @@ VkResult radv_import_ahb_memory(struct radv_device *device, struct radv_device_m
|
||||
VkResult radv_create_ahb_memory(struct radv_device *device, struct radv_device_memory *mem,
|
||||
unsigned priority, const VkMemoryAllocateInfo *pAllocateInfo);
|
||||
|
||||
unsigned radv_ahb_format_for_vk_format(VkFormat vk_format);
|
||||
|
||||
VkFormat radv_select_android_external_format(const void *next, VkFormat default_format);
|
||||
|
||||
bool radv_android_gralloc_supports_format(VkFormat format, VkImageUsageFlagBits usage);
|
||||
|
||||
Reference in New Issue
Block a user