[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