On Mon 27 Feb 2017, Jason Ekstrand wrote: > This prevents a user from using a cache created on one hardware > generation on a different one. Of course, with Intel hardware, this > requires moving their drive from one machine to another but it's still > possible and we should prevent it. > --- > src/intel/vulkan/anv_device.c | 21 ++++++++++++++++----- > 1 file changed, 16 insertions(+), 5 deletions(-) > > diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c > index fa09c9a..f9e2203 100644 > --- a/src/intel/vulkan/anv_device.c > +++ b/src/intel/vulkan/anv_device.c > @@ -32,6 +32,7 @@ > #include "util/strtod.h" > #include "util/debug.h" > #include "util/build_id.h" > +#include "util/mesa-sha1.h" > #include "util/vk_util.h" > > #include "genxml/gen7_pack.h" > @@ -53,17 +54,27 @@ compiler_perf_log(void *data, const char *fmt, ...) > } > > static bool > -anv_device_get_cache_uuid(void *uuid) > +anv_device_get_cache_uuid(void *uuid, uint16_t pci_id) > { > const struct build_id_note *note = > build_id_find_nhdr("libvulkan_intel.so"); > if (!note) > return false; > > - unsigned len = build_id_length(note); > - if (len < VK_UUID_SIZE) > + unsigned build_id_len = build_id_length(note); > + if (build_id_len < 20) /* It should be a SHA-1 */ > return false; > > - memcpy(uuid, build_id_data(note), VK_UUID_SIZE); > + uint8_t sha1[20]; > + STATIC_ASSERT(VK_UUID_SIZE <= sizeof(sha1)); > + struct mesa_sha1 *sha1_ctx = _mesa_sha1_init(); > + if (sha1_ctx == NULL) > + return false;
Small nit. The code would be easier on the eyes if an empty line separated the STATIC_ASSERT and the struct mesa_sha1 declaration. Either way, patch 1 is Reviewed-by: Chad Versace <chadvers...@chromium.org> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev