[libpixelflinger] NEON shortcut for flat colour blending into 16-bit
authorJim Huang <jserv@0xlab.org>
Tue, 8 Dec 2009 09:55:38 +0000 (17:55 +0800)
committerKan-Ru Chen <kanru@0xlab.org>
Wed, 17 Mar 2010 09:03:25 +0000 (17:03 +0800)
commit3ce7f608b9e24718634c6362b77921f93b009c9d
treec566a7841a160ee9519c8500919131357e7e591f
parentbed0b70a45f7db4b16a2843c339e4a7855ae5045
[libpixelflinger] NEON shortcut for flat colour blending into 16-bit

DO NOT MERGE

derived from ARM modifications:

From: Martyn Capewell <martyn.capewell@arm.com>
Date: Mon, 7 Dec 2009 15:00:19 +0000 (+0000)

NEON shortcut for flat colour blending into 16-bit

This is a shortcut for the needs descriptor
00000077:03515104_00000000_00000000.  It requires blending a single 32-bit
colour value into a 16-bit framebuffer.
It's used when fading out the screen, eg. when a modal requester pops-up.

The PF JIT produces code for this using 24 instructions/pixel. The NEON
implementation requires 2.1 instructions/pixel. Performance hasn't been
benchmarked, but the improvement is quite visible.

This code has only been tested by inspection of the fading effect described
above, when press+holding a finger on the home screen to pop up the
Shortcuts/Widgets/Folders/Wallpaper requester.

Along with the NEON version, a fallback v5TE implementation is also provided.

This ARM version of col32cb16blend is not fully optimised, but is a reasonable
implementation, and better than the version produced by the JIT. It is here as
a fallback, if NEON is not available.
(cherry picked from commit 87cf1075376ff0013ded4bf6deba3026c04fb35a)
libpixelflinger/Android.mk
libpixelflinger/col32cb16blend.S [new file with mode: 0644]
libpixelflinger/col32cb16blend_neon.S [new file with mode: 0644]
libpixelflinger/scanline.cpp