intel/common: Support 1MB granularity AUX mapping format (Bspec 44930)
authorJianxun Zhang <jianxun.zhang@intel.com>
Fri, 11 Nov 2022 23:37:01 +0000 (15:37 -0800)
committerMarge Bot <emma+marge@anholt.net>
Wed, 14 Dec 2022 18:11:13 +0000 (18:11 +0000)
Signed-off-by: Jianxun Zhang <jianxun.zhang@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20259>

src/intel/common/intel_aux_map.c

index 2f287a3..02a5314 100644 (file)
@@ -111,6 +111,12 @@ enum intel_aux_map_format {
     * 64KB granularity format on GFX12 devices
     */
    INTEL_AUX_MAP_GFX12_64KB = 0,
+
+   /**
+    * 1MB granularity format on GFX125 devices
+    */
+   INTEL_AUX_MAP_GFX125_1MB,
+
    INTEL_AUX_MAP_LAST,
 };
 
@@ -153,6 +159,13 @@ static const struct aux_format_info aux_formats[] = {
       .l1_index_mask = 0xff,
       .l1_index_offset = 16,
    },
+   [INTEL_AUX_MAP_GFX125_1MB] = {
+      .main_page_size = 1024 * 1024,
+      .main_to_aux_ratio = 256,
+      .l1_page_size = 2 * 1024,
+      .l1_index_mask = 0xf,
+      .l1_index_offset = 20,
+   },
 };
 
 struct aux_map_buffer {
@@ -216,8 +229,12 @@ get_format(enum intel_aux_map_format format)
 static enum intel_aux_map_format
 select_format(const struct intel_device_info *devinfo)
 {
-   return devinfo->verx10 ==
-         120 ? INTEL_AUX_MAP_GFX12_64KB : INTEL_AUX_MAP_LAST;
+   if (devinfo->verx10 >= 125)
+      return INTEL_AUX_MAP_GFX125_1MB;
+   else if (devinfo->verx10 == 120)
+      return INTEL_AUX_MAP_GFX12_64KB;
+   else
+      return INTEL_AUX_MAP_LAST;
 }
 
 static bool