From 987d8037cabaafaeba2cb8b82cb7fa7290dc4464 Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Thu, 23 Feb 2017 14:50:58 +1100 Subject: [PATCH] st/mesa: free shader cache buffer on fallback MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Reviewed-by: Edward O'Callaghan Tested-by: Michel Dänzer --- src/mesa/state_tracker/st_shader_cache.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mesa/state_tracker/st_shader_cache.c b/src/mesa/state_tracker/st_shader_cache.c index eb66f999a5b..fba4b0a3a03 100644 --- a/src/mesa/state_tracker/st_shader_cache.c +++ b/src/mesa/state_tracker/st_shader_cache.c @@ -242,13 +242,14 @@ st_load_tgsi_from_disk_cache(struct gl_context *ctx, return false; struct st_context *st = st_context(ctx); + uint8_t *buffer = NULL; for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) { if (prog->_LinkedShaders[i] == NULL) continue; unsigned char *sha1 = stage_sha1[i]; size_t size; - uint8_t *buffer = (uint8_t *) disk_cache_get(ctx->Cache, sha1, &size); + buffer = (uint8_t *) disk_cache_get(ctx->Cache, sha1, &size); if (buffer) { struct blob_reader blob_reader; blob_reader_init(&blob_reader, buffer, size); @@ -396,6 +397,7 @@ st_load_tgsi_from_disk_cache(struct gl_context *ctx, return true; fallback_recompile: + free(buffer); for (unsigned i = 0; i < prog->NumShaders; i++) { _mesa_glsl_compile_shader(ctx, prog->Shaders[i], false, false, true); -- 2.30.2