[Bf-blender-cvs] [92d1e6606c9] blender2.8: Draw Manager: Fix memory leak
mano-wii
noreply at git.blender.org
Sat Nov 17 04:24:33 CET 2018
Commit: 92d1e6606c94a261349019fdcbb612069e0b990a
Author: mano-wii
Date: Sat Nov 17 00:23:17 2018 -0200
Branches: blender2.8
https://developer.blender.org/rB92d1e6606c94a261349019fdcbb612069e0b990a
Draw Manager: Fix memory leak
===================================================================
M source/blender/draw/engines/eevee/eevee_shaders.c
===================================================================
diff --git a/source/blender/draw/engines/eevee/eevee_shaders.c b/source/blender/draw/engines/eevee/eevee_shaders.c
index cf75130b2ce..40ea34f21e3 100644
--- a/source/blender/draw/engines/eevee/eevee_shaders.c
+++ b/source/blender/draw/engines/eevee/eevee_shaders.c
@@ -103,6 +103,7 @@ extern GlobalsUboStorage ts;
void EEVEE_shaders_lightprobe_shaders_init(void)
{
+ BLI_assert(e_data.probe_filter_glossy_sh == NULL);
char *shader_str = NULL;
shader_str = BLI_string_joinN(
@@ -269,23 +270,27 @@ GPUShader *EEVEE_shaders_velocity_resolve_sh_get(void)
GPUShader *EEVEE_shaders_taa_resolve_sh_get(EEVEE_EffectsFlag enabled_effects)
{
- GPUShader *sh = NULL;
- char *frag_str = BLI_string_joinN(
- datatoc_common_uniforms_lib_glsl,
- datatoc_common_view_lib_glsl,
- datatoc_bsdf_common_lib_glsl,
- datatoc_effect_temporal_aa_glsl);
-
+ GPUShader **sh;
+ char *define = NULL;
if (enabled_effects & EFFECT_TAA_REPROJECT) {
- sh = e_data.taa_resolve_reproject_sh = DRW_shader_create_fullscreen(frag_str, "#define USE_REPROJECTION\n");
+ sh = &e_data.taa_resolve_reproject_sh;
+ define = "#define USE_REPROJECTION\n";
}
else {
- sh = e_data.taa_resolve_sh = DRW_shader_create_fullscreen(frag_str, NULL);
+ sh = &e_data.taa_resolve_sh;
}
+ if (*sh == NULL) {
+ char *frag_str = BLI_string_joinN(
+ datatoc_common_uniforms_lib_glsl,
+ datatoc_common_view_lib_glsl,
+ datatoc_bsdf_common_lib_glsl,
+ datatoc_effect_temporal_aa_glsl);
- MEM_freeN(frag_str);
+ *sh = DRW_shader_create_fullscreen(frag_str, define);
+ MEM_freeN(frag_str);
+ }
- return sh;
+ return *sh;
}
void EEVEE_shaders_free(void)
More information about the Bf-blender-cvs
mailing list