- Jan 19, 2025
-
-
Jean-Baptiste Kempf authored
-
- Oct 18, 2024
-
-
Martin Storsjö authored
-
Martin Storsjö authored
Locate the assembler tools before checking for support for various assembler features.
-
- Sep 17, 2024
-
-
Jean-Baptiste Kempf authored
-
Jean-Baptiste Kempf authored
-
- Sep 12, 2024
-
-
- Sep 10, 2024
-
-
Kacper Michajłow authored
Instead of generating version.h, move the so version there and parse it in meson.
-
- Sep 05, 2024
-
-
- Aug 29, 2024
-
-
- May 25, 2024
-
-
Jean-Baptiste Kempf authored
-
- Apr 02, 2024
-
-
Martin Storsjö authored
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>
-
- Mar 08, 2024
-
-
Jean-Baptiste Kempf authored
-
Nathan E. Egge authored
arm32: 2 byte alignment saves 136 bytes arm64: 4 byte alignment saves 1200 bytes
-
- Mar 04, 2024
-
-
Martin Storsjö authored
First check if the assembler supports the ".arch" directive, and what architecture levels are supported. In principle, we'd only need to check for support for ".arch armv8.2-a", since that's enough for enabling the i8mm and sve2 extensions. However, recent Clang versions (before version 17) wasn't able to enable the dotprod and i8mm extensions via the ".arch_extension" directives, so check for support for armv8.4-a and armv8.6-a as well, which enable dotprod and i8mm implicitly. This allows assembling these instructions on most commonly available GCC and Clang based toolchains, while still allowing toggling support for the instruction sets on and off within the source files. Within assembly, we disable these extensions by default, so that instructions enabled within these extension sets can't be used by accident in unintended functions. Code meaning to use these extensions can be assembled like this: #if HAVE_SVE ENABLE_SVE // code DISABLE_SVE #endif
-
- Feb 20, 2024
-
-
Matthias Dressel authored
Support for '.option arch' directive [0] was added to binutils in d3ffd7f77654adafe5f1989bdfdbe4a337ff2e8b [1] and in llvm in 9e8ed3403c191ab9c4903e8eeb8f732ff8a43cb4 [2]. [0] https://github.com/riscv-non-isa/riscv-asm-manual/pull/67 [1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=d3ffd7f77654adafe5f1989bdfdbe4a337ff2e8b [2] https://github.com/llvm/llvm-project/commit/9e8ed3403c191ab9c4903e8eeb8f732ff8a43cb4
-
- Feb 13, 2024
-
-
Jean-Baptiste Kempf authored
-
- Jan 31, 2024
-
-
Nathan E. Egge authored
-
- Jan 30, 2024
-
-
Nathan E. Egge authored
For now the only CPU flag we check for is RISC-V Vector extension (RVV).
-
- Jan 21, 2024
-
-
Hecai Yuan authored
-
- Oct 03, 2023
-
-
Jean-Baptiste Kempf authored
-
- Jun 06, 2023
-
-
- Jun 01, 2023
-
-
James Almer authored
All of them are 32 bits values that shall be > 0 Signed-off-by:
James Almer <jamrial@gmail.com>
-
Jean-Baptiste Kempf authored
-
- May 02, 2023
-
-
Jean-Baptiste Kempf authored
-
- Apr 18, 2023
-
-
James Almer authored
Nothing in the spec prevents a Temporal Unit from having more than one Metadata OBU of type ITU-T T.35, so export them as an array instead of only exporting the last one we parse. This is backwards compatible with the previous implementation, as users unaware of this change can ignore the n_itut_t35 field and still access the first (or only) entry in the array as they have been doing until now.
-
- Apr 12, 2023
-
-
James Almer authored
-
- Apr 08, 2023
-
-
Nothing in the spec prevents a Temporal Unit from having more than one Metadata OBU of type ITU-T T.35, so export them as an array instead of only exporting the last one we parse. This is backwards compatible with the previous implementation, as users unaware of this change can ignore the n_itut_t35 field and still access the first (or only) entry in the array as they have been doing until now. Signed-off-by:
James Almer <jamrial@gmail.com>
-
- Mar 03, 2023
-
-
Tristan Matthews authored
This fixes a regression from 7409a189
-
- Feb 14, 2023
-
-
Jean-Baptiste Kempf authored
"From VideoLAN with love"
-
- Jan 31, 2023
-
-
Martin Storsjö authored
Add an option for selecting the core where the single thread of checkasm runs. This allows benchmarking on specific CPU cores on heterogenous CPUs, like ARM big.LITTLE configurations. On Linux, one can easily wrap an invocation of checkasm with "taskset -c <n> [...]" - so this option isn't very essential there - however it is quite useful on Windows. On Windows, it is somewhat possible to do the same by launching the tool with "start /B /affinity <hexmask> [...]", but that doesn't work well with scripting ("start" returns before the command has finished running, and it's not obvious how to invoke "start" from within WSL). Using "taskset" to launch processes on specific cores within WSL on Windows doesn't work - regardless of the Linux level affinity, the process ends up running on the performance cores anyway.
-
- Jan 12, 2023
-
-
The intent was good, but in practice it results in a significant amount of problems due to various compiler bugs for negligible gains.
-
- Dec 14, 2022
-
-
James Almer authored
Should be useful for scenarios like wanting only keyframes to quickly generate a set of preview images of the whole stream.
-
- Oct 30, 2022
- Oct 10, 2022
-
-
Sebastian Dröge authored
Despite not being documented in Meson's list of canonical system names, Meson does accept 'ios' mostly a synonym for darwin. By using 'ios' instead of darwin, it allows distinguishing between the two in the cases where that is necessary. Therefore, within dav1d, allow using the 'ios' name as alias for 'darwin' for system name, to allow using cross files that does this distinction. meson itself also allows 'tvos' in addition to 'ios' in the internal `is_darwin()` function, as such all 3 are handled the same here.
-
- Sep 28, 2022
-
-
Whitespace is added to the result if compiling with MSVC using /std:c11 which breaks various things. Adding strip() fixes the problem.
-
Use explicit parameter type detection and manually clobber the upper bits instead of relying on internal compiler behavior.
-
- Sep 15, 2022
-
-
Martin Storsjö authored
Since meson 0.58.0 (released in May 2021), meson accepts adding '.S' assembly files as source files to the clang-cl compiler. If using an older version of meson, keep using gas-preprocessor just like for MSVC builds.
-
- Sep 10, 2022
-
-
Henrik Gramner authored
-