[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59361] trunk/blender/intern/cycles/kernel : Fix #36526: SSS + hair crash after recent changes.
Brecht Van Lommel
brechtvanlommel at pandora.be
Wed Aug 21 14:20:38 CEST 2013
Revision: 59361
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59361
Author: blendix
Date: 2013-08-21 12:20:38 +0000 (Wed, 21 Aug 2013)
Log Message:
-----------
Fix #36526: SSS + hair crash after recent changes.
Modified Paths:
--------------
trunk/blender/intern/cycles/kernel/kernel_bvh.h
trunk/blender/intern/cycles/kernel/kernel_bvh_subsurface.h
Modified: trunk/blender/intern/cycles/kernel/kernel_bvh.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_bvh.h 2013-08-21 12:20:31 UTC (rev 59360)
+++ trunk/blender/intern/cycles/kernel/kernel_bvh.h 2013-08-21 12:20:38 UTC (rev 59361)
@@ -794,7 +794,7 @@
#if defined(__SUBSURFACE__) && defined(__HAIR__)
#define BVH_FUNCTION_NAME bvh_intersect_subsurface_hair
-#define BVH_FUNCTION_FEATURES BVH_INSTANCING|BVH_HAIR|BVH_HAIR_MINIMUM_WIDTH
+#define BVH_FUNCTION_FEATURES BVH_INSTANCING|BVH_HAIR
#include "kernel_bvh_subsurface.h"
#endif
@@ -806,7 +806,7 @@
#if defined(__SUBSURFACE__) && defined(__HAIR__) && defined(__OBJECT_MOTION__)
#define BVH_FUNCTION_NAME bvh_intersect_subsurface_hair_motion
-#define BVH_FUNCTION_FEATURES BVH_INSTANCING|BVH_HAIR|BVH_HAIR_MINIMUM_WIDTH|BVH_MOTION
+#define BVH_FUNCTION_FEATURES BVH_INSTANCING|BVH_HAIR|BVH_MOTION
#include "kernel_bvh_subsurface.h"
#endif
Modified: trunk/blender/intern/cycles/kernel/kernel_bvh_subsurface.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_bvh_subsurface.h 2013-08-21 12:20:31 UTC (rev 59360)
+++ trunk/blender/intern/cycles/kernel/kernel_bvh_subsurface.h 2013-08-21 12:20:38 UTC (rev 59361)
@@ -207,7 +207,13 @@
--stackPtr;
/* primitive intersection */
- while(primAddr < primAddr2) {
+ for(; primAddr < primAddr2; primAddr++) {
+#if FEATURE(BVH_HAIR)
+ uint segment = kernel_tex_fetch(__prim_segment, primAddr);
+ if(segment != ~0)
+ continue;
+#endif
+
/* only primitives from the same object */
uint tri_object = (object == ~0)? kernel_tex_fetch(__prim_object, primAddr): object;
@@ -216,8 +222,6 @@
/* intersect ray against primitive */
bvh_triangle_intersect_subsurface(kg, isect_array, P, idir, object, primAddr, tmax, &num_hits, lcg_state, max_hits);
}
-
- primAddr++;
}
}
#if FEATURE(BVH_INSTANCING)
More information about the Bf-blender-cvs
mailing list