summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/compiler/glsl/shader_cache.cpp3
-rw-r--r--src/mesa/state_tracker/st_shader_cache.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/src/compiler/glsl/shader_cache.cpp b/src/compiler/glsl/shader_cache.cpp
index 274bb8c91e7..ea1bc01f028 100644
--- a/src/compiler/glsl/shader_cache.cpp
+++ b/src/compiler/glsl/shader_cache.cpp
@@ -1221,7 +1221,8 @@ shader_cache_write_program_metadata(struct gl_context *ctx,
* TODO: In future we should use another method to generate a key for ff
* programs.
*/
- if (*prog->data->sha1 == 0)
+ static const char zero[sizeof(prog->data->sha1)] = {0};
+ if (memcmp(prog->data->sha1, zero, sizeof(prog->data->sha1)) == 0)
return;
struct blob *metadata = blob_create();
diff --git a/src/mesa/state_tracker/st_shader_cache.c b/src/mesa/state_tracker/st_shader_cache.c
index 061b27221b3..e8c7289ec6d 100644
--- a/src/mesa/state_tracker/st_shader_cache.c
+++ b/src/mesa/state_tracker/st_shader_cache.c
@@ -64,7 +64,8 @@ st_store_tgsi_in_disk_cache(struct st_context *st, struct gl_program *prog,
/* Exit early when we are dealing with a ff shader with no source file to
* generate a source from.
*/
- if (*prog->sh.data->sha1 == 0)
+ static const char zero[sizeof(prog->sh.data->sha1)] = {0};
+ if (memcmp(prog->sh.data->sha1, zero, sizeof(prog->sh.data->sha1)) == 0)
return;
unsigned char *sha1;