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);
     }
   }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to