Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey@blender.org>2021-09-29 13:51:48 +0300
committerSergey Sharybin <sergey@blender.org>2021-09-29 17:14:23 +0300
commitfe070fe33ba84c50e8daebbd547e23106161a1f3 (patch)
treecd7cad77ffa19f1b4a555f591838d3b0e766bb85
parent901fa96b7f595fb1d77075aaa68b2e14f57a8e31 (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
-rw-r--r--intern/cycles/kernel/geom/geom_curve_intersect.h2
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);