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.
signature.asc
Description: Digital signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev