summaryrefslogtreecommitdiff
path: root/perf/cairo-perf.c
AgeCommit message (Collapse)AuthorFilesLines
2007-01-31Add "rectangles" perf testDan Amelang1-0/+1
This test draws many small, solid pixel-aligned rectangles one at a time.
2007-01-09Add unaligned_clip perf case courtesy of Jeff MuizelaarCarl Worth1-0/+1
Conflicts: perf/Makefile.am perf/cairo-perf.c perf/cairo-perf.h
2007-01-05Add long-lines perf caseCarl Worth1-0/+1
This shows some very bad slowness for lines that are mostly offscreen (like 100x slower than just drawing the visible portion).
2006-12-16New performance test case "mosaic" for splines.M Joonas Pihlaja1-0/+1
2006-11-17perf: Add box_outline test case.Carl Worth1-0/+1
This test shows that drawing a 100x100 single-pixel wide box outline is currently 5 to 16 times slower when using the natural cairo_stroke() as compared to a rather awkward cairo_fill() of two rectangles. [ # ] backend-content test-size min(ticks) min(ms) median(ms) stddev. iterations [ 0] image-rgba box-outline-stroke-100 301321 0.218 0.219 0.39% 5 [ 1] image-rgba box-outline-fill-100 18178 0.013 0.013 0.43% 5 [ 0] xlib-rgba box-outline-stroke-100 379177 0.275 0.276 1.39% 6 [ 1] xlib-rgba box-outline-fill-100 83355 0.060 0.060 0.17% 5
2006-11-17cairo-perf: When iteration count is given on command-line, never execute fewerCarl Worth1-1/+5
2006-11-08perf: Add world-map performance test case.Carl Worth1-0/+1
The map for this test case was originally demonstrated as a performance problem in this mozilla bug report: A very slow SVG file with <path>s https://bugzilla.mozilla.org/show_bug.cgi?id=332413 I obtained permission from the creator of the original file to include the data here, (see comments in world-map.h for details).
2006-11-08perf: Eliminate CAIRO_STATS_MIN_VALID_SAMPLESCarl Worth1-5/+2
We don't need this at this deep level since callers can now implement this limiting manually since stats.iterations is now returned. Also, this was interfering with the -i option to cairo-perf anyway.
2006-11-08cairo-perf: Print ticks_per_ms value in raw mode so raw analysis tools can ↵Carl Worth1-4/+5
report times
2006-11-08perf: Move statistics code into new cairo-stats.h for sharingCarl Worth1-100/+6
2006-11-07cairo-perf: Add command line options for test cases to run, listing tests, ↵Carl Worth1-31/+132
and new raw mode.
2006-11-06Add zrusin-another test cases (tessellate and fill).Carl Worth1-0/+1
This new test case is the 0th polygon polygon from Zack Rusin's recent cairorender program as made avaialable here: http://ktown.kde.org/~zrusin/examples/cairorender.tar.bz2 This polygon contains about 1000 coordinates and looks like a hand-drawn version of the word another.
2006-11-06cairo-perf-diff: Use two-part hash to avoid stale data when perf suite changes.Carl Worth1-1/+1
The perf tree's sha1 is now in the cache file name, so that if the performance suite itself ever changes then new data will be generated rather than using stale stuff from the cache. Also, we now use the src tree's sha1 rather than the commit's so that commits that don't change the src directory are also treated as identical, (which they really should be as far as performance of the library itself is concerned).
2006-11-06Don't rely on NQUARTZ or OS2 surface types unless they exist.Carl Worth1-0/+2
This allows the cairo-perf stuff to build on older checkouts, (such as 1.2.4), so that we can usefully do things like: cairo-perf-diff 1.2.4 HEAD
2006-11-02Remove typo (mean vs median)Carl Worth1-1/+0
This didn't end up making a difference in practice since the median is assigned again later on.
2006-11-02cairo-perf: Change outlier elimination and report minimum times.Carl Worth1-18/+74
Instead of just discarding the worst 15% of the results, we now do IQR-based detection and elimination of outliers. Also, instead of reporting mean times we now report minimum and median times. We still do compute the mean and standard deviation for the detection of when results seem stable for early bailout. And we do still report the standard deviation. A statistician might complain that it looks funny to report the median and the standard deviation together, (instead of median and average absolute deviation from the median, say), but I liked the standard deviation since it is always larger, so it might ensure better separatation if we use it to determine when two sets of results are sufficiently different to be interesting.
2006-11-02Add new perf test "pattern_create_radial"Dan Amelang1-0/+1
This test is really just for hammering the double to fixed-point conversion (in _cairo_fixed_from_double) that happens as doubles from API calls gets translated into internal cairo fixed-point numbers.
2006-10-18perf: Print ticks as well as ms in output.Carl Worth1-3/+4
The ticks value is a bit more reliable since it won't exhibit variation due to estimating the CPU frequency like the ms value will.
2006-10-18cairo-perf: Remove wasted whitespace in output. Squelch wanring.Carl Worth1-6/+6
2006-10-18perf: Change minimum size of paint test to 256Carl Worth1-1/+1
The paint tests at sizes less than 256 were just too fast to be significant.
2006-10-16Rename wait_for_rendering to syncrhonizeCarl Worth1-1/+1
We're not using this call both before and after rendering so the old name just didn't make sense anymore.
2006-10-12perf: Make iterations adaptive (bailing as soon as std. deviation is <= 3% ↵Carl Worth1-7/+23
for 5 consecutive iterations This makes the entire performance test suite about 10 times faster on my system. And I don't think that the results are significantly worse, (many tests are stable after only 5 iterations while some still run to 100 iterations without reaching our stability criteria).
2006-10-05perf: Rename finalize to synchronize as it is used in both start() and ↵Carl Worth1-2/+2
stop() now
2006-10-05perf: Add subimage_copy test to demonstrate performance bug found by montyCarl Worth1-0/+1
2006-10-05perf: Add text testCarl Worth1-0/+1
2006-10-04perf: Bail if cairo_status returns non-success at the end of a test.Carl Worth1-0/+8
2006-10-04perf: Add stroke and fill testsCarl Worth1-3/+5
2006-10-04perf: Move iteration over sources and operators from paint to new ↵Carl Worth1-9/+0
cairo-perf-cover This will finally allow us to very easily add lots of other tests that will similarly involve iterating over the various sources and operators of interest.
2006-10-04perf/paint: Test image surface as well as similar surface sourcesCarl Worth1-2/+2
2006-10-04perf: Make cairo_t* available to perf functionsCarl Worth1-1/+1
2006-10-04perf: Move the per-size loop from cairo_perf_run to mainCarl Worth1-45/+50
The motivation here is to have the cairo_t context available to the perf funcs before they call into cairo_perf_run, (so that they can do one-time setup of source etc. for several runs).
2006-09-29perf: Rework the suite to allow multiple performance tests to be defined in ↵Carl Worth1-72/+87
one file.
2006-09-19[perf] Change perf output format, report times in ms, add a few paint testsVladimir Vukicevic1-15/+30
This changes the perf test output format to be a little more human friendly, reporting times in ms instead of seconds. It also adds a test number that could be used in the future for specifying an explicit test to run (test number, target surface, test name, and size uniquiely identify a test). Also adds a few paint tests.
2006-09-11perf: Make xlib testing wait for the X server to finish rendering.Carl Worth1-0/+1
We do this by adding a new cairo_perf_timer_set_finalize function and in the case of the xlib backend passing a callback to that function that does a 1x1 XGetImage.
2006-09-09perf: Don't skip COLOR testsCarl Worth1-2/+0
2006-09-09boilerplate: Allow targets to distinguish between test and perf.Carl Worth1-0/+1
Add a new cairo_boilerplate_mode_t so that the boilerplate targets can do slightly different things if being tested for correctness vs. being run for performance.
2006-09-09boilerplate: Rename cairo_test_target_t to cairo_boilerplate_target_tCarl Worth1-6/+6
2006-09-06perf: Add tessellate test case (in -16, -64, and -256 varieties)Carl Worth1-0/+3
2006-09-06perf: Allow CAIRO_TEST_TARGET to limit targets tested.Carl Worth1-3/+14
Also, don't print the image size for a test if there is only one.
2006-09-06perf: Move sorting and discarding outside of compute_stats. Adjust discard ↵Carl Worth1-8/+9
to slowest 15% only.
2006-09-06perf: Report times not rates. Interface in integers not doubles.Carl Worth1-11/+12
2006-09-05perf: Rename functions in line with cairo's naming guidelinesCarl Worth1-1/+1
2006-09-05perf: Remove unused alarm functionsCarl Worth1-2/+0
2006-09-05perf: Add yield and fix double comparisonBenjamin Otte1-2/+8
- add a yield () function that's called before every test. It reduced the std dev slightly for me - fix double comparisons to not just compare the integer part
2006-08-31Two big improvements to bring the std. deviation down to where we want it.Carl Worth1-10/+19
1. Remove all the alarm/signal code, which just isn't doing what we want for some reason. Instead, for now we'll simply run for a fixed number of iterations, (perhaps we can tune that per test later). 2. Before computing mean and stdandard deviation of runs, sort them all and discard the top and bottom 20% of the values. Now the standard deviation for the paint test is generally 2% or less.
2006-08-31perf: Switch from alarm to setitimer for more fine-grained control of timersCarl Worth1-2/+2
2006-08-31perf: Run for multiple iterations and print std. deviationCarl Worth1-12/+49
2006-08-31perf: Add indication of content to outputCarl Worth1-2/+21
2006-08-31perf: Fix typo in backend blackballing so that image tests now runCarl Worth1-2/+2
2006-08-31Make perf interface return a rate. Start print target and test names.Carl Worth1-6/+12