[cairo] Pixman refactoring, ARM and Altivec implementations needed
Soeren Sandmann
sandmann at daimi.au.dk
Wed May 27 14:43:32 PDT 2009
Hi,
> Yeah, clarity was my biggest concern. I don't know how much a difference
> it makes.
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.
- For Altivec, the combiner functions should get two extra
arguments, both of which are unused:
pixman_implementation_t *imp, pixman_op_t op,
- The corresponding #ifdef'd code in pixman-general.c should
go away.
- The pixman-{arm-neon,arm-simd,vmx}.h header files can then
be deleted.
Thanks,
Soren
More information about the cairo
mailing list