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