[cairo] [PATCH] cairo-xcb: Remove a wrong optimisation
Uli Schlachter
psychon at znc.in
Thu Jul 21 17:00:36 UTC 2016
Just wait. I gave everyone a chance to complain and/or review. Nothing happened
so I just now pushed this commit.
Am 18.07.2016 um 19:36 schrieb darxus at chaosreigns.com:
> What needs to happen for this to get committed?
>
> 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
>>
--
If you have to type the letters "A-E-S" into your source code, you're doing it
wrong.
More information about the cairo
mailing list