[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