anv: add feature flags for linearly tiled ASTC images

In case of emulated ASTC on supported platforms, currently returning
0 for linear tiled images causes vpGetPhysicalDeviceProfileSupport
failure during AndroidBaselineProfile test. The patch handles it
similar to linearly-tiled images that are used for transfers.

Fixes android.graphics.cts.VulkanFeaturesTest#testAndroidBaselineProfile2021Support.

Cc: mesa-stable
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36798>
This commit is contained in:
Nataraj Deshpande 2025-08-14 11:12:18 -07:00 committed by Marge Bot
parent fe38fb858c
commit f67edacf8b

View file

@ -660,17 +660,19 @@ anv_get_image_format_features2(const struct anv_physical_device *physical_device
if (anv_is_compressed_format_emulated(physical_device, vk_format)) {
assert(isl_format_is_compressed(anv_format->planes[0].isl_format));
/* require optimal tiling so that we can decompress on upload */
if (vk_tiling != VK_IMAGE_TILING_OPTIMAL)
return 0;
/* required features for compressed formats */
flags |= VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT |
VK_FORMAT_FEATURE_2_BLIT_SRC_BIT |
VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT |
VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT |
VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT;
/* Require optimal tiling so that we can decompress on upload */
if (vk_tiling == VK_IMAGE_TILING_OPTIMAL) {
/* Required features for compressed formats */
flags |= VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT |
VK_FORMAT_FEATURE_2_BLIT_SRC_BIT |
VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT |
VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT |
VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT;
} else if (vk_tiling == VK_IMAGE_TILING_LINEAR) {
/* Images used for transfers */
flags |= VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT |
VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT;
}
return flags;
}