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;


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

Reply via email to