Mesa (main): intel/dev: Handle BSW naming issues

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jul 14 23:19:12 UTC 2021


Module: Mesa
Branch: main
Commit: 915e5a8cc306c35dad2f7e3a83c18ce72b16e3d6
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=915e5a8cc306c35dad2f7e3a83c18ce72b16e3d6

Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Tue Jul 13 17:56:11 2021 -0500

intel/dev: Handle BSW naming issues

Braswell, a particular Cherryview variant, is especially strange.  We
can't even get the chip name from the PCI ID and instead have to look at
fusing information to decide if it's a 400 or a 405.  Pull that into the
common code as well.  This fixes BSW naming on ANV and crocus.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11861>

---

 src/intel/dev/intel_device_info.c       | 18 ++++++++++++++++++
 src/mesa/drivers/dri/i965/brw_context.c | 20 --------------------
 src/mesa/drivers/dri/i965/brw_screen.c  |  1 -
 src/mesa/drivers/dri/i965/brw_screen.h  |  5 -----
 4 files changed, 18 insertions(+), 26 deletions(-)

diff --git a/src/intel/dev/intel_device_info.c b/src/intel/dev/intel_device_info.c
index 442d7e9b41b..a1d3b2c2b8e 100644
--- a/src/intel/dev/intel_device_info.c
+++ b/src/intel/dev/intel_device_info.c
@@ -1433,6 +1433,24 @@ fixup_chv_device_info(struct intel_device_info *devinfo)
    assert(max_cs_threads >= devinfo->max_cs_threads);
    if (max_cs_threads > devinfo->max_cs_threads)
       devinfo->max_cs_threads = max_cs_threads;
+
+   /* Braswell is even more annoying.  Its marketing name isn't determinable
+    * from the PCI ID and is also dependent on fusing.
+    */
+   if (devinfo->chipset_id != 0x22B1)
+      return;
+
+   char *bsw_model;
+   switch (eu_total) {
+   case 16: bsw_model = "405"; break;
+   case 12: bsw_model = "400"; break;
+   default: bsw_model = "   "; break;
+   }
+
+   char *needle = strstr(devinfo->name, "XXX");
+   assert(needle);
+   if (needle)
+      memcpy(needle, bsw_model, 3);
 }
 
 bool
diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c
index 410412a94fa..86478c20eab 100644
--- a/src/mesa/drivers/dri/i965/brw_context.c
+++ b/src/mesa/drivers/dri/i965/brw_context.c
@@ -89,19 +89,6 @@
 
 const char *const brw_vendor_string = "Intel Open Source Technology Center";
 
-static const char *
-get_bsw_model(const struct brw_screen *screen)
-{
-   switch (screen->eu_total) {
-   case 16:
-      return "405";
-   case 12:
-      return "400";
-   default:
-      return "   ";
-   }
-}
-
 const char *
 brw_get_renderer_string(const struct brw_screen *screen)
 {
@@ -113,13 +100,6 @@ brw_get_renderer_string(const struct brw_screen *screen)
 
    snprintf(buf, sizeof(buf), "Mesa DRI %s", name);
 
-   /* Braswell branding is funny, so we have to fix it up here */
-   if (screen->deviceID == 0x22B1) {
-      char *needle = strstr(buf, "XXX");
-      if (needle)
-         memcpy(needle, get_bsw_model(screen), 3);
-   }
-
    return buf;
 }
 
diff --git a/src/mesa/drivers/dri/i965/brw_screen.c b/src/mesa/drivers/dri/i965/brw_screen.c
index 56811110567..dad4bc29463 100644
--- a/src/mesa/drivers/dri/i965/brw_screen.c
+++ b/src/mesa/drivers/dri/i965/brw_screen.c
@@ -2618,7 +2618,6 @@ __DRIconfig **brw_init_screen(__DRIscreen *dri_screen)
 
    /* GENs prior to 8 do not support EU/Subslice info */
    screen->subslice_total = intel_device_info_subslice_total(devinfo);
-   screen->eu_total = intel_device_info_eu_total(devinfo);
 
    /* Gfx7-7.5 kernel requirements / command parser saga:
     *
diff --git a/src/mesa/drivers/dri/i965/brw_screen.h b/src/mesa/drivers/dri/i965/brw_screen.h
index ed1b0010c47..cb3d34f148e 100644
--- a/src/mesa/drivers/dri/i965/brw_screen.h
+++ b/src/mesa/drivers/dri/i965/brw_screen.h
@@ -113,11 +113,6 @@ struct brw_screen
     */
    int subslice_total;
 
-   /**
-    * Number of EUs reported by the I915_PARAM_EU_TOTAL parameter
-    */
-   int eu_total;
-
    bool mesa_format_supports_texture[MESA_FORMAT_COUNT];
    bool mesa_format_supports_render[MESA_FORMAT_COUNT];
    enum isl_format mesa_to_isl_render_format[MESA_FORMAT_COUNT];



More information about the mesa-commit mailing list