[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18057] branches/soc-2007-joeedh/source/ blender: fixed infinite loop with threads and classical shadow lamps mixed with dsm lamps
Joseph Eagar
joeedh at gmail.com
Thu Dec 25 20:33:41 CET 2008
Revision: 18057
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18057
Author: joeedh
Date: 2008-12-25 20:33:41 +0100 (Thu, 25 Dec 2008)
Log Message:
-----------
fixed infinite loop with threads and classical shadow lamps mixed with dsm lamps
Modified Paths:
--------------
branches/soc-2007-joeedh/source/blender/blenkernel/intern/tcs_cache.c
branches/soc-2007-joeedh/source/blender/blenkernel/intern/tcs_file.c
branches/soc-2007-joeedh/source/blender/blenkernel/intern/tcs_image.c
branches/soc-2007-joeedh/source/blender/blenlib/intern/threads.c
branches/soc-2007-joeedh/source/blender/render/intern/source/dsm.c
branches/soc-2007-joeedh/source/blender/render/intern/source/shadbuf.c
branches/soc-2007-joeedh/source/blender/render/intern/source/zbuf.c
Modified: branches/soc-2007-joeedh/source/blender/blenkernel/intern/tcs_cache.c
===================================================================
--- branches/soc-2007-joeedh/source/blender/blenkernel/intern/tcs_cache.c 2008-12-25 18:29:56 UTC (rev 18056)
+++ branches/soc-2007-joeedh/source/blender/blenkernel/intern/tcs_cache.c 2008-12-25 19:33:41 UTC (rev 18057)
@@ -1,5 +1,5 @@
/**
- * $Id: cache.c 10648 2007-05-03 21:37:52Z blendix $
+ * $Id: tcs_cache.c 10648 2007-05-03 21:37:52Z joeedh $
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -59,7 +59,7 @@
pool->maxmem = max_mem_bytes;
/*this is to group cache runs so they process no less then 5 megs at a time.*/
- pool->grace_period = 5*1024*1024;
+ pool->grace_period = max_mem_bytes > 45*1024*1024 ? 25*1024*1024 : 5*1024*1024;
return pool;
}
Modified: branches/soc-2007-joeedh/source/blender/blenkernel/intern/tcs_file.c
===================================================================
--- branches/soc-2007-joeedh/source/blender/blenkernel/intern/tcs_file.c 2008-12-25 18:29:56 UTC (rev 18056)
+++ branches/soc-2007-joeedh/source/blender/blenkernel/intern/tcs_file.c 2008-12-25 19:33:41 UTC (rev 18057)
@@ -1,5 +1,5 @@
/**
- * $Id: tcs_file.c 10648 2007-05-03 21:37:52Z blendix $
+ * $Id: tcs_file.c 10648 2007-05-03 21:37:52Z joeedh $
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
Modified: branches/soc-2007-joeedh/source/blender/blenkernel/intern/tcs_image.c
===================================================================
--- branches/soc-2007-joeedh/source/blender/blenkernel/intern/tcs_image.c 2008-12-25 18:29:56 UTC (rev 18056)
+++ branches/soc-2007-joeedh/source/blender/blenkernel/intern/tcs_image.c 2008-12-25 19:33:41 UTC (rev 18057)
@@ -1,5 +1,5 @@
/**
- * $Id: tcs_image.c 10648 2007-05-03 21:37:52Z blendix $
+ * $Id: tcs_image.c 10648 2007-05-03 21:37:52Z joeedh $
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
Modified: branches/soc-2007-joeedh/source/blender/blenlib/intern/threads.c
===================================================================
--- branches/soc-2007-joeedh/source/blender/blenlib/intern/threads.c 2008-12-25 18:29:56 UTC (rev 18056)
+++ branches/soc-2007-joeedh/source/blender/blenlib/intern/threads.c 2008-12-25 19:33:41 UTC (rev 18057)
@@ -37,6 +37,7 @@
#include "BLI_blenlib.h"
#include "BLI_threads.h"
+#include "BKE_global.h"
#include "PIL_time.h"
@@ -357,6 +358,20 @@
pthread_mutex_lock(&_custom1_lock);
else if (type==LOCK_CACHER)
pthread_mutex_lock(&_tcs_lock);
+
+ if (G.rt == 144) {
+ char *s = "invalid lock type";
+ switch (type) {
+ case LOCK_IMAGE:
+ s = "LOCK_IMAGE"; break;
+ case LOCK_CUSTOM1:
+ s = "LOCK_CUSTOM1"; break;
+ case LOCK_CACHER:
+ s = "LOCK_CACHER"; break;
+ }
+ printf("locked %s\n", s);
+ fflush(stdout);
+ }
}
void BLI_unlock_thread(int type)
@@ -367,6 +382,20 @@
pthread_mutex_unlock(&_custom1_lock);
else if(type==LOCK_CACHER)
pthread_mutex_unlock(&_tcs_lock);
+
+ if (G.rt==144) {
+ char *s = "invalid lock type";
+ switch (type) {
+ case LOCK_IMAGE:
+ s = "LOCK_IMAGE"; break;
+ case LOCK_CUSTOM1:
+ s = "LOCK_CUSTOM1"; break;
+ case LOCK_CACHER:
+ s = "LOCK_CACHER"; break;
+ }
+ printf("unlocked %s\n", s);
+ fflush(stdout);
+ }
}
/* how many threads are native on this system? */
Modified: branches/soc-2007-joeedh/source/blender/render/intern/source/dsm.c
===================================================================
--- branches/soc-2007-joeedh/source/blender/render/intern/source/dsm.c 2008-12-25 18:29:56 UTC (rev 18056)
+++ branches/soc-2007-joeedh/source/blender/render/intern/source/dsm.c 2008-12-25 19:33:41 UTC (rev 18057)
@@ -357,7 +357,7 @@
else if (G.rt==72)
dbuf->max_depth = 256*6*shb->osasamp*shb->osasamp;
else
- dbuf->max_depth = 256*6*shb->osasamp*shb->osasamp;
+ dbuf->max_depth = 160*6*shb->osasamp*shb->osasamp;
dbuf->max_layers = 0;
@@ -1358,7 +1358,6 @@
corners[2] = DSM_sampleMap(shb, ceil(xs), ceil(ys), zs, bias, inp, component);
corners[3] = DSM_sampleMap(shb, floor(xs), ceil(ys), zs, bias, inp, component);
- //use linear interpolation, or "mix" formula
//do linear interpolation on the horizontal edges, then
//interpolate between the 2 interpolated points.
a = corners[0] + (corners[3] - corners[0]) * (ys - floor(ys));
Modified: branches/soc-2007-joeedh/source/blender/render/intern/source/shadbuf.c
===================================================================
--- branches/soc-2007-joeedh/source/blender/render/intern/source/shadbuf.c 2008-12-25 18:29:56 UTC (rev 18056)
+++ branches/soc-2007-joeedh/source/blender/render/intern/source/shadbuf.c 2008-12-25 19:33:41 UTC (rev 18057)
@@ -568,7 +568,8 @@
for(a=0; a<totthread; a++)
BLI_insert_thread(&threads, re);
- /* keep rendering as long as there are shadow buffers not ready */
+ /* keep rendering as long as there are non-dsm shadow
+ buffers not ready */
do {
if((g_break=test_break()))
break;
@@ -577,7 +578,7 @@
BLI_lock_thread(LOCK_CUSTOM1);
for(lar=re->lampren.first; lar; lar= lar->next)
- if(lar->shb && !lar->thread_ready)
+ if(lar->shb && lar->buftype != LA_SHADBUF_DEEP && !lar->thread_ready)
break;
BLI_unlock_thread(LOCK_CUSTOM1);
} while(lar);
Modified: branches/soc-2007-joeedh/source/blender/render/intern/source/zbuf.c
===================================================================
--- branches/soc-2007-joeedh/source/blender/render/intern/source/zbuf.c 2008-12-25 18:29:56 UTC (rev 18056)
+++ branches/soc-2007-joeedh/source/blender/render/intern/source/zbuf.c 2008-12-25 19:33:41 UTC (rev 18057)
@@ -1849,11 +1849,11 @@
break;
}
- TCS_EnablePool(bucketbuf->buffer.pool);
-
if(re->test_break()) break;
}
+ TCS_EnablePool(bucketbuf->buffer.pool);
+
re_sort_buckets(bucketbuf);
return bucketbuf;
}
More information about the Bf-blender-cvs
mailing list