diff options
author | Timothy Arceri <[email protected]> | 2017-08-11 14:59:02 +1000 |
---|---|---|
committer | Timothy Arceri <[email protected]> | 2017-08-24 11:18:48 +1000 |
commit | 44918a197905e4e9d09e32b7d07945948ca2da07 (patch) | |
tree | 5e9c6c5104dba6a093b4f2c23a7208f21ec1987e | |
parent | 22154823d21f17a5fdff7b1fe3c92b61f5389d88 (diff) |
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 <[email protected]>
-rw-r--r-- | src/compiler/glsl/shader_cache.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/compiler/glsl/shader_cache.cpp b/src/compiler/glsl/shader_cache.cpp index 26be9e1f883..0e7744bb0bd 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, ""); } } |