mirror of
https://salsa.debian.org/xorg-team/lib/pixman
synced 2025-09-01 10:35:16 +00:00
lowlevel-blt-bench: add option to skip memcpy measurement
The memcpy speed measurement takes several seconds. When you are running single tests in a harness that iterates dozens or hundreds of times, the repeated measurements are redundant and take a lot of time. It is also an open question whether the measured speed changes over long test runs due to unidentified platform reasons (Raspberry Pi). Add a command line option to set the reference memcpy speed, skipping the measuring. The speed is mainly used to compute how many iterations do run inside the bench_*() functions, so for repeated testing on the same hardware, it makes sense to lock that number to a constant. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Ben Avison <bavison@riscosopen.org>
This commit is contained in:
parent
31cb0d4267
commit
e2d211ac49
@ -55,7 +55,7 @@ uint32_t *dst;
|
|||||||
uint32_t *src;
|
uint32_t *src;
|
||||||
uint32_t *mask;
|
uint32_t *mask;
|
||||||
|
|
||||||
double bandwidth = 0;
|
double bandwidth = 0.0;
|
||||||
|
|
||||||
double
|
double
|
||||||
bench_memcpy ()
|
bench_memcpy ()
|
||||||
@ -1086,10 +1086,11 @@ print_speed_scaling (double bw)
|
|||||||
static void
|
static void
|
||||||
usage (const char *progname)
|
usage (const char *progname)
|
||||||
{
|
{
|
||||||
printf ("Usage: %s [-b] [-n] [-c] pattern\n", progname);
|
printf ("Usage: %s [-b] [-n] [-c] [-m M] pattern\n", progname);
|
||||||
printf (" -n : benchmark nearest scaling\n");
|
printf (" -n : benchmark nearest scaling\n");
|
||||||
printf (" -b : benchmark bilinear scaling\n");
|
printf (" -b : benchmark bilinear scaling\n");
|
||||||
printf (" -c : print output as CSV data\n");
|
printf (" -c : print output as CSV data\n");
|
||||||
|
printf (" -m M : set reference memcpy speed to M MB/s instead of measuring it\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
@ -1115,6 +1116,9 @@ main (int argc, char *argv[])
|
|||||||
|
|
||||||
if (strchr (argv[i] + 1, 'c'))
|
if (strchr (argv[i] + 1, 'c'))
|
||||||
use_csv_output = TRUE;
|
use_csv_output = TRUE;
|
||||||
|
|
||||||
|
if (strcmp (argv[i], "-m") == 0 && i + 1 < argc)
|
||||||
|
bandwidth = atof (argv[++i]) * 1e6;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1138,7 +1142,8 @@ main (int argc, char *argv[])
|
|||||||
if (!use_csv_output)
|
if (!use_csv_output)
|
||||||
print_explanation ();
|
print_explanation ();
|
||||||
|
|
||||||
bandwidth = bench_memcpy ();
|
if (bandwidth < 1.0)
|
||||||
|
bandwidth = bench_memcpy ();
|
||||||
if (!use_csv_output)
|
if (!use_csv_output)
|
||||||
print_speed_scaling (bandwidth);
|
print_speed_scaling (bandwidth);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user