diff options
author | Sergey Sharybin <sergey@blender.org> | 2021-09-29 13:51:48 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey@blender.org> | 2021-09-29 17:14:23 +0300 |
commit | fe070fe33ba84c50e8daebbd547e23106161a1f3 (patch) | |
tree | cd7cad77ffa19f1b4a555f591838d3b0e766bb85 /intern/cycles/kernel/geom | |
parent | 901fa96b7f595fb1d77075aaa68b2e14f57a8e31 (diff) |
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
Diffstat (limited to 'intern/cycles/kernel/geom')
-rw-r--r-- | intern/cycles/kernel/geom/geom_curve_intersect.h | 2 |
1 files changed, 1 insertions, 1 deletions
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); |