[Pixman] [PATCH 00/12] More ARM NEON fast path functions, used by firefox

Siarhei Siamashka siarhei.siamashka at gmail.com
Mon Nov 29 13:36:04 PST 2010


From: Siarhei Siamashka <siarhei.siamashka at nokia.com>

This patchset implements some new ARM NEON fast paths for pixman. The
need for these fast paths was identified by running a firefox browser with
16bpp desktop. The firefox browser used for this test was configured and
built with '--enable-mobile-optimize' and '--enable-system-pixman' options.

In order to avoid unnecessary code duplication and reduce redundancy,
some of the assembly macros have been updated to support multiple
variants of the same compositing operation which only differ by using
solid source or solid mask. For example, now the same code is reused for
'over_n_8_0565', 'over_8888_n_0565' and 'over_8888_8_0565' fast paths.
Just because this code had to be updated anyway, it also got some extra
performance tuning for ARM Cortex-A8/Cortex-A9.

Hopefully this covers most of the missing optimizations for unscaled
compositing operations used by firefox. Though it depends on the
websites content, so surely something could have been missed.

The patches are also available in the following git branch:
http://cgit.freedesktop.org/~siamashka/pixman/log/?h=sent/arm-neon-faster-firefox-20101129

Siarhei Siamashka (12):
  ARM: added 'neon_composite_over_n_8_8' fast path
  ARM: introduced 'fetch_mask_pixblock' macro to simplify code
  ARM: better NEON instructions scheduling for over_n_8_0565
  ARM: added 'neon_composite_over_8888_n_0565' fast path
  ARM: reuse common NEON code for over_{n_8|8888_n|8888_8}_0565
  ARM: added 'neon_composite_over_0565_n_0565' fast path
  ARM: added 'neon_composite_add_8888_8_8888' fast path
  ARM: better NEON instructions scheduling for add_8888_8888_8888
  ARM: added 'neon_composite_add_n_8_8888' fast path
  ARM: added 'neon_composite_add_8888_n_8888' fast path
  ARM: added flags parameter to some asm fast path wrapper macros
  ARM: added 'neon_composite_in_n_8' fast path

 pixman/pixman-arm-common.h   |   15 +-
 pixman/pixman-arm-neon-asm.S |  473 +++++++++++++++++++++++++++++++++--------
 pixman/pixman-arm-neon-asm.h |    5 +
 pixman/pixman-arm-neon.c     |   42 +++-
 pixman/pixman-arm-simd.c     |    4 +-
 5 files changed, 430 insertions(+), 109 deletions(-)

-- 
1.7.2.2



More information about the Pixman mailing list