From fe070fe33ba84c50e8daebbd547e23106161a1f3 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Wed, 29 Sep 2021 12:51:48 +0200 Subject: Fix Cycles crash in certain hair configurations The issue was caused by hair shader setup setting normal to a non finite value, which then gets used to create a ray with non-finite direction, making BVH traversal to run out of stack memory. Happens with 150_0040_A.lighting.blend frame 112 of the Sprites project. Differential Revision: https://developer.blender.org/D12692 --- intern/cycles/kernel/geom/geom_curve_intersect.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/cycles/kernel/geom/geom_curve_intersect.h b/intern/cycles/kernel/geom/geom_curve_intersect.h index 213f3e62ee0..b2101034bb6 100644 --- a/intern/cycles/kernel/geom/geom_curve_intersect.h +++ b/intern/cycles/kernel/geom/geom_curve_intersect.h @@ -713,7 +713,7 @@ ccl_device_inline void curve_shader_setup(const KernelGlobals *kg, P = transform_point(&tfm, P); D = transform_direction(&tfm, D * t); - D = normalize_len(D, &t); + D = safe_normalize_len(D, &t); } int prim = kernel_tex_fetch(__prim_index, isect_prim); -- cgit v1.2.3