diff options
author | Timothy Arceri <timothy.arceri@collabora.com> | 2016-11-20 12:47:00 +1100 |
---|---|---|
committer | Timothy Arceri <tarceri@itsqueeze.com> | 2017-02-17 11:18:43 +1100 |
commit | 2f19accc5ecdff29c9300f0eceb420c0b1538b24 (patch) | |
tree | f7356a6f806c81a7a79112455638eea0bcc07d27 | |
parent | e3adde023b73cbee1423078163e925dc400078e9 (diff) |
mesa/glsl: add cache_fallback flag to gl_shader_program_data
This will allow us to skip certain things when falling back to
a full recompile on a cache miss such as avoiding reinitialising
uniforms.
In this change we use it to avoid reading the program metadata
from the cache and skipping linking during a fallback.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
-rw-r--r-- | src/compiler/glsl/shader_cache.cpp | 2 | ||||
-rw-r--r-- | src/mesa/main/mtypes.h | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/compiler/glsl/shader_cache.cpp b/src/compiler/glsl/shader_cache.cpp index 3bfcab9bcf5..499470b68dc 100644 --- a/src/compiler/glsl/shader_cache.cpp +++ b/src/compiler/glsl/shader_cache.cpp @@ -1281,7 +1281,7 @@ shader_cache_read_program_metadata(struct gl_context *ctx, return false; struct disk_cache *cache = ctx->Cache; - if (!cache) + if (!cache || prog->data->cache_fallback) return false; /* Include bindings when creating sha1. These bindings change the resulting diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index e24ee3c0c00..12d68ab360d 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -2686,6 +2686,8 @@ struct gl_shader_program_data unsigned NumUniformDataSlots; union gl_constant_value *UniformDataSlots; + bool cache_fallback; + /** List of all active resources after linking. */ struct gl_program_resource *ProgramResourceList; unsigned NumProgramResourceList; |