From 18e76206b08eb62ba5e914b6cd44ef3237b0268a Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Tue, 15 Oct 2019 14:37:45 +0300 Subject: 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 Cc: Reviewed-by: Jason Ekstrand Part-of: (cherry picked from commit dab0aadea9494ebf19a0c3e23a38bd01c857b49c) --- .pick_status.json | 2 +- src/intel/isl/isl_gen7.c | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 12b512a3560..92e8960ae7b 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -85,7 +85,7 @@ "description": "isl: properly filter supported display modifiers on Gen9+", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": null }, 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) { -- cgit v1.2.3