[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