[Mesa-dev] [PATCH] anv/pipeline_cache: fix incorrect guards for NIR cache

Lionel Landwerlin lionel.g.landwerlin at intel.com
Fri Jan 11 11:13:53 UTC 2019


On 11/01/2019 10:50, Iago Toral Quiroga wrote:
> Fixes: f6aa9f718516 'anv/pipeline_cache: Add support for caching NIR'
> ---
>   src/intel/vulkan/anv_pipeline_cache.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
>
> Or maybe just check cache->cache instead, which I guess was the original
> intention, but I kind of prefer having all fields initialized.


While looking at this patch, I noticed that we're not freeing nir_cache 
in anv_pipeline_cache_finish.


This looks good :


Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>


>
> diff --git a/src/intel/vulkan/anv_pipeline_cache.c b/src/intel/vulkan/anv_pipeline_cache.c
> index 18f310b06e..f9733c5309 100644
> --- a/src/intel/vulkan/anv_pipeline_cache.c
> +++ b/src/intel/vulkan/anv_pipeline_cache.c
> @@ -239,6 +239,7 @@ anv_pipeline_cache_init(struct anv_pipeline_cache *cache,
>                                                    sha1_compare_func);
>      } else {
>         cache->cache = NULL;
> +      cache->nir_cache = NULL;
>      }
>   }
>   
> @@ -670,7 +671,7 @@ anv_device_search_for_nir(struct anv_device *device,
>                             unsigned char sha1_key[20],
>                             void *mem_ctx)
>   {
> -   if (cache) {
> +   if (cache && cache->nir_cache) {
>         const struct serialized_nir *snir = NULL;
>   
>         pthread_mutex_lock(&cache->mutex);
> @@ -702,7 +703,7 @@ anv_device_upload_nir(struct anv_device *device,
>                         const struct nir_shader *nir,
>                         unsigned char sha1_key[20])
>   {
> -   if (cache) {
> +   if (cache && cache->nir_cache) {
>         pthread_mutex_lock(&cache->mutex);
>         struct hash_entry *entry =
>            _mesa_hash_table_search(cache->nir_cache, sha1_key);




More information about the mesa-dev mailing list