Author: post
Date: 2010-01-31 11:34:47 +0100 (Sun, 31 Jan 2010)
New Revision: 3140
Modified:
trunk/plugins/lensfun/lensfun-sse2.c
Log:
Lensfun: Fix wrong offsets being used.
Modified: trunk/plugins/lensfun/lensfun-sse2.c
===================================================================
--- trunk/plugins/lensfun/lensfun-sse2.c 2010-01-31 10:21:45 UTC (rev
3139)
+++ trunk/plugins/lensfun/lensfun-sse2.c 2010-01-31 10:34:47 UTC (rev
3140)
@@ -49,10 +49,12 @@
p0 = _mm_load_ps(pos); // y1x1 y0x0
p1 = _mm_load_ps(pos+4); // ---- y2x2
}
-
- __m128 xf = _mm_shuffle_ps(p1, p0, _MM_SHUFFLE(0,2,2,0));
- __m128 yf = _mm_shuffle_ps(p1, p0, _MM_SHUFFLE(1,3,1,1));
-
+
+ // to x2x2 x1x0
+ __m128 xf = _mm_shuffle_ps(p0, p1, _MM_SHUFFLE(0,0,2,0));
+ // to y2y2 y1y0
+ __m128 yf = _mm_shuffle_ps(p0, p1, _MM_SHUFFLE(1,1,3,1));
+
__m128 fl256 = _mm_load_ps(twofiftytwo_ps);
xf = _mm_mul_ps(xf, fl256);
yf = _mm_mul_ps(yf, fl256);
@@ -63,7 +65,8 @@
__m128i _m_h = _mm_slli_epi32(_mm_set1_epi32(m_h), 8);
__m128i x_gt, y_gt;
-
+
+#if 0
/* If positions from lensfun is properly clamped this should not be
needed */
/* Clamping */
x_gt = _mm_cmpgt_epi32(x, _m_w);
@@ -77,6 +80,8 @@
__m128i y_lt = _mm_cmplt_epi32(y, zero);
x = _mm_andnot_si128(x_lt, x);
y = _mm_andnot_si128(y_lt, y);
+#endif
+
__m128i one = _mm_set1_epi32(1);
__m128i nx = _mm_add_epi32(one, _mm_srai_epi32(x, 8));
__m128i ny = _mm_add_epi32(one, _mm_srai_epi32(y, 8));
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit