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:
@@ -416,7 +416,7 @@ radv_ahb_format_for_vk_format(VkFormat vk_format)
|
|||||||
case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
|
case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
|
||||||
return AHARDWAREBUFFER_FORMAT_Y8Cb8Cr8_420;
|
return AHARDWAREBUFFER_FORMAT_Y8Cb8Cr8_420;
|
||||||
default:
|
default:
|
||||||
return AHARDWAREBUFFER_FORMAT_BLOB;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -150,7 +150,7 @@ anv_ahb_format_for_vk_format(VkFormat vk_format)
|
|||||||
return HAL_PIXEL_FORMAT_NV12_Y_TILED_INTEL;
|
return HAL_PIXEL_FORMAT_NV12_Y_TILED_INTEL;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
return AHARDWAREBUFFER_FORMAT_BLOB;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -150,7 +150,7 @@ anv_ahb_format_for_vk_format(VkFormat vk_format)
|
|||||||
return HAL_PIXEL_FORMAT_NV12_Y_TILED_INTEL;
|
return HAL_PIXEL_FORMAT_NV12_Y_TILED_INTEL;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
return AHARDWAREBUFFER_FORMAT_BLOB;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -150,13 +150,13 @@ vk_alloc_ahardware_buffer(const VkMemoryAllocateInfo *pAllocateInfo)
|
|||||||
/* If caller passed dedicated information. */
|
/* If caller passed dedicated information. */
|
||||||
if (dedicated_info && dedicated_info->image) {
|
if (dedicated_info && dedicated_info->image) {
|
||||||
VK_FROM_HANDLE(vk_image, image, dedicated_info->image);
|
VK_FROM_HANDLE(vk_image, image, dedicated_info->image);
|
||||||
|
|
||||||
|
if (!image->ahb_format)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
w = image->extent.width;
|
w = image->extent.width;
|
||||||
h = image->extent.height;
|
h = image->extent.height;
|
||||||
layers = image->array_layers;
|
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;
|
format = image->ahb_format;
|
||||||
usage = vk_image_usage_to_ahb_usage(image->create_flags,
|
usage = vk_image_usage_to_ahb_usage(image->create_flags,
|
||||||
image->usage);
|
image->usage);
|
||||||
|
Reference in New Issue
Block a user