From: Lionel Landwerlin Date: Sat, 13 Aug 2016 00:00:57 +0000 (+0100) Subject: anv: GetDeviceImageFormatProperties: fix TRANSFER formats X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=475ce61d1aa0fb06202511b4ea8ad9bd1fab64d0;p=mesa.git anv: GetDeviceImageFormatProperties: fix TRANSFER formats We let the user believe we support some transfer formats which we don't. This can lead to crashes when actually trying to use those formats for example on dEQP-VK.api.copy_and_blit.image_to_image.* tests. Let all formats we can render to or sample from as meta implements transfers using attachments. Signed-off-by: Lionel Landwerlin Cc: Jason Ekstrand Reviewed-by: Jason Ekstrand --- diff --git a/src/intel/vulkan/anv_formats.c b/src/intel/vulkan/anv_formats.c index b26e48a6c0b..b06e29baaf8 100644 --- a/src/intel/vulkan/anv_formats.c +++ b/src/intel/vulkan/anv_formats.c @@ -507,25 +507,15 @@ VkResult anv_GetPhysicalDeviceImageFormatProperties( sampleCounts = isl_device_get_sample_counts(&physical_device->isl_dev); } - if (usage & VK_IMAGE_USAGE_TRANSFER_SRC_BIT) { - /* Meta implements transfers by sampling from the source image. */ - if (!(format_feature_flags & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)) { - goto unsupported; - } - } - -#if 0 - if (usage & VK_IMAGE_USAGE_TRANSFER_DST_BIT) { - if (anv_format_for_vk_format(format)->has_stencil) { - /* Not yet implemented because copying to a W-tiled surface is crazy - * hard. - */ - anv_finishme("support VK_IMAGE_USAGE_TRANSFER_DST_BIT for " - "stencil format"); + if (usage & (VK_IMAGE_USAGE_TRANSFER_SRC_BIT | + VK_IMAGE_USAGE_TRANSFER_DST_BIT)) { + /* Accept transfers on anything we can sample from or renderer to. */ + if (!(format_feature_flags & (VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT | + VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT | + VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT))) { goto unsupported; } } -#endif if (usage & VK_IMAGE_USAGE_SAMPLED_BIT) { if (!(format_feature_flags & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT)) {