[Bf-blender-cvs] [fe070fe33ba] master: Fix Cycles crash in certain hair configurations

Sergey Sharybin noreply at git.blender.org
Wed Sep 29 16:14:49 CEST 2021


Commit: fe070fe33ba84c50e8daebbd547e23106161a1f3
Author: Sergey Sharybin
Date:   Wed Sep 29 12:51:48 2021 +0200
Branches: master
https://developer.blender.org/rBfe070fe33ba84c50e8daebbd547e23106161a1f3

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

===================================================================

M	intern/cycles/kernel/geom/geom_curve_intersect.h

===================================================================

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);



More information about the Bf-blender-cvs mailing list