[Pixman] [PATCH 0/3] ARM NEON optimizations for better results in cairo-perf benchmarks

Siarhei Siamashka siarhei.siamashka at gmail.com
Mon Mar 1 04:52:34 PST 2010

On Saturday 27 February 2010, Soeren Sandmann wrote:
> Siarhei Siamashka <siarhei.siamashka at gmail.com> writes:
> > Here are the updated patches:
> > http://cgit.freedesktop.org/~siamashka/pixman/log/?h=neon-cairo-perf-spee
> >dup-v2
> >
> > Changes since the previous submission:
> > 1. Added fast path table entries for ABGR formats
> > 2. A bit faster 'neon_composite_over_n_8888_8888_ca' (making use of the
> > fact that alpha channel is the same for both updated source and mask
> > in 'combine_mask_ca' output)
> >
> > Note: an extra table entry for OVER_x888_8888 operation is needed
> > because 'pixman_optimize_operator' can't reduce OVER operator to SRC.
> > When repeat is set to PIXMAN_REPEAT_NONE, function
> > '_pixman_image_is_opaque' returns FALSE. It could be easily fixed by
> > additionally checking whether the region to be composited fits source
> > image completely, and not discriminating PIXMAN_REPEAT_NONE in this case.
> Right. Chris pointed this out as well. It makes sense to do this
> (though there it would need to account for transformations
> reintroducing transparency).

I could make a patch to improve this, but looks like you have some more
updates in the work which are going to touch these parts of code.

It is gnome-system-monitor doing stupid things here like using OVER operator
unnecessarily. I don't know how common it is in general. But the same
performance problem also affects x86 and the other platforms. Solving it
looks like an easy way to earn some points in cairo-perf benchmark :)

> > I'm going to push these patches to master in a few days unless there are
> > more comments/objections.
> If you keep the extra table entry for OVER_x888_8888, maybe alse add
> it for ABGR?

OK, will do that. I just hope it is going to be a temporary workaround

Best regards,
Siarhei Siamashka

More information about the Pixman mailing list