Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2022-04-18 16:45:32 +0300
committerClément Foucault <foucault.clem@gmail.com>2022-04-19 13:09:18 +0300
commit6296cb5129697676aa0055bb2162bd479106f6e3 (patch)
treeb8720982fb16e543c9fdd02d9748b13cff9384d7 /source/blender/draw/engines/eevee
parenteccc9d8eba8d65009307ebc7d4da344e9416d89b (diff)
DRW: Centralize smoke domain texture management
This code was duplicated in multiple engines. Now it is the draw manager responsability to manage the throwaway fluid textures.
Diffstat (limited to 'source/blender/draw/engines/eevee')
-rw-r--r--source/blender/draw/engines/eevee/eevee_engine.c3
-rw-r--r--source/blender/draw/engines/eevee/eevee_lightcache.c3
-rw-r--r--source/blender/draw/engines/eevee/eevee_private.h1
-rw-r--r--source/blender/draw/engines/eevee/eevee_volumes.c14
4 files changed, 0 insertions, 21 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_engine.c b/source/blender/draw/engines/eevee/eevee_engine.c
index 81edee17c76..47e8f234a01 100644
--- a/source/blender/draw/engines/eevee/eevee_engine.c
+++ b/source/blender/draw/engines/eevee/eevee_engine.c
@@ -353,8 +353,6 @@ static void eevee_draw_scene(void *vedata)
EEVEE_renderpasses_draw_debug(vedata);
- EEVEE_volumes_free_smoke_textures();
-
stl->g_data->view_updated = false;
DRW_view_set_active(NULL);
@@ -574,7 +572,6 @@ static void eevee_render_to_image(void *vedata,
}
}
- EEVEE_volumes_free_smoke_textures();
EEVEE_motion_blur_data_free(&ved->stl->effects->motion_blur);
if (RE_engine_test_break(engine)) {
diff --git a/source/blender/draw/engines/eevee/eevee_lightcache.c b/source/blender/draw/engines/eevee/eevee_lightcache.c
index 2e1b92de068..f18e4db876b 100644
--- a/source/blender/draw/engines/eevee/eevee_lightcache.c
+++ b/source/blender/draw/engines/eevee/eevee_lightcache.c
@@ -1463,9 +1463,6 @@ void EEVEE_lightbake_job(void *custom_data, short *stop, short *do_update, float
}
eevee_lightbake_delete_resources(lbake);
-
- /* Free GPU smoke textures and the smoke domain list correctly: See also T73921. */
- EEVEE_volumes_free_smoke_textures();
}
void EEVEE_lightbake_update_world_quick(EEVEE_ViewLayerData *sldata,
diff --git a/source/blender/draw/engines/eevee/eevee_private.h b/source/blender/draw/engines/eevee/eevee_private.h
index 9f97dacf9fe..ee336326166 100644
--- a/source/blender/draw/engines/eevee/eevee_private.h
+++ b/source/blender/draw/engines/eevee/eevee_private.h
@@ -1558,7 +1558,6 @@ void EEVEE_volumes_compute(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata);
void EEVEE_volumes_resolve(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata);
void EEVEE_volumes_output_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, uint tot_samples);
void EEVEE_volumes_output_accumulate(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata);
-void EEVEE_volumes_free_smoke_textures(void);
void EEVEE_volumes_free(void);
/* eevee_effects.c */
diff --git a/source/blender/draw/engines/eevee/eevee_volumes.c b/source/blender/draw/engines/eevee/eevee_volumes.c
index 6a0c9fb36df..0ac6c6ad97c 100644
--- a/source/blender/draw/engines/eevee/eevee_volumes.c
+++ b/source/blender/draw/engines/eevee/eevee_volumes.c
@@ -43,9 +43,6 @@ static struct {
GPUTexture *dummy_scatter;
GPUTexture *dummy_transmit;
-
- /* List of all fluid simulation / smoke domains rendered within this frame. */
- ListBase smoke_domains;
} e_data = {NULL}; /* Engine data */
static void eevee_create_textures_volumes(void)
@@ -426,7 +423,6 @@ static bool eevee_volume_object_mesh_init(Scene *scene,
if (fds->fluid && (fds->type == FLUID_DOMAIN_TYPE_GAS) /* && show_smoke */) {
DRW_smoke_ensure(fmd, fds->flags & FLUID_DOMAIN_USE_NOISE);
- BLI_addtail(&e_data.smoke_domains, BLI_genericNodeN(fmd));
}
LISTBASE_FOREACH (GPUMaterialVolumeGrid *, gpu_grid, gpu_grids) {
@@ -753,16 +749,6 @@ void EEVEE_volumes_resolve(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *veda
}
}
-void EEVEE_volumes_free_smoke_textures(void)
-{
- /* Free Smoke Textures after rendering */
- LISTBASE_FOREACH (LinkData *, link, &e_data.smoke_domains) {
- FluidModifierData *fmd = (FluidModifierData *)link->data;
- DRW_smoke_free(fmd);
- }
- BLI_freelistN(&e_data.smoke_domains);
-}
-
void EEVEE_volumes_free(void)
{
DRW_TEXTURE_FREE_SAFE(e_data.dummy_scatter);