summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLionel Landwerlin <[email protected]>2019-10-15 14:37:45 +0300
committerEric Engestrom <[email protected]>2020-03-20 00:21:49 +0100
commit18e76206b08eb62ba5e914b6cd44ef3237b0268a (patch)
tree5db6083e6cd0aa2beb8d502af7f7bce15ba0c879
parent0414dba695e9297cd3833b45a4e510ff877c934b (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> (cherry picked from commit dab0aadea9494ebf19a0c3e23a38bd01c857b49c)
-rw-r--r--.pick_status.json2
-rw-r--r--src/intel/isl/isl_gen7.c16
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) {