intel/isl: Select Y-tiling for stencil on gen12
authorJason Ekstrand <jason.ekstrand@intel.com>
Tue, 9 Jan 2018 00:28:46 +0000 (16:28 -0800)
committerJordan Justen <jordan.l.justen@intel.com>
Thu, 17 Oct 2019 21:47:22 +0000 (14:47 -0700)
Rework:
 * Disallow linear 1D stencil buffers (Nanley)
 * Force Y for gen12 stencil rather than ~W (Nanley)

Co-authored-by: Nanley Chery <nanley.g.chery@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
src/intel/isl/isl_gen7.c

index a9db21fba52deccbb04769e8aa8aa29b784f6f9c..e1feae9b37563c9c68f37ad8d58218492f081b2f 100644 (file)
@@ -213,11 +213,14 @@ isl_gen6_filter_tiling(const struct isl_device *dev,
       *flags &= ISL_TILING_ANY_Y_MASK;
    }
 
-   /* Separate stencil requires W tiling, and W tiling requires separate
-    * stencil.
-    */
    if (isl_surf_usage_is_stencil(info->usage)) {
-      *flags &= ISL_TILING_W_BIT;
+      if (ISL_DEV_GEN(dev) >= 12) {
+         /* Stencil requires Y. */
+         *flags &= ISL_TILING_ANY_Y_MASK;
+      } else {
+         /* Stencil requires W. */
+         *flags &= ISL_TILING_W_BIT;
+      }
    } else {
       *flags &= ~ISL_TILING_W_BIT;
    }