mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 13:50:11 +01:00
meson: Enable SSE4.1 optimizations
This patch checks for an and then enables sse4.1 optimizations if the
host machine will be x86/x86_64.
v2: - Don't compile code, it's unnecessary since we require a compiler
which always has SSE4.1 (Matt)
v3: - x64 -> x86_64 (Matt)
Signed-off-by: Dylan Baker <dylanx.c.baker@intel.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
This commit is contained in:
parent
6a78416dab
commit
84486f6462
2 changed files with 25 additions and 4 deletions
15
meson.build
15
meson.build
|
|
@ -502,7 +502,20 @@ foreach a : ['-Wno-override-init', '-Wno-initializer-overrides']
|
||||||
endif
|
endif
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
# TODO: SSE41 (which is only required for core mesa)
|
if host_machine.cpu_family().startswith('x86')
|
||||||
|
pre_args += '-DHAVE_SSE41'
|
||||||
|
with_sse41 = true
|
||||||
|
sse41_args = ['-msse4.1']
|
||||||
|
|
||||||
|
# GCC on x86 (not x86_64) with -msse* assumes a 16 byte aligned stack, but
|
||||||
|
# that's not guaranteed
|
||||||
|
if host_machine.cpu_family() == 'x86'
|
||||||
|
sse41_args += '-mstackrealign'
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
with_sse41 = false
|
||||||
|
sse41_args = []
|
||||||
|
endif
|
||||||
|
|
||||||
# Check for GCC style atomics
|
# Check for GCC style atomics
|
||||||
if cc.compiles('int main() { int n; return __atomic_load_n(&n, __ATOMIC_ACQUIRE); }',
|
if cc.compiles('int main() { int n; return __atomic_load_n(&n, __ATOMIC_ACQUIRE); }',
|
||||||
|
|
|
||||||
|
|
@ -592,9 +592,6 @@ files_libmesa_gallium = files(
|
||||||
'state_tracker/st_vdpau.h',
|
'state_tracker/st_vdpau.h',
|
||||||
)
|
)
|
||||||
|
|
||||||
# TODO: sse41
|
|
||||||
libmesa_sse41 = []
|
|
||||||
|
|
||||||
matypes_h = []
|
matypes_h = []
|
||||||
if with_asm_arch == 'x86' or with_asm_arch == 'x86_64'
|
if with_asm_arch == 'x86' or with_asm_arch == 'x86_64'
|
||||||
gen_matypes = executable(
|
gen_matypes = executable(
|
||||||
|
|
@ -692,6 +689,17 @@ files_libmesa_common += [
|
||||||
sha1_h,
|
sha1_h,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
if with_sse41
|
||||||
|
libmesa_sse41 = static_library(
|
||||||
|
'mesa_sse41',
|
||||||
|
files('main/streaming-load-memcpy.c', 'main/sse_minmax.c'),
|
||||||
|
c_args : [c_vis_args, c_msvc_compat_args, sse41_args],
|
||||||
|
include_directories : inc_common,
|
||||||
|
)
|
||||||
|
else
|
||||||
|
libmesa_sse41 = []
|
||||||
|
endif
|
||||||
|
|
||||||
libmesa_classic = static_library(
|
libmesa_classic = static_library(
|
||||||
'mesa_classic',
|
'mesa_classic',
|
||||||
[files_libmesa_common, files_libmesa_classic],
|
[files_libmesa_common, files_libmesa_classic],
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue