Commit graph

9110 commits

Author SHA1 Message Date
Chris Wilson
597dd24ddc drm/i915: Free potential leak of cloned textures. 2010-02-03 09:13:20 +00:00
Chris Wilson
913a31494e drm/i915: Increase batch buffer space. 2010-02-03 09:13:20 +00:00
Chris Wilson
1315323b20 drm/i915: check for batch buffer overflow.
Oops, the check for sufficient batch space mysteriously disappeared
during the rearrangement.
2010-02-03 09:13:20 +00:00
Andrea Canciani
e2be50c722 [quartz] Fix UNSUPPORTED operations
The fallback path shouldn't be used anymore, thus fallbacks are now
handled by passing unsupported ops to the image backend.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-02-02 19:48:47 +01:00
Andrea Canciani
3e69c38fe6 [quartz] Fix surface to CGImage conversion
Snapshotting a surface doesn't produce a cairo_image_surface_t.
Acquiring (and later releasing) the surface is needed to access
its image data.
2010-02-02 18:26:52 +01:00
Andrea Canciani
7aba47e9d8 [quartz] Silence compiler warnings 2010-02-02 18:26:52 +01:00
Chris Wilson
e9b07d1946 drm/i915: Don't tile page sized bo.
Minor tweak from < to <= so that a page sized bo is also not tiled for
those 32x32 pixmaps...
2010-02-02 16:31:36 +00:00
Chris Wilson
70ca9dd170 drm/i915: Pass the correct length to dump the batchbuffer. 2010-02-02 16:31:36 +00:00
Chris Wilson
3266a1a72b drm: Handle absence of PCI_ID 2010-02-02 16:31:36 +00:00
Chris Wilson
1ecefc53a1 pattern: Zero-length gradients are not necessary empty
Fixes: test/linear-step-function

If the extend mode is unbounded, then the gradient is also unbound.
2010-02-02 16:31:36 +00:00
Chris Wilson
2a59220aa4 test: Add linear-step-function
Another bug identified by Jeff Muizelaar was that the bounds for a
zero-length (i.e. it started and stopped at the same point) were
miscomputed. This test case exercises that bug.

Note: I believe the output is wrong here when padding a zero-length
gradient. On the left it should be red, and on the right it should be
blue.
2010-02-02 16:31:36 +00:00
Chris Wilson
7b37ba8a49 clip: Propagate all-clipped when copying
Fixes test/clip-empty-save.

The all-clipped flag was not being copied to the new clip, which occurs
for instance when an empty clip is pushed via a gstate save.
2010-02-02 16:31:36 +00:00
Chris Wilson
7dc464bb2b test: Add clip-empty-save
Jeff Muizelaar found a bug in _cairo_clip_init_copy() which was not
correctly propagating the all-clipped status when an empty clip was
saved in the gstate. This test case exercises that bug.
2010-02-02 16:31:36 +00:00
Chris Wilson
ab3dc7bb31 csi-replay: compile fix 2010-02-02 16:31:36 +00:00
Andrea Canciani
ab605214d1 Partially revert "Improve stroking of densely dashed styles"
This reverts commit 26e9f14906 on
cairo-path-stroke.
The changes in cairo-path-stroke are not needed anymore since dash
pattern approximation is now done in gstate before passing the dash
pattern to the backend.
2010-02-01 09:48:13 +01:00
Andrea Canciani
8ffe0fc382 Revert "[quartz] Approximate dense dashing patterns"
This reverts commit 27701ed844.
Approximation is now done in gstate.
2010-02-01 09:48:13 +01:00
Andrea Canciani
2e91648bcb Approximate dash patterns in gstate
Since approximation is only done when the pattern is sub-tolerance,
it is acceptable to apply it even for vector backends.
By doing it once and for all backends, backends are guaranteed to have
non-degenerate input.
Acked-by: Adrian Johnson <ajohnson@redneon.com>
2010-02-01 09:48:12 +01:00
Andrea Canciani
67f666896c Improve comments style consistency
Each line of a multi-line comment should begin with '*'.
2010-02-01 09:48:12 +01:00
Andrea Canciani
45c795a182 Improve dash pattern approximation
Dash pattern approximation was taking the caps style into account
only for coverage computation, but not when computing the new
pattern, thus the computed approximation had a higher coverage if
the caps style was SQUARE or ROUND.

