From: Nanley Chery Date: Wed, 2 Mar 2016 01:32:14 +0000 (-0800) Subject: isl: Don't filter tiling flags if a specific tiling bit is set X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=091f1da902c71ac8d3d27b325a118e2f683f1ae5;p=mesa.git 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 Reviewed-by: Jason Ekstrand --- 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) \