/* For images created without MUTABLE_FORMAT_BIT set, we know that
* they will always be used with the original format. In
* particular, they will always be used with a format that
- * supports color compression. This means that it's safe to just
- * leave compression on at all times for these formats.
+ * supports color compression. If it's never used as a storage
+ * image, then it will only be used through the sampler or the as
+ * a render target. This means that it's safe to just leave
+ * compression on at all times for these formats.
*/
- if (!(vk_info->flags & VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT) &&
+ if (!(vk_info->usage & VK_IMAGE_USAGE_STORAGE_BIT) &&
+ !(vk_info->flags & VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT) &&
isl_format_supports_ccs_e(&dev->info, format)) {
- if (vk_info->usage & VK_IMAGE_USAGE_STORAGE_BIT) {
- /*
- * For now, we leave compression off for anything that may
- * be used as a storage image. This is because accessing
- * storage images may involve ccs-incompatible views or even
- * untyped messages which don't support compression at all.
- */
- anv_finishme("Enable CCS for storage images");
- } else {
- image->aux_usage = ISL_AUX_USAGE_CCS_E;
- }
+ image->aux_usage = ISL_AUX_USAGE_CCS_E;
}
}
}