Re: [PATCH] cairo-xcb: Remove a wrong optimisation
Bryce Harrington <[email protected]>
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <[email protected]> |
On Mon, Jul 18, 2016 at 01:36:02PM -0400, [email protected] wrote: > What needs to happen for this to get committed? I'm on vacation this week but will look at it when I get back if someone doesn't beat me to it before then. Bryce > On 07/17, Uli Schlachter wrote: > > When doing a "complicated" mask operation, we draw the clip to a surface and use > > this as a mask in later operations. The code assumes that this operation draws > > to the whole target surface and thus a deferred clear may be skipped. > > > > However, this requires that the extents of the trapezoids that will be drawn and > > the extents of the surface are the same. This assumption is wrong, as can be > > seen e.g. by the bug report that this commit fixes. > > > > The fix is just not to skip the deferred clear. > > > > Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=84330 > > Signed-off-by: Uli Schlachter <[email protected]> > > --- > > src/cairo-xcb-surface-render.c | 2 -- > > 1 file changed, 2 deletions(-) > > > > diff --git a/src/cairo-xcb-surface-render.c b/src/cairo-xcb-surface-render.c > > index 64a3d5a..a4969c9 100644 > > --- a/src/cairo-xcb-surface-render.c > > +++ b/src/cairo-xcb-surface-render.c > > @@ -3400,8 +3400,6 @@ _composite_mask_clip (void *closure, > > } > > } > > > > - dst->deferred_clear = FALSE; /* assert(trap extents == extents); */ > > - > > status = _composite_traps (&info, > > dst, CAIRO_OPERATOR_SOURCE, mask_pattern, > > dst_x, dst_y, > > -- > > 2.8.1 > > > -- > cairo mailing list > [email protected] > https://lists.cairographics.org/mailman/listinfo/cairo -- cairo mailing list [email protected] https://lists.cairographics.org/mailman/listinfo/cairo