mirror of
https://gitee.com/openharmony/third_party_mesa3d
synced 2025-02-17 08:27:39 +00: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
15
meson.build
15
meson.build
@ -502,7 +502,20 @@ foreach a : ['-Wno-override-init', '-Wno-initializer-overrides']
|
||||
endif
|
||||
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
|
||||
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',
|
||||
)
|
||||
|
||||
# TODO: sse41
|
||||
libmesa_sse41 = []
|
||||
|
||||
matypes_h = []
|
||||
if with_asm_arch == 'x86' or with_asm_arch == 'x86_64'
|
||||
gen_matypes = executable(
|
||||
@ -692,6 +689,17 @@ files_libmesa_common += [
|
||||
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(
|
||||
'mesa_classic',
|
||||
[files_libmesa_common, files_libmesa_classic],
|
||||
|
Loading…
x
Reference in New Issue
Block a user