[Mesa-dev] [PATCH 2/7] anv: Refactor device_get_cache_uuid into physical_device_init_uuids

Chad Versace chadversary at chromium.org
Mon Feb 27 18:52:35 UTC 2017


On Mon 27 Feb 2017, Jason Ekstrand wrote:
> ---
>  src/intel/vulkan/anv_device.c | 31 +++++++++++++++++--------------
>  1 file changed, 17 insertions(+), 14 deletions(-)
> 
> diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
> index f9e2203..26be55f 100644
> --- a/src/intel/vulkan/anv_device.c
> +++ b/src/intel/vulkan/anv_device.c
> @@ -53,29 +53,33 @@ compiler_perf_log(void *data, const char *fmt, ...)
>     va_end(args);
>  }
>  
> -static bool
> -anv_device_get_cache_uuid(void *uuid, uint16_t pci_id)
> +static VkResult
> +anv_physical_device_init_uuids(struct anv_physical_device *device)
>  {
>     const struct build_id_note *note = build_id_find_nhdr("libvulkan_intel.so");
> -   if (!note)
> -      return false;
> +   if (!note) {
> +      return vk_errorf(VK_ERROR_INITIALIZATION_FAILED,
> +                       "Failed to find build-id");
> +   }
>  
>     unsigned build_id_len = build_id_length(note);
> -   if (build_id_len < 20) /* It should be a SHA-1 */
> -      return false;
> +   if (build_id_len < 20) {
> +      return vk_errorf(VK_ERROR_INITIALIZATION_FAILED,
> +                       "build-id too short.  It needs to be a SHA");
> +   }

s/a SHA/a SHA1/

With that,
Reviewed-by: Chad Versace <chadversary at chromium.org>


>  
>     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;
> +      return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
>  
>     _mesa_sha1_update(sha1_ctx, build_id_data(note), build_id_len);
> -   _mesa_sha1_update(sha1_ctx, &pci_id, sizeof(pci_id));
> +   _mesa_sha1_update(sha1_ctx, &device->chipset_id, sizeof(device->chipset_id));
>     _mesa_sha1_final(sha1_ctx, sha1);
> +   memcpy(device->uuid, sha1, VK_UUID_SIZE);
>  
> -   memcpy(uuid, sha1, VK_UUID_SIZE);
> -   return true;
> +   return VK_SUCCESS;
>  }
>  
>  static VkResult
> @@ -159,11 +163,10 @@ anv_physical_device_init(struct anv_physical_device *device,
>        goto fail;
>     }
>  
> -   if (!anv_device_get_cache_uuid(device->uuid, device->chipset_id)) {
> -      result = vk_errorf(VK_ERROR_INITIALIZATION_FAILED,
> -                         "cannot generate UUID");
> +   result = anv_physical_device_init_uuids(device);
> +   if (result != VK_SUCCESS)
>        goto fail;
> -   }
> +
>     bool swizzled = anv_gem_get_bit6_swizzle(fd, I915_TILING_X);
>  
>     /* GENs prior to 8 do not support EU/Subslice info */
> -- 
> 2.5.0.400.gff86faf
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list