summaryrefslogtreecommitdiff
path: root/perf
AgeCommit message (Collapse)AuthorFilesLines
2013-04-02perf: Iteratively prune outliersChris Wilson1-18/+23
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-03-18Adding a simple usage statement to cairo-perf-chartMatthew Fischer1-0/+29
Signed-off-by: Uli Schlachter <psychon@znc.in>
2013-01-31perf: Synchronize before stopping the timersChris Wilson1-0/+3
Fixes a regression from commit 2855ff4666922f2c38505414270d47f659b0d499 Author: Andrea Canciani <ranma42@gmail.com> Date: Wed Aug 31 16:42:03 2011 +0200 perf: Reuse cairo-time which dropped the essential call to synchronize when refactoring the code. Reported-by: Siarhei Siamashka <siarhei.siamashka@gmail.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-01-28perf; Do not allow the backends to optimize away the clear before syncChris Wilson1-3/+7
The importance of writing to the scratch surface before retrieving an image is that it makes that the write lands in the server queue, as well as the GetImage, in order to serialise the timer against all the operations. Reported-by: Siarhei Siamashka <siarhei.siamashka@gmail.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-01-08script: Attempt to decompress images in placeChris Wilson1-1/+15
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-29perf/chart: Contract the default output filenamesChris Wilson1-3/+1
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-29perf/chart: Show the geometric average as an extra columnChris Wilson1-1/+111
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-07-12perf/chart: Render a solid bar if the column is too narrow for the gradientChris Wilson1-22/+31
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-03-10doc: fix a few typos found by codespellNis Martensen1-2/+2
Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-02-20perf: Don't use a boolean value as integerAndrea Canciani1-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]
2012-01-11perf/chart: Make the columns transculent so that the label behind is visibleChris Wilson1-4/+44
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-11perf/chart: Show values next to the column if too small to fit insideChris Wilson1-6/+14
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-01-11perf/chart: Tweak labels on right not to fall off the edgeChris Wilson2-8/+9
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-11-18perf: Compile fix, add the index to cairo_perf_report_load()Chris Wilson2-2/+2
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-11-12Use xstrdup instead of xmalloc when possibleAndrea Canciani1-4/+2
Don't open code xstrdup, just use it.
2011-11-12boilerplate: Remove unused thread id parameterAndrea Canciani3-3/+0
The thread id is not used anymore (it is always == 0), so it can be removed.
2011-11-12Improve the documentation of the flagsAndrea Canciani3-17/+17
Some utilities were providing incorrect or incomplete usage information.
2011-11-12Sort option flagsAndrea Canciani3-19/+19
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.
2011-11-09Silence some 'unused var' warningsAndrea Canciani1-1/+1
2011-10-11perfChris Wilson1-19/+42
2011-09-15perf: Add an a1-pixel variantChris Wilson3-0/+24
Just to measure the overhead and differences when switching between antialiasing paths. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-09-14perf/micro: Add the PS tiger as a measure for the antialias hintsChris Wilson4-0/+118
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-09-13perf/stats: Avoid overflow when summing time-squaredChris Wilson1-7/+6
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-09-12test: Update ref imagesChris Wilson1-2/+4
First pass after the recent turmoil in clip and antialias handling.
2011-09-12perf/micro: Add measurement of setting the pixel directly using pixmanChris Wilson1-0/+38
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-09-12Introduce a new compositor architectureChris Wilson50-236/+1321
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. :)
2011-09-09perf/Makefile.am: Add missing '\' line continuationChris Wilson1-2/+3
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-09-04cairo-missing: Fix and cleanup ssize_t type definitionAndrea Canciani3-10/+0
The definition of ssize_t is needed in cairo-missing.h and can be dropped from files which include it.
2011-09-02perf: Fix win32 buildAndrea Canciani1-1/+6
Microsoft C Compiler complains about: hash-table.c(44) : error C2466: cannot allocate an array of constant size 0 Adding an unused element makes it happy.
2011-09-02perf: Fix readmeAndrea Canciani1-2/+2
The README in perf/ was not updated when cairo-perf.c was renamed to cairo-perf-micro.c
2011-09-02perf: Get rid of cairo_perf_ticks_per_second()Andrea Canciani4-40/+31
The cairo_time_from_s() and cairo_time_to_s() functions should be used instead.
2011-09-02perf: Drop cairo_perf_ticks_t in favor of cairo_time_tAndrea Canciani43-164/+161
cairo_time_t offers a superset of the functions provided by cairo_perf_ticks_t.
2011-09-02perf: Reuse cairo-timeAndrea Canciani7-421/+66
Instead of redefining time getters, use the generic one provided by _cairo_time_*.
2011-09-02Introduce the cairo-missing libraryAndrea Canciani4-168/+8
The cairo-missing library provides the functions which are needed in order to correctly compile cairo (or its utilities) and which were not found during configuration. Fixes the build on MacOS X Lion, which failed because of collisons between the cairo internal getline and strndup and those in libc: cairo-analyse-trace.c:282: error: static declaration of ‘getline’ follows non-static declaration /usr/include/stdio.h:449: error: previous declaration of ‘getline’ was here cairo-analyse-trace.c:307: error: static declaration of ‘strndup’ follows non-static declaration ...
2011-09-02time: Add cairo_time_t typeAndrea Canciani1-1/+0
Add the cairo_time_t type (currently based on cairo_uint64_t) and use it in cairo-observer and in the perf suite. Fixes the build on MacOS X (for the src/ subdir) and Win32, whch failed because they don't provide clock_gettime: cairo-surface-observer.c:629: error: implicit declaration of function 'clock_gettime' cairo-surface-observer.c:629: warning: nested extern declaration of 'clock_gettime' cairo-surface-observer.c:629: error: 'CLOCK_MONOTONIC' undeclared (first use in this function) ...
2011-09-02perf: Silence gcc warningAndrea Canciani1-1/+1
Silence: dragon.c: In function 'do_dragon_solid': dragon.c:167: warning: unused variable 'r'
2011-08-30perf: Print a summary of each operation for a trace (using '-s')Chris Wilson2-22/+99
In order for this to be effective on small system we also need to disable the recording of the long traces which exhaust all memory... Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-23observe: Provide the sum of the elapsed time of the individual operationsChris Wilson3-8/+32
We can use the elapsed time of the indiividual operations to profile the synchronous throughput of a trace and eliminate all replay overhead. At the cost of running the trace synchronously of course. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-20observer: record all operations and their timingsChris Wilson1-2/+0
The immediate use of this is to print out the slowest operation of each type in a replayable manner. A continuing demonstration of how we may analyse traces... Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-19perf: Cleanup target after each runChris Wilson1-179/+172
As the trace may leak surfaces over its lifetime, we are forced to teardown the connection between runs. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-14Introduce cairo_surface_observer_t for performance analysisChris Wilson4-9/+676
Another logging passthrough surface that records the style of operations performed trying to categorise what is slow/fast/important. In combination with perf/cairo-analyse-trace it is very useful for understanding what a trace does. The next steps for this tool would be to identify the slow operations that the trace does. Baby steps. This should be generally useful in similar situations outside of perf/ and should be extensible to become an online performance probe. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-13Fix pollution from skia commitChris Wilson1-3/+2
I forgot to proof-read the patch before pushing and forgot I had left in some damage from trying to get skia to link using libtool. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-13skia: Update to use cairo_backend_t interfaceChris Wilson1-2/+3
Still hopelessly broken. Requires compiling cairo to use static linking and then still requires manual linkage to workaround libtool. Lots of functionality is still absent - we need to either find analogues to some Cairo operations or implement fallbacks - but it is sufficient to investigate how Skia functions in direct comparison with Cairo for tessellation/rasterisation. Caveat emptor. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-13perf/micro: diagonal linesChris Wilson4-1/+223
The ideal benchmark for spans?... Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-13perf/micro: Test wide vs hairline strokesChris Wilson8-16/+404
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-09perf: add curveChris Wilson4-0/+111
Time how long it takes to stroke and fill a single Bezier curve. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-09perf: add many-curvesChris Wilson4-0/+122
Continuing the theme of stressing the tessellators, draw lots of Bezier curves! Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-09perf: Add many-fillsChris Wilson4-0/+187
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>
2011-08-07perf: add the usual special cases to many-strokesChris Wilson1-1/+109
For completeness, also compare [aligned] horizontal and vertical strokes. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-07perf: Add many-strokesChris Wilson4-0/+78
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>