[Bf-blender-cvs] [f112986] master: Cycles: More workarounds for weird crashes on AVX2
Sergey Sharybin
noreply at git.blender.org
Thu Oct 27 12:51:58 CEST 2016
Commit: f11298692b93c79132b77d0795e6bd6080c62480
Author: Sergey Sharybin
Date: Thu Oct 27 12:51:03 2016 +0200
Branches: master
https://developer.blender.org/rBf11298692b93c79132b77d0795e6bd6080c62480
Cycles: More workarounds for weird crashes on AVX2
Oh man, is it a compiler bug? Is it something we do stupid?
For now more crap to prevent crashes. During the conference will talk to
Maxyn about how can we troubleshoot such weird issues.
===================================================================
M intern/cycles/util/util_math.h
M intern/cycles/util/util_transform.h
===================================================================
diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h
index f0c7492..bd376e8 100644
--- a/intern/cycles/util/util_math.h
+++ b/intern/cycles/util/util_math.h
@@ -591,7 +591,8 @@ ccl_device_inline float len_squared(const float4& a)
ccl_device_inline float3 normalize(const float3& a)
{
-#if defined(__KERNEL_SSE41__) && defined(__KERNEL_SSE__)
+ /* TODO(sergey): Disabled for now, causes crashes in certain cases. */
+#if defined(__KERNEL_SSE41__) && defined(__KERNEL_SSE__) && 0
__m128 norm = _mm_sqrt_ps(_mm_dp_ps(a.m128, a.m128, 0x7F));
return _mm_div_ps(a.m128, norm);
#else
@@ -792,7 +793,8 @@ ccl_device_inline float4 operator-(const float4& a)
ccl_device_inline float4 operator*(const float4& a, const float4& b)
{
-#ifdef __KERNEL_SSE__
+ /* TODO(sergey): Disabled for now, causes crashes in certain cases. */
+#if defined(__KERNEL_SSE__) && 0
return _mm_mul_ps(a.m128, b.m128);
#else
return make_float4(a.x*b.x, a.y*b.y, a.z*b.z, a.w*b.w);
@@ -840,7 +842,8 @@ ccl_device_inline float4 operator/(const float4& a, const float4& b)
ccl_device_inline float4 operator+(const float4& a, const float4& b)
{
-#ifdef __KERNEL_SSE__
+ /* TODO(sergey): Disabled for now, causes crashes in certain cases. */
+#if defined(__KERNEL_SSE__) && 0
return _mm_add_ps(a.m128, b.m128);
#else
return make_float4(a.x+b.x, a.y+b.y, a.z+b.z, a.w+b.w);
diff --git a/intern/cycles/util/util_transform.h b/intern/cycles/util/util_transform.h
index a0695f2..ea5eb3b 100644
--- a/intern/cycles/util/util_transform.h
+++ b/intern/cycles/util/util_transform.h
@@ -74,7 +74,7 @@ ccl_device_inline float3 transform_perspective(const Transform *t, const float3
ccl_device_inline float3 transform_point(const Transform *t, const float3 a)
{
/* TODO(sergey): Disabled for now, causes crashes in certain cases. */
-#if defined(__KERNEL_SSE__) && defined(__KERNEL_SSE2__)
+#if defined(__KERNEL_SSE__) && defined(__KERNEL_SSE2__) && 0
ssef x, y, z, w, aa;
aa = a.m128;
@@ -103,7 +103,8 @@ ccl_device_inline float3 transform_point(const Transform *t, const float3 a)
ccl_device_inline float3 transform_direction(const Transform *t, const float3 a)
{
-#if defined(__KERNEL_SSE__) && defined(__KERNEL_SSE2__)
+ /* TODO(sergey): Disabled for now, causes crashes in certain cases. */
+#if defined(__KERNEL_SSE__) && defined(__KERNEL_SSE2__) && 0
ssef x, y, z, w, aa;
aa = a.m128;
x = _mm_loadu_ps(&t->x.x);
More information about the Bf-blender-cvs
mailing list