Fix T73921: Eevee volume render test memory leak in Mantaflow
Fixed memory leak that showed up after the original issue (crash) had been fixed in93ac4709eb
. The fix ensures that light cache bakes free up GPU smoke textures and the smoke domain list correctly. This commit also removes the workaround (f3a33a9298
) that disabled light cache bakes for fluid objects.
This commit is contained in:
parent
7d56c425f8
commit
5260aaf3b1
|
@ -777,6 +777,8 @@ static void eevee_lightbake_delete_resources(EEVEE_LightBake *lbake)
|
||||||
if (!lbake->resource_only) {
|
if (!lbake->resource_only) {
|
||||||
BLI_mutex_unlock(lbake->mutex);
|
BLI_mutex_unlock(lbake->mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EEVEE_volumes_free_smoke_textures();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Cache as in draw cache not light cache. */
|
/* Cache as in draw cache not light cache. */
|
||||||
|
|
|
@ -178,8 +178,6 @@ void EEVEE_volumes_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||||
|
|
||||||
const float *viewport_size = DRW_viewport_size_get();
|
const float *viewport_size = DRW_viewport_size_get();
|
||||||
|
|
||||||
BLI_listbase_clear(&e_data.smoke_domains);
|
|
||||||
|
|
||||||
const int tile_size = scene_eval->eevee.volumetric_tile_size;
|
const int tile_size = scene_eval->eevee.volumetric_tile_size;
|
||||||
|
|
||||||
/* Find Froxel Texture resolution. */
|
/* Find Froxel Texture resolution. */
|
||||||
|
|
|
@ -35,13 +35,6 @@ def setup():
|
||||||
# mat.use_screen_refraction = True
|
# mat.use_screen_refraction = True
|
||||||
mat.use_sss_translucency = True
|
mat.use_sss_translucency = True
|
||||||
|
|
||||||
# Workaround for crash with Mantaflow (T73921).
|
|
||||||
use_light_cache_bake = True
|
|
||||||
for ob in bpy.data.objects:
|
|
||||||
for mod in ob.modifiers:
|
|
||||||
if mod.type == 'FLUID':
|
|
||||||
use_light_cache_bake = False
|
|
||||||
|
|
||||||
cubemap = None
|
cubemap = None
|
||||||
grid = None
|
grid = None
|
||||||
# Does not work in edit mode
|
# Does not work in edit mode
|
||||||
|
@ -86,8 +79,7 @@ def setup():
|
||||||
eevee.gi_visibility_resolution = '16'
|
eevee.gi_visibility_resolution = '16'
|
||||||
eevee.gi_irradiance_smoothing = 0
|
eevee.gi_irradiance_smoothing = 0
|
||||||
|
|
||||||
if use_light_cache_bake:
|
bpy.ops.scene.light_cache_bake()
|
||||||
bpy.ops.scene.light_cache_bake()
|
|
||||||
|
|
||||||
|
|
||||||
# When run from inside Blender, render and exit.
|
# When run from inside Blender, render and exit.
|
||||||
|
|
Loading…
Reference in New Issue