[Spice-devel] [PATCH 2/2] Add patch fixing performance issue

Dmitry Fleytman dmitry at daynix.com
Sun Aug 9 08:54:13 PDT 2015


> On Aug 5, 2015, at 19:27 PM, Christophe Fergeau <cfergeau at redhat.com> wrote:
> 
> On Wed, Aug 05, 2015 at 05:40:36PM +0300, Kirill Moizik wrote:
>> +@@ -1389,7 +1399,11 @@
>> + 			   cairo_operator_t              op)
>> + {
>> +     CGContextSetShouldAntialias (state->cgDrawContext, state->filter != kCGInterpolationNone);
>> ++#ifdef PERFORMANCE_FIX
>> ++    CGContextSetInterpolationQuality(state->cgDrawContext, kCGInterpolationNone);
>> ++#else   
>> +     CGContextSetInterpolationQuality(state->cgDrawContext, state->filter);
>> ++#endif
>> + 
>> +     if (state->action == DO_DIRECT) {
>> + 	CGContextFillRect (state->cgDrawContext, state->rect);
>> +@@ -1672,7 +1686,12 @@
>> + 
>> +     state.filter = filter;
>> + 
>> +-    CGContextSetInterpolationQuality (state.cgMaskContext, filter);
>> ++#ifdef PERFORMANCE_FIX
>> ++    CGContextSetInterpolationQuality(state.cgDrawContext, kCGInterpolationNone);
>> ++#else   
>> ++    CGContextSetInterpolationQuality(state.cgDrawContext, filter);
>> ++#endif
>> ++    
>> +     CGContextSetShouldAntialias (state.cgMaskContext, filter != kCGInterpolationNone);
>> + 
> 
> Is it possible to achieve the same as these 2 hunks at a higher level
> through the use of cairo_pattern_set_filter(CAIRO_FILTER_NEAREST) or
> cairo_pattern_set_filter(CAIRO_FILTER_FAST) ? It does not seem to be
> possible to get kCGInterpolationLow from _cairo_quartz_filter_to_quartz
> at this point though.

Hello Christophe, thanks for your review.

At this point we tried to make patches as simple as possible and this solution looked like the simplest one.
I’m pretty sure there are better ways to do the same from the Cairo’s architecture point of view and we will need to learn those in order to have these patches accepted to Cairo upstream, for now they are intended as a quick solution for Mac client problems only so we did not care about proper solution architecture.

Dmitry

> 
> Christophe
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel



More information about the Spice-devel mailing list