Commit: cb6a6a1d90dee036b5496606a3ccd919f649314b
Author: Sergey Sharybin
Date:   Fri May 8 14:45:26 2015 +0500
Branches: cycles_kernel_split
https://developer.blender.org/rBcb6a6a1d90dee036b5496606a3ccd919f649314b

Cycles kernel split: Avoid adding extra arguments to shadow_blocked()

This way it's guaranteed non-split kernel is exactly the same, and also
localizes changes to a single file only without touching existing path
tracing code.

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

M       intern/cycles/kernel/kernel_path.h
M       intern/cycles/kernel/kernel_path_surface.h
M       intern/cycles/kernel/kernel_path_volume.h
M       intern/cycles/kernel/kernel_shadow.h

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

diff --git a/intern/cycles/kernel/kernel_path.h 
b/intern/cycles/kernel/kernel_path.h
index 1dc3a4e..1a5654d 100644
--- a/intern/cycles/kernel/kernel_path.h
+++ b/intern/cycles/kernel/kernel_path.h
@@ -250,7 +250,7 @@ ccl_device void kernel_path_indirect(KernelGlobals *kg, RNG 
*rng, Ray ray,
                                light_ray.dP = sd.dP;
                                light_ray.dD = differential3_zero();
 
-                               if(!shadow_blocked(kg, &state, &light_ray, 
&ao_shadow, NULL, NULL))
+                               if(!shadow_blocked(kg, &state, &light_ray, 
&ao_shadow))
                                        path_radiance_accum_ao(L, throughput, 
ao_alpha, ao_bsdf, ao_shadow, state.bounce);
                        }
                }
@@ -320,7 +320,7 @@ ccl_device void kernel_path_ao(KernelGlobals *kg, 
ShaderData *sd, PathRadiance *
                light_ray.dP = sd->dP;
                light_ray.dD = differential3_zero();
 
-               if(!shadow_blocked(kg, state, &light_ray, &ao_shadow, NULL, 
NULL))
+               if(!shadow_blocked(kg, state, &light_ray, &ao_shadow))
                        path_radiance_accum_ao(L, throughput, ao_alpha, 
ao_bsdf, ao_shadow, state->bounce);
        }
 }
@@ -356,7 +356,7 @@ ccl_device void kernel_branched_path_ao(KernelGlobals *kg, 
ShaderData *sd, PathR
                        light_ray.dP = sd->dP;
                        light_ray.dD = differential3_zero();
 
-                       if(!shadow_blocked(kg, state, &light_ray, &ao_shadow, 
NULL, NULL))
+                       if(!shadow_blocked(kg, state, &light_ray, &ao_shadow))
                                path_radiance_accum_ao(L, 
throughput*num_samples_inv, ao_alpha, ao_bsdf, ao_shadow, state->bounce);
                }
        }
