From 3635ac00cbfb8d2bce45283809e6913e12337f29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Du=C5=A1an=20Poizl?= Date: Tue, 29 Oct 2024 19:39:37 +0100 Subject: [PATCH] Fix alpha channel in fromPlanarSSE --- rawimage_sse.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rawimage_sse.cpp b/rawimage_sse.cpp index cf9c8dd..3f0fe84 100644 --- a/rawimage_sse.cpp +++ b/rawimage_sse.cpp @@ -21,7 +21,7 @@ void fromPlanarSSE(const void *in, void *out, size_t count) __m128i r = _mm_loadu_si128(_in[0] + i); __m128i g = _mm_loadu_si128(_in[1] + i); __m128i b = _mm_loadu_si128(_in[2] + i); - if constexpr(ch==4)a = _mm_loadu_si128(_in[3]); + if constexpr(ch==4)a = _mm_loadu_si128(_in[3] + i); __m128i d1 = _mm_unpacklo_epi8(r, b); __m128i d2 = _mm_unpacklo_epi8(g, a); @@ -43,7 +43,7 @@ void fromPlanarSSE(const void *in, void *out, size_t count) __m128i r = _mm_loadu_si128(_in[0] + i); __m128i g = _mm_loadu_si128(_in[1] + i); __m128i b = _mm_loadu_si128(_in[2] + i); - if constexpr(ch==4)a = _mm_loadu_si128(_in[3]); + if constexpr(ch==4)a = _mm_loadu_si128(_in[3] + i); __m128i d1 = _mm_unpacklo_epi16(r, b); __m128i d2 = _mm_unpacklo_epi16(g, a); @@ -66,7 +66,7 @@ void fromPlanarSSE(const void *in, void *out, size_t count) __m128i r = _mm_loadu_si128(_in[0] + i); __m128i g = _mm_loadu_si128(_in[1] + i); __m128i b = _mm_loadu_si128(_in[2] + i); - if constexpr(ch==4)a = _mm_loadu_si128(_in[3]); + if constexpr(ch==4)a = _mm_loadu_si128(_in[3] + i); __m128i d1 = _mm_unpacklo_epi32(r, b); __m128i d2 = _mm_unpacklo_epi32(g, a);