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

Marc-André Lureau mlureau at redhat.com
Wed Aug 5 08:01:41 PDT 2015


Hi


----- Original Message -----
> From: Kirill Moizik <kmoizik at redhat.com>
> 
> ---
>  cairo-quartz-surface-performance-patch.patch | 61
>  ++++++++++++++++++++++++++++
>  1 file changed, 61 insertions(+)
>  create mode 100644 cairo-quartz-surface-performance-patch.patch
> 


The patch is lacking a commit message.
Did you submit it to the cairo ML?

thanks

> diff --git a/cairo-quartz-surface-performance-patch.patch
> b/cairo-quartz-surface-performance-patch.patch
> new file mode 100644
> index 0000000..0da3243
> --- /dev/null
> +++ b/cairo-quartz-surface-performance-patch.patch
> @@ -0,0 +1,61 @@
> +--- spice-jhbuild/source/cairo-1.14.0/src/cairo-quartz-surface.c	2014-10-14
> 04:46:33.000000000 +0300
> ++++ spice-jhbuild/source/cairo-1.14.0/src/cairo-quartz-surface_patched.c
> 	2015-08-05 16:29:10.000000000 +0300
> +@@ -35,6 +35,7 @@
> +  */
> +
> + #define _GNU_SOURCE /* required for RTLD_DEFAULT */
> ++#define PERFORMANCE_FIX
> + #include "cairoint.h"
> +
> + #include "cairo-quartz-private.h"
> +@@ -229,7 +230,15 @@
> + 				   dataProvider,
> + 				   decode,
> + 				   interpolate);
> +-    } else
> ++    } else {
> ++#ifdef PERFORMANCE_FIX
> ++    CMProfileRef systemMonitorProfile = NULL;
> ++    CMError getProfileErr = CMGetSystemProfile(&systemMonitorProfile);
> ++    if(noErr == getProfileErr) {
> ++        colorSpace =
> CGColorSpaceCreateWithPlatformColorSpace(systemMonitorProfile);
> ++        CMCloseProfile(systemMonitorProfile);
> ++    }
> ++#endif
> + 	image = CGImageCreate (width, height,
> + 			       bitsPerComponent,
> + 			       bitsPerPixel,
> +@@ -240,6 +249,7 @@
> + 			       NULL,
> + 			       interpolate,
> + 			       kCGRenderingIntentDefault);
> ++    }
> +
> + FINISH:
> +
> +@@ -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);
> +
> +     CGContextClipToMask (state.cgMaskContext, rect, img);
> --
> 2.3.2 (Apple Git-55)
> 
> _______________________________________________
> 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