[Bf-blender-cvs] [ca72ff599a9] master: Fix Cycles Embree crash with AO shader local only option
Brecht Van Lommel
noreply at git.blender.org
Tue Feb 18 00:47:02 CET 2020
Commit: ca72ff599a96b64e6159e8e8f891f9649c0717a3
Author: Brecht Van Lommel
Date: Tue Feb 18 00:20:58 2020 +0100
Branches: master
https://developer.blender.org/rBca72ff599a96b64e6159e8e8f891f9649c0717a3
Fix Cycles Embree crash with AO shader local only option
Ref T73778
===================================================================
M intern/cycles/kernel/bvh/bvh.h
===================================================================
diff --git a/intern/cycles/kernel/bvh/bvh.h b/intern/cycles/kernel/bvh/bvh.h
index 75081085af5..b3992c03a9a 100644
--- a/intern/cycles/kernel/bvh/bvh.h
+++ b/intern/cycles/kernel/bvh/bvh.h
@@ -336,7 +336,9 @@ ccl_device_intersect bool scene_intersect_local(KernelGlobals *kg,
ctx.lcg_state = lcg_state;
ctx.max_hits = max_hits;
ctx.local_isect = local_isect;
- local_isect->num_hits = 0;
+ if (local_isect) {
+ local_isect->num_hits = 0;
+ }
ctx.local_object_id = local_object;
IntersectContext rtc_ctx(&ctx);
RTCRay rtc_ray;
@@ -373,7 +375,9 @@ ccl_device_intersect bool scene_intersect_local(KernelGlobals *kg,
rtcOccluded1(kernel_data.bvh.scene, &rtc_ctx.context, &rtc_ray);
}
- return local_isect->num_hits > 0;
+ /* rtcOccluded1 sets tfar to -inf if a hit was found. */
+ return (local_isect && local_isect->num_hits > 0) || (rtc_ray.tfar < 0);
+ ;
}
# endif /* __EMBREE__ */
More information about the Bf-blender-cvs
mailing list