summaryrefslogtreecommitdiffstats
path: root/src/glsl/glsl_parser_extras.cpp
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2014-07-08 19:03:52 -0700
committerIan Romanick <ian.d.romanick@intel.com>2014-09-30 13:34:43 -0700
commitc87d09d7f09fe2e734e97e72baabd7c54f7614a9 (patch)
tree3395517ae49f884383155dacf43128dbf2e37b48 /src/glsl/glsl_parser_extras.cpp
parenteaa0c7414285ff9d087a961e0d608538b5febba0 (diff)
downloadexternal_mesa3d-c87d09d7f09fe2e734e97e72baabd7c54f7614a9.zip
external_mesa3d-c87d09d7f09fe2e734e97e72baabd7c54f7614a9.tar.gz
external_mesa3d-c87d09d7f09fe2e734e97e72baabd7c54f7614a9.tar.bz2
glsl: Don't allocate a name for ir_var_temporary variables
Valgrind massif results for a trimmed apitrace of dota2: n time(i) total(B) useful-heap(B) extra-heap(B) stacks(B) Before (32-bit): 74 40,578,719,715 67,762,208 62,263,404 5,498,804 0 After (32-bit): 52 40,565,579,466 66,359,800 61,187,818 5,171,982 0 Before (64-bit): 74 37,129,541,061 95,195,160 87,369,671 7,825,489 0 After (64-bit): 76 37,134,691,404 93,271,352 85,900,223 7,371,129 0 A real savings of 1.0MiB on 32-bit and 1.4MiB on 64-bit. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
Diffstat (limited to 'src/glsl/glsl_parser_extras.cpp')
-rw-r--r--src/glsl/glsl_parser_extras.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
index 5005cff..cc7d2d7 100644
--- a/src/glsl/glsl_parser_extras.cpp
+++ b/src/glsl/glsl_parser_extras.cpp
@@ -1440,6 +1440,9 @@ _mesa_glsl_compile_shader(struct gl_context *ctx, struct gl_shader *shader,
new(shader) _mesa_glsl_parse_state(ctx, shader->Stage, shader);
const char *source = shader->Source;
+ if (ctx->Const.GenerateTemporaryNames)
+ ir_variable::temporaries_allocate_names = true;
+
state->error = glcpp_preprocess(state, &source, &state->info_log,
&ctx->Extensions, ctx);