summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
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-12-29Revert "xlib/shm: Do not trigger a surplus event from XShmPutImage"Chris Wilson1-1/+1
This reverts commit c97f2d4acd5c4a1a4b839c72626f84e242e60b23. Testing suggests that keeping that event is a win; so do so.
2012-12-29xlib/shm: Do not trigger a surplus event from XShmPutImageChris Wilson1-1/+1
As our lazy event mechanism is sufficient for tracking when to reuse shm memory, and the events are not necessary for ShmPut/ShmGetImage paths. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-29xlib/shm: Rate-limit events and only use as necessaryChris Wilson2-35/+79
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-28gl: Cleanup selection of multisampling modeMartin Robinson3-21/+22
Fold the choice of multisampling mode into the cairo_gl_composite_t structure itself. This makes it more similar to other settings.
2012-12-23xlib/shm: Populate send_event and serialChris Wilson1-0/+4
Hopefully this random choice is more meaningful than random junk. Bugzilla; https://bugs.freedesktop.org/show_bug.cgi?id=58672 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-12-22doc: Add CAIRO_MIME_TYPE_UNIQUE_ID to list of supported mime typesAdrian Johnson1-1/+2
2012-12-22type1-subset: always include subroutine 4 (hint replacement idiom)David Maxwell1-2/+2
http://lists.cairographics.org/archives/cairo/2012-December/023846.html
2012-12-21[ft] Fix resizing of bitmap fontsBehdad Esfahbod1-32/+34
Say, you were asking cairo for a font at 200px. For bitmap-only fonts, cairo was finding the closes strike size and using it. If the strike was at 20px, well, that's what you were getting. We now scale that 20px strike by a factor of 10 to get the correct size rendering. Note that by itself this patch doesn't change much on the Linux desktop. The reason is that the size you are interested in (eg. 200px) is lost by fontconfig. When you request a font at 200px, fontconfig returns a font pattern that says 20px, and so the next layers thing you want a font at 20px. To address that, one also needs a piece of fontconfig config that puts the 200 back into the pixelsize. Something like this: <match target="font"> <test name="scalable" mode="eq"> <bool>false</bool> </test> <edit name="pixelsize" mode="assign"> <times> <name>size</name> <name>dpi</name> <double>0.0138888888888</double> <!--1/72.--> </times> </edit> </match> I'm going to try to upstream this config so it will be enabled by default. The config can be a bit smarter. For example, if metricshinting is enabled and the size difference is small, we may as well not scale. The nice thing about this is that the configuration of whether and when to scale bitmaps will be done in fontconfig, not cairo / Qt / ... code.
2012-12-21[ft] Remove ancient check for FT_Bitmap_Size.y_ppemBehdad Esfahbod2-17/+1
That member is available in the version of FreeType we require.
2012-12-21[Minor] Improve loggingBehdad Esfahbod2-1/+3
2012-12-18xlib/shm: Fix memory leakAdam Jackson1-1/+1
Despite subclassing image surfaces, we never called down to the image surface destructor, so we leaked a pixman_image_t every time. Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=882976 Signed-off-by: Adam Jackson <ajax@redhat.com>
2012-12-17xcb: Fix xcb-huge-subimageUli Schlachter1-14/+58
This teaches the xcb backend how to split up a PutImage request for a subimage into multiple requests. The backend already does the same for "normal" PutImage where it doesn't have to assemble the image from various rows. Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-12-17test: Add xcb-huge-subimageUli Schlachter3-0/+82
This creates an image surface with a non-natural stride and paints it to a similar surface. In the xcb backend, this causes a call to _cairo_xcb_connection_put_subimage() which tries to send a huge PutImage request. As a result, xcb kills the X11 connection. Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-12-17context: Use recording surfaces for unbounded groupsUli Schlachter1-9/+14
The old code uses an uninitialized variable for the extents of the group that is created. This patch makes it use an unbounded recording surface instead. This has the implicit assumption that everything that is unbounded smells like a recording surface. Let's see when this assumption breaks. :-) http://lists.cairographics.org/archives/cairo/2012-October/023585.html Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-12-17Revert "gl/msaa: Share the depth/stencil buffer among all surfaces"Martin Robinson3-124/+38
This was pushed mistakenly. Sorry. This reverts commit a7d684e6fe4bbeea2262276aaa57bb2a47c401df.
2012-12-17boilerplate-xcb: Ignore MappingNotify eventsUli Schlachter1-2/+8
The boilerplate code makes sure that our tests didn't cause any X11 errors or X11 events, because those might confuse API users. However, when the keyboard layout changes, every connection gets a MappingNotify event. This means that the test and performance test suites failed when the keyboard layout was changed while they are running. Fix this by ignoring MappingNotifies. Reported by Arthur Huillet on IRC. Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-12-10gl: Add BGRA download support for GLES2Martin Robinson3-26/+44
Some OpenGLES2 drivers support downloading BGRA data. On little-endian systems BGRA and GL_UNSIGNED_BYTe is equivalent to the typical cairo_image_t format, so this can prevent CPU bit swizzling for operations that involve images.
2012-12-08gl/msaa: Share the depth/stencil buffer among all surfacesMartin Robinson3-38/+124
Instead of allocating a depth/stencil buffer for all surfaces, share a common buffer that's the size of the largest surface. This reduces video memory usage when there are many GL surfaces.
2012-12-05gl/msaa: Use GL_IMG_multisampled_render_to_texture when availableChuanbo Weng3-3/+41
Some OpenGLES platforms support GL_IMG_multisampled_render_to_texture instead of GL_EXT_multisampled_render_to_texture.
2012-12-05gl: Properly disable ctx->spans when necessaryHenry Song1-4/+10
When compositing starts, if we are not using the spans compositor, we should set the spans member of the context to false.
2012-12-05gl/msaa: Also setmsaa_active to true for non-texture surfacesHenry Song1-0/+1
This is important because there are places in the code where msaa_active is used to decide whether or not to complete an operation with multisampling or not.
2012-12-01gl: Flush context upon evicting a gradientHenry Song1-0/+2
As the random selection of a gradient can possible destroy the currently active gradient, we need to flush the context in order to flush any references to the texture before deletion.
2012-12-01mempool: Reduce the assertion into an alignment adjustment for the baseChris Wilson2-7/+16
Instead of asserting that the caller passed in a chunk-aligned base pointer, just perform the fixup whilst initialising the mempool. This means that the caller (xcb!) cannot assume that the mempool->base is then the same base pointer as passed in and so needs to store it separately for use in computing SHM offsets. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-28script: Fix map-to-image/unmap stack manipulationsChris Wilson1-3/+3
The idiom (and expectation) for surface operators is that it leaves the surface on the stack for the next operation. Also we need to hold onto a surface reference for objects put onto the stack, yet for the map-to-image return we did not own one. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-28trace: Do not forcibly add surfaces to the dictionaryChris Wilson1-18/+32
Adjust the stack manipulation to avoid moving an unknown surface to the dictionary. Reported-by: Dongyeon Kim <dy5.kim@samsung.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-27trace: Fix operand emission for map-to-image and unmap-imageChris Wilson1-24/+34
Reported-by: Dongyeon Kim <dy5.kim@samsung.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-10recording: Append new elements to the end of the bbtree chainZozó Teki1-1/+4
I have noticed that some of my objects were lost when drawing them on a recording surface and playing them back. Later elements with the same extents as a prior one tend to disappear from the chain of headers having similar extents. After doing some debugging, I found that they are not properly added to the bbtree during playback, and were instead clobbering the existing chain.
2012-11-04version: Post-release bump to 1.12.9Chris Wilson1-1/+1
2012-11-041.12.8 releaseChris Wilson2-1/+43
2012-11-03type1-subset: remove unused variableAdrian Johnson1-4/+0
2012-11-03type1-subset: fix memory leakAdrian Johnson1-19/+33
2012-11-02xlib/shm: Need IncludeInferiors when creating the source fallbackChris Wilson1-0/+14
Reported-by: Benjamin Otte <otte@redhat.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-02stroke: Fix calling '_cairo_spline_intersect' for in-bounds checking of splinesChris Wilson1-1/+1
Fixes stroke-clipped, within reason. There still remains some antialiasing noise (between rendering the circle piecewise and wholly) worth investigating - but that is probably an artefact of switching between analytical rendering modes in the scanline rasterisation. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-02test: Add stroke-clippedChris Wilson3-0/+55
Exercise a bug in the determine of clip-bounds when stroking, as reported by ed44. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-01pen: Tighten checking for bevel (start==stop) joinsChris Wilson1-2/+2
From commit d7f5a1bec421d6c7b92d16daae681fa31ac7c212 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Wed Oct 31 09:27:52 2012 +0000 pen: First check whether the in/out edges lie within the single pen vertex makes a couple of tests much happier. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-01gl: Tune the default VBO size to reduce overhead on embedded devicesChris Wilson1-2/+4
Henry Song found that the 256k buffers were disadvantageous on his embedded hardware. As there is no obvious right value for the default VBO size, we can tune for the more obvious constraints. Based on a patch by Henry Song <henry.song@samsung.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-01xlib: Fixup standalone header compilation for 'make check'Chris Wilson1-0/+1
Missing include of string.h Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-01spans: Do not assume that we manage to perform the clip geometricallyChris Wilson1-2/+6
Even for bounded masks, we may fail to perform the clipping geometrically for a variety of reasons, the prime one being that the clip has a mixture of antialias settings. So when compositing the polygon, we need to check whether a clip path still remains and so requires a clipmask. Fixes regression from commit cd1004ce19c7ea28c7fedb6464562a08416586c0 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri May 11 21:20:35 2012 +0100 traps,spans-compositor: Avoid mistreating unaligned clips as aligned and commit 4ea3ace6c810ba090464e48795fac5456f6cdc24 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri May 11 21:51:44 2012 +0100 spans: Only fallback for a clipmask if unbounded Reported-by: Dominik Röttsches <dominik.rottsches@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56574 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-01util/show-polygon: Show the limited range of each edgeChris Wilson1-4/+48
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-11-01stroke: Precompute the line half-widthChris Wilson1-8/+9
As we regularly recompute stroke->line_width/2 we may as compute it once during initialisation. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-10-31image: Add a couple of tracepoints for spans fallbacksChris Wilson2-4/+12
References: https://bugs.freedesktop.org/show_bug.cgi?id=56574 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-10-31xlib/shm: Fix bogus assertion without shm availableChris Wilson1-1/+1
In particular note that _cairo_xlib_surface_put_shm is indeed called and is expected to be a no-op when shm is not available. Reported-by: Thomas Klausner <wiz@NetBSD.org> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-10-31pen: First check whether the in/out edges lie within the single pen vertexChris Wilson4-28/+32
In order to prevent underflow when searching for the closing pen vertex, we first need to be sure that it does not simply lie next to the opening pen vertex. As a result we were missing many cases that should have been a bevel (in == out) and generating almost complete round caps instead. Reported-by: Dominik Röttsches <dominik.rottsches@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56432 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-10-30xlib: Apply the image offsets to the destination rather the sourceChris Wilson1-12/+10
So that we can specify the entire source surface as the region to copy and not introduce clipping errors. Fixes regression from commit c068691ff57c2f6cd750a54db17393c0e132cb00 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri Aug 17 21:33:54 2012 +0100 xlib/shm: Use an impromptu upload ShmSegment Reported-by: John Lindgren <john.lindgren@aol.com> Reported-by: Kalev Lember <kalevlember@gmail.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56547 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-10-30type1-subset, cff-subset: Plugged 2 memory leaksKevin Tardif2-3/+5
- _cairo_type1_font_subset_fini doesn't free font->cleartext - _cairo_cff_font_create can exit without freeing font->font_name and/or font->data; _cairo_cff_font_load_opentype_cff is called to allocate font_name, then _cairo_cff_font_load_cff is called to allocate font->data, then _cairo_cff_font_load_cff's return status is checked and if it failed, it jumps to fail1. This can cause font_name to leak since the fail1 target only frees the font variable. In addition, _cairo_cff_font_load_cff can fail -after- allocating data, and then data won't be freed either. Bug 56566
2012-10-30type1-subset: ensure subroutine numnber is an integerAdrian Johnson1-9/+12
2012-10-28type1-subset: restore correct callothersub behaviorAdrian Johnson1-6/+29
that was removed in d57e652f. Without this subsetting of subroutines won't work for some fonts.
2012-10-28xlib/shm: Use shmstr.h instead of shmproto.h if availableChris Wilson2-2/+6
Before it was known as shmproto.h, the wire protocol definition was to be found in shmstr.h, so if we don't have the current version of libXext try to use the older includes. Reported-by: Sebastian Haas <sehaas@gmail.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-10-28xlib/shm: Check for XShm headersChris Wilson2-3/+100
Not all version of libXext ship the same set of headers, so play safe and check during configure that we have the headers we depend upon in the code. Reported-by: Sebastian Haas <sehaas@gmail.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>