summaryrefslogtreecommitdiff
path: root/perf/cairo-perf-micro.c
Commit message (Collapse)AuthorAgeFilesLines
* Remove stray _GNU_SOURCE definitionsEmmanuele Bassi2021-05-011-1/+1
| | | | | | We define _GNU_SOURCE globally in both the Autotools build, through the use of the AC_USE_SYSTEM_EXTENSIONS macro; and in the Meson build, with add_project_arguments().
* Retire dummy cairo-version.h header to fix meson subproject buildTim-Philipp Müller2020-09-291-2/+0
| | | | | | | | | | | | | | It was originally added to make bisecting easier, but has outlived its usefuleness now. Going forward we'll have just a single cairo-version.h header file, the one with the real version numbers. This is needed to fix the case where cairo is being built as a Meson subproject, but also simplifies things in general. Fixes #421
* perf: Don't use a boolean value as integerAndrea Canciani2012-02-201-3/+7
| | | | | | | | | | | Although in this case the boolean values are guaranteed to be 1/0, using them as true/false (in an if condition) seems much saner than using them to limit the number of iterations on a for loop. Fixes: cairo-perf-micro.c:221:5: warning: cannot optimize possibly infinite loops [-Wunsafe-loop-optimizations]
* boilerplate: Remove unused thread id parameterAndrea Canciani2011-11-121-1/+0
| | | | | The thread id is not used anymore (it is always == 0), so it can be removed.
* Improve the documentation of the flagsAndrea Canciani2011-11-121-5/+5
| | | | | Some utilities were providing incorrect or incomplete usage information.
* Sort option flagsAndrea Canciani2011-11-121-6/+6
| | | | | | | | Keep the option flags in alphabetical order. This makes it easier to check for collisions or missing handlers. Avoids an internal error when passing flags -c, -r or -v to cairo-analyse-trace.
* perf: Add an a1-pixel variantChris Wilson2011-09-151-0/+1
| | | | | | | Just to measure the overhead and differences when switching between antialiasing paths. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* perf/micro: Add the PS tiger as a measure for the antialias hintsChris Wilson2011-09-141-0/+1
| | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* test: Update ref imagesChris Wilson2011-09-121-2/+4
| | | | First pass after the recent turmoil in clip and antialias handling.
* Introduce a new compositor architectureChris Wilson2011-09-121-49/+59
| | | | | | | | | | | | | | | | | | Having spent the last dev cycle looking at how we could specialize the compositors for various backends, we once again look for the commonalities in order to reduce the duplication. In part this is motivated by the idea that spans is a good interface for both the existent GL backend and pixman, and so they deserve a dedicated compositor. xcb/xlib target an identical rendering system and so they should be using the same compositor, and it should be possible to run that same compositor locally against pixman to generate reference tests. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> P.S. This brings massive upheaval (read breakage) I've tried delaying in order to fix as many things as possible but now this one patch does far, far, far too much. Apologies in advance for breaking your favourite backend, but trust me in that the end result will be much better. :)
* perf: Get rid of cairo_perf_ticks_per_second()Andrea Canciani2011-09-021-8/+8
| | | | | The cairo_time_from_s() and cairo_time_to_s() functions should be used instead.
* perf: Drop cairo_perf_ticks_t in favor of cairo_time_tAndrea Canciani2011-09-021-3/+3
| | | | | cairo_time_t offers a superset of the functions provided by cairo_perf_ticks_t.
* perf/micro: diagonal linesChris Wilson2011-08-131-1/+2
| | | | | | The ideal benchmark for spans?... Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* perf/micro: Test wide vs hairline strokesChris Wilson2011-08-131-3/+5
| | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* perf: add curveChris Wilson2011-08-091-0/+1
| | | | | | Time how long it takes to stroke and fill a single Bezier curve. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* perf: add many-curvesChris Wilson2011-08-091-0/+1
| | | | | | | Continuing the theme of stressing the tessellators, draw lots of Bezier curves! Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* perf: Add many-fillsChris Wilson2011-08-091-0/+1
| | | | | | | | A variant of many-strokes tries to answer the question of how much overhead is there in stroking, i.e. if we fill an equivalent path to a set of strokes, do we see an equivalence in performance? Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* perf: Add many-strokesChris Wilson2011-08-071-0/+1
| | | | | | | An intersection variant to exercise the stroker with many, many lines. A silly benchmark, but a popular one in the wild. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* perf: Add hash table benchmarkAndrea Canciani2011-08-031-0/+1
| | | | | | | | | | | | | A benchmark to test the speed of hash tables when inserting and removing a huge number of elements. Although originally hash tables were assumed not to get many deletions, in practice they are now being used as caches in multiple places. This means that they often have a fixed number of live elements and an element is evicted whenever a new element is inserted (this happens explicitly for cairo_cache_t objects, but also, for example, in scaled_font_map + holdovers). This access pattern is very inefficient with the current implementation.
* perf: Save/restore gstate across runsChris Wilson2011-08-011-1/+10
| | | | | | | Reset the cairo_t to the initial state so that subsequent tests are not affected by earlier tests. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* test,perf: Another hatching!Chris Wilson2011-07-191-0/+1
| | | | | | | This one illustrates the quadratic explosion lurking in the clipping code. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* tests,perf: Add a hatchings clip-testChris Wilson2011-07-181-0/+1
| | | | | | | A benchmark to test how close we get to reducing paint+clip to an ordinary fill, and to check correctness. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* perf/micro: Add waveChris Wilson2011-06-011-0/+1
| | | | | | | | Benjamin just demonstrated this funky trick for generating pixel outlines, and as no good deed should go unpunished, I've added his code to the perf suite. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* perf: Improve calibrationAndrea Canciani2010-08-091-9/+8
| | | | | | | | | | | | | | | Make the loops count depend on the actual calibration_loops/calibration_time instead of calibration_loops/calibration_max_time. This avoids having some tests take much less/more than the wanted time per iteration (I was having some tests taking about 1 second, other taking about 7 seconds when the ms_per_iteration was 2000) Spend 0.5-1 times the time wanted for each iteration in calibration, increase the accuracy of loops count. Just making the loops count be the correct ratio doesn't guarantee that the iteration time is accurate. By actually measuring iteration times until it gets greater than 1/4 of the wanted time, the total sum is bound to be <= the wanted iteration time and last calibration time is between 1/4 and 1/2 of the wanted time, so it should give a very accurate loop count.
* whitespace: Fixup formal arguments and tabs in boilerplate/ and perf/.M Joonas Pihlaja2010-06-241-39/+43
| | | | | Ran a script to align the formal parameters of functions and collapse spaces to tabs in code.
* perf: Compute ops per secondChris Wilson2010-03-301-17/+30
| | | | | | Provide a hook for the test to be able to compute the number of ops per second. For instance, the glyphs test uses it to report the number of kiloglyph per second Cairo is able to render.
* boilerplate: Create an image16 targetChris Wilson2010-03-271-58/+1
| | | | | | In order to exercise the newly restored r5g6g5 support, we need to create an appropriate surface and feed it through the test and performance suites.
* boilerplate: Cleanup the list of backends upon shutdown.Chris Wilson2010-03-231-0/+2
|
* [meta] Rename cairo_meta_surface_t to cairo_recording_surface_t.M Joonas Pihlaja2009-10-221-2/+2
| | | | | | | The new name is more descriptive than the rather opaque meta surface. Discussed with vigour on the mailing list and #cairo: http://lists.cairographics.org/archives/cairo/2009-July/017571.html
* [perf] Reorganise cairo-perfChris Wilson2009-09-151-0/+596
In preparation to creating a new hub to control performance measuring and reporting, move the current cairo-perf out of the way.