summaryrefslogtreecommitdiff
path: root/perf/cairo-perf.c
AgeCommit message (Collapse)AuthorFilesLines
2009-07-21Merge commit 'anholt/gl'Chris Wilson1-0/+1
Conflicts: boilerplate/Makefile.sources boilerplate/cairo-boilerplate.c build/configure.ac.features src/cairo.h util/cairo-script/Makefile.am
2009-07-03Export meta-surfaceChris Wilson1-4/+2
The meta-surface is a vital tool to record a trace of drawing commands in-memory. As such it is used throughout cairo. The value of such a surface is immediately obvious and should be applicable for many applications. The first such case is by cairo-test-trace which wants to record the entire graph of drawing commands that affect a surface in the event of a failure.
2009-06-30[perf] Exclude the xlib-reference target from cairo-perfChris Wilson1-1/+2
2009-06-21[perf] Need to version surface typesChris Wilson1-0/+6
As cairo-perf-diff will execute the current cairo-perf against historical revisions, any introduced api must be protect in order to compile on old versions.
2009-06-16Import Qt backend by MozillaVladimir Vukicevic1-2/+1
Written by Vladimir Vukicevic to enable integration with Qt embedded devices, this backend allows cairo code to target QPainter, and use it as a source for other cairo backends. This imports the sources from mozilla-central: http://mxr.mozilla.org/mozilla-central/find?text=&kind=text&string=cairo-qpainter renames them from cairo-qpainter to cairo-qt, and integrates the patch by Oleg Romashin: https://bugs.freedesktop.org/attachment.cgi?id=18953 And then attempts to restore 'make check' to full functionality. However: - C++ does not play well with the PLT symbol hiding, and leaks into the global namespace. 'make check' fails at check-plt.sh - Qt embeds a GUI into QApplication which it requires to construct any QPainter drawable, i.e. used by the boilerplate to create a cairo-qt surface, and this leaks fonts (cairo-ft-fonts no less) causing assertion failures that all cairo objects are accounted for upon destruction. [Updated by Chris Wilson] Acked-by: Jeff Muizelaar <jeff@infidigm.net> Acked-by: Carl Worth <cworth@cworth.org>
2009-06-12[boilerplate] Make array of targets const.Chris Wilson1-2/+2
Protect the boilerplate targets from unexpected modifications.
2009-06-02[perf] Add a verbose flag for summary output with rawChris Wilson1-30/+52
Use 'cairo-perf -v -r' to have both the summary output along with the raw values. This gives a progress report whilst benchmarking, very reassuring with long running tests.
2009-06-02[perf] Exclude similar testing by defaultChris Wilson1-2/+3
There are synchronisation issues with similar surfaces (as only the original target surface is synced) which interferes with making performance comparisons. (There still maybe some value should you be aware of the limitations...)
2009-06-02[perf] Benchmark mixing different masks and sourcesChris Wilson1-0/+1
2009-06-02[perf] Add a pure glyphs performance metricChris Wilson1-0/+1
Use the new API Behdad exposed in 1.8 to precompute a glyph string using Cairo and then benchmark cairo_show_glyphs(). This is then equivalent to the text benchmark but without the extra step of converting to glyphs on every call to cairo_show_text() i.e. it shows the underlying glyph rendering performance.
2009-06-02[perf] Change seperators from '-' to '.'Chris Wilson1-4/+4
This allows the perf tests to use '-' in the name which is easier to read and differentiates with using '_' to separate source and operators.
2009-06-02Merge commit 'origin/master' into glEric Anholt1-17/+24
Felt like pulling the latest stuff, since I branched back in February. Conflicts: build/configure.ac.features src/cairo.h util/cairo-script/csi-replay.c
2009-02-16[sdl] Remove new backend.M Joonas Pihlaja1-4/+0
The SDL backend makes invalid assumptions about SDL_Surface locking semantics and doesn't deal correctly with the unpremultiplied pixel format supported by SDL. Removed as per discussion on the mailing list. http://lists.cairographics.org/archives/cairo/2009-February/016595.html
2009-02-13[perf] Env variable to ignore similar targets whilst benchmarking.Chris Wilson1-0/+3
Use CAIRO_TEST_IGNORE_SIMILAR to skip similar targets.
2009-02-13[perf] Split can_run? into a separate precondition.Chris Wilson1-8/+16
Allow tests to skip unnecessary setup when pruning the list of perf cases.
2009-02-13[perf] Extend range of testing.Chris Wilson1-5/+5
Primarily to test longer glyph runs, but also test large upper bounds for strokes and fills.
2009-02-05[gl] Add basics for GL surface backend using test-fallback as base.Eric Anholt1-0/+1
2008-12-06[perf] Add perf tests to hit rectilinear code paths.M Joonas Pihlaja1-0/+1
These tests look at the differences in code paths hit by filling paths that are rectilinear (or not) and pixel aligned (or not) with the even-odd and non-zero fill rules. The paths are not simple, so they don't hit the special case quad/triangle tessellator.
2008-12-06[perf] Explicitly test rendering a path with lots of intersections.M Joonas Pihlaja1-0/+1
We don't have one just for this purpose. The only other path with many intersections that gets actually rendered is zrusin-another, but that might be sped up in the future (say by identifying collinearities up front or something like that.)
2008-11-26[perf] Fix SDL compilation for MacOS XPaolo Bonzini1-0/+4
The attached patch makes the SDL tests compile under Mac OS X. The problem is: 1) that <SDL_main.h> should be included in files that define the main function for SDL Mac OS X programs (this is not true with the upcoming SDL 1.3 release). 2) that -lSDLmain, because it is statically linked, needs the Cocoa framework in the LDADD of the main program. Again, 1.3 will not require this.
2008-11-19[perf/pythagoras_tree] Another fractal.Chris Wilson1-0/+1
Test lots of rectangles and recursion path construction.
2008-11-19[perf/dragon] Add a dragon curve perf case.Chris Wilson1-0/+1
Inspired by http://labs.trolltech.com/blogs/2007/08/31/rasterizing-dragons/ and http://en.wikipedia.org/wiki/Dragon_curve, add a performance test case to measure drawing this space-filling fractal curve.
2008-10-30Restore the ability to choose the internal font.Chris Wilson1-0/+1
Behdad wants to include the feature with 1.10, so we enable it as early as possible in 1.9 dev cycle to generate as much feedback as possible. The first change is to use "<cairo>" as being a name unlikely to clash with any real font names. This reverts commits: a824d284be23793a5c48b9ae833dcb7b2d5fff80, 292233685534aed712dfd45e8ccf498b792ce496, e0046aaf417a61da008dc6374871fa3687ba94ab, f534bd549e1e2283735d1eabb60c015a5949a735.
2008-10-29Remove twin perf case.Carl Worth1-1/+0
This performance test relied on the recently-removed ability to select the internal twin-based font family with a name of "cairo". Presumably, we'll want to bring this performance case back when some other means of requesting that font face is added.
2008-10-22Twin perf caseChris Wilson1-0/+1
2008-10-19[perf] A crude tool to visualise performance changes across a series.Chris Wilson1-0/+1
Generate a cairo-perf-diff graph for a series of commits in order to be able to identify significant commits. Still very crude, but minimally functional.
2008-10-08[perf] Add composite performance test.Björn Lindqvist1-0/+1
Add a new test case to Cairo for checking the performance of Cairo's equivalent to GDK's gdk_pixbuf_composite_color() operation. That is an operation that happens to be extremely useful when viewing or editing transparent images so I think it is important that it is as fast as possible.
2008-09-28[perf] Add rounded rectangle perf case.Chris Wilson1-0/+1
Add the performance test case to compare the speed of filling a rounded rectangle (one with camphered corners) as opposed to an ordinary rectangle. Since the majority of the pixels are identical, ideally the two cases would take similar times (modulo the additional overhead in the more complex path).
2008-09-02Move _GNU_SOURCE declarations to where it's usedBehdad Esfahbod1-0/+2
Such that we don't rely on more GNU extensions accidentally.
2008-08-19[perf] Continue testing after we fail to create a surface.Chris Wilson1-9/+4
Sometimes we cannot create a surface because it is larger than the screen. Ignore these non-fatal errors and move on to the next performance case.
2008-08-13[test] Preparatory work for running under memfault.Chris Wilson1-4/+7
In order to run under memfault, the framework is first extended to handle running concurrent tests - i.e. multi-threading. (Not that this is a requirement for memfault, instead it shares a common goal of storing per-test data). To that end all the global data is moved into a per-test context and the targets are adjusted to avoid overlap on shared, global resources (such as output files and frame buffers). In order to preserve the simplicity of the standard draw routines, the context is not passed explicitly as a parameter to the routines, but is instead attached to the cairo_t via the user_data. For the masochist, to enable the tests to be run across multiple threads simply set the environment variable CAIRO_TEST_NUM_THREADS to the desired number. In the long run, we can hope the need for memfault (runtime testing of error paths) will be mitigated by static analysis. A promising candidate for this task would appear to be http://hal.cs.berkeley.edu/cil/.
2008-06-13[cairo-perf] Only allocate arrays once.Chris Wilson1-16/+14
Store the array of times on the cairo_perf_t context to avoid reallocating it for every perf-case.
2008-04-11[test] Handle TEST_CONTENT_COLOR_ALPHA_FLATTENED similar surfaces.Chris Wilson1-2/+4
Convert the boilerplate specific flattened content value to the ordinary CAIRO_CONTENT_COLOR_ALPHA for use with cairo_push_group_with_content() - otherwise cairo rightfully flags an error and the test harness decides that the similar surface is not available.
2008-02-06Some fixes and improvements to the Win32 buildAzar@.(none)1-5/+2
2007-10-20[cairo-perf] Run performance tests over similar surfaces as well.Chris Wilson1-46/+75
Immediately repeat the performance test against a similar surface to ensure that they introduce no regressions. Primarily introduced to sanity check the change to use XShmPixmaps instead of XPixmaps in the xlib backend, but it should be generally useful.
2007-08-24[cairo-perf] Blacklist xlib-fallback.Chris Wilson1-0/+8
Do not try and create non-Render xlib surfaces as they explicitly do not support performance testing.
2007-06-18[perf] Add pixman_region_init_rects and use in extract_regionVladimir Vukicevic1-0/+1
Avoid O(N*N) loop in traps_extract_region by letting us hand pixman an array of rects all at once.
2007-04-30[perf] Check availability before including nonstandard headersBehdad Esfahbod1-1/+5
2007-04-30Free all memory when cairo-perf exits.Chris Wilson1-0/+19
Similar to cairo-test, we free any global memory used by cairo for its caches through the debug interfaces. We do this so that valgrind does not unnecessary warn about memory leaks for the cached data and any true leak is then not lost in the noise.
2007-04-25perf: Add new paint-with-alpha testCarl Worth1-0/+1
MacSlow noticed that cairo_paint_with_alpha is much slower than it should be, (and jrmuizel has a nice plan for fixing the performance bug).
2007-04-18[boilerplate] Add cairo_boilerplate_get/free_targetsBehdad Esfahbod1-10/+10
This means, test and perf suites now share the same target handling code, including parsing CAIRO_TEST_TARGET.
2007-04-18[perf] Make targets more consistent with the test suiteBehdad Esfahbod1-2/+6
That is: 1) no VALGRING vs VG abbreviations 2) setting TARGETS and ITERS on the make command line works now
2007-04-18cairo-perf - add the missing newline.Chris Wilson1-1/+1
Oops, missed out the newline for the fprintf in the previous commit.
2007-04-18cairo-perf - Check that the surface is created.Chris Wilson1-0/+7
Exit(1) if we fail to create the target surface.
2007-03-16[cairo-perf] Emit warning, if cairo-perf is not CPU boundMathias Hasselmann1-0/+52
cairo-perf and the X server should be bound to CPUs (either the same or separate) on SMP systems. Not doing so causes random results when the X server is moved to or from cairo-perf's CPU during the benchmarks.
2007-03-07Fix up the trivial leaks found by valgrind.Chris Wilson1-0/+4
2007-02-20[quartz] rename NQUARTZ -> QUARTZ in definesVladimir Vukicevic1-1/+0
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).