[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26380] branches/render25/source/blender/ render/intern/source: Render Branch: fixes for crashes in bake and occlusion caching.

Brecht Van Lommel brecht at blender.org
Thu Jan 28 23:23:56 CET 2010


Revision: 26380
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26380
Author:   blendix
Date:     2010-01-28 23:23:56 +0100 (Thu, 28 Jan 2010)

Log Message:
-----------
Render Branch: fixes for crashes in bake and occlusion caching.

Modified Paths:
--------------
    branches/render25/source/blender/render/intern/source/bake.c
    branches/render25/source/blender/render/intern/source/rendercore.c

Modified: branches/render25/source/blender/render/intern/source/bake.c
===================================================================
--- branches/render25/source/blender/render/intern/source/bake.c	2010-01-28 21:52:07 UTC (rev 26379)
+++ branches/render25/source/blender/render/intern/source/bake.c	2010-01-28 22:23:56 UTC (rev 26380)
@@ -538,9 +538,8 @@
 		bake_shade(handle, ob, shi, quad, x, y, u, v, 0, 0);
 }
 
-static int get_next_bake_face(BakeShade *bs)
+static int get_next_bake_face(Render *re, BakeShade *bs)
 {
-	Render *re= bs->re;
 	ObjectRen *obr;
 	VlakRen *vlr;
 	MTFace *tface;
@@ -553,7 +552,7 @@
 		obi= re->db.instancetable.first;
 		return 0;
 	}
-	
+
 	BLI_lock_thread(LOCK_CUSTOM1);	
 
 	for(; obi; obi=obi->next, v=0) {
@@ -679,7 +678,7 @@
 	BakeShade *bs= bs_v;
 	Render *re= bs->re;
 	
-	while(get_next_bake_face(bs)) {
+	while(get_next_bake_face(re, bs)) {
 		shade_tface(bs);
 		
 		/* fast threadsafe break test */
@@ -709,7 +708,7 @@
 	re->bakebuf= NULL;
 	
 	/* initialize static vars */
-	get_next_bake_face(NULL);
+	get_next_bake_face(re, NULL);
 	
 	/* do we need a mask? */
 	if (re->params.r.bake_filter && (re->params.r.bake_flag & R_BAKE_CLEAR)==0)

Modified: branches/render25/source/blender/render/intern/source/rendercore.c
===================================================================
--- branches/render25/source/blender/render/intern/source/rendercore.c	2010-01-28 21:52:07 UTC (rev 26379)
+++ branches/render25/source/blender/render/intern/source/rendercore.c	2010-01-28 22:23:56 UTC (rev 26380)
@@ -732,6 +732,11 @@
 	/* we set per pixel a fixed seed, for random AO and shadow samples */
 	seed= pa->rectx*pa->disprect.ymin;
 	
+	/* general shader info, passes */
+	shade_sample_initialize(re, &ssamp, pa, rl);
+	passflag= rl->passflag & ~(SCE_PASS_COMBINED);
+	layflag= rl->layflag;
+
 	/* precompute shading data for this tile */
 	if(re->params.r.mode & R_SHADOW)
 		irregular_shadowbuf_create(re, pa, APixbuf);
@@ -739,11 +744,6 @@
 	if(re->db.occlusiontree)
 		disk_occlusion_cache_create(re, pa, &ssamp);
 
-	/* general shader info, passes */
-	shade_sample_initialize(re, &ssamp, pa, rl);
-	passflag= rl->passflag & ~(SCE_PASS_COMBINED);
-	layflag= rl->layflag;
-
 	/* filtered render, for now we assume only 1 filter size */
 	if(pa->crop) {
 		crop= 1;





More information about the Bf-blender-cvs mailing list