diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-01-30 21:04:51 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-01-30 21:04:51 +0400 |
commit | f6f5d17a50e27090d248d480417b020e024c930b (patch) | |
tree | f28e486ef3d6bee3d6028886815d95c564168240 /intern/cycles/kernel/kernel_emission.h | |
parent | dc0f4b56183cd81b6ba4653d281f6b8ec236a574 (diff) |
Fix #33984: cycles shadow pass problem with CUDA.
Diffstat (limited to 'intern/cycles/kernel/kernel_emission.h')
-rw-r--r-- | intern/cycles/kernel/kernel_emission.h | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/intern/cycles/kernel/kernel_emission.h b/intern/cycles/kernel/kernel_emission.h index e234d54e228..4048bbd9dfc 100644 --- a/intern/cycles/kernel/kernel_emission.h +++ b/intern/cycles/kernel/kernel_emission.h @@ -76,7 +76,7 @@ __device float3 direct_emissive_eval(KernelGlobals *kg, float rando, __device bool direct_emission(KernelGlobals *kg, ShaderData *sd, int lindex, float randt, float rando, float randu, float randv, Ray *ray, BsdfEval *eval, - int *lamp) + bool *is_lamp) { LightSample ls; @@ -92,12 +92,6 @@ __device bool direct_emission(KernelGlobals *kg, ShaderData *sd, int lindex, light_sample(kg, randt, randu, randv, sd->time, sd->P, &ls); } - /* return lamp index for MIS */ - if(ls.shader & SHADER_USE_MIS) - *lamp = ls.lamp; - else - *lamp= ~0; - if(ls.pdf == 0.0f) return false; @@ -146,6 +140,9 @@ __device bool direct_emission(KernelGlobals *kg, ShaderData *sd, int lindex, ray->t = 0.0f; } + /* return if it's a lamp for shadow pass */ + *is_lamp = (ls.prim == ~0); + return true; } |