[cairo] Pixman refactoring, ARM and Altivec implementations needed
Jonathan Morton
jonathan.morton at movial.com
Thu May 28 02:29:01 PDT 2009
> I have merged this branch to master now. A "make perf" in cairo's
> performance test suite doesn't report any real differences in
> performance.
>
> With this change, the general C implementations lives in
> pixman-general.c and is fairly readable, but there are some remaining
> traces of architecture specific code. Fixing this should be
> straightforward:
>
> - A pixman_implementation_create_{simd,neon,vmx} function
> needs to be written, similar to the one for sse2.
>
> - The pixman_choose_implementation() code in pixman-cpu.c
> should be updated to call this.
>
> - For arm-simd and arm-neon, the implementation should get a
> 'composite' virtual function, which calls
> pixman_run_fast_path on the fast_path array, and falls back
> if that returns FALSE.
Sigh. I had to edit quite a lot of crap to make things simply work
again on ARM, mostly updating the prototype of every single compositing
blitter in the ARM-SIMD and NEON implementations.
The resulting patch won't apply cleanly against master, because of all
the extra blitters I'm staging, for which I also had to edit the
prototypes. If it did apply cleanly, I'd attach it here.
That's without actually making use of the new architecture, just
minimally fixing the compile breakage.
I plan to send these blitters upstream very soon, but this kind of
lossage is *exactly* what I was hoping to avoid. :-(
I know qemu doesn't really support emulating ARMv7 yet, but could you at
least try using a cross-compiler on it to make sure it builds cleanly?
Then I'd only have to edit my own stuff, and I'd have a convenient
template to work against. Scratchbox is probably the best way of
getting one, unless you're on Gentoo which has a very neat
cross-compiler builder.
--
------
From: Jonathan Morton
jonathan.morton at movial.com
More information about the cairo
mailing list