Reviewed-by: M. Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
2010-02-01 09:48:12 +01:00
Andrea Canciani
8d7841048b Round caps coverage extimate explanation
Comment on how the round caps coverage has been computed, explaining
the complete procedure. The comments doesn't contain intermediate
(verbose and ugly) results, but when executed in a symbolic math
program (sage, for example) computes the expected results.

Reviewed-by: M. Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
2010-02-01 09:48:11 +01:00
Eric Anholt
8558cd5790 [gl] Use GL_MESA_pack_invert to flip get_image of windows around.
This doesn't have any fallback for a GL that fails to implement the
extension.  Fixes 120 testcases for gl-window.
2010-01-29 13:02:31 -08:00
Andrea Canciani
11a120fb84 Silence autoconf on Mac OS X
Autoconf was complaining that AC_COMPILE_IFELSE and AC_RUN_IFELSE
were called before AC_GNU_SOURCE. Moving AC_GNU_SOURCE right after
AC_INIT solves this.
2010-01-29 14:25:15 +01:00
Chris Wilson
05d4f9b461 xlib: Compile fix for no fontconfig 2010-01-29 11:30:49 +00:00
Chris Wilson
e3e7464145 atomic: Fix up compile on PPC with libatomic-ops 2010-01-29 11:24:40 +00:00
Alexander Shulgin
e11d2d0b4d surface: Fix detach mime-data after ecda633f88
Hi,

