On 03/14/2017 04:26 AM, 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.

Reviewed-by: Chad Versace <chadvers...@chromium.org>
---
  src/intel/vulkan/anv_device.c | 22 +++++++++++++++++-----
  1 file changed, 17 insertions(+), 5 deletions(-)

diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
index be2b2f3..5db0a6c 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,28 @@ 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 */

This line here causes issues for Android, for us the build_id_len seems to be 16 (and worked before nicely as check was against VK_UUID_SIZE which is 16). I just bisected this and haven't yet figured out why but will check.

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

Reply via email to