Commit graph

26 commits

Author SHA1 Message Date
Elliott Hughes
606d4aecfb Revert "Revert "Add MIPS64r6 support for libpixelflinger""
This reverts commit 7fd121788a.

Change-Id: Ic1204a8407c235b07c643764d5f2800631fecd72
2015-11-06 16:02:25 +01:00
Elliott Hughes
7fd121788a Revert "Add MIPS64r6 support for libpixelflinger"
This reverts commit ab5265ebe6.

This broke the mips64 build (which, stupidly, I hadn't tested):

  system/core/libpixelflinger/codeflinger/MIPS64Assembler.h:24:35: fatal error: tinyutils/KeyedVector.h: No such file or directory
   #include "tinyutils/KeyedVector.h"

Change-Id: I4fa1c04e196592fd1ef893a83c75261a55d32290
2015-11-05 18:54:11 +00:00
Ljubomir Papuga
ab5265ebe6 Add MIPS64r6 support for libpixelflinger
Added ARMtoMips64Assembler class that translates ARM instructions to MIPS64r6
instructions.
Added MIPS64r6 assembly implementations for col32cb16_blend and t32cb16_blend
functions.
Added MIPS32r2 assembly implementation for col32cb16_blend function.
Added tests for MIPS64r6 (assembler, disassembler and assembly implementation
functions).
Added MIPS32 tests for assembly implementation functions.
Minor bug fixes for MIPS32r2 branch.

Change-Id: I69e49622117be5b8167628e9702db6aafb1849d7
2015-10-29 17:22:17 +01:00
Duane Sand
734f50c2fe [MIPSR6] Skip pixelflinger, memset assembler code on mips32r6
Temporarily use generic C-coded libpixelflinger & memset on mips32r6.

Change-Id: I629b11ba955eaba323cba1df96c39f75f4d24d62
2014-07-31 16:21:16 -07:00
Duane Sand
f1d63bdf00 [MIPS64] Use generic cpu-independent libpixelflinger for mips64
For now, use generic C code instead of generated mips instructions,
in the same manner as used on x86 and x86_64 targets.

Change-Id: If3607484e0a446a755c62c030b3069d46ab5beb2
2014-06-03 16:53:12 -07:00
Kévin PETIT
d82b2a3eb4 Fix the build for NEON in libpixelflinger
ARCH_ARM_HAVE_NEON is only ever defined to true, so test for that.
For the NEON function to be used, the file has to include
machine/cpu-features.h so that __ARM_HAVE_NEON is defined.

Change-Id: I0db196b39c493092415859e009531fcff6fc1e8b
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
2014-03-06 15:53:27 +00:00
Kévin PETIT
c2659e72d7 Fix the handling of CodeCache return codes in pixelflinger
The error condition was not correctly detected: an error was
reported by checking that the index returned by CodeCache::cache
was non-zero. This did not work because this function can return
a positive value on success.

Change-Id: I1f90125ee62ab277b80da4dfb341733cd6e8e86a
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
2014-02-26 11:39:13 +00:00
Ashok Bhat
3078b13b98 Fix compiler warnings in libpixelflinger
Change-Id: I6a5708ae6bc934b196d59d81a6cd550b05ed704f
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-02-20 14:21:55 -08:00
Colin Cross
d4146e6091 system/core: rename aarch64 target to arm64
Rename aarch64 build targets to arm64.  The gcc toolchain is still
aarch64.

Change-Id: Ia92d8a50824e5329cf00fd6f4f92eae112b7f3a3
2014-01-23 18:01:14 -08:00
Ashok Bhat
658f89dc5c Pixelflinger: Add AArch64 support to pixelflinger JIT.
See the comment-block at the top of Aarch64Assembler.cpp
for overview on how AArch64 support has been implemented

In addition, this commit contains
[x] AArch64 inline asm versions of gglmul series of
    functions and a new unit test bench to test the
    functions

[x] Assembly implementations of scanline_col32cb16blend
    and scanline_t32cb16blend for AArch64, with unit
    test bench

Change-Id: I915cded9e1d39d9a2a70bf8a0394b8a0064d1eb4
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2013-12-12 17:30:13 +00:00
Ashok Bhat
d10afb1748 Pixelflinger: Fix issue of pointers being stored in ints
Pixelflinger's code makes assumptions, at certain places,
that pointers can be stored as ints. This patch makes use
of uintptr_t wherever pointers are stored as int or cast
to int.

Change-Id: Ie76f425cbc82ac038a747f77a95bd31774f4a8e8
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2013-12-12 17:30:13 +00:00
synergy dev
cd2fe3b49b libpixelflinger: do not use anonymous structs
Avoiding the use of gnu extensions improves code portability

Change-Id: Ie9e94e3ce030f52a22997f8a48de1e6c1c549894
2013-11-25 18:54:56 +00:00
Paul Lind
2bc2b79278 Add MIPS support to pixelflinger.
See the comment-block at the top of MIPSAssembler.cpp for
implementation overview.

Change-Id: Id492c10610574af8c89c38d19e12fafc3652c28a
2012-08-13 11:41:15 -07:00
Duane Sand
068f9f3bf9 Add Mips support to libpixelflinger
Change-Id: Ib81cb01b8d90ed1afa1fd54b3cc009d7fec0f814
2012-05-30 11:48:53 -07:00
Steve Block
8aeb6e244a Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)
Change-Id: I52fce957db06c281e2618daa4e2ecba19974f2eb
2012-01-17 17:56:20 +00:00
Steve Block
4f07a1f826 Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF)
Change-Id: I6c2a1d56dadb7e5c69e478f4d8c7d9f2127db2af
2012-01-17 17:56:20 +00:00
Steve Block
4163b45949 Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)
Change-Id: I929ea38bc6fe6efeefa7870c8e7e4c19cd0029b3
2012-01-17 17:56:19 +00:00
Vladimir Chtchetkine
dccddee972 Fix DEBUG_NEEDS usage
Change-Id: Ic107c60080e55e1f9092f20fe3bd55e7592ca9fd
2011-08-29 10:02:24 -07:00
David 'Digit' Turner
39764f41a5 pixelflinger: Provide more scanline shortcut functions.
This patch adds a dozen more "shortcut" scanline-processing functions
to pixel-flingers. All of them avoid using the JIT for the corresponding
operation (on ARM), or using the generic and _extremely_ slow 'scanline'
function (on x86, where there is no JIT).

