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