diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-04-02 18:19:05 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-04-02 18:19:05 +0400 |
commit | 952f03150fa8cf87ace22430259e11c60c0dab83 (patch) | |
tree | 11de3aa892a3c4b24a9673dac361e9debf2d5242 | |
parent | 5ac6e1ae842b96bf181664bf5a1426d0f9f70c7d (diff) |
Fix #34832: SSS render freeze with object instances.
-rw-r--r-- | intern/cycles/kernel/kernel_bvh.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/intern/cycles/kernel/kernel_bvh.h b/intern/cycles/kernel/kernel_bvh.h index ace48f4a1a2..b44e1194672 100644 --- a/intern/cycles/kernel/kernel_bvh.h +++ b/intern/cycles/kernel/kernel_bvh.h @@ -1075,6 +1075,11 @@ __device_inline int bvh_intersect_subsurface(KernelGlobals *kg, const Ray *ray, nodeAddr = kernel_tex_fetch(__object_node, object); } + else { + /* pop */ + nodeAddr = traversalStack[stackPtr]; + --stackPtr; + } } #endif } @@ -1204,6 +1209,11 @@ __device bool bvh_intersect_motion_subsurface(KernelGlobals *kg, const Ray *ray, nodeAddr = kernel_tex_fetch(__object_node, object); } + else { + /* pop */ + nodeAddr = traversalStack[stackPtr]; + --stackPtr; + } } } } while(nodeAddr != ENTRYPOINT_SENTINEL); @@ -1235,8 +1245,6 @@ __device_inline int scene_intersect_subsurface(KernelGlobals *kg, const Ray *ray #endif } - - /* Ray offset to avoid self intersection */ __device_inline float3 ray_offset(float3 P, float3 Ng) |