Fix FPE exception happening when converting linear<->srgb using SIMD
authorSergey Sharybin <sergey.vfx@gmail.com>
Wed, 8 Jun 2016 13:59:55 +0000 (15:59 +0200)
committerSergey Sharybin <sergey.vfx@gmail.com>
Wed, 8 Jun 2016 14:00:34 +0000 (16:00 +0200)
source/blender/blenlib/intern/math_color_inline.c

index 180d62105c463ccde728ee37d0673eeaf5ba7189..abb8ff35a459543ed9ab5ff5d02c55e43c338874 100644 (file)
@@ -65,7 +65,7 @@ MALWAYS_INLINE __m128 linearrgb_to_srgb_v4_simd(const __m128 c)
 
 MINLINE void srgb_to_linearrgb_v3_v3(float linear[3], const float srgb[3])
 {
-       float r[4] = {srgb[0], srgb[1], srgb[2], 0.0f};
+       float r[4] = {srgb[0], srgb[1], srgb[2], 1.0f};
        __m128 *rv = (__m128 *)&r;
        *rv = srgb_to_linearrgb_v4_simd(*rv);
        linear[0] = r[0];
@@ -75,7 +75,7 @@ MINLINE void srgb_to_linearrgb_v3_v3(float linear[3], const float srgb[3])
 
 MINLINE void linearrgb_to_srgb_v3_v3(float srgb[3], const float linear[3])
 {
-       float r[4] = {linear[0], linear[1], linear[2], 0.0f};
+       float r[4] = {linear[0], linear[1], linear[2], 1.0f};
        __m128 *rv = (__m128 *)&r;
        *rv = linearrgb_to_srgb_v4_simd(*rv);
        srgb[0] = r[0];