[cairo] Pixman refactoring, ARM and Altivec implementations needed

Jonathan Morton jonathan.morton at movial.com
Fri May 29 03:09:40 PDT 2009


On Thu, 2009-05-28 at 22:32 -0400, Jeff Muizelaar wrote:
> On Thu, May 28, 2009 at 12:12:54PM +0000, Jonathan Morton wrote:
> > And this refactor step *did* break the blitters - or rather their
> > interface.  I'm not complaining too loudly about that per se, since the
> > interface needed to be updated (and I can see it happening again), just
> > that the existing blitters were not all updated to suit.
> > 
> > This latest refactor has introduced some large performance regressions
> > at my end.  Some of them can be explained by the new fastpath logic not
> > being properly integrated for ARM platforms yet.  For others the cause
> > is less clear.
> > 
> > But because the integration was not completed for all platforms at the
> > same time, I can't currently tell whether a particular performance
> > regression is due to the refactor or due to shortcomings in the
> > integration.  That severely limits my ability to offer suggestions about
> > the refactoring itself, and my time is wasted by debugging and
> > implementing semi-generic code to try and get things working again.
> 
> If you post what you have, I'd love to help out. If we still can't
> explain the performance regressions, I think we might need to consider
> backing the implementation stuff out until we can figure out what's
> causing the problem and decide whether it's worth it.

It looks simply as though the incomplete integration was the cause.
After I worked out how to implement the proper integration myself, the
performance problems largely went away.

Attached is the very nontrivial patch which contains just the
integration of ARM-SIMD and ARM-NEON.  It still misses one of the
function prototypes, because it occupied the same diff fragment as one
of the new blitters which I should send separately, but the compiler
warning should identify which one this is.

Since the kludged "backwards compatibility" temporary integration
clearly doesn't work, PowerPC is probably also seeing a performance
regression.  I haven't fixed that.

-- 
------
From: Jonathan Morton
      jonathan.morton at movial.com

-------------- next part --------------
A non-text attachment was scrubbed...
Name: fix-integration.patch
Type: text/x-patch
Size: 27738 bytes
Desc: not available
Url : http://lists.cairographics.org/archives/cairo/attachments/20090529/afe5ee65/attachment-0001.bin 


More information about the cairo mailing list