diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-05-05 18:54:03 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-05-05 18:54:03 +0300 |
commit | 2eb906e1b4c80a79f631fd315b9a9f3b6f4bf100 (patch) | |
tree | 8d49fa4bafbac5e72a00900eff5fb4c4cd338581 /intern/cycles/kernel/split/kernel_subsurface_scatter.h | |
parent | 850bb7a50b25f48bfe78b1626d70af7f86e9f1fb (diff) |
Cycles: Fix access array index of -1 in SSS and volume split kernels
Diffstat (limited to 'intern/cycles/kernel/split/kernel_subsurface_scatter.h')
-rw-r--r-- | intern/cycles/kernel/split/kernel_subsurface_scatter.h | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/intern/cycles/kernel/split/kernel_subsurface_scatter.h b/intern/cycles/kernel/split/kernel_subsurface_scatter.h index a152ac566ca..1dffe1b179e 100644 --- a/intern/cycles/kernel/split/kernel_subsurface_scatter.h +++ b/intern/cycles/kernel/split/kernel_subsurface_scatter.h @@ -217,16 +217,17 @@ ccl_device void kernel_subsurface_scatter(KernelGlobals *kg) #ifdef __SUBSURFACE__ ccl_global char *ray_state = kernel_split_state.ray_state; - ccl_global PathState *state = &kernel_split_state.path_state[ray_index]; - PathRadiance *L = &kernel_split_state.path_radiance[ray_index]; - RNG rng = kernel_split_state.rng[ray_index]; - ccl_global Ray *ray = &kernel_split_state.ray[ray_index]; - ccl_global float3 *throughput = &kernel_split_state.throughput[ray_index]; - ccl_global SubsurfaceIndirectRays *ss_indirect = &kernel_split_state.ss_rays[ray_index]; - ShaderData *sd = &kernel_split_state.sd[ray_index]; - ShaderData *emission_sd = &kernel_split_state.sd_DL_shadow[ray_index]; if(IS_STATE(ray_state, ray_index, RAY_ACTIVE)) { + ccl_global PathState *state = &kernel_split_state.path_state[ray_index]; + PathRadiance *L = &kernel_split_state.path_radiance[ray_index]; + RNG rng = kernel_split_state.rng[ray_index]; + ccl_global Ray *ray = &kernel_split_state.ray[ray_index]; + ccl_global float3 *throughput = &kernel_split_state.throughput[ray_index]; + ccl_global SubsurfaceIndirectRays *ss_indirect = &kernel_split_state.ss_rays[ray_index]; + ShaderData *sd = &kernel_split_state.sd[ray_index]; + ShaderData *emission_sd = &kernel_split_state.sd_DL_shadow[ray_index]; + if(sd->flag & SD_BSSRDF) { #ifdef __BRANCHED_PATH__ |