Commit: 0ddb8d9b13806c0a47224b9f3ba4dd6911cd7a47
Author: Sergey Sharybin
Date:   Fri Oct 14 13:51:59 2016 +0200
Branches: master
https://developer.blender.org/rB0ddb8d9b13806c0a47224b9f3ba4dd6911cd7a47

Cycles: Disable optimization of operator / for float3

This was giving some speedup but made intersection tests to fail
from watertight point of view.

Needs deeper investigation, but need to quickly get it fixed for
the studio.

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

M       intern/cycles/util/util_math.h

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

diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h
index ce2e4e5..b9594f7 100644
--- a/intern/cycles/util/util_math.h
+++ b/intern/cycles/util/util_math.h
@@ -462,12 +462,13 @@ ccl_device_inline float3 operator*(const float f, const 
float3& a)
 
 ccl_device_inline float3 operator/(const float f, const float3& a)
 {
-#ifdef __KERNEL_SSE__
-       __m128 rc = _mm_rcp_ps(a.m128);
-       return float3(_mm_mul_ps(_mm_set1_ps(f),rc));
-#else
+       /* TODO(sergey): Currently disabled, gives speedup but makes 
intersection tets non-watertight. */
+// #ifdef __KERNEL_SSE__
+//     __m128 rc = _mm_rcp_ps(a.m128);
+//     return float3(_mm_mul_ps(_mm_set1_ps(f),rc));
+// #else
        return make_float3(f / a.x, f / a.y, f / a.z);
-#endif
+// #endif
 }
 
 ccl_device_inline float3 operator/(const float3& a, const float f)

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to