diff options
author | Patrick Mours <pmours@nvidia.com> | 2019-08-25 19:11:41 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-08-26 11:26:53 +0300 |
commit | fd52dc58ddea642b7162b01538c0c6c48abb0507 (patch) | |
tree | 21df79cee59c14c0cada5c4bc49da3824d4c8a4b /intern/cycles/kernel/split | |
parent | f491c23f1e104998752380b930307e7abc4597b3 (diff) |
Cycles: GPU code generation optimizations for direct lighting
Use a single loop to iterate over all lights, reducing divergence and amount
of code to generate. Moving ray intersection calls out of conditionals will
also help the Optix compiler.
Ref D5363
Diffstat (limited to 'intern/cycles/kernel/split')
-rw-r--r-- | intern/cycles/kernel/split/kernel_direct_lighting.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/intern/cycles/kernel/split/kernel_direct_lighting.h b/intern/cycles/kernel/split/kernel_direct_lighting.h index b2ca59d60cc..3be2b35812f 100644 --- a/intern/cycles/kernel/split/kernel_direct_lighting.h +++ b/intern/cycles/kernel/split/kernel_direct_lighting.h @@ -86,8 +86,7 @@ ccl_device void kernel_direct_lighting(KernelGlobals *kg, float terminate = path_state_rng_light_termination(kg, state); LightSample ls; - if (light_sample(kg, light_u, light_v, sd->time, sd->P, state->bounce, &ls)) { - + if (light_sample(kg, -1, light_u, light_v, sd->time, sd->P, state->bounce, &ls)) { Ray light_ray; light_ray.time = sd->time; |