diff options
author | Eric Anholt <eric@anholt.net> | 2010-08-18 16:56:39 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2010-08-18 17:10:48 -0700 |
commit | b83846475bac76268d75f53632faf8aad8cad02c (patch) | |
tree | c667c59b52eb4d3086432f1fc895694ab9b2007e /src/glsl/glsl_parser_extras.cpp | |
parent | 3cd233eb5714137dccb6218ad78005511bcc02bd (diff) |
glsl2: Free the shader compiler at dri screen destruction.
Hooray, we can valgrind again without adding suppressions. This also
adds an interface for use by an implementation of
glReleaseShaderCompiler().
Diffstat (limited to 'src/glsl/glsl_parser_extras.cpp')
-rw-r--r-- | src/glsl/glsl_parser_extras.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp index d1bb1ae5ec..b864218d50 100644 --- a/src/glsl/glsl_parser_extras.cpp +++ b/src/glsl/glsl_parser_extras.cpp @@ -741,3 +741,33 @@ do_common_optimization(exec_list *ir, bool linked) return progress; } + +extern "C" { + +/** + * To be called at GL teardown time, this frees compiler datastructures. + * + * After calling this, any previously compiled shaders and shader + * programs would be invalid. So this should happen at approximately + * program exit. + */ +void +_mesa_destroy_shader_compiler(void) +{ + _mesa_destroy_shader_compiler_caches(); + + _mesa_glsl_release_types(); +} + +/** + * Releases compiler caches to trade off performance for memory. + * + * Intended to be used with glReleaseShaderCompiler(). + */ +void +_mesa_destroy_shader_compiler_caches(void) +{ + _mesa_glsl_release_functions(); +} + +} |