Commit: 07a8885717d59348af4d38199bcc4ec3719b1075
Author: varunsundar08
Date:   Mon May 4 22:10:16 2015 +0530
Branches: cycles_kernel_split
https://developer.blender.org/rB07a8885717d59348af4d38199bcc4ec3719b1075

De-duplicate shader_setup_from_background function

===================================================================

M       intern/cycles/kernel/kernel_emission.h
M       intern/cycles/kernel/kernel_shader.h

===================================================================

diff --git a/intern/cycles/kernel/kernel_emission.h 
b/intern/cycles/kernel/kernel_emission.h
index c61720f..ded6429 100644
--- a/intern/cycles/kernel/kernel_emission.h
+++ b/intern/cycles/kernel/kernel_emission.h
@@ -37,7 +37,7 @@ ccl_device_noinline float3 
direct_emissive_eval_SPLIT_KERNEL(ccl_addr_space Kern
                ray.dP = differential3_zero();
                ray.dD = dI;
 
-               shader_setup_from_background_privateRay(kg, sd, &ray, bounce+1, 
transparent_bounce);
+               shader_setup_from_background(kg, sd, &ray, bounce+1, 
transparent_bounce);
                eval = shader_eval_background(kg, sd, 0, 
SHADER_CONTEXT_EMISSION);
        }
        else
@@ -298,11 +298,13 @@ ccl_device_noinline float3 
indirect_background(ccl_addr_space KernelGlobals *kg,
 
 #ifdef __SPLIT_KERNEL__
        /* evaluate background closure */
-       shader_setup_from_background(kg, sd_global, ray, state->bounce+1, 
state->transparent_bounce);
+       Ray priv_ray = *ray;
+       shader_setup_from_background(kg, sd_global, &priv_ray, state->bounce+1, 
state->transparent_bounce);
        float3 L = shader_eval_background(kg, sd_global, state->flag, 
SHADER_CONTEXT_EMISSION);
 #else
        ShaderData sd;
-       shader_setup_from_background(kg, &sd, ray, state->bounce+1, 
state->transparent_bounce);
+       Ray priv_ray = *ray;
+       shader_setup_from_background(kg, &sd, &priv_ray, state->bounce+1, 
state->transparent_bounce);
        float3 L = shader_eval_background(kg, &sd, state->flag, 
SHADER_CONTEXT_EMISSION);
 #endif
 
diff --git a/intern/cycles/kernel/kernel_shader.h 
b/intern/cycles/kernel/kernel_shader.h
index 67e5e83..eea2a59 100644
--- a/intern/cycles/kernel/kernel_shader.h
+++ b/intern/cycles/kernel/kernel_shader.h
@@ -377,53 +377,8 @@ ccl_device void shader_setup_from_displace(ccl_addr_space 
KernelGlobals *kg, ccl
        shader_setup_from_sample(kg, sd, P, Ng, I, shader, object, prim, u, v, 
0.0f, TIME_INVALID, 0, 0);
 }
 
-#ifdef __SPLIT_KERNEL__
 /* ShaderData setup from ray into background */
-ccl_device_inline void shader_setup_from_background_privateRay(ccl_addr_space 
KernelGlobals *kg, ccl_addr_space ShaderData *sd, Ray *ray, int bounce, int 
transparent_bounce)
-{
-       /* vectors */
-       sd_fetch(P) = ray->D;
-       sd_fetch(N) = -ray->D;
-       sd_fetch(Ng) = -ray->D;
-       sd_fetch(I) = -ray->D;
-       sd_fetch(shader) = kernel_data.background.surface_shader;
-       sd_fetch(flag) = kernel_tex_fetch(__shader_flag, (sd_fetch(shader) & 
SHADER_MASK)*2);
-#ifdef __OBJECT_MOTION__
-       sd->time = ray->time;
-#endif
-       sd_fetch(ray_length) = 0.0f;
-       sd_fetch(ray_depth) = bounce;
-       sd_fetch(transparent_depth) = transparent_bounce;
-
-#ifdef __INSTANCING__
-       sd_fetch(object) = PRIM_NONE;
-#endif
-       sd_fetch(prim) = PRIM_NONE;
-#ifdef __UV__
-       sd_fetch(u) = 0.0f;
-       sd_fetch(v) = 0.0f;
-#endif
-
-#ifdef __DPDU__
-       /* dPdu/dPdv */
-       sd_fetch(dPdu) = make_float3(0.0f, 0.0f, 0.0f);
-       sd_fetch(dPdv) = make_float3(0.0f, 0.0f, 0.0f);
-#endif
-
-#ifdef __RAY_DIFFERENTIALS__
-       /* differentials */
-       sd_fetch(dP) = ray->dD;
-       differential_incoming(&sd_fetch(dI), sd_fetch(dP));
-       sd_fetch(du).dx = 0.0f;
-       sd_fetch(du).dy = 0.0f;
-       sd_fetch(dv).dx = 0.0f;
-       sd_fetch(dv).dy = 0.0f;
-#endif
-}
-#endif
-
-/* ShaderData setup from ray into background */
-ccl_device_inline void shader_setup_from_background(ccl_addr_space 
KernelGlobals *kg, ccl_addr_space ShaderData *sd, const ccl_addr_space Ray 
*ray, int bounce, int transparent_bounce)
+ccl_device_inline void shader_setup_from_background(ccl_addr_space 
KernelGlobals *kg, ccl_addr_space ShaderData *sd, const Ray *ray, int bounce, 
int transparent_bounce)
 {
        /* vectors */
        sd_fetch(P) = ray->D;

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to