[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28491] branches/render25/source/blender: Render Branch: Fix image tile cache crash with displacement modifier
Brecht Van Lommel
brecht at blender.org
Wed Apr 28 16:36:36 CEST 2010
Revision: 28491
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28491
Author: blendix
Date: 2010-04-28 16:36:36 +0200 (Wed, 28 Apr 2010)
Log Message:
-----------
Render Branch: Fix image tile cache crash with displacement modifier
and preview render running at the same time, now the main thread and
thread 0 for rendering have a separate cache.
Modified Paths:
--------------
branches/render25/source/blender/blenkernel/intern/effect.c
branches/render25/source/blender/imbuf/intern/cache.c
branches/render25/source/blender/modifiers/intern/MOD_util.c
Modified: branches/render25/source/blender/blenkernel/intern/effect.c
===================================================================
--- branches/render25/source/blender/blenkernel/intern/effect.c 2010-04-28 13:43:49 UTC (rev 28490)
+++ branches/render25/source/blender/blenkernel/intern/effect.c 2010-04-28 14:36:36 UTC (rev 28491)
@@ -783,7 +783,7 @@
mul_mat3_m4_v3(eff->ob->obmat, tex_co);
}
- hasrgb = multitex_ext(eff->pd->tex, tex_co, NULL,NULL, 0, result, 0);
+ hasrgb = multitex_ext(eff->pd->tex, tex_co, NULL,NULL, 0, result, -1);
if(hasrgb && mode==PFIELD_TEX_RGB) {
force[0] = (0.5f - result->tr) * strength;
@@ -794,15 +794,15 @@
strength/=nabla;
tex_co[0] += nabla;
- multitex_ext(eff->pd->tex, tex_co, NULL, NULL, 0, result+1, 0);
+ multitex_ext(eff->pd->tex, tex_co, NULL, NULL, 0, result+1, -1);
tex_co[0] -= nabla;
tex_co[1] += nabla;
- multitex_ext(eff->pd->tex, tex_co, NULL, NULL, 0, result+2, 0);
+ multitex_ext(eff->pd->tex, tex_co, NULL, NULL, 0, result+2, -1);
tex_co[1] -= nabla;
tex_co[2] += nabla;
- multitex_ext(eff->pd->tex, tex_co, NULL, NULL, 0, result+3, 0);
+ multitex_ext(eff->pd->tex, tex_co, NULL, NULL, 0, result+3, -1);
if(mode == PFIELD_TEX_GRAD || !hasrgb) { /* if we dont have rgb fall back to grad */
force[0] = (result[0].tin - result[1].tin) * strength;
Modified: branches/render25/source/blender/imbuf/intern/cache.c
===================================================================
--- branches/render25/source/blender/imbuf/intern/cache.c 2010-04-28 13:43:49 UTC (rev 28490)
+++ branches/render25/source/blender/imbuf/intern/cache.c 2010-04-28 14:36:36 UTC (rev 28491)
@@ -200,7 +200,7 @@
/* initialize for one thread, for places that access textures
outside of rendering (displace modifier, painting, ..) */
- IMB_tile_cache_params(1, 0);
+ IMB_tile_cache_params(0, 0);
}
void imb_tile_cache_exit(void)
@@ -228,6 +228,9 @@
{
int a;
+ /* always one cache for non-threaded access */
+ totthread++;
+
/* lazy initialize cache */
if(GLOBAL_CACHE.totthread == totthread && GLOBAL_CACHE.maxmem == maxmem)
return;
@@ -385,7 +388,7 @@
unsigned int *IMB_gettile(ImBuf *ibuf, int tx, int ty, int thread)
{
- return imb_thread_cache_get_tile(&GLOBAL_CACHE.thread_cache[thread], ibuf, tx, ty);
+ return imb_thread_cache_get_tile(&GLOBAL_CACHE.thread_cache[thread+1], ibuf, tx, ty);
}
void IMB_tiles_to_rect(ImBuf *ibuf)
Modified: branches/render25/source/blender/modifiers/intern/MOD_util.c
===================================================================
--- branches/render25/source/blender/modifiers/intern/MOD_util.c 2010-04-28 13:43:49 UTC (rev 28490)
+++ branches/render25/source/blender/modifiers/intern/MOD_util.c 2010-04-28 14:36:36 UTC (rev 28491)
@@ -53,7 +53,7 @@
{
int result_type;
- result_type = multitex_ext(texture, tex_co, NULL, NULL, 0, texres, 0);
+ result_type = multitex_ext(texture, tex_co, NULL, NULL, 0, texres, -1);
/* if the texture gave an RGB value, we assume it didn't give a valid
* intensity, so calculate one (formula from do_material_tex).
More information about the Bf-blender-cvs
mailing list