isl: add a no-aux-align usage flag

This flag signals that the driver will be dealing with aux-tt
alignment requirements on its own.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jianxun Zhang <jianxun.zhang@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26822>
This commit is contained in:
Lionel Landwerlin
2023-12-22 17:08:37 +02:00
committed by Marge Bot
parent 44515bb92c
commit 3f64ec141e
2 changed files with 22 additions and 18 deletions

View File

@@ -2374,7 +2374,7 @@ _isl_notify_failure(const struct isl_surf_init_info *surf_info,
snprintf(msg + ret, sizeof(msg) - ret,
" extent=%ux%ux%u dim=%s msaa=%ux levels=%u rpitch=%u fmt=%s "
"usages=%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s "
"usages=%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s "
"tiling_flags=%s%s%s%s%s%s%s%s%s%s%s%s%s",
surf_info->width, surf_info->height,
surf_info->dim == ISL_SURF_DIM_3D ?
@@ -2385,21 +2385,22 @@ _isl_notify_failure(const struct isl_surf_init_info *surf_info,
surf_info->row_pitch_B,
isl_format_get_name(surf_info->format) + strlen("ISL_FORMAT_"),
PRINT_USAGE(RENDER_TARGET, "rt"),
PRINT_USAGE(DEPTH, "depth"),
PRINT_USAGE(STENCIL, "stenc"),
PRINT_USAGE(TEXTURE, "tex"),
PRINT_USAGE(CUBE, "cube"),
PRINT_USAGE(DISABLE_AUX, "noaux"),
PRINT_USAGE(DISPLAY, "disp"),
PRINT_USAGE(HIZ, "hiz"),
PRINT_USAGE(MCS, "mcs"),
PRINT_USAGE(CCS, "ccs"),
PRINT_USAGE(VERTEX_BUFFER, "vb"),
PRINT_USAGE(INDEX_BUFFER, "ib"),
PRINT_USAGE(CONSTANT_BUFFER, "const"),
PRINT_USAGE(STAGING, "stage"),
PRINT_USAGE(SPARSE, "sparse"),
PRINT_USAGE(RENDER_TARGET, "rt"),
PRINT_USAGE(DEPTH, "depth"),
PRINT_USAGE(STENCIL, "stenc"),
PRINT_USAGE(TEXTURE, "tex"),
PRINT_USAGE(CUBE, "cube"),
PRINT_USAGE(DISABLE_AUX, "noaux"),
PRINT_USAGE(DISPLAY, "disp"),
PRINT_USAGE(HIZ, "hiz"),
PRINT_USAGE(MCS, "mcs"),
PRINT_USAGE(CCS, "ccs"),
PRINT_USAGE(VERTEX_BUFFER, "vb"),
PRINT_USAGE(INDEX_BUFFER, "ib"),
PRINT_USAGE(CONSTANT_BUFFER, "const"),
PRINT_USAGE(STAGING, "stage"),
PRINT_USAGE(SPARSE, "sparse"),
PRINT_USAGE(NO_AUX_TT_ALIGNMENT, "no-aux-align"),
PRINT_TILING(LINEAR, "linear"),
PRINT_TILING(W, "W"),
@@ -2690,8 +2691,10 @@ isl_calc_base_alignment(const struct isl_device *dev,
* is that we haven't enable CCS on linear images yet so we can avoid
* the extra alignment there.
*/
base_alignment_B = MAX(base_alignment_B, dev->info->verx10 >= 125 ?
1024 * 1024 : 64 * 1024);
if (!(info->usage & ISL_SURF_USAGE_NO_AUX_TT_ALIGNMENT_BIT)) {
base_alignment_B = MAX(base_alignment_B, dev->info->verx10 >= 125 ?
1024 * 1024 : 64 * 1024);
}
}
}

View File

@@ -1150,6 +1150,7 @@ typedef uint64_t isl_surf_usage_flags_t;
#define ISL_SURF_USAGE_STREAM_OUT_BIT (1u << 18)
#define ISL_SURF_USAGE_2D_3D_COMPATIBLE_BIT (1u << 19)
#define ISL_SURF_USAGE_SPARSE_BIT (1u << 20)
#define ISL_SURF_USAGE_NO_AUX_TT_ALIGNMENT_BIT (1u << 21)
/** @} */
/**