while browsing the git log I've noticed a small mistake in the above
commit, where we reversed the order of init/fini required to reset the
mime-data array.
2010-01-29 09:17:01 +00:00
Chris Wilson
5f0a0088af drm-intel: Unmap a full glyph cache.
When we swap a full glyph cache for a fresh one, be sure to unmap the
old one prior to release.
2010-01-28 13:23:39 +00:00
Chris Wilson
78cd947120 drm: Paranoid assert that the fallback is released upon finish. 2010-01-27 23:45:17 +00:00
Chris Wilson
5aa1191204 drm-intel: flush in memory modifications to texture.
If the surface was written to using a fallback, and so is mapped, we
need to flush those modifications by relinquishing the map. So the next
time the application tries to write to the surface, those writes are
correctly serialised with our reads.
2010-01-27 23:42:26 +00:00
Chris Wilson
a38accb694 drm-intel: The accumulation bo may be NULL, beware.
If we are not accumulating but rendering directly to the output vbo,
then the tail bo may not even be allocated, let alone mapped.
2010-01-27 23:27:46 +00:00
Chris Wilson
44734b9d3b drm-intel: Assert that the bo is unmapped upon release.
Check through error paths to catch a few more places where the mapped bo
may have been leaked, and add an assert to abort in case we do leak a
mapping.
2010-01-27 23:17:44 +00:00
Chris Wilson
6848c7c850 drm-i915: Don't tile temporary image textures.
As uploading to a tiled buffer is much slower than linear memory, don't
unless we expect to reuse the texture. This is not true for sub-image
clones, which are single shot affairs.
2010-01-27 23:01:37 +00:00
Chris Wilson
f75b7c4c11 drm/i915: Ensure surface is initialized.
Let's try that again, this time remembering to place it on the
conjunction of the two branches, so *both* paths are initialized.
2010-01-27 19:23:07 +00:00
Chris Wilson
02f20458d1 drm-i915: Ensure surface size for clone is initialized.
If the surface had a snapshot, then we would have not initialized the
surface size and so compute a bogus normalization matrix.
2010-01-27 19:02:21 +00:00
Chris Wilson
c82ff8cbcf configure: Enable AC_SYS_LARGEFILE for drm
drm makes use of 64bit offsets when mmaping, and so we require the
64bit file interfaces. I had presumed that it would be pulled in with
AC_GNU_SOURCE, but no.
2010-01-27 18:48:32 +00:00
Chris Wilson
6d2d338ac0 drm: compile fix for cairo_always_inline
s/always_inline/cairo_always_inline/
2010-01-27 17:55:28 +00:00
Benjamin Otte
58980b4ad6 build: Remove glitz surface
glitz is unmaintained and the GL surface is far superior anyway.
2010-01-27 09:56:14 +01:00
Benjamin Otte
17ddb1598b docs: appease make check 2010-01-25 20:17:12 +01:00
Benjamin Otte
bac513a85d build: Fix pthread detection
THe pthread.h detection code didn't pass -lpthread or -pthread to Cairo.
2010-01-25 20:13:48 +01:00
Benjamin Otte
582604f7b6 [png] Simplify coercion code
Call _cairo_image_surface_coerce() unconditionally to ensure coercion to
one of the standard formats happens even when it's a format we support.
2010-01-25 19:43:52 +01:00
Benjamin Otte
002e02715c Remove useless pixman version checks
We require pixman >= 0.15.16 in configure.ac, so checks for older
versions aren't required anymore.
2010-01-25 19:42:54 +01:00
Benjamin Otte
5a690ad4ac Give cairo_surface_mark_dirty() the slim hidden treatment
Fixes test suite failure
2010-01-25 19:39:23 +01:00
Chris Wilson
571ab10075 xcb: Fix linking with xcb-drm 2010-01-25 18:22:03 +00:00
Chris Wilson
ecda633f88 mime-data: Detach existing alternate representations upon modification
A major sore point in the current mime-data API is the choice to keep
the alternate mime-data representations after the user has actually
modifying the primary representation (i.e. has made it a target of a
cairo_t and drawn to it). This has been rightly chastised as unexpected
behaviour, and given that we already have the mechanism to detach
snapshots upon modification, there is no reason not to behave as
expected.
2010-01-25 18:17:28 +00:00
Chris Wilson
123bdb086a xcb: Make shm optional
Trying to build xcb on a system without SHM wrapped by xcb. The right
answer would be to build libxcb-shm. The quick answer is to compile out
shm support.
2010-01-25 16:45:03 +00:00
Chris Wilson
e1b3330376 configure: dri2 is only required for xcb-drm
Move the optional dependency on dri2 to the xcb-drm integration where it
is required.
2010-01-25 14:48:44 +00:00
Chris Wilson
8151c72307 xcb: compile errors with lockdep
After moving the mutex to the superclass, I forgot to update the
references from the lockdep asserts.
2010-01-25 12:14:39 +00:00
Chris Wilson
be81d656c5 clip: Create a fallback clip surface
If the destination cannot support a clip surface, then we will need to
use an intermediate image surface and trigger fallbacks upon use.
2010-01-25 11:56:29 +00:00
Chris Wilson
c453d8ab70 test: Erroneous ref image for big-line xlib-fallback. 2010-01-25 11:56:29 +00:00
Adrian Johnson
180aea76ad Fix printing of rotated user fonts
b7550bf0 introduced a regression when user fonts are rendered to a
rotated context.
2010-01-25 20:48:02 +10:30
Chris Wilson
abcb9d2c39 image: Prevent deref of NULL clip_region
Another stray from surface-fallback, spotted by Carlos:

