diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c index 3e06463f55f..cc775ea5c3f 100644 --- a/src/intel/isl/isl.c +++ b/src/intel/isl/isl.c @@ -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); }