intel/isl: Allow Ys tiling

Ys & Yf are both implemented in ISL now, we still have some Yf issues
to investigate. Instead of disabling them in ISL, we disable them in
the two drivers.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23620>
This commit is contained in:
Jason Ekstrand 2018-02-21 19:02:09 -08:00 committed by Marge Bot
parent 4ac46dbb46
commit e956f6ad30
3 changed files with 15 additions and 9 deletions

View file

@ -731,6 +731,10 @@ iris_resource_configure_main(const struct iris_screen *screen,
tiling_flags = ISL_TILING_ANY_MASK;
}
/* We don't support Yf or Ys tiling yet */
tiling_flags &= ~ISL_TILING_STD_Y_MASK;
assert(tiling_flags != 0);
isl_surf_usage_flags_t usage = 0;
if (res->mod_info && !isl_drm_modifier_has_aux(modifier))

View file

@ -225,13 +225,15 @@ isl_gfx6_filter_tiling(const struct isl_device *dev,
ISL_TILING_Y0_BIT;
}
/* And... clear the Yf and Ys bits anyway because Anvil doesn't support
* them yet.
/* TODO: Investigate Yf failures (~5000 VK CTS failures at the time of this
* writing).
*/
*flags &= ~ISL_TILING_SKL_Yf_BIT; /* FINISHME[SKL]: Support Yf */
*flags &= ~ISL_TILING_SKL_Ys_BIT; /* FINISHME[SKL]: Support Ys */
*flags &= ~ISL_TILING_ICL_Yf_BIT; /* FINISHME[ICL]: Support Yf */
*flags &= ~ISL_TILING_ICL_Ys_BIT; /* FINISHME[ICL]: Support Ys */
if (isl_format_is_compressed(info->format) ||
info->samples > 1 ||
info->dim == ISL_SURF_DIM_3D) {
*flags &= ~ISL_TILING_SKL_Yf_BIT; /* FINISHME[SKL]: Support Yf */
*flags &= ~ISL_TILING_ICL_Yf_BIT; /* FINISHME[ICL]: Support Yf */
}
if (isl_surf_usage_is_depth(info->usage)) {
/* Depth requires Y. */
@ -309,9 +311,6 @@ isl_gfx6_filter_tiling(const struct isl_device *dev,
*flags &= (ISL_TILING_LINEAR_BIT | ISL_TILING_X_BIT |
ISL_TILING_Y0_BIT);
} else if (ISL_GFX_VER(dev) >= 9) {
/* Note we let Yf even though it was cleared above. This is just for
* completeness.
*/
*flags &= (ISL_TILING_LINEAR_BIT | ISL_TILING_X_BIT |
ISL_TILING_Y0_BIT |
ISL_TILING_SKL_Yf_BIT | ISL_TILING_ICL_Yf_BIT);

View file

@ -307,6 +307,9 @@ choose_isl_tiling_flags(const struct intel_device_info *devinfo,
flags &= legacy_mask;
}
/* We don't support Yf or Ys tiling yet */
flags &= ~ISL_TILING_STD_Y_MASK;
assert(flags);
return flags;