isl: Don't filter tiling flags if a specific tiling bit is set

If a specific bit is set, the intention to create a surface with a
specific tiling format should be respected.

Signed-off-by: Nanley Chery <nanley.g.chery@intel.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
This commit is contained in:
Nanley Chery 2016-03-01 17:32:14 -08:00
parent 456f5b0314
commit 091f1da902
1 changed files with 8 additions and 5 deletions

View File

@ -184,11 +184,14 @@ isl_surf_choose_tiling(const struct isl_device *dev,
{
isl_tiling_flags_t tiling_flags = info->tiling_flags;
if (ISL_DEV_GEN(dev) >= 7) {
gen7_filter_tiling(dev, info, &tiling_flags);
} else {
isl_finishme("%s: gen%u", __func__, ISL_DEV_GEN(dev));
gen7_filter_tiling(dev, info, &tiling_flags);
/* Filter if multiple tiling options are given */
if (!isl_is_pow2(tiling_flags)) {
if (ISL_DEV_GEN(dev) >= 7) {
gen7_filter_tiling(dev, info, &tiling_flags);
} else {
isl_finishme("%s: gen%u", __func__, ISL_DEV_GEN(dev));
gen7_filter_tiling(dev, info, &tiling_flags);
}
}
#define CHOOSE(__tiling) \