summaryrefslogtreecommitdiff
path: root/src/cairo-surface-observer-private.h
Commit message (Collapse)AuthorAgeFilesLines
* Fix out of bound access in struct pattern->typeAshim2015-07-091-1/+1
| | | | | | | | | | | | | | The pattern structure is hardcoded to hold 7 elements, yet the pattern_names array in cairo-surface-observer.c is initialized with 8 strings. This causes a crash in print_array at line 1587 when it tries to access the 8th member. Hence changed the 'type' array from type[7] to type[8] to avoid out of bound access. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=91266 Signed-off-by: Ashim <ashim.shah@samsung.com> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* Split cairo-surface-observer-private into struct+inlinesChris Wilson2012-04-191-20/+1
| | | | | References: https://bugs.freedesktop.org/show_bug.cgi?id=48577 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* Introduce a new compositor architectureChris Wilson2011-09-121-3/+21
| | | | | | | | | | | | | | | | | | 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. :)
* time: Add cairo_time_t typeAndrea Canciani2011-09-021-6/+7
| | | | | | | | | | | | | 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) ...
* api: Extend cairo_antialias_t to include performace/quality hintsChris Wilson2011-08-301-1/+1
| | | | | | | | | | | The existing API only described the method to be used for performing rasterisation and unlike other API provided no opportunity for the user to give a hint as to how to trade off performance against speed. So in order to no be overly prescriptive, we extend the NONE/GRAY/SUBPIXEL methods with FAST/GOOD/BEST hints and leave the backend to decide how best to achieve those goals. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* observer: record all operations and their timingsChris Wilson2011-08-201-0/+9
| | | | | | | | 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>
* obsever: include the operation timingsChris Wilson2011-08-181-0/+29
| | | | | | | | Seeing the relative amounts of time spent in each operation and the slowest one of each, gives further insight into the peculiarities of a trace. And hopefully point out areas of improvement. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* observer: further classify general clipsChris Wilson2011-08-181-1/+1
| | | | | | | | A clip with only a single path or can be reduced to a single polygon are easier to handle than a clip containing a mixture of paths (typically ANTIALIAS_NONE vs ANTIALIAS_DEFAULT). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* check: make check-headers happyChris Wilson2011-08-151-0/+2
| | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* Introduce cairo_surface_observer_t for performance analysisChris Wilson2011-08-141-0/+168
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>