mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-30 12:27:29 +09:00
Enable dav1d SIMD on more architectures
This commit is contained in:
parent
1e73896b07
commit
ad1bfb30d5
19 changed files with 402 additions and 20 deletions
|
|
@ -61,6 +61,7 @@ set_config('HAVE_YASM', have_yasm)
|
||||||
# Until the YASM variable is not necessary in old-configure.
|
# Until the YASM variable is not necessary in old-configure.
|
||||||
add_old_configure_assignment('YASM', have_yasm)
|
add_old_configure_assignment('YASM', have_yasm)
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
# Android NDK
|
# Android NDK
|
||||||
# ==============================================================
|
# ==============================================================
|
||||||
|
|
||||||
|
|
@ -69,6 +70,45 @@ def compiling_android(compile_env, build_project, gonkdir, _):
|
||||||
return compile_env and (gonkdir or build_project in ('mobile/android', 'js'))
|
return compile_env and (gonkdir or build_project in ('mobile/android', 'js'))
|
||||||
|
|
||||||
include('android-ndk.configure', when=compiling_android)
|
include('android-ndk.configure', when=compiling_android)
|
||||||
|
=======
|
||||||
|
# nasm detection
|
||||||
|
# ==============================================================
|
||||||
|
nasm = check_prog('NASM', ['nasm'], allow_missing=True)
|
||||||
|
|
||||||
|
@depends_if(nasm)
|
||||||
|
@checking('nasm version')
|
||||||
|
def nasm_version(nasm):
|
||||||
|
version = check_cmd_output(
|
||||||
|
nasm, '-v',
|
||||||
|
onerror=lambda: die('Failed to get nasm version.')
|
||||||
|
).splitlines()[0].split()[2]
|
||||||
|
return Version(version)
|
||||||
|
|
||||||
|
@depends(nasm, nasm_version)
|
||||||
|
def have_nasm(nasm, version):
|
||||||
|
if nasm and version >= Version('2.14'):
|
||||||
|
return True
|
||||||
|
|
||||||
|
set_config('HAVE_NASM', have_nasm)
|
||||||
|
|
||||||
|
@depends(have_nasm, target)
|
||||||
|
def nasm_asflags(have_nasm, target):
|
||||||
|
if have_nasm:
|
||||||
|
asflags = {
|
||||||
|
('OSX', 'x86'): '-f macho32',
|
||||||
|
('OSX', 'x86_64'): '-f macho64',
|
||||||
|
('WINNT', 'x86'): '-f win32',
|
||||||
|
('WINNT', 'x86_64'): '-f win64',
|
||||||
|
}.get((target.os, target.cpu), None)
|
||||||
|
if asflags is None:
|
||||||
|
if target.cpu == 'x86':
|
||||||
|
asflags = '-f elf32'
|
||||||
|
elif target.cpu == 'x86_64':
|
||||||
|
asflags = '-f elf64'
|
||||||
|
return asflags
|
||||||
|
|
||||||
|
set_config('NASM_ASFLAGS', nasm_asflags)
|
||||||
|
>>>>>>> 2d3d34f993 (Enable dav1d SIMD on more architectures)
|
||||||
|
|
||||||
# MacOS deployment target version
|
# MacOS deployment target version
|
||||||
# ==============================================================
|
# ==============================================================
|
||||||
|
|
|
||||||
79
media/libdav1d/arm/moz.build
Normal file
79
media/libdav1d/arm/moz.build
Normal file
|
|
@ -0,0 +1,79 @@
|
||||||
|
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
SOURCES += [
|
||||||
|
'/media/libdav1d/src/src/arm/cpu.c',
|
||||||
|
]
|
||||||
|
|
||||||
|
if CONFIG['CPU_ARCH'] == 'aarch64':
|
||||||
|
SOURCES += [
|
||||||
|
'/media/libdav1d/src/src/arm/64/cdef.S',
|
||||||
|
'/media/libdav1d/src/src/arm/64/cdef16.S',
|
||||||
|
'/media/libdav1d/src/src/arm/64/filmgrain.S',
|
||||||
|
'/media/libdav1d/src/src/arm/64/filmgrain16.S',
|
||||||
|
'/media/libdav1d/src/src/arm/64/ipred.S',
|
||||||
|
'/media/libdav1d/src/src/arm/64/ipred16.S',
|
||||||
|
'/media/libdav1d/src/src/arm/64/itx.S',
|
||||||
|
'/media/libdav1d/src/src/arm/64/itx16.S',
|
||||||
|
'/media/libdav1d/src/src/arm/64/loopfilter.S',
|
||||||
|
'/media/libdav1d/src/src/arm/64/loopfilter16.S',
|
||||||
|
'/media/libdav1d/src/src/arm/64/looprestoration.S',
|
||||||
|
'/media/libdav1d/src/src/arm/64/looprestoration16.S',
|
||||||
|
'/media/libdav1d/src/src/arm/64/looprestoration_common.S',
|
||||||
|
'/media/libdav1d/src/src/arm/64/mc.S',
|
||||||
|
'/media/libdav1d/src/src/arm/64/mc16.S',
|
||||||
|
'/media/libdav1d/src/src/arm/64/mc16_sve.S',
|
||||||
|
'/media/libdav1d/src/src/arm/64/mc_dotprod.S',
|
||||||
|
'/media/libdav1d/src/src/arm/64/msac.S',
|
||||||
|
'/media/libdav1d/src/src/arm/64/refmvs.S',
|
||||||
|
]
|
||||||
|
else:
|
||||||
|
SOURCES += [
|
||||||
|
'/media/libdav1d/src/src/arm/32/cdef.S',
|
||||||
|
'/media/libdav1d/src/src/arm/32/cdef16.S',
|
||||||
|
'/media/libdav1d/src/src/arm/32/filmgrain.S',
|
||||||
|
'/media/libdav1d/src/src/arm/32/filmgrain16.S',
|
||||||
|
'/media/libdav1d/src/src/arm/32/ipred.S',
|
||||||
|
'/media/libdav1d/src/src/arm/32/ipred16.S',
|
||||||
|
'/media/libdav1d/src/src/arm/32/itx.S',
|
||||||
|
'/media/libdav1d/src/src/arm/32/itx16.S',
|
||||||
|
'/media/libdav1d/src/src/arm/32/loopfilter.S',
|
||||||
|
'/media/libdav1d/src/src/arm/32/loopfilter16.S',
|
||||||
|
'/media/libdav1d/src/src/arm/32/looprestoration.S',
|
||||||
|
'/media/libdav1d/src/src/arm/32/looprestoration16.S',
|
||||||
|
'/media/libdav1d/src/src/arm/32/looprestoration_common.S',
|
||||||
|
'/media/libdav1d/src/src/arm/32/mc.S',
|
||||||
|
'/media/libdav1d/src/src/arm/32/mc16.S',
|
||||||
|
'/media/libdav1d/src/src/arm/32/msac.S',
|
||||||
|
'/media/libdav1d/src/src/arm/32/refmvs.S',
|
||||||
|
]
|
||||||
|
|
||||||
|
ASFLAGS += [
|
||||||
|
'-I%s/media/libdav1d/config' % TOPSRCDIR,
|
||||||
|
'-I%s/media/libdav1d/src' % TOPSRCDIR,
|
||||||
|
]
|
||||||
|
|
||||||
|
if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['CLANG_CXX']:
|
||||||
|
ASFLAGS += [
|
||||||
|
'-no-integrated-as',
|
||||||
|
]
|
||||||
|
|
||||||
|
LOCAL_INCLUDES += [
|
||||||
|
'/media/libdav1d/config',
|
||||||
|
'/media/libdav1d/src',
|
||||||
|
'/media/libdav1d/src/include',
|
||||||
|
'/media/libdav1d/src/include/dav1d',
|
||||||
|
]
|
||||||
|
|
||||||
|
FINAL_LIBRARY = 'gkmedias'
|
||||||
|
|
||||||
|
ALLOW_COMPILER_WARNINGS = True
|
||||||
|
|
||||||
|
if CONFIG['GNU_CC'] or CONFIG['CLANG_CL']:
|
||||||
|
CFLAGS += [
|
||||||
|
'-Wno-sign-compare',
|
||||||
|
'-Wno-unused-function',
|
||||||
|
'-Wno-unused-parameter',
|
||||||
|
]
|
||||||
65
media/libdav1d/config/config.asm
Normal file
65
media/libdav1d/config/config.asm
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
; Mozilla build configuration for bundled dav1d x86 assembly.
|
||||||
|
|
||||||
|
%define private_prefix dav1d
|
||||||
|
|
||||||
|
%ifndef ARCH_X86_64
|
||||||
|
%ifidn __OUTPUT_FORMAT__,elf64
|
||||||
|
%define ARCH_X86_64 1
|
||||||
|
%elifidn __OUTPUT_FORMAT__,macho64
|
||||||
|
%define ARCH_X86_64 1
|
||||||
|
%elifidn __OUTPUT_FORMAT__,win64
|
||||||
|
%define ARCH_X86_64 1
|
||||||
|
%elifidn __OUTPUT_FORMAT__,x64
|
||||||
|
%define ARCH_X86_64 1
|
||||||
|
%else
|
||||||
|
%define ARCH_X86_64 0
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%ifndef ARCH_X86_32
|
||||||
|
%if ARCH_X86_64
|
||||||
|
%define ARCH_X86_32 0
|
||||||
|
%else
|
||||||
|
%define ARCH_X86_32 1
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%ifndef STACK_ALIGNMENT
|
||||||
|
%if ARCH_X86_64
|
||||||
|
%define STACK_ALIGNMENT 16
|
||||||
|
%elifidn __OUTPUT_FORMAT__,elf
|
||||||
|
%define STACK_ALIGNMENT 16
|
||||||
|
%elifidn __OUTPUT_FORMAT__,elf32
|
||||||
|
%define STACK_ALIGNMENT 16
|
||||||
|
%elifidn __OUTPUT_FORMAT__,macho
|
||||||
|
%define STACK_ALIGNMENT 16
|
||||||
|
%elifidn __OUTPUT_FORMAT__,macho32
|
||||||
|
%define STACK_ALIGNMENT 16
|
||||||
|
%else
|
||||||
|
%define STACK_ALIGNMENT 4
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%ifndef PIC
|
||||||
|
%ifidn __OUTPUT_FORMAT__,win32
|
||||||
|
%define PIC 0
|
||||||
|
%else
|
||||||
|
%define PIC 1
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%ifndef FORCE_VEX_ENCODING
|
||||||
|
%define FORCE_VEX_ENCODING 0
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%ifidn __OUTPUT_FORMAT__,win32
|
||||||
|
%if ARCH_X86_32
|
||||||
|
%define PREFIX 1
|
||||||
|
%endif
|
||||||
|
%elifidn __OUTPUT_FORMAT__,macho
|
||||||
|
%define PREFIX 1
|
||||||
|
%elifidn __OUTPUT_FORMAT__,macho32
|
||||||
|
%define PREFIX 1
|
||||||
|
%elifidn __OUTPUT_FORMAT__,macho64
|
||||||
|
%define PREFIX 1
|
||||||
|
%endif
|
||||||
|
|
@ -36,7 +36,10 @@
|
||||||
# define ARCH_LOONGARCH64 0
|
# define ARCH_LOONGARCH64 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__powerpc64__) && defined(_LITTLE_ENDIAN)
|
#if defined(__powerpc64__) && \
|
||||||
|
(defined(_LITTLE_ENDIAN) || defined(__LITTLE_ENDIAN__) || \
|
||||||
|
(defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && \
|
||||||
|
__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__))
|
||||||
# define ARCH_PPC64LE 1
|
# define ARCH_PPC64LE 1
|
||||||
#else
|
#else
|
||||||
# define ARCH_PPC64LE 0
|
# define ARCH_PPC64LE 0
|
||||||
|
|
@ -58,13 +61,37 @@
|
||||||
#define CONFIG_16BPC 1
|
#define CONFIG_16BPC 1
|
||||||
#define CONFIG_LOG 0
|
#define CONFIG_LOG 0
|
||||||
#define CONFIG_MACOS_KPERF 0
|
#define CONFIG_MACOS_KPERF 0
|
||||||
#if ARCH_LOONGARCH64
|
#if ARCH_AARCH64 || ARCH_ARM || ARCH_LOONGARCH64 || ARCH_PPC64LE || ARCH_X86
|
||||||
# define HAVE_ASM 1
|
# define HAVE_ASM 1
|
||||||
#else
|
#else
|
||||||
# define HAVE_ASM 0
|
# define HAVE_ASM 0
|
||||||
#endif
|
#endif
|
||||||
#define TRIM_DSP_FUNCTIONS 0
|
#define TRIM_DSP_FUNCTIONS 0
|
||||||
|
|
||||||
|
#define HAVE_AS_FUNC 0
|
||||||
|
#if ARCH_AARCH64
|
||||||
|
# define HAVE_AS_ARCH_DIRECTIVE 1
|
||||||
|
# define AS_ARCH_LEVEL armv8-a
|
||||||
|
# define HAVE_AS_ARCHEXT_DOTPROD_DIRECTIVE 1
|
||||||
|
# define HAVE_AS_ARCHEXT_I8MM_DIRECTIVE 1
|
||||||
|
# define HAVE_AS_ARCHEXT_SVE_DIRECTIVE 1
|
||||||
|
# define HAVE_AS_ARCHEXT_SVE2_DIRECTIVE 1
|
||||||
|
# define HAVE_DOTPROD 1
|
||||||
|
# define HAVE_I8MM 1
|
||||||
|
# define HAVE_SVE 1
|
||||||
|
# define HAVE_SVE2 1
|
||||||
|
#else
|
||||||
|
# define HAVE_AS_ARCH_DIRECTIVE 0
|
||||||
|
# define HAVE_AS_ARCHEXT_DOTPROD_DIRECTIVE 0
|
||||||
|
# define HAVE_AS_ARCHEXT_I8MM_DIRECTIVE 0
|
||||||
|
# define HAVE_AS_ARCHEXT_SVE_DIRECTIVE 0
|
||||||
|
# define HAVE_AS_ARCHEXT_SVE2_DIRECTIVE 0
|
||||||
|
# define HAVE_DOTPROD 0
|
||||||
|
# define HAVE_I8MM 0
|
||||||
|
# define HAVE_SVE 0
|
||||||
|
# define HAVE_SVE2 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#define HAVE_ALIGNED_ALLOC 0
|
#define HAVE_ALIGNED_ALLOC 0
|
||||||
#define HAVE_DLSYM 0
|
#define HAVE_DLSYM 0
|
||||||
#define HAVE_ELF_AUX_INFO 0
|
#define HAVE_ELF_AUX_INFO 0
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,13 @@ bitdepth_sources = [
|
||||||
SOURCES += common_sources
|
SOURCES += common_sources
|
||||||
SOURCES += bitdepth_sources
|
SOURCES += bitdepth_sources
|
||||||
|
|
||||||
|
if CONFIG['CPU_ARCH'].startswith('x86'):
|
||||||
|
DIRS += ['x86']
|
||||||
|
elif CONFIG['CPU_ARCH'] in ('arm', 'aarch64'):
|
||||||
|
DIRS += ['arm']
|
||||||
|
elif CONFIG['CPU_ARCH'] == 'ppc64' and CONFIG['TARGET_ENDIANNESS'] == 'little':
|
||||||
|
DIRS += ['ppc']
|
||||||
|
|
||||||
if CONFIG['OS_TARGET'] == 'WINNT':
|
if CONFIG['OS_TARGET'] == 'WINNT':
|
||||||
SOURCES += [
|
SOURCES += [
|
||||||
'/media/libdav1d/src/src/win32/thread.c',
|
'/media/libdav1d/src/src/win32/thread.c',
|
||||||
|
|
|
||||||
55
media/libdav1d/ppc/moz.build
Normal file
55
media/libdav1d/ppc/moz.build
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
vsx_sources = [
|
||||||
|
'ppc_cdef_vsx_16bpc.c',
|
||||||
|
'ppc_cdef_vsx_8bpc.c',
|
||||||
|
'ppc_looprestoration_vsx_16bpc.c',
|
||||||
|
'ppc_looprestoration_vsx_8bpc.c',
|
||||||
|
]
|
||||||
|
|
||||||
|
pwr9_sources = [
|
||||||
|
'ppc_itx_pwr9_16bpc.c',
|
||||||
|
'ppc_itx_pwr9_8bpc.c',
|
||||||
|
'ppc_loopfilter_pwr9_16bpc.c',
|
||||||
|
'ppc_loopfilter_pwr9_8bpc.c',
|
||||||
|
'ppc_mc_pwr9_16bpc.c',
|
||||||
|
'ppc_mc_pwr9_8bpc.c',
|
||||||
|
]
|
||||||
|
|
||||||
|
SOURCES += [
|
||||||
|
'/media/libdav1d/src/src/ppc/cpu.c',
|
||||||
|
]
|
||||||
|
SOURCES += pwr9_sources
|
||||||
|
SOURCES += vsx_sources
|
||||||
|
|
||||||
|
for f in pwr9_sources:
|
||||||
|
SOURCES[f].flags += [
|
||||||
|
'-mcpu=power9',
|
||||||
|
]
|
||||||
|
|
||||||
|
for f in vsx_sources:
|
||||||
|
SOURCES[f].flags += [
|
||||||
|
'-maltivec',
|
||||||
|
'-mvsx',
|
||||||
|
]
|
||||||
|
|
||||||
|
LOCAL_INCLUDES += [
|
||||||
|
'/media/libdav1d/config',
|
||||||
|
'/media/libdav1d/src',
|
||||||
|
'/media/libdav1d/src/include',
|
||||||
|
'/media/libdav1d/src/include/dav1d',
|
||||||
|
]
|
||||||
|
|
||||||
|
FINAL_LIBRARY = 'gkmedias'
|
||||||
|
|
||||||
|
ALLOW_COMPILER_WARNINGS = True
|
||||||
|
|
||||||
|
if CONFIG['GNU_CC'] or CONFIG['CLANG_CL']:
|
||||||
|
CFLAGS += [
|
||||||
|
'-Wno-sign-compare',
|
||||||
|
'-Wno-unused-function',
|
||||||
|
'-Wno-unused-parameter',
|
||||||
|
]
|
||||||
3
media/libdav1d/ppc/ppc_cdef_vsx_16bpc.c
Normal file
3
media/libdav1d/ppc/ppc_cdef_vsx_16bpc.c
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#define BITDEPTH 16
|
||||||
|
#define DAV1D_VSX 1
|
||||||
|
#include "../src/src/ppc/cdef_tmpl.c"
|
||||||
3
media/libdav1d/ppc/ppc_cdef_vsx_8bpc.c
Normal file
3
media/libdav1d/ppc/ppc_cdef_vsx_8bpc.c
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#define BITDEPTH 8
|
||||||
|
#define DAV1D_VSX 1
|
||||||
|
#include "../src/src/ppc/cdef_tmpl.c"
|
||||||
3
media/libdav1d/ppc/ppc_itx_pwr9_16bpc.c
Normal file
3
media/libdav1d/ppc/ppc_itx_pwr9_16bpc.c
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#define BITDEPTH 16
|
||||||
|
#define DAV1D_PWR9 1
|
||||||
|
#include "../src/src/ppc/itx_tmpl.c"
|
||||||
3
media/libdav1d/ppc/ppc_itx_pwr9_8bpc.c
Normal file
3
media/libdav1d/ppc/ppc_itx_pwr9_8bpc.c
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#define BITDEPTH 8
|
||||||
|
#define DAV1D_PWR9 1
|
||||||
|
#include "../src/src/ppc/itx_tmpl.c"
|
||||||
3
media/libdav1d/ppc/ppc_loopfilter_pwr9_16bpc.c
Normal file
3
media/libdav1d/ppc/ppc_loopfilter_pwr9_16bpc.c
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#define BITDEPTH 16
|
||||||
|
#define DAV1D_PWR9 1
|
||||||
|
#include "../src/src/ppc/loopfilter_tmpl.c"
|
||||||
3
media/libdav1d/ppc/ppc_loopfilter_pwr9_8bpc.c
Normal file
3
media/libdav1d/ppc/ppc_loopfilter_pwr9_8bpc.c
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#define BITDEPTH 8
|
||||||
|
#define DAV1D_PWR9 1
|
||||||
|
#include "../src/src/ppc/loopfilter_tmpl.c"
|
||||||
3
media/libdav1d/ppc/ppc_looprestoration_vsx_16bpc.c
Normal file
3
media/libdav1d/ppc/ppc_looprestoration_vsx_16bpc.c
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#define BITDEPTH 16
|
||||||
|
#define DAV1D_VSX 1
|
||||||
|
#include "../src/src/ppc/looprestoration_tmpl.c"
|
||||||
3
media/libdav1d/ppc/ppc_looprestoration_vsx_8bpc.c
Normal file
3
media/libdav1d/ppc/ppc_looprestoration_vsx_8bpc.c
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#define BITDEPTH 8
|
||||||
|
#define DAV1D_VSX 1
|
||||||
|
#include "../src/src/ppc/looprestoration_tmpl.c"
|
||||||
3
media/libdav1d/ppc/ppc_mc_pwr9_16bpc.c
Normal file
3
media/libdav1d/ppc/ppc_mc_pwr9_16bpc.c
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#define BITDEPTH 16
|
||||||
|
#define DAV1D_PWR9 1
|
||||||
|
#include "../src/src/ppc/mc_tmpl.c"
|
||||||
3
media/libdav1d/ppc/ppc_mc_pwr9_8bpc.c
Normal file
3
media/libdav1d/ppc/ppc_mc_pwr9_8bpc.c
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#define BITDEPTH 8
|
||||||
|
#define DAV1D_PWR9 1
|
||||||
|
#include "../src/src/ppc/mc_tmpl.c"
|
||||||
79
media/libdav1d/x86/moz.build
Normal file
79
media/libdav1d/x86/moz.build
Normal file
|
|
@ -0,0 +1,79 @@
|
||||||
|
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
SOURCES += [
|
||||||
|
'/media/libdav1d/src/src/x86/cdef16_avx2.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/cdef16_avx512.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/cdef16_sse.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/cdef_avx2.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/cdef_avx512.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/cdef_sse.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/cpuid.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/cpu.c',
|
||||||
|
'/media/libdav1d/src/src/x86/filmgrain16_avx2.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/filmgrain16_avx512.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/filmgrain16_sse.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/filmgrain_avx2.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/filmgrain_avx512.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/filmgrain_sse.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/ipred16_avx2.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/ipred16_avx512.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/ipred16_sse.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/ipred_avx2.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/ipred_avx512.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/ipred_sse.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/itx16_avx2.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/itx16_avx512.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/itx16_sse.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/itx_avx2.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/itx_avx512.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/itx_sse.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/loopfilter16_avx2.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/loopfilter16_avx512.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/loopfilter16_sse.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/loopfilter_avx2.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/loopfilter_avx512.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/loopfilter_sse.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/looprestoration16_avx2.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/looprestoration16_avx512.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/looprestoration16_sse.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/looprestoration_avx2.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/looprestoration_avx512.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/looprestoration_sse.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/mc16_avx2.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/mc16_avx512.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/mc16_sse.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/mc_avx2.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/mc_avx512.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/mc_sse.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/msac.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/pal.asm',
|
||||||
|
'/media/libdav1d/src/src/x86/refmvs.asm',
|
||||||
|
]
|
||||||
|
|
||||||
|
USE_NASM = True
|
||||||
|
|
||||||
|
ASFLAGS += [
|
||||||
|
'-I%s/media/libdav1d/config/' % TOPSRCDIR,
|
||||||
|
'-I%s/media/libdav1d/src/src/' % TOPSRCDIR,
|
||||||
|
]
|
||||||
|
|
||||||
|
LOCAL_INCLUDES += [
|
||||||
|
'/media/libdav1d/config',
|
||||||
|
'/media/libdav1d/src',
|
||||||
|
'/media/libdav1d/src/include',
|
||||||
|
'/media/libdav1d/src/include/dav1d',
|
||||||
|
]
|
||||||
|
|
||||||
|
FINAL_LIBRARY = 'gkmedias'
|
||||||
|
|
||||||
|
ALLOW_COMPILER_WARNINGS = True
|
||||||
|
|
||||||
|
if CONFIG['GNU_CC'] or CONFIG['CLANG_CL']:
|
||||||
|
CFLAGS += [
|
||||||
|
'-Wno-sign-compare',
|
||||||
|
'-Wno-unused-function',
|
||||||
|
'-Wno-unused-parameter',
|
||||||
|
]
|
||||||
|
|
@ -1803,6 +1803,17 @@ VARIABLES = {
|
||||||
If yasm is not available on this system, or does not support the
|
If yasm is not available on this system, or does not support the
|
||||||
current target architecture, an error will be raised.
|
current target architecture, an error will be raised.
|
||||||
"""),
|
"""),
|
||||||
|
|
||||||
|
'USE_NASM': (bool, bool,
|
||||||
|
"""Use the nasm assembler to assemble assembly files from SOURCES.
|
||||||
|
|
||||||
|
By default, the build will use the toolchain assembler, $(AS), to
|
||||||
|
assemble source files in assembly language (.s or .asm files). Setting
|
||||||
|
this value to ``True`` will cause it to use nasm instead.
|
||||||
|
|
||||||
|
If nasm is not available on this system, or does not support the
|
||||||
|
current target architecture, an error will be raised.
|
||||||
|
"""),
|
||||||
}
|
}
|
||||||
|
|
||||||
# Sanity check: we don't want any variable above to have a list as storage type.
|
# Sanity check: we don't want any variable above to have a list as storage type.
|
||||||
|
|
|
||||||
|
|
@ -1005,24 +1005,13 @@ class TreeMetadataEmitter(LoggingMixin):
|
||||||
passthru.variables['AS'] = yasm
|
passthru.variables['AS'] = yasm
|
||||||
passthru.variables['ASFLAGS'] = context.config.substs.get('YASM_ASFLAGS')
|
passthru.variables['ASFLAGS'] = context.config.substs.get('YASM_ASFLAGS')
|
||||||
passthru.variables['AS_DASH_C_FLAG'] = ''
|
passthru.variables['AS_DASH_C_FLAG'] = ''
|
||||||
|
if context.get('USE_NASM') is True:
|
||||||
for (symbol, cls) in [
|
nasm = context.config.substs.get('NASM')
|
||||||
('ANDROID_RES_DIRS', AndroidResDirs),
|
if not nasm or not context.config.substs.get('HAVE_NASM'):
|
||||||
('ANDROID_EXTRA_RES_DIRS', AndroidExtraResDirs),
|
raise SandboxValidationError('nasm 2.14 or later is not available', context)
|
||||||
('ANDROID_ASSETS_DIRS', AndroidAssetsDirs)]:
|
passthru.variables['AS'] = nasm
|
||||||
paths = context.get(symbol)
|
passthru.variables['ASFLAGS'] = context.config.substs.get('NASM_ASFLAGS')
|
||||||
if not paths:
|
passthru.variables['AS_DASH_C_FLAG'] = ''
|
||||||
continue
|
|
||||||
for p in paths:
|
|
||||||
if isinstance(p, SourcePath) and not os.path.isdir(p.full_path):
|
|
||||||
raise SandboxValidationError('Directory listed in '
|
|
||||||
'%s is not a directory: \'%s\'' %
|
|
||||||
(symbol, p.full_path), context)
|
|
||||||
yield cls(context, paths)
|
|
||||||
|
|
||||||
android_extra_packages = context.get('ANDROID_EXTRA_PACKAGES')
|
|
||||||
if android_extra_packages:
|
|
||||||
yield AndroidExtraPackages(context, android_extra_packages)
|
|
||||||
|
|
||||||
if passthru.variables:
|
if passthru.variables:
|
||||||
yield passthru
|
yield passthru
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue