[cairo] [PATCH] cairo-xcb: Remove a wrong optimisation
Bryce Harrington
bryce at osg.samsung.com
Tue Jul 19 02:36:35 UTC 2016
On Mon, Jul 18, 2016 at 01:36:02PM -0400, darxus at chaosreigns.com 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 <psychon at znc.in>
> > ---
> > 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
> cairo at cairographics.org
> https://lists.cairographics.org/mailman/listinfo/cairo
More information about the cairo
mailing list