Commit: 1a6dde9dc86c3ef124cf8038346f522956e960c8
Author: Sergey Sharybin
Date:   Fri May 8 16:04:00 2015 +0500
Branches: cycles_kernel_split
https://developer.blender.org/rB1a6dde9dc86c3ef124cf8038346f522956e960c8

Cycles kernel split: Remove extra argument from direct_emission in megakernel

It's just dummy attribute which will never be optimized due to non-inline nature
of the function.

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

M       intern/cycles/kernel/kernel_emission.h
M       intern/cycles/kernel/kernel_path_surface.h
M       intern/cycles/kernel/kernel_path_volume.h

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

diff --git a/intern/cycles/kernel/kernel_emission.h 
b/intern/cycles/kernel/kernel_emission.h
index 6745a41..64b73ff 100644
--- a/intern/cycles/kernel/kernel_emission.h
+++ b/intern/cycles/kernel/kernel_emission.h
@@ -75,7 +75,11 @@ ccl_device_noinline float3 
direct_emissive_eval(KernelGlobals *kg,
 /* The argument sd_DL is meaningful only for split kernel. Other uses can just 
pass NULL */
 ccl_device_noinline bool direct_emission(KernelGlobals *kg, ShaderData *sd,
        LightSample *ls, Ray *ray, BsdfEval *eval, bool *is_lamp,
-       int bounce, int transparent_bounce, ShaderData *sd_DL)
+       int bounce, int transparent_bounce
+#ifdef __SPLIT_KERNEL__
+       , ShaderData *sd_DL
+#endif
+       )
 {
        if(ls->pdf == 0.0f)
                return false;
diff --git a/intern/cycles/kernel/kernel_path_surface.h 
b/intern/cycles/kernel/kernel_path_surface.h
index aed77c2..bb32433f 100644
--- a/intern/cycles/kernel/kernel_path_surface.h
+++ b/intern/cycles/kernel/kernel_path_surface.h
@@ -55,7 +55,7 @@ ccl_device void 
kernel_branched_path_surface_connect_light(KernelGlobals *kg, RN
                                LightSample ls;
                                lamp_light_sample(kg, i, light_u, light_v, 
sd->P, &ls);
 
-                               if(direct_emission(kg, sd, &ls, &light_ray, 
&L_light, &is_lamp, state->bounce, state->transparent_bounce, NULL)) {
+                               if(direct_emission(kg, sd, &ls, &light_ray, 
&L_light, &is_lamp, state->bounce, state->transparent_bounce)) {
                                        /* trace shadow ray */
                                        float3 shadow;
 
@@ -87,7 +87,7 @@ ccl_device void 
kernel_branched_path_surface_connect_light(KernelGlobals *kg, RN
                                LightSample ls;
                                light_sample(kg, light_t, light_u, light_v, 
sd->time, sd->P, state->bounce, &ls);
 
-                               if(direct_emission(kg, sd, &ls, &light_ray, 
&L_light, &is_lamp, state->bounce, state->transparent_bounce, NULL)) {
+                               if(direct_emission(kg, sd, &ls, &light_ray, 
&L_light, &is_lamp, state->bounce, state->transparent_bounce)) {
                                        /* trace shadow ray */
                                        float3 shadow;
 
@@ -109,7 +109,7 @@ ccl_device void 
kernel_branched_path_surface_connect_light(KernelGlobals *kg, RN
                light_sample(kg, light_t, light_u, light_v, sd->time, sd->P, 
state->bounce, &ls);
 
                /* sample random light */
-               if(direct_emission(kg, sd, &ls, &light_ray, &L_light, &is_lamp, 
state->bounce, state->transparent_bounce, NULL)) {
+               if(direct_emission(kg, sd, &ls, &light_ray, &L_light, &is_lamp, 
state->bounce, state->transparent_bounce)) {
                        /* trace shadow ray */
                        float3 shadow;
 
@@ -206,7 +206,7 @@ ccl_device_inline void 
kernel_path_surface_connect_light(KernelGlobals *kg, ccl_
        LightSample ls;
        light_sample(kg, light_t, light_u, light_v, sd_fetch(time), 
sd_fetch(P), state->bounce, &ls);
 
-       if(direct_emission(kg, sd, &ls, &light_ray, &L_light, &is_lamp, 
state->bounce, state->transparent_bounce, NULL)) {
+       if(direct_emission(kg, sd, &ls, &light_ray, &L_light, &is_lamp, 
state->bounce, state->transparent_bounce)) {
                /* trace shadow ray */
                float3 shadow;
 
diff --git a/intern/cycles/kernel/kernel_path_volume.h 
b/intern/cycles/kernel/kernel_path_volume.h
index 941611e..82dc0f9 100644
--- a/intern/cycles/kernel/kernel_path_volume.h
+++ b/intern/cycles/kernel/kernel_path_volume.h
@@ -44,7 +44,7 @@ ccl_device void 
kernel_path_volume_connect_light(KernelGlobals *kg, RNG *rng,
        if(ls.pdf == 0.0f)
                return;
        
-       if(direct_emission(kg, sd, &ls, &light_ray, &L_light, &is_lamp, 
state->bounce, state->transparent_bounce, NULL)) {
+       if(direct_emission(kg, sd, &ls, &light_ray, &L_light, &is_lamp, 
state->bounce, state->transparent_bounce)) {
                /* trace shadow ray */
                float3 shadow;
 
@@ -160,7 +160,7 @@ ccl_device void 
kernel_branched_path_volume_connect_light(KernelGlobals *kg, RNG
                                if(ls.pdf == 0.0f)
                                        continue;
 
-                               if(direct_emission(kg, sd, &ls, &light_ray, 
&L_light, &is_lamp, state->bounce, state->transparent_bounce, NULL)) {
+                               if(direct_emission(kg, sd, &ls, &light_ray, 
&L_light, &is_lamp, state->bounce, state->transparent_bounce)) {
                                        /* trace shadow ray */
                                        float3 shadow;
 
@@ -211,7 +211,7 @@ ccl_device void 
kernel_branched_path_volume_connect_light(KernelGlobals *kg, RNG
                                if(ls.pdf == 0.0f)
                                        continue;
 
-                               if(direct_emission(kg, sd, &ls, &light_ray, 
&L_light, &is_lamp, state->bounce, state->transparent_bounce, NULL)) {
+                               if(direct_emission(kg, sd, &ls, &light_ray, 
&L_light, &is_lamp, state->bounce, state->transparent_bounce)) {
                                        /* trace shadow ray */
                                        float3 shadow;
 
@@ -251,7 +251,7 @@ ccl_device void 
kernel_branched_path_volume_connect_light(KernelGlobals *kg, RNG
                        return;
 
                /* sample random light */
-               if(direct_emission(kg, sd, &ls, &light_ray, &L_light, &is_lamp, 
state->bounce, state->transparent_bounce, NULL)) {
+               if(direct_emission(kg, sd, &ls, &light_ray, &L_light, &is_lamp, 
state->bounce, state->transparent_bounce)) {
                        /* trace shadow ray */
                        float3 shadow;

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

Reply via email to