diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-01-12 00:04:35 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-01-12 13:05:14 +0300 |
commit | 5719ed122517d3d053b3c7c89a62c4f6b8eb8057 (patch) | |
tree | 0be332f9c2dbc01dea86f0c4254511c76c822314 /intern/cycles/kernel/geom/geom_bvh_subsurface.h | |
parent | bc7ff3c2b44e9cd8f3aea1a3943b787deede2838 (diff) |
Cycles: Add leaf primitives sanity check asserts to the kernel
This way we'll notice that leaf splitting didn't happen correct pretty easily
in debug builds.
There'll be absolutely no impact on release builds.
Diffstat (limited to 'intern/cycles/kernel/geom/geom_bvh_subsurface.h')
-rw-r--r-- | intern/cycles/kernel/geom/geom_bvh_subsurface.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/intern/cycles/kernel/geom/geom_bvh_subsurface.h b/intern/cycles/kernel/geom/geom_bvh_subsurface.h index 2f078d51985..290297ef5c5 100644 --- a/intern/cycles/kernel/geom/geom_bvh_subsurface.h +++ b/intern/cycles/kernel/geom/geom_bvh_subsurface.h @@ -205,6 +205,7 @@ ccl_device uint BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals *kg, case PRIMITIVE_TRIANGLE: { /* intersect ray against primitive */ for(; primAddr < primAddr2; primAddr++) { + kernel_assert(kernel_tex_fetch(__prim_type, primAddr) == type); /* only primitives from the same object */ uint tri_object = (object == OBJECT_NONE)? kernel_tex_fetch(__prim_object, primAddr): object; if(tri_object != subsurface_object) @@ -217,6 +218,7 @@ ccl_device uint BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals *kg, case PRIMITIVE_MOTION_TRIANGLE: { /* intersect ray against primitive */ for(; primAddr < primAddr2; primAddr++) { + kernel_assert(kernel_tex_fetch(__prim_type, primAddr) == type); /* only primitives from the same object */ uint tri_object = (object == OBJECT_NONE)? kernel_tex_fetch(__prim_object, primAddr): object; if(tri_object != subsurface_object) |