Mesa (master): radv: use correct alloc function when loading from disk

Timothy Arceri tarceri at kemper.freedesktop.org
Tue Oct 31 03:52:08 UTC 2017


Module: Mesa
Branch: master
Commit: e92405c55aa885bee5dfb05fac032cab5e419290
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e92405c55aa885bee5dfb05fac032cab5e419290

Author: Timothy Arceri <tarceri at itsqueeze.com>
Date:   Tue Oct 31 11:31:19 2017 +1100

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 <bas at basnieuwenhuizen.nl>

---

 src/amd/vulkan/radv_pipeline_cache.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/amd/vulkan/radv_pipeline_cache.c b/src/amd/vulkan/radv_pipeline_cache.c
index 91470d1419..2904b62e6b 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);
 		}
 	}
 




More information about the mesa-commit mailing list