mirror of
https://code.videolan.org/videolan/dav1d
synced 2026-06-11 04:03:05 +00:00
There are a number of benefits tied to the upstream / third-party checkasm version, including: - Improved long-term maintainability, code reuse with other projects, etc. - Vastly improved overall performance / runtime for benchmarking, due primarily to the ability to scale the runtime of each test to that test's complexity. - Much more robust statistical analysis of benchmarking results; including robust outlier rejection, an estimation of the histogram, and the ability to report the variance / stddev in addition to the (trimmed) mean. - Interactive HTML and JSON output formats in addition to CSV/TSV. - More readable and user-friendly output across the board, especially for failures and data dumps (e.g. also showing errors inside padding bytes). - Better cross-platform support, including dynamic fallback of timer implementations on ARM platforms, a better RISC-V harness, and more. There are multiple approaches to how we can solve the problem of integrating this third party checkasm into dav1d, but I think the hybrid approach of loading it as an external dependency, falling back to a meson wrap file, provides the best overall compromise. This avoids the messiness of git e.g. git submodules, while still allowing us to pin individual tags.
71 lines
1.6 KiB
Meson
71 lines
1.6 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')
|