Revert "glsl: be much more aggressive when skipping shader compilation"
authorTimothy Arceri <tarceri@itsqueeze.com>
Fri, 18 Jan 2019 23:45:07 +0000 (10:45 +1100)
committerTimothy Arceri <tarceri@itsqueeze.com>
Fri, 18 Jan 2019 23:45:07 +0000 (10:45 +1100)
This reverts commit 64b8c86d37ebb1e1d286c69d642d52b7bcf051d3.

Reverting for now as it was causing some segfaults.

src/compiler/glsl/glsl_parser_extras.cpp
src/compiler/glsl/shader_cache.cpp

index 655399a812871820b9edbbffad9c587f604afec1..200df7759bb507a32879d1575a0b36fd27b0e534 100644 (file)
@@ -2155,15 +2155,6 @@ _mesa_glsl_compile_shader(struct gl_context *ctx, struct gl_shader *shader,
 
    delete state->symbols;
    ralloc_free(state);
-
-   if (ctx->Cache) {
-      char sha1_buf[41];
-      disk_cache_put_key(ctx->Cache, shader->sha1);
-      if (ctx->_Shader->Flags & GLSL_CACHE_INFO) {
-         _mesa_sha1_format(sha1_buf, shader->sha1);
-         fprintf(stderr, "marking shader: %s\n", sha1_buf);
-      }
-   }
 }
 
 } /* extern "C" */
index 581098b88f0c057c2a6586e4dc1b5e7ce4a819f5..879511a9d7c66b7f46c2a22491bbee9813341bfe 100644 (file)
@@ -121,15 +121,20 @@ shader_cache_write_program_metadata(struct gl_context *ctx,
    if (!cache_item_metadata.keys)
       goto fail;
 
+   char sha1_buf[41];
    for (unsigned i = 0; i < prog->NumShaders; i++) {
+      disk_cache_put_key(cache, prog->Shaders[i]->sha1);
       memcpy(cache_item_metadata.keys[i], prog->Shaders[i]->sha1,
              sizeof(cache_key));
+      if (ctx->_Shader->Flags & GLSL_CACHE_INFO) {
+         _mesa_sha1_format(sha1_buf, prog->Shaders[i]->sha1);
+         fprintf(stderr, "marking shader: %s\n", sha1_buf);
+      }
    }
 
    disk_cache_put(cache, prog->data->sha1, metadata.data, metadata.size,
                   &cache_item_metadata);
 
-   char sha1_buf[41];
    if (ctx->_Shader->Flags & GLSL_CACHE_INFO) {
       _mesa_sha1_format(sha1_buf, prog->data->sha1);
       fprintf(stderr, "putting program metadata in cache: %s\n", sha1_buf);