[Bf-blender-cvs] [537d7c038a] temp-cycles-denoising: Cycles Denoising: Cleanup safe_isfinite

Lukas Stockner noreply at git.blender.org
Fri Mar 24 20:18:37 CET 2017


Commit: 537d7c038a67a6eeea6fe3e0514a5505b8cc0255
Author: Lukas Stockner
Date:   Thu Mar 23 23:41:50 2017 +0100
Branches: temp-cycles-denoising
https://developer.blender.org/rB537d7c038a67a6eeea6fe3e0514a5505b8cc0255

Cycles Denoising: Cleanup safe_isfinite

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

M	intern/cycles/util/util_math.h

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

diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h
index da4bc53778..6fa558dda5 100644
--- a/intern/cycles/util/util_math.h
+++ b/intern/cycles/util/util_math.h
@@ -1718,20 +1718,15 @@ ccl_device_inline int util_max_axis(float3 vec)
 
 /* An implementation of isfinite that works in combination with -ffast-math.
  * In IEEE 754 floats, bits 24 to 31 store the exponent, and an exponent of 0xff means either inf or nan. */
-ccl_device_inline float safe_isfinite(float v)
+ccl_device_inline bool safe_isfinite(float v)
 {
-	union {
-		int i;
-		float v;
-	} u;
-	u.v = v;
-	return (u.i & 0x7f800000) != 0x7f800000;
+	return (__float_as_int(v) & 0x7f800000) != 0x7f800000;
 }
 
 ccl_device_inline float ensure_finite(float v)
 {
 	return safe_isfinite(v)? v : 0.0f;
-};
+}
 
 ccl_device_inline float3 ensure_finite3(float3 v)
 {




More information about the Bf-blender-cvs mailing list