[Bf-blender-cvs] [bb4c9ae09b2] soc-2019-npr: LANPR: Fixing memeory leaking in GPU mode.

YimingWu noreply at git.blender.org
Mon Jul 15 15:29:50 CEST 2019


Commit: bb4c9ae09b24258302ff4d95d938bea3c58a2b5a
Author: YimingWu
Date:   Mon Jul 15 21:29:21 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBbb4c9ae09b24258302ff4d95d938bea3c58a2b5a

LANPR: Fixing memeory leaking in GPU mode.

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

M	source/blender/draw/engines/lanpr/lanpr_engine.c

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

diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c
index 1e9afd5fed7..95354ad42a4 100644
--- a/source/blender/draw/engines/lanpr/lanpr_engine.c
+++ b/source/blender/draw/engines/lanpr/lanpr_engine.c
@@ -414,7 +414,23 @@ static void lanpr_cache_init(void *vedata)
       pd->atlas_nr = MEM_callocN(fsize, "atlas_normal_l");
       pd->atlas_edge_mask = MEM_callocN(fsize, "atlas_edge_mask"); /*  should always be float */
 
-      pd->dpix_batch_list.first = pd->dpix_batch_list.last = 0;
+      LANPR_BatchItem* dpbi;
+      while (dpbi = BLI_pophead(&pd->dpix_batch_list)){
+        GPU_batch_discard(dpbi->dpix_preview_batch);
+        GPU_batch_discard(dpbi->dpix_transform_batch);
+      }
+      LANPR_RenderBuffer* rb=lanpr_share.render_buffer_shared;
+      if(rb){
+        if(rb->DPIXIntersectionBatch){
+          GPU_batch_discard(rb->DPIXIntersectionBatch);
+          rb->DPIXIntersectionBatch=0;
+        }
+        if(rb->DPIXIntersectionTransformBatch){
+          GPU_batch_discard(rb->DPIXIntersectionTransformBatch);
+          rb->DPIXIntersectionTransformBatch=0;
+        }
+      }
+      
       BLI_mempool_clear(lanpr_share.mp_batch_list);
     }
   }



More information about the Bf-blender-cvs mailing list