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