[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