[prev in list] [next in list] [prev in thread] [next in thread]
List: freedesktop-xorg-devel
Subject: [cairo] Pixman refactoring, ARM and Altivec implementations needed
From: sandmann () daimi ! au ! dk (Soeren Sandmann)
Date: 2009-05-27 21:43:32
Message-ID: ye8prdugr23.fsf_-_ () camel18 ! daimi ! au ! dk
[Download RAW message or body]
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
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic