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:
@@ -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);
|
||||
|
||||
|
Reference in New Issue
Block a user