[Bf-blender-cvs] [ef65e1c8232] cycles_texture_cache: Cycles: Let OIIO do the sharing of the texture cache, add wider differentials for velvet BSDF
Stefan Werner
noreply at git.blender.org
Mon Nov 27 20:40:23 CET 2017
Commit: ef65e1c8232b4bd76fbce702248c2e9230320caa
Author: Stefan Werner
Date: Thu May 11 19:04:35 2017 +0200
Branches: cycles_texture_cache
https://developer.blender.org/rBef65e1c8232b4bd76fbce702248c2e9230320caa
Cycles: Let OIIO do the sharing of the texture cache, add wider differentials for velvet BSDF
===================================================================
M intern/cycles/kernel/closure/bsdf_ashikhmin_velvet.h
M intern/cycles/render/shader.cpp
===================================================================
diff --git a/intern/cycles/kernel/closure/bsdf_ashikhmin_velvet.h b/intern/cycles/kernel/closure/bsdf_ashikhmin_velvet.h
index a5ba2cb2972..0ae6b2e3e1f 100644
--- a/intern/cycles/kernel/closure/bsdf_ashikhmin_velvet.h
+++ b/intern/cycles/kernel/closure/bsdf_ashikhmin_velvet.h
@@ -143,8 +143,10 @@ ccl_device int bsdf_ashikhmin_velvet_sample(const ShaderClosure *sc, float3 Ng,
#ifdef __RAY_DIFFERENTIALS__
// TODO: find a better approximation for the retroreflective bounce
- *domega_in_dx = (2 * dot(N, dIdx)) * N - dIdx;
- *domega_in_dy = (2 * dot(N, dIdy)) * N - dIdy;
+ *domega_in_dx = (2.0f * dot(N, dIdx)) * N - dIdx;
+ *domega_in_dy = (2.0f * dot(N, dIdy)) * N - dIdy;
+ *domega_in_dx *= 125.0f;
+ *domega_in_dy *= 125.0f;
#endif
}
else
diff --git a/intern/cycles/render/shader.cpp b/intern/cycles/render/shader.cpp
index ce645c1ffe0..49e070afe79 100644
--- a/intern/cycles/render/shader.cpp
+++ b/intern/cycles/render/shader.cpp
@@ -432,11 +432,11 @@ void ShaderManager::device_update_common(Device *device,
OIIOGlobals *oiio_globals = (OIIOGlobals*)device->oiio_memory();
if(oiio_globals) {
/* update attributes from scene parms */
- ts_shared->attribute("autotile", scene->params.texture_auto_tile ? scene->params.texture_tile_size : 0);
- ts_shared->attribute("automip", scene->params.texture_auto_mip ? 1 : 0);
- ts_shared->attribute("accept_unmipped", scene->params.texture_accept_unmipped ? 1 : 0);
- ts_shared->attribute("accept_untiled", scene->params.texture_accept_untiled ? 1 : 0);
- ts_shared->attribute("max_memory_MB", scene->params.texture_cache_size > 0 ? (float)scene->params.texture_cache_size : 16384.0f);
+ ts->attribute("autotile", scene->params.texture_auto_tile ? scene->params.texture_tile_size : 0);
+ ts->attribute("automip", scene->params.texture_auto_mip ? 1 : 0);
+ ts->attribute("accept_unmipped", scene->params.texture_accept_unmipped ? 1 : 0);
+ ts->attribute("accept_untiled", scene->params.texture_accept_untiled ? 1 : 0);
+ ts->attribute("max_memory_MB", scene->params.texture_cache_size > 0 ? (float)scene->params.texture_cache_size : 16384.0f);
oiio_globals->tex_sys = ts;
}
}
@@ -651,38 +651,17 @@ void ShaderManager::free_memory()
void ShaderManager::texture_system_init()
{
- /* create texture system, shared between different renders to reduce memory usage */
- thread_scoped_lock lock(ts_shared_mutex);
-
- if(ts_shared_users == 0) {
- ts_shared = TextureSystem::create(true);
-
- ts_shared->attribute("automip", 1);
- ts_shared->attribute("autotile", 64);
- ts_shared->attribute("gray_to_rgb", 1);
-
- /* effectively unlimited for now, until we support proper mipmap lookups */
- ts_shared->attribute("max_memory_MB", 16384);
- }
-
- ts = ts_shared;
- ts_shared_users++;
+ ts = TextureSystem::create(true);
+ ts->attribute("gray_to_rgb", 1);
}
void ShaderManager::texture_system_free()
{
- /* shared texture system decrease users and destroy if no longer used */
- thread_scoped_lock lock(ts_shared_mutex);
- ts_shared_users--;
-
- if(ts_shared_users == 0) {
- ts_shared->invalidate_all(true);
- std::cout << ts_shared->getstats() << std::endl;
- ts_shared->reset_stats();
- TextureSystem::destroy(ts_shared);
- ts_shared = NULL;
- }
-
+ std::cout << ts->getstats(2) << std::endl;
+ ts->reset_stats();
+ ts->invalidate_all(true);
+ ts->clear();
+ TextureSystem::destroy(ts);
ts = NULL;
}
More information about the Bf-blender-cvs
mailing list