diff --git a/intern/cycles/kernel/kernel_path_surface.h 
b/intern/cycles/kernel/kernel_path_surface.h
index b4c7c00..aed77c2 100644
--- a/intern/cycles/kernel/kernel_path_surface.h
+++ b/intern/cycles/kernel/kernel_path_surface.h
@@ -59,7 +59,7 @@ ccl_device void 
kernel_branched_path_surface_connect_light(KernelGlobals *kg, RN
                                        /* trace shadow ray */
                                        float3 shadow;
 
-                                       if(!shadow_blocked(kg, state, 
&light_ray, &shadow, NULL, NULL)) {
+                                       if(!shadow_blocked(kg, state, 
&light_ray, &shadow)) {
                                                /* accumulate */
                                                path_radiance_accum_light(L, 
throughput*num_samples_inv, &L_light, shadow, num_samples_inv, state->bounce, 
is_lamp);
                                        }
@@ -91,7 +91,7 @@ ccl_device void 
kernel_branched_path_surface_connect_light(KernelGlobals *kg, RN
                                        /* trace shadow ray */
                                        float3 shadow;
 
-                                       if(!shadow_blocked(kg, state, 
&light_ray, &shadow, NULL, NULL)) {
+                                       if(!shadow_blocked(kg, state, 
&light_ray, &shadow)) {
                                                /* accumulate */
                                                path_radiance_accum_light(L, 
throughput*num_samples_inv, &L_light, shadow, num_samples_inv, state->bounce, 
is_lamp);
                                        }
@@ -113,7 +113,7 @@ ccl_device void 
kernel_branched_path_surface_connect_light(KernelGlobals *kg, RN
                        /* trace shadow ray */
                        float3 shadow;
 
-                       if(!shadow_blocked(kg, state, &light_ray, &shadow, 
NULL, NULL)) {
+                       if(!shadow_blocked(kg, state, &light_ray, &shadow)) {
                                /* accumulate */
                                path_radiance_accum_light(L, 
throughput*num_samples_adjust, &L_light, shadow, num_samples_adjust, 
state->bounce, is_lamp);
                        }
@@ -210,7 +210,7 @@ ccl_device_inline void 
kernel_path_surface_connect_light(KernelGlobals *kg, ccl_
                /* trace shadow ray */
                float3 shadow;
 
-               if(!shadow_blocked(kg, state, &light_ray, &shadow, NULL, NULL)) 
{
+               if(!shadow_blocked(kg, state, &light_ray, &shadow)) {
                        /* accumulate */
                        path_radiance_accum_light(L, throughput, &L_light, 
shadow, 1.0f, state->bounce, is_lamp);
                }
diff --git a/intern/cycles/kernel/kernel_path_volume.h 
b/intern/cycles/kernel/kernel_path_volume.h
index 5498b01..941611e 100644
--- a/intern/cycles/kernel/kernel_path_volume.h
+++ b/intern/cycles/kernel/kernel_path_volume.h
@@ -48,7 +48,7 @@ ccl_device void 
kernel_path_volume_connect_light(KernelGlobals *kg, RNG *rng,
                /* trace shadow ray */
                float3 shadow;
 
-               if(!shadow_blocked(kg, state, &light_ray, &shadow, NULL, NULL)) 
{
+               if(!shadow_blocked(kg, state, &light_ray, &shadow)) {
                        /* accumulate */
                        path_radiance_accum_light(L, throughput, &L_light, 
shadow, 1.0f, state->bounce, is_lamp);
                }
@@ -164,7 +164,7 @@ ccl_device void 
kernel_branched_path_volume_connect_light(KernelGlobals *kg, RNG
                                        /* trace shadow ray */
                                        float3 shadow;
 
-                                       if(!shadow_blocked(kg, state, 
&light_ray, &shadow, NULL, NULL)) {
+                                       if(!shadow_blocked(kg, state, 
&light_ray, &shadow)) {
                                                /* accumulate */
                                                path_radiance_accum_light(L, 
tp*num_samples_inv, &L_light, shadow, num_samples_inv, state->bounce, is_lamp);
                                        }
@@ -215,7 +215,7 @@ ccl_device void 
kernel_branched_path_volume_connect_light(KernelGlobals *kg, RNG
                                        /* trace shadow ray */
                                        float3 shadow;
 
-                                       if(!shadow_blocked(kg, state, 
&light_ray, &shadow, NULL, NULL)) {
+                                       if(!shadow_blocked(kg, state, 
&light_ray, &shadow)) {
                                                /* accumulate */
                                                path_radiance_accum_light(L, 
tp*num_samples_inv, &L_light, shadow, num_samples_inv, state->bounce, is_lamp);
                                        }
@@ -255,7 +255,7 @@ ccl_device void 
kernel_branched_path_volume_connect_light(KernelGlobals *kg, RNG
                        /* trace shadow ray */
                        float3 shadow;
 
-                       if(!shadow_blocked(kg, state, &light_ray, &shadow, 
NULL, NULL)) {
+                       if(!shadow_blocked(kg, state, &light_ray, &shadow)) {
                                /* accumulate */
                                path_radiance_accum_light(L, tp, &L_light, 
shadow, 1.0f, state->bounce, is_lamp);
                        }
diff --git a/intern/cycles/kernel/kernel_shadow.h 
b/intern/cycles/kernel/kernel_shadow.h
index c1fd7e8..6602d88 100644
--- a/intern/cycles/kernel/kernel_shadow.h
+++ b/intern/cycles/kernel/kernel_shadow.h
@@ -41,8 +41,7 @@ CCL_NAMESPACE_BEGIN
 
 #define STACK_MAX_HITS 64
 
- /* dummy_arg_1 and dummy_arg_2 are declared just to match the function 
signature of the GPU variant */
-ccl_device_inline bool shadow_blocked(KernelGlobals *kg, PathState *state, Ray 
*ray, float3 *shadow, void *dummy_arg_1, void *dummy_arg_2)
+ccl_device_inline bool shadow_blocked(KernelGlobals *kg, PathState *state, Ray 
*ray, float3 *shadow)
 {
        *shadow = make_float3(1.0f, 1.0f, 1.0f);
 
@@ -182,7 +181,11 @@ ccl_device_inline bool shadow_blocked(KernelGlobals *kg, 
PathState *state, Ray *
  * one extra ray cast for the cases were we do want transparency. */
 
 /* The arguments sd_mem and isect_mem are meaningful only for OpenCL split 
kernel. Other uses can just pass a NULL */
-ccl_device_inline bool shadow_blocked(KernelGlobals *kg, ccl_addr_space 
PathState *state, ccl_addr_space Ray *ray_input, float3 *shadow, ShaderData 
*sd_mem, Intersection *isect_mem)
+ccl_device_inline bool shadow_blocked(KernelGlobals *kg, ccl_addr_space 
PathState *state, ccl_addr_space Ray *ray_input, float3 *shadow
+#ifdef __SPLIT_KERNEL__
+                                      , ShaderData *sd_mem, Intersection 
*isect_mem
+#endif
+                                      )
 {
        *shadow = make_float3(1.0f, 1.0f, 1.0f);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to