[Bf-blender-cvs] [6a5dc7124be] cycles_texture_cache: Merge 'master' into 'cycles_texture_cache'
Stefan Werner
noreply at git.blender.org
Thu Apr 18 14:41:50 CEST 2019
Commit: 6a5dc7124be7e9fe242f473be2b142605bc9cb80
Author: Stefan Werner
Date: Thu Apr 18 14:14:23 2019 +0200
Branches: cycles_texture_cache
https://developer.blender.org/rB6a5dc7124be7e9fe242f473be2b142605bc9cb80
Merge 'master' into 'cycles_texture_cache'
===================================================================
===================================================================
diff --cc intern/cycles/kernel/kernel_emission.h
index 3f1667088b1,80bb8d48caf..326ccadd0f9
--- a/intern/cycles/kernel/kernel_emission.h
+++ b/intern/cycles/kernel/kernel_emission.h
@@@ -58,14 -34,31 +34,31 @@@ ccl_device_noinline float3 direct_emiss
ls->Ng = -ls->Ng;
}
}
- else
- {
- shader_setup_from_sample(kg, emission_sd,
- ls->P, ls->Ng, I, &dI,
- ls->shader, ls->object, ls->prim,
- ls->u, ls->v, t, time, false, ls->lamp);
+ else {
+ /* Setup shader data and call shader_eval_surface once, better
+ * for GPU coherence and compile times. */
+ #ifdef __BACKGROUND_MIS__
+ if(ls->type == LIGHT_BACKGROUND) {
+ Ray ray;
+ ray.D = ls->D;
+ ray.P = ls->P;
+ ray.t = 1.0f;
+ ray.time = time;
+ ray.dP = differential3_zero();
+ ray.dD = dI;
+
+ shader_setup_from_background(kg, emission_sd, &ray);
+ }
+ else
+ #endif
+ {
+ shader_setup_from_sample(kg, emission_sd,
- ls->P, ls->Ng, I,
++ ls->P, ls->Ng, I, &dI,
+ ls->shader, ls->object, ls->prim,
+ ls->u, ls->v, t, time, false, ls->lamp);
- ls->Ng = emission_sd->Ng;
+ ls->Ng = emission_sd->Ng;
+ }
/* No proper path flag, we're evaluating this for all closures. that's
* weak but we'd have to do multiple evaluations otherwise. */
diff --cc intern/cycles/kernel/kernel_types.h
index 165f28014af,4b1c8e82dfa..8ba10f4ad9b
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@@ -207,8 -118,36 +118,38 @@@ CCL_NAMESPACE_BEGI
# define __OBJECT_MOTION__
# define __HAIR__
# define __BAKING__
+ # define __PRINCIPLED__
+ # define __SUBSURFACE__
+ # define __VOLUME__
+ # define __VOLUME_SCATTER__
+ # define __CMJ__
+ # define __SHADOW_RECORD_ALL__
+ # define __BRANCHED_PATH__
#endif
+ /* Device specific features */
+ #ifdef __KERNEL_CPU__
+ # ifdef __KERNEL_SSE2__
+ # define __QBVH__
+ # endif
+ # ifdef WITH_OSL
+ # define __OSL__
+ # endif
+ # define __VOLUME_DECOUPLED__
+ # define __VOLUME_RECORD_ALL__
++# define __DNDU__
++# define __OIIO__
+ #endif /* __KERNEL_CPU__ */
+
+ #ifdef __KERNEL_CUDA__
+ # ifdef __SPLIT_KERNEL__
+ # undef __BRANCHED_PATH__
+ # endif
+ #endif /* __KERNEL_CUDA__ */
+
+ #ifdef __KERNEL_OPENCL__
+ #endif /* __KERNEL_OPENCL__ */
+
/* Scene-based selective features compilation. */
#ifdef __NO_CAMERA_MOTION__
# undef __CAMERA_MOTION__
diff --cc intern/cycles/render/shader.cpp
index f0b6910098a,3c94f2dfb59..1dee2aa566e
--- a/intern/cycles/render/shader.cpp
+++ b/intern/cycles/render/shader.cpp
@@@ -720,24 -710,12 +737,28 @@@ void ShaderManager::get_requested_featu
void ShaderManager::free_memory()
{
beckmann_table.free_memory();
+
+ #ifdef WITH_OSL
+ OSLShaderManager::free_memory();
+ #endif
}
+void ShaderManager::texture_system_init()
+{
+ ts = TextureSystem::create(true);
+ ts->attribute("gray_to_rgb", 1);
+ ts->attribute("forcefloat", 1);
+}
+
+void ShaderManager::texture_system_free()
+{
+ std::cout << ts->getstats(2) << std::endl;
+ ts->reset_stats();
+ ts->invalidate_all(true);
+ TextureSystem::destroy(ts);
+ ts = NULL;
+}
+
float ShaderManager::linear_rgb_to_gray(float3 c)
{
return dot(c, rgb_to_y);
More information about the Bf-blender-cvs
mailing list