util/disk_cache: use a helper to compute cache keys
This will allow to hash additional data into the cache keys or even change the hashing algorithm easily, should we decide to do so. v2: don't try to compute key (and crash) if cache is disabled Signed-off-by: Grazvydas Ignotas <notasas@gmail.com> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:

committed by
Timothy Arceri

parent
021c87fa24
commit
529a767041
@@ -1938,19 +1938,22 @@ _mesa_glsl_compile_shader(struct gl_context *ctx, struct gl_shader *shader,
|
||||
add_builtin_defines, state, ctx);
|
||||
|
||||
if (!force_recompile) {
|
||||
char buf[41];
|
||||
_mesa_sha1_compute(source, strlen(source), shader->sha1);
|
||||
if (ctx->Cache && disk_cache_has_key(ctx->Cache, shader->sha1)) {
|
||||
/* We've seen this shader before and know it compiles */
|
||||
if (ctx->_Shader->Flags & GLSL_CACHE_INFO) {
|
||||
_mesa_sha1_format(buf, shader->sha1);
|
||||
fprintf(stderr, "deferring compile of shader: %s\n", buf);
|
||||
}
|
||||
shader->CompileStatus = compile_skipped;
|
||||
if (ctx->Cache) {
|
||||
char buf[41];
|
||||
disk_cache_compute_key(ctx->Cache, source, strlen(source),
|
||||
shader->sha1);
|
||||
if (disk_cache_has_key(ctx->Cache, shader->sha1)) {
|
||||
/* We've seen this shader before and know it compiles */
|
||||
if (ctx->_Shader->Flags & GLSL_CACHE_INFO) {
|
||||
_mesa_sha1_format(buf, shader->sha1);
|
||||
fprintf(stderr, "deferring compile of shader: %s\n", buf);
|
||||
}
|
||||
shader->CompileStatus = compile_skipped;
|
||||
|
||||
free((void *)shader->FallbackSource);
|
||||
shader->FallbackSource = NULL;
|
||||
return;
|
||||
free((void *)shader->FallbackSource);
|
||||
shader->FallbackSource = NULL;
|
||||
return;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
/* We should only ever end up here if a re-compile has been forced by a
|
||||
|
Reference in New Issue
Block a user