[Bf-blender-cvs] [07a8885] cycles_kernel_split: De-duplicate shader_setup_from_background function
varunsundar08
noreply at git.blender.org
Tue May 5 09:17:05 CEST 2015
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;
More information about the Bf-blender-cvs
mailing list