aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Druzenko <vvd@FreeBSD.org>2024-05-19 15:37:58 +0000
committerVladimir Druzenko <vvd@FreeBSD.org>2024-05-19 15:37:58 +0000
commit86ab24e19ebb6f64d34ef2fd10d5185e1c3c742a (patch)
tree74ee213c9455771ef10da4733a20af1d126f4f5d
parenta7f5d6370f90dd2049988a2e2edcb3fc38cb83a6 (diff)
downloadports-86ab24e19ebb6f64d34ef2fd10d5185e1c3c742a.tar.gz
ports-86ab24e19ebb6f64d34ef2fd10d5185e1c3c742a.zip
graphics/bgfx: correction for fix build on i386 with CPUTYPE=nehalem and newer
Previous patch truncating the value to 32-bits before taking the popcount. Upstream made correct patch: https://github.com/ARM-software/astc-encoder/issues/468#issuecomment-2119169136 This patch will be included in next release of the astc-encoder 4.9. Also we can apply this patch to misc/astc-encoder (4.7 in ports). PR: 278722 Fixes: 656401a (fix build on i386 with CPUTYPE=nehalem and newer)
-rw-r--r--graphics/bgfx/files/patch-bimg_3rdparty_astc-encoder_source_astcenc__vecmathlib__sse__4.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/graphics/bgfx/files/patch-bimg_3rdparty_astc-encoder_source_astcenc__vecmathlib__sse__4.h b/graphics/bgfx/files/patch-bimg_3rdparty_astc-encoder_source_astcenc__vecmathlib__sse__4.h
index 1f80efad67d4..2ca0c47c7db0 100644
--- a/graphics/bgfx/files/patch-bimg_3rdparty_astc-encoder_source_astcenc__vecmathlib__sse__4.h
+++ b/graphics/bgfx/files/patch-bimg_3rdparty_astc-encoder_source_astcenc__vecmathlib__sse__4.h
@@ -1,10 +1,11 @@
--- bimg/3rdparty/astc-encoder/source/astcenc_vecmathlib_sse_4.h.orig 2024-03-28 05:00:55 UTC
+++ bimg/3rdparty/astc-encoder/source/astcenc_vecmathlib_sse_4.h
-@@ -1309,5 +1309,7 @@ ASTCENC_SIMD_INLINE int popcount(uint64_t v)
+@@ -1307,7 +1307,7 @@ ASTCENC_SIMD_INLINE vfloat4 dot3(vfloat4 a, vfloat4 b)
+ */
+ ASTCENC_SIMD_INLINE int popcount(uint64_t v)
{
- #if defined(__MINGW32__)
+-#if defined(__MINGW32__)
++#if !defined(__x86_64__)
return static_cast<int>(__builtin_popcountll(v));
-+#elif defined(__FreeBSD__) && !defined(__x86_64__)
-+ return static_cast<int>(_mm_popcnt_u32(static_cast<uint32_t>(v)));
#else
return static_cast<int>(_mm_popcnt_u64(v));