[Bf-blender-cvs] [1a7eca3] master: Fix T46034: OpenCL kernel compilation error in latest buildbot

Sergey Sharybin noreply at git.blender.org
Mon Sep 7 12:02:49 CEST 2015


Commit: 1a7eca3c54179e831a98490fbf40ee518ae0b341
Author: Sergey Sharybin
Date:   Mon Sep 7 15:01:51 2015 +0500
Branches: master
https://developer.blender.org/rB1a7eca3c54179e831a98490fbf40ee518ae0b341

Fix T46034: OpenCL kernel compilation error in latest buildbot

Simply expanded expression, so no float4->float3 conversion happens.

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

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

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

diff --git a/intern/cycles/kernel/geom/geom_triangle_intersect.h b/intern/cycles/kernel/geom/geom_triangle_intersect.h
index c30c71b..9cda0bc 100644
--- a/intern/cycles/kernel/geom/geom_triangle_intersect.h
+++ b/intern/cycles/kernel/geom/geom_triangle_intersect.h
@@ -173,7 +173,11 @@ ccl_device_inline bool triangle_intersect(KernelGlobals *kg,
 	if(kernel_tex_fetch(__prim_visibility, triAddr) & visibility)
 #endif
 	{
-		if(len_squared(cross(tri_b - tri_a, tri_c - tri_a)) < 1e-16f) {
+		float4 a = tri_b - tri_a, b = tri_c - tri_a;
+		if(len_squared(make_float3(a.y*b.z - a.z*b.y,
+		                           a.z*b.x - a.x*b.z,
+		                           a.x*b.y - a.y*b.x)) < 1e-16f)
+		{
 			return false;
 		}
 		/* Normalize U, V, W, and T. */




More information about the Bf-blender-cvs mailing list