isl: disable aux when creating uncompressed TileY/Tile64 surfaces from compressed ones

Fixes: 8e96b51 ('intel/isl: Assert alignments of surface addresses')
Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: José Roberto de Souza <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32771>
This commit is contained in:
Rohan Garg
2024-07-01 15:25:58 +02:00
committed by Marge Bot
parent abd137d079
commit f96b2c002d

View File

@@ -3946,6 +3946,17 @@ isl_surf_get_uncompressed_surf(const struct isl_device *dev,
.d = view_depth_el > 1 ? view_depth_el << ucompr_level : 1,
};
isl_surf_usage_flags_t usage = surf->usage;
/* CCS-enabled surfaces can have different layout requirements than
* surfaces without CCS support. So, for accuracy, disable CCS
* support if the original surface lacked it.
*/
if (_isl_surf_info_supports_ccs(dev, surf->format, surf->usage) !=
_isl_surf_info_supports_ccs(dev, view_format, usage)) {
assert(_isl_surf_info_supports_ccs(dev, view_format, usage));
usage |= ISL_SURF_USAGE_DISABLE_AUX_BIT;
}
bool ok UNUSED;
ok = isl_surf_init(dev, ucompr_surf,
.dim = surf->dim,
@@ -3959,7 +3970,7 @@ isl_surf_get_uncompressed_surf(const struct isl_device *dev,
.min_miptail_start_level =
(int) (view->base_level < surf->miptail_start_level),
.row_pitch_B = surf->row_pitch_B,
.usage = surf->usage,
.usage = usage,
.tiling_flags = (1u << surf->tiling));
assert(ok);