summaryrefslogtreecommitdiffstats
path: root/src/amd/vulkan/radv_pipeline_cache.c
diff options
context:
space:
mode:
authorTimothy Arceri <[email protected]>2017-10-31 11:31:19 +1100
committerTimothy Arceri <[email protected]>2017-10-31 14:51:55 +1100
commite92405c55aa885bee5dfb05fac032cab5e419290 (patch)
treec29b2d5510f30519e83434358daefcb033a2e7ff /src/amd/vulkan/radv_pipeline_cache.c
parent048d4c45c94eb8d99f2a53f3bf200b2c6a9f9629 (diff)
radv: use correct alloc function when loading from disk
Fixes regression in: dEQP-VK.api.object_management.alloc_callback_fail.graphics_pipeline Fixes: 1e84e53712ae "radv: add cache items to in memory cache when reading from disk" Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Diffstat (limited to 'src/amd/vulkan/radv_pipeline_cache.c')
-rw-r--r--src/amd/vulkan/radv_pipeline_cache.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/amd/vulkan/radv_pipeline_cache.c b/src/amd/vulkan/radv_pipeline_cache.c
index 91470d14191..2904b62e6b6 100644
--- a/src/amd/vulkan/radv_pipeline_cache.c
+++ b/src/amd/vulkan/radv_pipeline_cache.c
@@ -276,7 +276,20 @@ radv_create_shader_variants_from_pipeline_cache(struct radv_device *device,
pthread_mutex_unlock(&cache->mutex);
return false;
} else {
- radv_pipeline_cache_add_entry(cache, entry);
+ size_t size = entry_size(entry);
+ struct cache_entry *new_entry = vk_alloc(&cache->alloc, size, 8,
+ VK_SYSTEM_ALLOCATION_SCOPE_CACHE);
+ if (!new_entry) {
+ free(entry);
+ pthread_mutex_unlock(&cache->mutex);
+ return false;
+ }
+
+ memcpy(new_entry, entry, entry_size(entry));
+ free(entry);
+ entry = new_entry;
+
+ radv_pipeline_cache_add_entry(cache, new_entry);
}
}