mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-21 09:49:14 +00:00
Bug 1536070 - Enable ASM in dav1d for Tier3 platforms. r=TD-Linux
Differential Revision: https://phabricator.services.mozilla.com/D24361 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
8f4c0bb234
commit
fe1ca24c8b
@ -34,16 +34,24 @@ if CONFIG['CPU_ARCH'] == 'x86':
|
||||
ASFLAGS += ['-I%s/media/libdav1d/asm/x86_32/win/' % TOPSRCDIR]
|
||||
else:
|
||||
ASFLAGS += ['-I%s/media/libdav1d/asm/x86_32/' % TOPSRCDIR]
|
||||
# Default stack aligment can be 4 bytes, change it to 16 bytes.
|
||||
if CONFIG['CC_TYPE'] == 'clang':
|
||||
CFLAGS += ['-mstack-alignment=16']
|
||||
elif CONFIG['CC_TYPE'] == 'gcc':
|
||||
CFLAGS += ['-mpreferred-stack-boundary=4']
|
||||
|
||||
|
||||
if CONFIG['CPU_ARCH'] == 'x86_64':
|
||||
if CONFIG['OS_TARGET'] == 'Linux':
|
||||
ASFLAGS += ['-I%s/media/libdav1d/asm/x86_64/linux/' % TOPSRCDIR]
|
||||
elif CONFIG['OS_TARGET'] == 'Darwin':
|
||||
if CONFIG['OS_TARGET'] == 'Darwin':
|
||||
ASFLAGS += ['-I%s/media/libdav1d/asm/x86_64/osx/' % TOPSRCDIR]
|
||||
elif CONFIG['OS_TARGET'] == 'WINNT':
|
||||
ASFLAGS += ['-I%s/media/libdav1d/asm/x86_64/' % TOPSRCDIR]
|
||||
else:
|
||||
elif CONFIG['OS_TARGET'] == 'Android':
|
||||
error('Platform %s is not expected' % CONFIG['OS_TARGET'])
|
||||
else:
|
||||
# The rest of the platforms are all Linux flavors
|
||||
# Linux,OpenBSD,NetBSD,FreeBSD,DragonFly,SunOS
|
||||
ASFLAGS += ['-I%s/media/libdav1d/asm/x86_64/linux/' % TOPSRCDIR]
|
||||
|
||||
if CONFIG['OS_TARGET'] == 'WINNT':
|
||||
# Change the default stack alignment (16) to 32 bytes.
|
||||
|
@ -30,9 +30,25 @@ SOURCES += [f for f in entrypoint_source_files]
|
||||
DEFINES['DAV1D_API'] = ''
|
||||
|
||||
if CONFIG['MOZ_DAV1D_ASM']:
|
||||
# Default stack alignment is 16 bytes.
|
||||
stack_alignment = 16
|
||||
DIRS += ['asm']
|
||||
|
||||
# Default stack alignment can be 4 bytes on x86.
|
||||
if CONFIG['CPU_ARCH'] == 'x86':
|
||||
# Update stack alignment to 16 bytes.
|
||||
if CONFIG['CC_TYPE'] == 'clang':
|
||||
CFLAGS += ['-mstack-alignment=16']
|
||||
for ep in entrypoint_source_files:
|
||||
SOURCES[ep].flags += ['-mstackrealign']
|
||||
elif CONFIG['CC_TYPE'] == 'gcc':
|
||||
CFLAGS += ['-mpreferred-stack-boundary=4']
|
||||
for ep in entrypoint_source_files:
|
||||
SOURCES[ep].flags += ['-mincoming-stack-boundary=2']
|
||||
|
||||
# Expect stack alignment of 16 bytes.
|
||||
stack_alignment = 16
|
||||
|
||||
# The default stack alignment in x86_64 is 16 bytes. On all Linux flavors the
|
||||
# default is used due to crashes with 32 bytes stack alignment.
|
||||
if CONFIG['OS_TARGET'] == 'WINNT' and CONFIG['CPU_ARCH'] == 'x86_64':
|
||||
stack_alignment = 32
|
||||
# Update stack alignment to 32 bytes.
|
||||
@ -44,6 +60,7 @@ if CONFIG['MOZ_DAV1D_ASM']:
|
||||
CFLAGS += ['-mpreferred-stack-boundary=5']
|
||||
for ep in entrypoint_source_files:
|
||||
SOURCES[ep].flags += ['-mincoming-stack-boundary=4']
|
||||
|
||||
# Set the macro here instead of config.h
|
||||
DEFINES['STACK_ALIGNMENT'] = stack_alignment
|
||||
|
||||
|
@ -663,7 +663,7 @@ pref("media.av1.use-dav1d", true);
|
||||
#elif defined(XP_MACOSX)
|
||||
pref("media.av1.enabled", true);
|
||||
pref("media.av1.use-dav1d", true);
|
||||
#elif defined(XP_LINUX) && !defined(MOZ_WIDGET_ANDROID)
|
||||
#elif defined(XP_UNIX) && !defined(MOZ_WIDGET_ANDROID)
|
||||
pref("media.av1.enabled", true);
|
||||
pref("media.av1.use-dav1d", true);
|
||||
#else
|
||||
|
@ -443,11 +443,7 @@ def av1(value):
|
||||
|
||||
@depends(target, nasm_version, when=av1 & compile_environment)
|
||||
def dav1d_asm(target, nasm_version):
|
||||
if (
|
||||
target.os == 'GNU' and target.kernel == 'Linux' and target.cpu in ('x86', 'x86_64') or
|
||||
target.os == 'WINNT' and target.cpu in ('x86', 'x86_64') or
|
||||
target.os == 'OSX' and target.kernel == 'Darwin' and target.cpu == 'x86_64'
|
||||
):
|
||||
if target.os != 'Android' and target.cpu in ('x86', 'x86_64'):
|
||||
if nasm_version < '2.13':
|
||||
die('nasm 2.13 or greater is required for AV1 support. '
|
||||
'Either install nasm or add --disable-av1 to your configure options.')
|
||||
|
Loading…
x
Reference in New Issue
Block a user