diff options
-rw-r--r-- | src/intel/isl/isl.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c index 7fd9eeac515..a36638071d5 100644 --- a/src/intel/isl/isl.c +++ b/src/intel/isl/isl.c @@ -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) \ |