[Bf-blender-cvs] [267e75158a3] master: Fix T52322: denoiser broken on Windows after recent changes.

Brecht Van Lommel noreply at git.blender.org
Fri Aug 11 01:11:22 CEST 2017


Commit: 267e75158a32d8051a95e4fa9b6feba33ee2d586
Author: Brecht Van Lommel
Date:   Thu Aug 10 23:38:20 2017 +0200
Branches: master
https://developer.blender.org/rB267e75158a32d8051a95e4fa9b6feba33ee2d586

Fix T52322: denoiser broken on Windows after recent changes.

It's not clear why this only happened on Windows, but the code
was wrong and should do a bitcast here instead of conversion.

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

M	intern/cycles/util/util_math_float4.h

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

diff --git a/intern/cycles/util/util_math_float4.h b/intern/cycles/util/util_math_float4.h
index 57befea66c4..aa7e56fefe9 100644
--- a/intern/cycles/util/util_math_float4.h
+++ b/intern/cycles/util/util_math_float4.h
@@ -176,8 +176,7 @@ ccl_device_inline float4 operator/=(float4& a, float f)
 ccl_device_inline int4 operator<(const float4& a, const float4& b)
 {
 #ifdef __KERNEL_SSE__
-	/* TODO(sergey): avoid cvt. */
-	return int4(_mm_cvtps_epi32(_mm_cmplt_ps(a.m128, b.m128)));
+	return int4(_mm_castps_si128(_mm_cmplt_ps(a.m128, b.m128)));
 #else
 	return make_int4(a.x < b.x, a.y < b.y, a.z < b.z, a.w < b.w);
 #endif
@@ -186,8 +185,7 @@ ccl_device_inline int4 operator<(const float4& a, const float4& b)
 ccl_device_inline int4 operator>=(const float4& a, const float4& b)
 {
 #ifdef __KERNEL_SSE__
-	/* TODO(sergey): avoid cvt. */
-	return int4(_mm_cvtps_epi32(_mm_cmpge_ps(a.m128, b.m128)));
+	return int4(_mm_castps_si128(_mm_cmpge_ps(a.m128, b.m128)));
 #else
 	return make_int4(a.x >= b.x, a.y >= b.y, a.z >= b.z, a.w >= b.w);
 #endif
@@ -196,8 +194,7 @@ ccl_device_inline int4 operator>=(const float4& a, const float4& b)
 ccl_device_inline int4 operator<=(const float4& a, const float4& b)
 {
 #ifdef __KERNEL_SSE__
-	/* TODO(sergey): avoid cvt. */
-	return int4(_mm_cvtps_epi32(_mm_cmple_ps(a.m128, b.m128)));
+	return int4(_mm_castps_si128(_mm_cmple_ps(a.m128, b.m128)));
 #else
 	return make_int4(a.x <= b.x, a.y <= b.y, a.z <= b.z, a.w <= b.w);
 #endif




More information about the Bf-blender-cvs mailing list