[Mesa-dev] [PATCH 21/40] mesa/glsl: add cache_fallback flag to gl_shader_program_data

Nicolai Hähnle nhaehnle at gmail.com
Fri Feb 10 11:00:00 UTC 2017


On 07.02.2017 04:42, Timothy Arceri wrote:
> From: Timothy Arceri <timothy.arceri at collabora.com>
>
> 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 chage we use it to avoid reading the program metadata

*change

> from the cache and skipping linking during a fallback.
> ---
>  src/compiler/glsl/shader_cache.cpp | 2 +-
>  src/mesa/main/mtypes.h             | 2 ++
>  2 files changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/src/compiler/glsl/shader_cache.cpp b/src/compiler/glsl/shader_cache.cpp
> index 320afe1..583db47 100644
> --- a/src/compiler/glsl/shader_cache.cpp
> +++ b/src/compiler/glsl/shader_cache.cpp
> @@ -1273,7 +1273,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;
>
>     for (unsigned i = 0; i < prog->NumShaders; i++) {
> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
> index a845a39..c7ca182 100644
> --- a/src/mesa/main/mtypes.h
> +++ b/src/mesa/main/mtypes.h
> @@ -2684,6 +2684,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;
>



More information about the mesa-dev mailing list