[Bf-blender-cvs] [2eabe0a320e] blender-v3.3-release: Fix T100969: Memory leak GPU subdivision during rendering.

Jeroen Bakker noreply at git.blender.org
Mon Nov 28 15:06:36 CET 2022


Commit: 2eabe0a320e820081b4dc34a8409ce02c2edec66
Author: Jeroen Bakker
Date:   Fri Nov 11 08:23:16 2022 +0100
Branches: blender-v3.3-release
https://developer.blender.org/rB2eabe0a320e820081b4dc34a8409ce02c2edec66

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.c

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

diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index fcada20e5fb..233d93277ae 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1996,6 +1996,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.c b/source/blender/editors/space_view3d/view3d_draw.c
index f854b5d18af..7e1bb1489f5 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -1697,6 +1697,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