[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