[Bf-blender-cvs] [290e650] blender-v2.78-release: Fix T49290: Specific .blend with hair crashes in MacOS 2.78 RC1 on render

Sergey Sharybin noreply at git.blender.org
Wed Sep 14 10:38:59 CEST 2016


Commit: 290e6505904592d4e64b490e2c4d3d3822dbea6b
Author: Sergey Sharybin
Date:   Tue Sep 13 10:59:48 2016 +0200
Branches: blender-v2.78-release
https://developer.blender.org/rB290e6505904592d4e64b490e2c4d3d3822dbea6b

Fix T49290: Specific .blend with hair crashes in MacOS 2.78 RC1 on render

The issue was caused by some false-positive empty non-AABB intersection.
Tried to tweak it a bit so it does not record intersection anymore.

Hopefully will work for all platforms. Tested here on iMac and Debian.

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

M	intern/cycles/bvh/bvh.cpp

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

diff --git a/intern/cycles/bvh/bvh.cpp b/intern/cycles/bvh/bvh.cpp
index 09bd03c..7bc9dc3 100644
--- a/intern/cycles/bvh/bvh.cpp
+++ b/intern/cycles/bvh/bvh.cpp
@@ -909,9 +909,23 @@ void QBVH::pack_unaligned_inner(const BVHStackEntry& e,
 		/* We store BB which would never be recorded as intersection
 		 * so kernel might safely assume there are always 4 child nodes.
 		 */
-		for(int j = 1; j < 13; ++j) {
-			data[j][i] = 0.0f;
-		}
+
+		data[1][i] = 1.0f;
+		data[2][i] = 0.0f;
+		data[3][i] = 0.0f;
+
+		data[4][i] = 0.0f;
+		data[5][i] = 0.0f;
+		data[6][i] = 0.0f;
+
+		data[7][i] = 0.0f;
+		data[8][i] = 0.0f;
+		data[9][i] = 0.0f;
+
+		data[10][i] = -FLT_MAX;
+		data[11][i] = -FLT_MAX;
+		data[12][i] = -FLT_MAX;
+
 		data[13][i] = __int_as_float(0);
 	}




More information about the Bf-blender-cvs mailing list