[Bf-blender-cvs] [88c956c13be] blender-v3.4-release: Fix T100969: Memory leak GPU subdivision during rendering.

Jeroen Bakker noreply at git.blender.org
Fri Nov 11 08:48:09 CET 2022


Commit: 88c956c13be40aeaaf3828369ab63801413fef82
Author: Jeroen Bakker
Date:   Fri Nov 11 08:23:16 2022 +0100
Branches: blender-v3.4-release
https://developer.blender.org/rB88c956c13be40aeaaf3828369ab63801413fef82

Fix T100969: Memory leak GPU subdivision during rendering.

The viewport cleans up old subdivision buffers right after drawing.
During rendering this was not done and when rendering many frames
this lead to memory issues.

This patch will also clear up the GPU Subdivision buffers after any
offscreen render or final render. There is already a mutex so this
is safe to be done from a non main thread.

Thanks to @kevindietrich to finding the root cause.

===================================================================

M	source/blender/draw/intern/draw_manager.c
M	source/blender/editors/space_view3d/view3d_draw.cc

===================================================================

diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index 4fcfec833eb..c8f0fdde62d 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -2039,6 +2039,7 @@ void DRW_render_to_image(RenderEngine *engine, struct Depsgraph *depsgraph)
   DRW_smoke_exit(DST.vmempool);
 
   drw_manager_exit(&DST);
+  DRW_cache_free_old_subdiv();
 
   /* Reset state after drawing */
   DRW_state_reset();
diff --git a/source/blender/editors/space_view3d/view3d_draw.cc b/source/blender/editors/space_view3d/view3d_draw.cc
index 5d4ed032bb4..6400a015ef1 100644
--- a/source/blender/editors/space_view3d/view3d_draw.cc
+++ b/source/blender/editors/space_view3d/view3d_draw.cc
@@ -1717,6 +1717,7 @@ void ED_view3d_draw_offscreen(Depsgraph *depsgraph,
                                  do_color_management,
                                  ofs,
                                  viewport);
+  DRW_cache_free_old_subdiv();
   GPU_matrix_pop_projection();
   GPU_matrix_pop();



More information about the Bf-blender-cvs mailing list