The shortcuts were selected by running the system under emulation
(build full_x86-eng, then launch emulator-x86), and correspond to
operations that are in use when using the system's typical UI features.

This makes it much more responsive and amenable to testing most
applications, at least those that don't use OpenGL ES heavily.

Note that HW OpenGLES emulation is under completion and should solve this
problem entirely, though is not there yet.

Change-Id: I9c73ba21ad158d6cc5532fabe7ed2419e00ecb3f
2011-04-16 13:13:58 +02:00
Jim Huang
6090dacd18 libpixelflinger: Move codeflinger test function to test-opengl-codegen
There is no need to include codeflinger test function in
libpixelflinger.  Instead, it should exist in test-opengl-codegen.

Change-Id: Ic5b0bd1f754b2ac678d4e16565568c70ceb8d325
2010-08-10 02:07:38 +08:00
Martyn Capewell
f9e8ab03bd 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.
2009-12-07 15:00:19 +00:00
The Android Open Source Project
dd7bc3319d auto import from //depot/cupcake/@135843 2009-03-03 19:32:55 -08:00
The Android Open Source Project
e54eebbf1a auto import from //depot/cupcake/@135843 2009-03-03 18:29:04 -08:00
The Android Open Source Project
3e292b9716 auto import from //branches/cupcake/...@132569 2009-02-20 07:38:35 -08:00
The Android Open Source Project
35237d1358 Code drop from //branches/cupcake/...@124589 2008-12-17 18:08:08 -08:00
The Android Open Source Project
4f6e8d7a00 Initial Contribution 2008-10-21 07:00:00 -07:00