[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