intel/isl: disable TILE64 for YCRCB formats
authorTapani Pälli <tapani.palli@intel.com>
Mon, 6 Mar 2023 09:28:46 +0000 (11:28 +0200)
committerMarge Bot <emma+marge@anholt.net>
Thu, 9 Mar 2023 13:50:39 +0000 (13:50 +0000)
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21723>

src/intel/isl/isl_gfx12.c

index 959139c..79d89c9 100644 (file)
@@ -74,6 +74,13 @@ isl_gfx125_filter_tiling(const struct isl_device *dev,
    if (info->dim != ISL_SURF_DIM_2D)
       *flags &= ~ISL_TILING_64_BIT;
 
+   /* TILE64 does not work with YCRCB formats, according to bspec 58767:
+    * "Packed YUV surface formats such as YCRCB_NORMAL, YCRCB_SWAPUVY etc.
+    * will not support as Tile64"
+    */
+   if (isl_format_is_yuv(info->format))
+      *flags &= ~ISL_TILING_64_BIT;
+
    /* From RENDER_SURFACE_STATE::NumberofMultisamples,
     *
     *    This field must not be programmed to anything other than