diff options
author | Lionel Landwerlin <[email protected]> | 2019-10-15 14:37:45 +0300 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-03-19 19:17:10 +0000 |
commit | dab0aadea9494ebf19a0c3e23a38bd01c857b49c (patch) | |
tree | 0540ce95e8a959bf459b140a27f5de505479f6fb /src/intel | |
parent | 157a3cf3ecb6917c26508c5bf641e1b8c58e6228 (diff) |
isl: properly filter supported display modifiers on Gen9+
Y tiling is supported for display on Gen9+ so don't filter it from the
possible flags.
v2: Drop Yf from display supported tilings on Gen12+ (Jason)
Signed-off-by: Lionel Landwerlin <[email protected]>
Cc: <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4243>
Diffstat (limited to 'src/intel')
-rw-r--r-- | src/intel/isl/isl_gen7.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/intel/isl/isl_gen7.c b/src/intel/isl/isl_gen7.c index e1feae9b375..fa245667968 100644 --- a/src/intel/isl/isl_gen7.c +++ b/src/intel/isl/isl_gen7.c @@ -251,9 +251,19 @@ isl_gen6_filter_tiling(const struct isl_device *dev, } if (info->usage & ISL_SURF_USAGE_DISPLAY_BIT) { - /* Before Skylake, the display engine does not accept Y */ - /* FINISHME[SKL]: Y tiling for display surfaces */ - *flags &= (ISL_TILING_LINEAR_BIT | ISL_TILING_X_BIT); + if (ISL_DEV_GEN(dev) >= 12) { + *flags &= (ISL_TILING_LINEAR_BIT | ISL_TILING_X_BIT | + ISL_TILING_Y0_BIT); + } else if (ISL_DEV_GEN(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_Yf_BIT); + } else { + /* Before Skylake, the display engine does not accept Y */ + *flags &= (ISL_TILING_LINEAR_BIT | ISL_TILING_X_BIT); + } } if (info->samples > 1) { |