5e31720b89
On AArch64, the performance counter registers usually are restricted and not accessible from user space. On macOS, we currently use mach_absolute_time() as timer on aarch64. This measures wallclock time but with a very coarse resolution. There is a private API, kperf, that one can use for getting high precision timers though. Unfortunately, it requires running the checkasm binary as root (e.g. with sudo). Also, as it is a private, undocumented API, it can potentially change at any time. This is handled by adding a new meson build option, for switching to this timer. If the timer source in checkasm could be changed at runtime with an option, this wouldn't need to be a build time option. This allows getting benchmarks like this: mc_8tap_regular_w16_hv_8bpc_c: 1522.1 ( 1.00x) mc_8tap_regular_w16_hv_8bpc_neon: 331.8 ( 4.59x) Instead of this: mc_8tap_regular_w16_hv_8bpc_c: 9.0 ( 1.00x) mc_8tap_regular_w16_hv_8bpc_neon: 1.9 ( 4.76x) Co-authored-by: J. Dekker <jdek@itanimul.li>
76 lines
1.7 KiB
Meson
76 lines
1.7 KiB
Meson
# General options
|
|
|
|
option('bitdepths',
|
|
type: 'array',
|
|
choices: ['8', '16'],
|
|
description: 'Enable only specified bitdepths')
|
|
|
|
option('enable_asm',
|
|
type: 'boolean',
|
|
value: true,
|
|
description: 'Build asm files, if available')
|
|
|
|
option('enable_tools',
|
|
type: 'boolean',
|
|
value: true,
|
|
description: 'Build dav1d cli tools')
|
|
|
|
option('enable_examples',
|
|
type: 'boolean',
|
|
value: false,
|
|
description: 'Build dav1d examples')
|
|
|
|
option('enable_tests',
|
|
type: 'boolean',
|
|
value: true,
|
|
description: 'Build dav1d tests')
|
|
|
|
option('enable_seek_stress',
|
|
type: 'boolean',
|
|
value: false,
|
|
description: 'Build seek_stress test tool')
|
|
|
|
option('enable_docs',
|
|
type: 'boolean',
|
|
value: false,
|
|
description: 'Build dav1d documentation')
|
|
|
|
option('logging',
|
|
type: 'boolean',
|
|
value: true,
|
|
description: 'Print error log messages using the provided callback function')
|
|
|
|
option('testdata_tests',
|
|
type: 'boolean',
|
|
value: false,
|
|
description: 'Run tests requiring the test data repository')
|
|
|
|
option('fuzzing_engine',
|
|
type: 'combo',
|
|
choices : ['none', 'libfuzzer', 'oss-fuzz'],
|
|
value: 'none',
|
|
description: 'Select the fuzzing engine')
|
|
|
|
option('fuzzer_ldflags',
|
|
type: 'string',
|
|
description: 'Extra LDFLAGS used during linking of fuzzing binaries')
|
|
|
|
option('stack_alignment',
|
|
type: 'integer',
|
|
value: 0)
|
|
|
|
option('xxhash_muxer',
|
|
type : 'feature',
|
|
value : 'auto')
|
|
|
|
option('trim_dsp',
|
|
type: 'combo',
|
|
choices: ['true', 'false', 'if-release'],
|
|
value: 'if-release',
|
|
description: 'Eliminate redundant DSP functions where possible')
|
|
|
|
option('macos_kperf',
|
|
type: 'boolean',
|
|
value: false,
|
|
description: 'Use the private macOS kperf API for benchmarking')
|