On 08/19, Jordan Justen wrote:
We use the build-id of i965_dri.so for the timestamp, and the name
from i965_pci_ids.h for the device name.

Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com>
---
src/mesa/drivers/dri/i965/brw_context.c    |  2 ++
src/mesa/drivers/dri/i965/brw_disk_cache.c | 45 ++++++++++++++++++++++++++++++
src/mesa/drivers/dri/i965/brw_state.h      |  1 +
3 files changed, 48 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/brw_context.c 
b/src/mesa/drivers/dri/i965/brw_context.c
index 3904bc708b..5d7d555f79 100644
--- a/src/mesa/drivers/dri/i965/brw_context.c
+++ b/src/mesa/drivers/dri/i965/brw_context.c
@@ -1014,6 +1014,8 @@ brwCreateContext(gl_api api,
                         brw->dri_config_options_sha1);
   brw->ctx.Const.dri_config_options_sha1 = brw->dri_config_options_sha1;

+   brw_disk_cache_init(brw);
+
   return true;
}

diff --git a/src/mesa/drivers/dri/i965/brw_disk_cache.c 
b/src/mesa/drivers/dri/i965/brw_disk_cache.c
index 036b56225e..ef5380126a 100644
--- a/src/mesa/drivers/dri/i965/brw_disk_cache.c
+++ b/src/mesa/drivers/dri/i965/brw_disk_cache.c
@@ -29,6 +29,8 @@
#include "main/mtypes.h"
#include "main/shaderobj.h"
#include "program/program.h"
+#include "util/build_id.h"
+#include "util/debug.h"
#include "util/disk_cache.h"
#include "util/macros.h"
#include "util/mesa-sha1.h"
@@ -652,3 +654,46 @@ brw_disk_cache_write_compute_program(struct brw_context 
*brw)
                         MESA_SHADER_COMPUTE);
   }
}
+
+void
+brw_disk_cache_init(struct brw_context *brw)
+{
+#ifdef ENABLE_SHADER_CACHE
+   if (!env_var_as_boolean("INTEL_SHADER_CACHE", false))
+      return;
+
+   char *renderer = NULL;
+   int len = asprintf(&renderer, "i965_%04x", brw->screen->deviceID);
+   if (len < 0) {
+      renderer = strdup("i965");
+   }
+   if (renderer == NULL)
+       return;
+
+   const struct build_id_note *note = build_id_find_nhdr("i965_dri.so");

This will require a small rebase onto Chad's commit 5c98d3825ccbe

Also, we should just force the build-id to be present rather than having
code to handle the case when it isn't.

Just add -Wl,--build-id=sha1 to i965_dri.so's LDFLAGS. See
src/intel/Makefile.vulkan.am for example.

With that, this code becomes a lot simpler.

Attachment: signature.asc
Description: Digital signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to