Mesa (master): glsl: Initialize static temporaries_allocate_names once per process.

Matt Turner mattst88 at kemper.freedesktop.org
Mon Dec 1 19:42:42 UTC 2014


Module: Mesa
Branch: master
Commit: 9db278d0e2b3bf35b28f00ab7ec3392443aae6b3
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9db278d0e2b3bf35b28f00ab7ec3392443aae6b3

Author: Matt Turner <mattst88 at gmail.com>
Date:   Fri Nov 21 18:04:21 2014 -0800

glsl: Initialize static temporaries_allocate_names once per process.

Reviewed-by: Jason Ekstrand <jason.ekstrand at intel.com>

---

 src/glsl/glsl_parser_extras.cpp |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
index 27e3301..5772d13 100644
--- a/src/glsl/glsl_parser_extras.cpp
+++ b/src/glsl/glsl_parser_extras.cpp
@@ -29,6 +29,7 @@ extern "C" {
 #include "main/core.h" /* for struct gl_context */
 #include "main/context.h"
 #include "main/shaderobj.h"
+#include "util/u_atomic.h" /* for p_atomic_cmpxchg */
 }
 
 #include "util/ralloc.h"
@@ -1447,7 +1448,8 @@ _mesa_glsl_compile_shader(struct gl_context *ctx, struct gl_shader *shader,
    const char *source = shader->Source;
 
    if (ctx->Const.GenerateTemporaryNames)
-      ir_variable::temporaries_allocate_names = true;
+      (void) p_atomic_cmpxchg(&ir_variable::temporaries_allocate_names,
+                              false, true);
 
    state->error = glcpp_preprocess(state, &source, &state->info_log,
                              &ctx->Extensions, ctx);




More information about the mesa-commit mailing list