commit:     c46124b30e8e1c5d9ce6a9f017c024116c34c5af
Author:     Sergey Torokhov <torokhov-s-a <AT> yandex <DOT> ru>
AuthorDate: Wed Jul 13 19:36:56 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Jul 14 02:45:54 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c46124b3

media-libs/babl: 0.1.92-r1. Fix universal_nonlinear_rgb_u8_converter_sse2

Thanks-to: Alexander Bezrukov <phmagic <AT> mail.ru>
Closes: https://bugs.gentoo.org/857708
Signed-off-by: Sergey Torokhov <torokhov-s-a <AT> yandex.ru>
Closes: https://github.com/gentoo/gentoo/pull/26393
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-libs/babl/babl-0.1.92-r1.ebuild              | 68 ++++++++++++++++++++++
 ...universal_nonlinear_rgb_u8_converter_sse2.patch | 17 ++++++
 2 files changed, 85 insertions(+)

diff --git a/media-libs/babl/babl-0.1.92-r1.ebuild 
b/media-libs/babl/babl-0.1.92-r1.ebuild
new file mode 100644
index 000000000000..b3532109b4db
--- /dev/null
+++ b/media-libs/babl/babl-0.1.92-r1.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VALA_USE_DEPEND=vapigen
+
+inherit meson gnome2-utils vala
+
+if [[ ${PV} == *9999* ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/babl.git";
+       SRC_URI=""
+else
+       SRC_URI="https://ftp.gimp.org/pub/${PN}/${PV:0:3}/${P}.tar.xz";
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 
~riscv -sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris 
~x86-solaris"
+fi
+
+DESCRIPTION="A dynamic, any to any, pixel format conversion library"
+HOMEPAGE="https://gegl.org/babl/";
+
+LICENSE="LGPL-3"
+SLOT="0"
+IUSE="introspection lcms vala cpu_flags_x86_avx2 cpu_flags_x86_f16c 
cpu_flags_x86_mmx cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse4_1"
+REQUIRED_USE="vala? ( introspection )"
+
+BDEPEND="
+       virtual/pkgconfig
+       vala? ( $(vala_depend) )
+"
+RDEPEND="
+       introspection? ( >=dev-libs/gobject-introspection-1.32:= )
+       lcms? ( >=media-libs/lcms-2.8:2 )
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+       "${FILESDIR}/${P}_universal_nonlinear_rgb_u8_converter_sse2.patch" # 
Bug 857708
+)
+
+src_prepare() {
+       default
+       gnome2_environment_reset
+
+       sed -i -e 's/Description/description/' meson.build || die # bug 843266
+}
+
+src_configure() {
+       use vala && vala_setup
+
+       # Automagic rsvg support is just for website generation we do not call,
+       #     so we don't need to fix it
+       # w3m is used for dist target thus no issue for us that it is 
automagically
+       #     detected
+       local emesonargs=(
+               -Dwith-docs=false
+               $(meson_use introspection enable-gir)
+               $(meson_use lcms with-lcms)
+               $(meson_use vala enable-vapi)
+               $(meson_use cpu_flags_x86_avx2 enable-avx2)
+               $(meson_use cpu_flags_x86_f16c enable-f16c)
+               $(meson_use cpu_flags_x86_mmx enable-mmx)
+               $(meson_use cpu_flags_x86_sse enable-sse)
+               $(meson_use cpu_flags_x86_sse2 enable-sse2)
+               $(meson_use cpu_flags_x86_sse4_1 enable-sse4_1)
+       )
+       meson_src_configure
+}

diff --git 
a/media-libs/babl/files/babl-0.1.92_universal_nonlinear_rgb_u8_converter_sse2.patch
 
b/media-libs/babl/files/babl-0.1.92_universal_nonlinear_rgb_u8_converter_sse2.patch
new file mode 100644
index 000000000000..79ff6ab7843a
--- /dev/null
+++ 
b/media-libs/babl/files/babl-0.1.92_universal_nonlinear_rgb_u8_converter_sse2.patch
@@ -0,0 +1,17 @@
+Fix alignment of vector of floats in babl-rgb-converter.c
+Bug: https://bugs.gentoo.org/857708
+Signed-off-by: Alexander Bezrukov <phma...@mail.ru>
+
+diff -ur a/babl/base/babl-rgb-converter.c b/babl/base/babl-rgb-converter.c
+--- a/babl/base/babl-rgb-converter.c
++++ b/babl/base/babl-rgb-converter.c
+@@ -306,7 +306,8 @@
+   uint8_t *rgb_in_u8 = (void*)src_char;
+   uint8_t *rgb_out_u8 = (void*)dst_char;
+ 
+-  float rgba_out[4*samples];
++  // The alignment is necessary for SIMD intrinsics in 
babl_matrix_mul_vectorff_buf4_sse2()
++  float __attribute__ ((aligned (16))) rgba_out[4*samples];
+ 
+   for (i = 0; i < samples; i++)
+   {

Reply via email to