[FFmpeg-devel] [PATCH] checkasm: Test whether direct cycle counter access works
Martin Storsjö
martin at martin.st
Thu Jan 11 14:53:05 EET 2024
This should print a nicer error message than crashing due to
an illegal instruction, if direct cycle counter access isn't
allowed.
This matches the dav1d checkasm commit
95a192549a448b70d9542e840c4e34b60d09b093.
---
tests/checkasm/checkasm.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c
index 994d64e96b..9c5abb53dc 100644
--- a/tests/checkasm/checkasm.c
+++ b/tests/checkasm/checkasm.c
@@ -754,6 +754,14 @@ static int bench_init_kperf(void)
static int bench_init_ffmpeg(void)
{
#ifdef AV_READ_TIME
+ if (!checkasm_save_context()) {
+ checkasm_set_signal_handler_state(1);
+ AV_READ_TIME();
+ checkasm_set_signal_handler_state(0);
+ } else {
+ fprintf(stderr, "checkasm: unable to access cycle counter\n");
+ return -1;
+ }
printf("benchmarking with native FFmpeg timers\n");
return 0;
#else
@@ -927,7 +935,9 @@ int checkasm_bench_func(void)
/* Indicate that the current test has failed */
void checkasm_fail_func(const char *msg, ...)
{
- if (state.current_func_ver->cpu && state.current_func_ver->ok) {
+ if (state.current_func_ver && state.current_func_ver->cpu &&
+ state.current_func_ver->ok)
+ {
va_list arg;
print_cpu_name();
--
2.39.3 (Apple Git-145)
More information about the ffmpeg-devel
mailing list