From 952f03150fa8cf87ace22430259e11c60c0dab83 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 2 Apr 2013 14:19:05 +0000 Subject: [PATCH] Fix #34832: SSS render freeze with object instances. --- intern/cycles/kernel/kernel_bvh.h | 12 ++++++++++-- 1 file 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)