From e3adde023b73cbee1423078163e925dc400078e9 Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Mon, 13 Feb 2017 11:53:30 +1100 Subject: [PATCH] glsl: add api and glsl version to hash generation for shaders MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Reviewed-by: Nicolai Hähnle --- src/compiler/glsl/shader_cache.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/compiler/glsl/shader_cache.cpp b/src/compiler/glsl/shader_cache.cpp index f1e2bf1386f..3bfcab9bcf5 100644 --- a/src/compiler/glsl/shader_cache.cpp +++ b/src/compiler/glsl/shader_cache.cpp @@ -1300,6 +1300,14 @@ shader_cache_read_program_metadata(struct gl_context *ctx, ralloc_asprintf_append(&buf, "sso: %s\n", prog->SeparateShader ? "T" : "F"); + /* A shader might end up producing different output depending on the glsl + * version supported by the compiler. For example a different path might be + * taken by the preprocessor, so add the version to the hash input. + */ + ralloc_asprintf_append(&buf, "api: %d glsl: %d fglsl: %d\n", + ctx->API, ctx->Const.GLSLVersion, + ctx->Const.ForceGLSLVersion); + char sha1buf[41]; for (unsigned i = 0; i < prog->NumShaders; i++) { struct gl_shader *sh = prog->Shaders[i]; -- 2.30.2