intel/isl: Require aux map for some 64K alignment

The comment states that 64K alignment of surfaces is required when an
aux map is present on the platform. However, the code checks for GFX12
instead of dev->info->has_aux_map. Update the code to match the comment.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13555>
This commit is contained in:
Nanley Chery 2021-10-26 10:03:15 -07:00 committed by Marge Bot
parent 46ef1e8389
commit 91128b1a0f
1 changed files with 8 additions and 8 deletions

View File

@ -1867,15 +1867,15 @@ isl_surf_init_s(const struct isl_device *dev,
if (tiling == ISL_TILING_GFX12_CCS)
base_alignment_B = MAX(base_alignment_B, 4096);
/* Gfx12+ requires that images be 64K-aligned if they're going to used
* with CCS. This is because the Aux translation table maps main
* surface addresses to aux addresses at a 64K (in the main surface)
* granularity. Because we don't know for sure in ISL if a surface will
* use CCS, we have to guess based on the DISABLE_AUX usage bit. The
* one thing we do know is that we haven't enable CCS on linear images
* yet so we can avoid the extra alignment there.
/* Platforms using an aux map require that images be 64K-aligned if
* they're going to used with CCS. This is because the Aux translation
* table maps main surface addresses to aux addresses at a 64K (in the
* main surface) granularity. Because we don't know for sure in ISL if
* a surface will use CCS, we have to guess based on the DISABLE_AUX
* usage bit. The one thing we do know is that we haven't enable CCS on
* linear images yet so we can avoid the extra alignment there.
*/
if (ISL_GFX_VER(dev) >= 12 &&
if (dev->info->has_aux_map &&
!(info->usage & ISL_SURF_USAGE_DISABLE_AUX_BIT)) {
base_alignment_B = MAX(base_alignment_B, 64 * 1024);
}