Mesa (main): intel/dev: Put the device name in intel_device_info
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Jul 14 23:19:12 UTC 2021
Module: Mesa
Branch: main
Commit: 56d70ba6861545d13071a6c3be46648c668091f6
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=56d70ba6861545d13071a6c3be46648c668091f6
Author: Jason Ekstrand <jason at jlekstrand.net>
Date: Tue Jul 13 17:56:01 2021 -0500
intel/dev: Put the device name in intel_device_info
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11861>
---
src/gallium/drivers/crocus/crocus_screen.c | 8 ++------
src/gallium/drivers/iris/iris_screen.c | 7 ++-----
src/intel/dev/intel_dev_info.c | 2 +-
src/intel/dev/intel_device_info.c | 28 +++++++++++++++-------------
src/intel/dev/intel_device_info.h | 7 ++++++-
src/intel/tools/aubinator.c | 2 +-
src/intel/tools/aubinator_viewer.cpp | 2 +-
src/intel/vulkan/anv_device.c | 7 ++-----
src/intel/vulkan/anv_private.h | 1 -
src/mesa/drivers/dri/i965/brw_context.c | 2 +-
10 files changed, 31 insertions(+), 35 deletions(-)
diff --git a/src/gallium/drivers/crocus/crocus_screen.c b/src/gallium/drivers/crocus/crocus_screen.c
index 3e85b7d6c50..c1e0cf3a294 100644
--- a/src/gallium/drivers/crocus/crocus_screen.c
+++ b/src/gallium/drivers/crocus/crocus_screen.c
@@ -127,14 +127,10 @@ static const char *
crocus_get_name(struct pipe_screen *pscreen)
{
struct crocus_screen *screen = (struct crocus_screen *)pscreen;
+ const struct intel_device_info *devinfo = &screen->devinfo;
static char buf[128];
- const char *name = intel_get_device_name(screen->pci_id);
-
- if (!name)
- name = "Intel Unknown";
-
- snprintf(buf, sizeof(buf), "Mesa %s", name);
+ snprintf(buf, sizeof(buf), "Mesa %s", devinfo->name);
return buf;
}
diff --git a/src/gallium/drivers/iris/iris_screen.c b/src/gallium/drivers/iris/iris_screen.c
index e5fe4ac0315..f9df596dade 100644
--- a/src/gallium/drivers/iris/iris_screen.c
+++ b/src/gallium/drivers/iris/iris_screen.c
@@ -144,13 +144,10 @@ static const char *
iris_get_name(struct pipe_screen *pscreen)
{
struct iris_screen *screen = (struct iris_screen *)pscreen;
+ const struct intel_device_info *devinfo = &screen->devinfo;
static char buf[128];
- const char *name = intel_get_device_name(screen->pci_id);
-
- if (!name)
- name = "Intel Unknown";
- snprintf(buf, sizeof(buf), "Mesa %s", name);
+ snprintf(buf, sizeof(buf), "Mesa %s", devinfo->name);
return buf;
}
diff --git a/src/intel/dev/intel_dev_info.c b/src/intel/dev/intel_dev_info.c
index 39da00b5cd3..2c067319b7a 100644
--- a/src/intel/dev/intel_dev_info.c
+++ b/src/intel/dev/intel_dev_info.c
@@ -72,7 +72,7 @@ main(int argc, char *argv[])
fprintf(stdout, "%s:\n", path);
- fprintf(stdout, " name: %s\n", intel_get_device_name(devinfo.chipset_id));
+ fprintf(stdout, " name: %s\n", devinfo.name);
fprintf(stdout, " gen: %u\n", devinfo.ver);
fprintf(stdout, " PCI id: 0x%x\n", devinfo.chipset_id);
fprintf(stdout, " revision: %u\n", devinfo.revision);
diff --git a/src/intel/dev/intel_device_info.c b/src/intel/dev/intel_device_info.c
index c4279d29e74..442d7e9b41b 100644
--- a/src/intel/dev/intel_device_info.c
+++ b/src/intel/dev/intel_device_info.c
@@ -1249,6 +1249,21 @@ intel_get_device_info_from_pci_id(int pci_id,
return false;
}
+ switch (pci_id) {
+#undef CHIPSET
+#define CHIPSET(_id, _family, _fam_str, _name) \
+ case _id: \
+ /* sizeof(str_literal) includes the null */ \
+ STATIC_ASSERT(sizeof(_name) + sizeof(_fam_str) + 2 <= \
+ sizeof(devinfo->name)); \
+ strncpy(devinfo->name, _name " (" _fam_str ")", sizeof(devinfo->name)); \
+ break;
+#include "pci_ids/i965_pci_ids.h"
+#include "pci_ids/iris_pci_ids.h"
+ default:
+ strncpy(devinfo->name, "Intel Unknown", sizeof(devinfo->name));
+ }
+
fill_masks(devinfo);
/* From the Skylake PRM, 3DSTATE_PS::Scratch Space Base Pointer:
@@ -1291,19 +1306,6 @@ intel_get_device_info_from_pci_id(int pci_id,
return true;
}
-const char *
-intel_get_device_name(int devid)
-{
- switch (devid) {
-#undef CHIPSET
-#define CHIPSET(id, family, fam_str, name) case id: return name " (" fam_str ")"; break;
-#include "pci_ids/i965_pci_ids.h"
-#include "pci_ids/iris_pci_ids.h"
- default:
- return NULL;
- }
-}
-
/**
* for gfx8/gfx9, SLICE_MASK/SUBSLICE_MASK can be used to compute the topology
* (kernel 4.13+)
diff --git a/src/intel/dev/intel_device_info.h b/src/intel/dev/intel_device_info.h
index ebb779e3938..12a62b7690b 100644
--- a/src/intel/dev/intel_device_info.h
+++ b/src/intel/dev/intel_device_info.h
@@ -36,6 +36,7 @@ extern "C" {
struct drm_i915_query_topology_info;
+#define INTEL_DEVICE_MAX_NAME_SIZE 64
#define INTEL_DEVICE_MAX_SLICES (6) /* Maximum on gfx10 */
#define INTEL_DEVICE_MAX_SUBSLICES (8) /* Maximum on gfx11 */
#define INTEL_DEVICE_MAX_EUS_PER_SUBSLICE (16) /* Maximum on gfx12 */
@@ -278,6 +279,11 @@ struct intel_device_info
*/
uint32_t chipset_id;
+ /**
+ * holds the name of the device
+ */
+ char name[INTEL_DEVICE_MAX_NAME_SIZE];
+
/**
* no_hw is true when the chipset_id pci device id has been overridden
*/
@@ -345,7 +351,6 @@ intel_device_info_num_dual_subslices(UNUSED
}
int intel_device_name_to_pci_device_id(const char *name);
-const char *intel_get_device_name(int devid);
static inline uint64_t
intel_device_info_timebase_scale(const struct intel_device_info *devinfo,
diff --git a/src/intel/tools/aubinator.c b/src/intel/tools/aubinator.c
index 5c0885ac631..fb0a9528f77 100644
--- a/src/intel/tools/aubinator.c
+++ b/src/intel/tools/aubinator.c
@@ -122,7 +122,7 @@ aubinator_init(void *user_data, int aub_pci_id, const char *app_name)
fprintf(outfile, "Application name: %s\n", app_name);
- fprintf(outfile, "Decoding as: %s\n", intel_get_device_name(pci_id));
+ fprintf(outfile, "Decoding as: %s\n", devinfo.name);
/* Throw in a new line before the first batch */
fprintf(outfile, "\n");
diff --git a/src/intel/tools/aubinator_viewer.cpp b/src/intel/tools/aubinator_viewer.cpp
index 8d68fdf3f32..493eb9cf764 100644
--- a/src/intel/tools/aubinator_viewer.cpp
+++ b/src/intel/tools/aubinator_viewer.cpp
@@ -1006,7 +1006,7 @@ display_aubfile_window(struct window *win)
ImGui::Text("Execbufs %u", context.file->n_execs);
ImGui::Text("PCI ID: 0x%x", context.file->pci_id);
ImGui::Text("Application name: %s", context.file->app_name);
- ImGui::Text("%s", intel_get_device_name(context.file->pci_id));
+ ImGui::Text("%s", context.file->devinfo.name);
ImGui::SetNextWindowContentWidth(500);
if (ImGui::BeginPopupModal("Help", NULL, ImGuiWindowFlags_AlwaysAutoResize)) {
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
index f39b7f78573..deb9c89c56c 100644
--- a/src/intel/vulkan/anv_device.c
+++ b/src/intel/vulkan/anv_device.c
@@ -741,8 +741,6 @@ anv_physical_device_try_create(struct anv_instance *instance,
goto fail_fd;
}
- const char *device_name = intel_get_device_name(devinfo.chipset_id);
-
if (devinfo.is_haswell) {
mesa_logw("Haswell Vulkan support is incomplete");
} else if (devinfo.ver == 7 && !devinfo.is_baytrail) {
@@ -753,7 +751,7 @@ anv_physical_device_try_create(struct anv_instance *instance,
/* Gfx8-12 fully supported */
} else {
result = vk_errorfi(instance, NULL, VK_ERROR_INCOMPATIBLE_DRIVER,
- "Vulkan not yet supported on %s", device_name);
+ "Vulkan not yet supported on %s", devinfo.name);
goto fail_fd;
}
@@ -782,7 +780,6 @@ anv_physical_device_try_create(struct anv_instance *instance,
snprintf(device->path, ARRAY_SIZE(device->path), "%s", path);
device->info = devinfo;
- device->name = device_name;
device->no_hw = device->info.no_hw;
if (getenv("INTEL_NO_HW") != NULL)
@@ -2042,7 +2039,7 @@ void anv_GetPhysicalDeviceProperties(
};
snprintf(pProperties->deviceName, sizeof(pProperties->deviceName),
- "%s", pdevice->name);
+ "%s", pdevice->info.name);
memcpy(pProperties->pipelineCacheUUID,
pdevice->pipeline_cache_uuid, VK_UUID_SIZE);
}
diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h
index c2971de764d..3717f1842fb 100644
--- a/src/intel/vulkan/anv_private.h
+++ b/src/intel/vulkan/anv_private.h
@@ -893,7 +893,6 @@ struct anv_physical_device {
struct anv_instance * instance;
bool no_hw;
char path[20];
- const char * name;
struct {
uint16_t domain;
uint8_t bus;
diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c
index 392c644a795..410412a94fa 100644
--- a/src/mesa/drivers/dri/i965/brw_context.c
+++ b/src/mesa/drivers/dri/i965/brw_context.c
@@ -106,7 +106,7 @@ const char *
brw_get_renderer_string(const struct brw_screen *screen)
{
static char buf[128];
- const char *name = intel_get_device_name(screen->deviceID);
+ const char *name = screen->devinfo.name;
if (!name)
name = "Intel Unknown";
More information about the mesa-commit
mailing list