commit:     7b30162d5662f0ec77c702d7919e2ea3dacccd1c
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Feb  3 19:40:03 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Feb  3 19:50:32 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7b30162d

games-util/basis_universal: fix build w/ AVX

Closes: https://bugs.gentoo.org/892727
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../basis_universal/basis_universal-1.16.3.ebuild  |  1 +
 .../basis_universal-1.16.3-SSE4.1-AVX-checks.patch | 40 ++++++++++++++++++++++
 2 files changed, 41 insertions(+)

diff --git a/games-util/basis_universal/basis_universal-1.16.3.ebuild 
b/games-util/basis_universal/basis_universal-1.16.3.ebuild
index 298c8ecdb705..239d01901831 100644
--- a/games-util/basis_universal/basis_universal-1.16.3.ebuild
+++ b/games-util/basis_universal/basis_universal-1.16.3.ebuild
@@ -24,6 +24,7 @@ RDEPEND="${RDEPEND}"
 PATCHES=(
        "${FILESDIR}"/${PN}-1.16.3-respect-CFLAGS.patch
        "${FILESDIR}"/${PN}-1.16.3-fix-RPATH.patch
+       "${FILESDIR}"/${PN}-1.16.3-SSE4.1-AVX-checks.patch
 )
 
 src_configure() {

diff --git 
a/games-util/basis_universal/files/basis_universal-1.16.3-SSE4.1-AVX-checks.patch
 
b/games-util/basis_universal/files/basis_universal-1.16.3-SSE4.1-AVX-checks.patch
new file mode 100644
index 000000000000..89be7b13482e
--- /dev/null
+++ 
b/games-util/basis_universal/files/basis_universal-1.16.3-SSE4.1-AVX-checks.patch
@@ -0,0 +1,40 @@
+https://bugs.gentoo.org/892727
+https://github.com/BinomialLLC/basis_universal/issues/342
+https://github.com/BinomialLLC/basis_universal/pull/343
+
+From e61fe1e4ff66decbb14f86a1bf8ec4ea40d23bbf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C8=98tefan=20Talpalaru?= <stefantalpal...@yahoo.com>
+Date: Tue, 31 Jan 2023 14:39:17 +0100
+Subject: [PATCH] SIMD: disable compile time checks
+
+SSE4.1 support is checked at runtime, so compile time checks are
+redundant at best and harmful when compiling for a different machine.
+
+Further more, a logic error prevented the use of SSE4.1 on systems with
+any version of AVX available. This is fixed now.
+--- a/encoder/basisu_kernels_sse.cpp
++++ b/encoder/basisu_kernels_sse.cpp
+@@ -22,22 +22,6 @@
+ #include <intrin.h>
+ #endif
+ 
+-#if !defined(_MSC_VER)
+-      #if __AVX__ || __AVX2__ || __AVX512F__
+-              #error Please check your compiler options
+-      #endif
+-      
+-      #if CPPSPMD_SSE2
+-              #if __SSE4_1__ || __SSE3__ || __SSE4_2__ || __SSSE3__
+-                      #error SSE4.1/SSE3/SSE4.2/SSSE3 cannot be enabled to 
use this file
+-              #endif
+-      #else
+-              #if !__SSE4_1__ || !__SSE3__ || !__SSSE3__
+-                      #error Please check your compiler options
+-              #endif
+-      #endif
+-#endif
+-
+ #include "cppspmd_sse.h"
+ 
+ #include "cppspmd_type_aliases.h"
+

Reply via email to