intel/isl: Lessen CCS_E-compatibility checks for TGL+
authorNanley Chery <nanley.g.chery@intel.com>
Thu, 17 Nov 2022 21:48:16 +0000 (13:48 -0800)
committerMarge Bot <emma+marge@anholt.net>
Wed, 14 Dec 2022 03:05:24 +0000 (03:05 +0000)
Tiger Lake and onward allow drivers to specify a compression format
independently from the surface format. So, even if the surface format
changes, hardware is still able to determine how to access the CCS.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jianxun Zhang <jianxun.zhang@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19937>

src/intel/isl/isl_format.c

index d014027..8d6c726 100644 (file)
@@ -991,14 +991,12 @@ isl_formats_are_ccs_e_compatible(const struct intel_device_info *devinfo,
        !isl_format_supports_ccs_e(devinfo, format2))
       return false;
 
-   /* Gfx12 added CCS_E support for A8_UNORM, A8_UNORM and R8_UNORM share the
-    * same aux map format encoding so they are definitely compatible.
+   /* On TGL+, drivers may specify a compression format independently from the
+    * surface format. So, even if the surface format changes, hardware is
+    * still able to determine how to access the CCS.
     */
-   if (format1 == ISL_FORMAT_A8_UNORM)
-      format1 = ISL_FORMAT_R8_UNORM;
-
-   if (format2 == ISL_FORMAT_A8_UNORM)
-      format2 = ISL_FORMAT_R8_UNORM;
+   if (devinfo->ver >= 12)
+      return true;
 
    /* The compression used by CCS is not dependent on the actual data encoding
     * of the format but only depends on the bit-layout of the channels.