Teach it to calculate the format features for ASTC.
The goal is to incrementally fix get_image_format_properties() to return
a correct result. Currently, it returns incorrect VkFormatFeatureFlags
which the caller must clean up.
v2: New commit message
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> (v1)
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
return flags;
}
+ /* ASTC textures must be in Y-tiled memory */
+ if (vk_tiling == VK_IMAGE_TILING_LINEAR &&
+ isl_format_get_layout(format.isl_format)->txc == ISL_TXC_ASTC)
+ return 0;
+
if (isl_format_supports_sampling(devinfo, format.isl_format)) {
flags |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT |
VK_FORMAT_FEATURE_BLIT_SRC_BIT;
tiled &= ~VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT &
~VK_FORMAT_FEATURE_BLIT_DST_BIT;
}
-
- /* ASTC textures must be in Y-tiled memory */
- if (isl_format_get_layout(linear_fmt.isl_format)->txc == ISL_TXC_ASTC)
- linear = 0;
}
if (format && format->can_ycbcr) {