Mesa (master): glsl: always write a name/label string to the cache

Timothy Arceri tarceri at kemper.freedesktop.org
Thu Aug 24 01:22:16 UTC 2017


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

Author: Timothy Arceri <tarceri at itsqueeze.com>
Date:   Fri Aug 11 14:59:02 2017 +1000

glsl: always write a name/label string to the cache

In the following patch we will stop writing the pointer to cache.

Unfortunately adding empty strings to that cache seems to be the
only thing we can do here once we no longer have the pointers.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>

---

 src/compiler/glsl/shader_cache.cpp | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/compiler/glsl/shader_cache.cpp b/src/compiler/glsl/shader_cache.cpp
index 26be9e1f88..0e7744bb0b 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shader_cache.cpp
@@ -1315,10 +1315,9 @@ create_linked_shader_and_program(struct gl_context *ctx,
 
    /* Restore shader info */
    blob_copy_bytes(metadata, (uint8_t *) &glprog->info, sizeof(shader_info));
-   if (glprog->info.name)
-      glprog->info.name = ralloc_strdup(glprog, blob_read_string(metadata));
-   if (glprog->info.label)
-      glprog->info.label = ralloc_strdup(glprog, blob_read_string(metadata));
+
+   glprog->info.name = ralloc_strdup(glprog, blob_read_string(metadata));
+   glprog->info.label = ralloc_strdup(glprog, blob_read_string(metadata));
 
    _mesa_reference_shader_program_data(ctx, &glprog->sh.data, prog->data);
    _mesa_reference_program(ctx, &linked->Program, glprog);
@@ -1362,9 +1361,13 @@ shader_cache_write_program_metadata(struct gl_context *ctx,
 
          if (sh->Program->info.name)
             blob_write_string(metadata, sh->Program->info.name);
+         else
+            blob_write_string(metadata, "");
 
          if (sh->Program->info.label)
             blob_write_string(metadata, sh->Program->info.label);
+         else
+            blob_write_string(metadata, "");
       }
    }
 




More information about the mesa-commit mailing list