meson: disable SIMD blake optimisations on x32 host

On X.org startup libgallium crashes on x32 hosts inside
blake3_hash_many_sse41(), most likely because of the different pointer
size. Disable SIMD blake implementation if x32 is detected.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34453>
(cherry picked from commit b9c6afd3a7)
This commit is contained in:
Dmitry Baryshkov 2025-04-02 15:30:20 +03:00 committed by Eric Engestrom
parent 40cd43d497
commit a2d71040f3
2 changed files with 5 additions and 1 deletions

View file

@ -6074,7 +6074,7 @@
"description": "meson: disable SIMD blake optimisations on x32 host",
"nominated": false,
"nomination_type": 0,
"resolution": 4,
"resolution": 1,
"main_sha": null,
"because_sha": null,
"notes": null

View file

@ -24,6 +24,10 @@ if cpu_family == 'x86_64'
else
files_blake3 += ['blake3_sse2_x86-64_windows_gnu.S', 'blake3_sse41_x86-64_windows_gnu.S', 'blake3_avx2_x86-64_windows_gnu.S', 'blake3_avx512_x86-64_windows_gnu.S']
endif
# Disable blake assembly for x32, x86-64 with 32-bit pointers.
# GNU triplet is x86_64-linux-gnux32
elif cc.sizeof('void *') == 4
blake3_defs += blake3_x86_no_simd_defs
else
files_blake3 += ['blake3_sse2_x86-64_unix.S', 'blake3_sse41_x86-64_unix.S', 'blake3_avx2_x86-64_unix.S', 'blake3_avx512_x86-64_unix.S']
endif