[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27364] trunk/blender/source/blender/ render/intern/source/rendercore.c: Fix render baking crashing on windows/ mac.

Brecht Van Lommel brecht at blender.org
Tue Mar 9 17:34:28 CET 2010


Revision: 27364
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27364
Author:   blendix
Date:     2010-03-09 17:34:28 +0100 (Tue, 09 Mar 2010)

Log Message:
-----------
Fix render baking crashing on windows/mac. Problem was increased
max number of threads caused Blender to run out of stack space,
now just does dynamic allocation.

Modified Paths:
--------------
    trunk/blender/source/blender/render/intern/source/rendercore.c

Modified: trunk/blender/source/blender/render/intern/source/rendercore.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/rendercore.c	2010-03-09 14:35:56 UTC (rev 27363)
+++ trunk/blender/source/blender/render/intern/source/rendercore.c	2010-03-09 16:34:28 UTC (rev 27364)
@@ -2627,7 +2627,7 @@
 /* returns 0 if nothing was handled */
 int RE_bake_shade_all_selected(Render *re, int type, Object *actob, short *do_update)
 {
-	BakeShade handles[BLENDER_MAX_THREADS];
+	BakeShade *handles;
 	ListBase threads;
 	Image *ima;
 	int a, vdone=0, usemask=0;
@@ -2653,11 +2653,11 @@
 	
 	BLI_init_threads(&threads, do_bake_thread, re->r.threads);
 
+	handles= MEM_callocN(sizeof(BakeShade)*re->r.threads, "BakeShade");
+
 	/* get the threads running */
 	for(a=0; a<re->r.threads; a++) {
 		/* set defaults in handles */
-		memset(&handles[a], 0, sizeof(BakeShade));
-		
 		handles[a].ssamp.shi[0].lay= re->scene->lay;
 		
 		if (type==RE_BAKE_SHADOW) {
@@ -2737,8 +2737,11 @@
 		zbuf_free_span(handles[a].zspan);
 		MEM_freeN(handles[a].zspan);
  	}
+
+	MEM_freeN(handles);
 	
 	BLI_end_threads(&threads);
+
 	return vdone;
 }
 





More information about the Bf-blender-cvs mailing list