[Mesa-dev] [PATCH 1/7] anv: Add the pci_id into the shader cache UUID
Chad Versace
chadversary at chromium.org
Mon Feb 27 18:28:26 UTC 2017
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 <chadversary at chromium.org>
More information about the mesa-dev
mailing list