*INT_cairo_region_get_extents (region=0x0, extents=0xbfffce90) at
cairo-region.c:385
385         if (region->status) {
(gdb) bt
0  *INT_cairo_region_get_extents (region=0x0, extents=0xbfffce90) at
cairo-region.c:385
1  0x0013ba46 in _cairo_image_surface_composite_trapezoids
(op=CAIRO_OPERATOR_OVER, pattern=0xbfffdda8, abstract_dst=0x837de10,
    antialias=CAIRO_ANTIALIAS_DEFAULT, src_x=486, src_y=45, dst_x=0,
dst_y=0, width=15, height=25, traps=0x837f100, num_traps=30,
clip_region=0x0)
    at cairo-image-surface.c:4102
2  0x0015d846 in _cairo_surface_composite_trapezoids
(op=CAIRO_OPERATOR_OVER, pattern=0xbfffdda8, dst=0x837de10,
antialias=CAIRO_ANTIALIAS_DEFAULT,
    src_x=486, src_y=45, dst_x=0, dst_y=0, width=15, height=25,
traps=0x837f100, num_traps=30, clip_region=0x0) at cairo-surface.c:2125
3  0x001607ce in _cairo_surface_fallback_composite_trapezoids
(op=CAIRO_OPERATOR_OVER, pattern=0xbfffdda8, dst=0x837db00,
    antialias=CAIRO_ANTIALIAS_DEFAULT, src_x=486, src_y=45, dst_x=486,
dst_y=45, width=15, height=25, traps=0x837fd78, num_traps=30,
clip_region=0x0)
    at cairo-surface-fallback.c:1641
4  0x0015d8a4 in _cairo_surface_composite_trapezoids
(op=CAIRO_OPERATOR_OVER, pattern=0xbfffdda8, dst=0x837db00,
antialias=CAIRO_ANTIALIAS_DEFAULT,
    src_x=486, src_y=45, dst_x=486, dst_y=45, width=15, height=25,
traps=0x837fd78, num_traps=30, clip_region=0x0) at cairo-surface.c:2137
5  0x001623b0 in _composite_traps_draw_func (closure=0xbfffd350,
op=CAIRO_OPERATOR_OVER, src=0xbfffdda8, dst=0x837db00, dst_x=0, dst_y=0,
    extents=0xbfffdc78, clip_region=0x0) at cairo-surface-fallback.c:546
6  0x00161234 in _clip_and_composite (clip=0x0, op=<value optimized
out>, src=0xbfffdda8, draw_func=0x162310 <_composite_traps_draw_func>,
    draw_closure=0xbfffd350, dst=0x837db00, extents=0xbfffdc78) at
cairo-surface-fallback.c:463
7  0x0016205b in _clip_and_composite_trapezoids (src=<value optimized
out>, op=CAIRO_OPERATOR_OVER, dst=0x837db00, traps=0xbfffd7bc,
    antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x0, extents=0xbfffdc78) at
cairo-surface-fallback.c:853
8  0x001626ef in _cairo_surface_fallback_stroke (surface=0x837db00,
op=CAIRO_OPERATOR_OVER, source=0xbfffdda8, path=0x1b164c,
stroke_style=0x1b1524,
    ctm=0x1b15b0, ctm_inverse=0x1b15e0, tolerance=0.10000000000000001,
antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x0) at
cairo-surface-fallback.c:1173
9  0x0015f2f4 in _cairo_surface_stroke (surface=0x837db00,
op=CAIRO_OPERATOR_OVER, source=0xbfffdda8, path=0x1b164c,
stroke_style=0x1b1524, ctm=0x1b15b0,
    ctm_inverse=0x1b15e0, tolerance=0.10000000000000001,
antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0xbfffde88) at
cairo-surface.c:2041
10 0x00134629 in _cairo_gstate_stroke (gstate=0x1b1514, path=0x1b164c)
at cairo-gstate.c:1133
11 0x0012a706 in *INT_cairo_stroke_preserve (cr=0x1b13c0) at
cairo.c:2234
12 0x0012a732 in *INT_cairo_stroke (cr=0x1b13c0) at cairo.c:2207
2010-01-25 09:35:09 +00:00