anv: Add anv_pipeline_cache_add_entry()
This function will grow the cache to make room and then add the entry.
This commit is contained in:
parent
07441c344c
commit
626559ed37
|
@ -195,6 +195,20 @@ anv_pipeline_cache_grow(struct anv_pipeline_cache *cache)
|
||||||
return VK_SUCCESS;
|
return VK_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
anv_pipeline_cache_add_entry(struct anv_pipeline_cache *cache,
|
||||||
|
struct cache_entry *entry, uint32_t entry_offset)
|
||||||
|
{
|
||||||
|
if (cache->kernel_count == cache->table_size / 2)
|
||||||
|
anv_pipeline_cache_grow(cache);
|
||||||
|
|
||||||
|
/* Failing to grow that hash table isn't fatal, but may mean we don't
|
||||||
|
* have enough space to add this new kernel. Only add it if there's room.
|
||||||
|
*/
|
||||||
|
if (cache->kernel_count < cache->table_size / 2)
|
||||||
|
anv_pipeline_cache_set_entry(cache, entry, entry_offset);
|
||||||
|
}
|
||||||
|
|
||||||
uint32_t
|
uint32_t
|
||||||
anv_pipeline_cache_upload_kernel(struct anv_pipeline_cache *cache,
|
anv_pipeline_cache_upload_kernel(struct anv_pipeline_cache *cache,
|
||||||
const unsigned char *sha1,
|
const unsigned char *sha1,
|
||||||
|
@ -224,14 +238,7 @@ anv_pipeline_cache_upload_kernel(struct anv_pipeline_cache *cache,
|
||||||
assert(anv_pipeline_cache_search(cache, sha1, NULL) == NO_KERNEL);
|
assert(anv_pipeline_cache_search(cache, sha1, NULL) == NO_KERNEL);
|
||||||
|
|
||||||
memcpy(entry->sha1, sha1, sizeof(entry->sha1));
|
memcpy(entry->sha1, sha1, sizeof(entry->sha1));
|
||||||
if (cache->kernel_count == cache->table_size / 2)
|
anv_pipeline_cache_add_entry(cache, entry, state.offset);
|
||||||
anv_pipeline_cache_grow(cache);
|
|
||||||
|
|
||||||
/* Failing to grow that hash table isn't fatal, but may mean we don't
|
|
||||||
* have enough space to add this new kernel. Only add it if there's room.
|
|
||||||
*/
|
|
||||||
if (cache->kernel_count < cache->table_size / 2)
|
|
||||||
anv_pipeline_cache_set_entry(cache, entry, state.offset);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pthread_mutex_unlock(&cache->mutex);
|
pthread_mutex_unlock(&cache->mutex);
|
||||||
|
|
Loading…
Reference in New Issue