• Home
  • History
  • Annotate
  • only in /system/core/libpixelflinger/codeflinger/
History log of /system/core/libpixelflinger/codeflinger/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
04b5ac36a50a5fdaf3510c3c4c4e89bc35cfe26e 29-Aug-2012 Ian Rogers <irogers@google.com> Remove unnecessary compiler pragma.

With dlmalloc 2.8.6 the compiler pragmas to suppress warnings are not
necessary.
Also fix compiler warning about redefinition of LOG_TAG.

Depends upon: https://android-review.googlesource.com/42351

Change-Id: I50f70be31f4bd994b09083e722759464476c70b3
odeCache.cpp
c3c5358b94f48799fd595c829ce223b43588bac1 27-Aug-2012 Jean-Baptiste Queru <jbq@google.com> Merge "Add MIPS support to pixelflinger."
2d13791ce7ff61221ca047553891f31a23b2e943 18-Aug-2012 Ian Rogers <irogers@google.com> Upgrade to dlmalloc 2.8.5.

Remove mspace functionality from cutils.
Directly declare mspace from dlmalloc in code flinger's code cache, and
manage without using morecore.

Depends upon: https://android-review.googlesource.com/41717

Change-Id: If927254febd4414212c690f16509ef2ee1b44b44
odeCache.cpp
odeCache.h
2bc2b792782b304b15d8c48b54916a9b3fa3a7ac 01-Feb-2012 Paul Lind <plind@mips.com> Add MIPS support to pixelflinger.

See the comment-block at the top of MIPSAssembler.cpp for
implementation overview.

Change-Id: Id492c10610574af8c89c38d19e12fafc3652c28a
RMAssembler.cpp
RMAssembler.h
RMAssemblerInterface.cpp
RMAssemblerInterface.h
RMAssemblerProxy.cpp
RMAssemblerProxy.h
odeCache.cpp
GLAssembler.cpp
GLAssembler.h
IPSAssembler.cpp
IPSAssembler.h
oad_store.cpp
ips_disassem.c
ips_disassem.h
ips_opcode.h
exturing.cpp
01dda204cd28fe181691b4a44a51be7e5666d0c8 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE

Bug: 5449033
Change-Id: Ibcffdcf620ebae1c389446ce8e9d908f11ac039c
odeCache.cpp
GLAssembler.cpp
lending.cpp
oad_store.cpp
exturing.cpp
fe71a61e5b0cb666675900d206251a7c18ed944b 04-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGE

Bug: 5449033
Change-Id: I4951baa981f09a84ce483e3d1bd0f9ebe009035f
RMAssembler.cpp
720fdebb4ca2306133099126eb1f10b0b79ccce1 23-Nov-2010 Jean-Baptiste Queru <jbq@google.com> am 4906db21: Merge "codeflinger: Correct misleading comment of STM instruction"

* commit '4906db21e041327042b87122b233e1f150618334':
codeflinger: Correct misleading comment of STM instruction
287a9585dc85bff9b81e962f6be4f2b36512d345 15-Oct-2010 Jean-Baptiste Queru <jbq@google.com> am 8e0e372a: Set PROT_EXEC on the whole pixelflinger code cache.

Merge commit '8e0e372a388434a0553810e2b958e59a26a6bd96' into gingerbread-plus-aosp

* commit '8e0e372a388434a0553810e2b958e59a26a6bd96':
Set PROT_EXEC on the whole pixelflinger code cache.
8e0e372a388434a0553810e2b958e59a26a6bd96 14-Oct-2010 Jean-Baptiste Queru <jbq@google.com> Set PROT_EXEC on the whole pixelflinger code cache.

The pointer difference between word pointers is a number
of words, and it needs to be multiplied by the size of a word
to get a proper byte size.

Without this, we tend to see crashes when the code crosses
a page boundary.

Bug: 3026204
Bug: 3097482
Change-Id: I37776d26d5afcdb1da71680de02fbb95e6548371
odeCache.cpp
a7e96642a9f91620b69716cc3198c6ebb4d0553c 04-May-2010 Kan-Ru Chen <kanru@0xlab.org> codeflinger: Correct misleading comment of STM instruction

According to the ARM Architecture Reference Manual, the comment on
STM instruction should be in reverse order.

Change-Id: I4af852a0478798ff7b02ab9c29c68e320ff78696
Signed-off-by: Kan-Ru Chen <kanru@0xlab.org>
RMAssembler.cpp
67e6fcd19533f54ca37cbe72425f55a40a7f0333 21-Jun-2010 The Android Open Source Project <initial-contribution@android.com> merge from froyo-plus-aosp

Change-Id: Ie231effb4d9dfd63aa98ec08b269c31ce32aa1c0
62f4d86b7c9143860bc5e9679382fcf159b788b4 15-Jun-2010 Jean-Baptiste Queru <jbq@google.com> Fix build - cpu-features is ARM-specific

Change-Id: I66521f279545a249e3dcb645914f7b66f23cef21
oad_store.cpp
4dc1fa8e8d1f14868ab8bba93a8cbb87f847c4e3 04-Dec-2009 Martyn Capewell <martyn.capewell@arm.com> Adds support for UBFX to JIT and Disassembler

This introduces UBFX instruction generation abilities to the Pixelflinger JIT,
and also modifies the component extraction function to generate the
instruction.

The extract function contains defines to prevent generation of UBFX on pre-v7
cores. The JIT itself retains the ability to produce the instruction even on
v5/6.

This patch only generates UBFX when MOV, AND or BIC can't be used. Based on
the TRM, this appears to be faster on A9 than using UBFX in all cases.

On startup, Pixelflinger JITs three chunks of code. UBFX improves these as
follows:

00000077:03515104_00000000_00000000
(Blends a single colour into an RGB565 buffer.)
Before: 27 inst/pixel, After: 24 inst/pixel, Improvement: 12.5%
00000077:03545404_00000A01_00000000
(Blends RGBA8888 texture into an RGB565 buffer using alpha.)
Before: 30 inst/pixel, After: 27 inst/pixel, Improvement: 11.1%
00000077:03545404_00000A04_00000000
(Blends RGB565 texture into an RGB565 buffer using alpha.)
Before: 29 inst/pixel, After: 27 inst/pixel, Improvement: 7.4%
RMAssembler.cpp
RMAssembler.h
RMAssemblerInterface.h
RMAssemblerProxy.cpp
RMAssemblerProxy.h
isassem.c
oad_store.cpp
beeeee705bcf16d705748713ea40dca3486cc7b7 07-May-2010 Nick Kralevich <nnk@google.com> Allow pixelflinger to work when NX (No Execute) is enabled.

Instead of allocating memory from the (non executable) heap,
allocate memory using mspace and ensure that we use mprotect
to mark it as PROT_EXEC. This allows pixelflinger to
continue to work even when NX protections are enabled.

Testing: Using the ApiDemos market app, verify that
Apidemos -> Graphics -> OpenGL ES -> GLSurfaceView
works when "adb shell setprop debug.egl.hw 0" is set.

Change-Id: Ib569cd2543c6fa25688ee76325a712bc2347450b
odeCache.cpp
odeCache.h
2bef93cc20155c3a59cdbb22c564c4b385b2c160 03-May-2010 Bruce Beare <brucex.j.beare@intel.com> cpu-features.h is only available for ARM

Change-Id: I1e8001a1875bfd9cebfe18dfd757556b55c8213c
exturing.cpp
9b6c850d24df82451862b81f059361b586f5ef0b 03-May-2010 Jean-Baptiste Queru <jbq@google.com> fix sim build

Change-Id: Ide300eafbcbbc6dfae25fe86188302c6676c4a3b
exturing.cpp
f42d2fac2b09547295e353ddffb281aa7932403f 07-Dec-2009 Martyn Capewell <martyn.capewell@arm.com> Fix LDM addressing mode disassembly

The Pixelflinger disassembler does not handle LDM addressing modes correctly,
assuming that the P and U bits in the instruction mean the same in both LDM and
STM. This results in the disassembler producing sequences like:

stmfd r13!, {r4-r11, r14}
...
...
...
ldmea r13!, {r4-r11, r14}

This small patch fixes it by EORing the P and U bits with the Load/Store bit.

Change-Id: Ic7a1556642c4e29415fc3697019f1239b6c26fc2
isassem.c
96dbb4fc58fe2dcf4390e073dbb42cc77ef2f0b5 07-Dec-2009 Martyn Capewell <martyn.capewell@arm.com> Adds UXTB16 support to Pixelflinger

* Add support for UXTB16 to the disassembler
* Add encoding of the UXTB16 instruction to the Pixelflinger JIT.

Introducing the UXTB16 instruction allows removal of some masking code, and is
beneficial from a pipeline point of view - lots of UXTB16 followed by MUL
sequences.

Also, further rescheduling and use of SMULWB brings extra performance
improvements.

* Use UXTB16 in bilinear filtered texturing

Uses UXTB16 to extract channels for SIMD operations, rather than creating and
ANDing with masks. Saves a register and is faster on A8, as UXTB16 result can
feed into first stage of multiply, unlike AND.

Also, used SMULWB rather than SMULBB, which allows removal of MOVs used to
rescale results.

Code has been scheduled for A8 pipeline, specifically aiming to allow
multiplies to issue in pipeline 0, for efficient dual issue operation.

Testing on SpriteMethodTest (http://code.google.com/p/apps-for-android/) gives
8% improvement (12.7 vs. 13.7 fps.)

SMULBB to SMULWB trick could be used in <v6 code path, but this hasn't been
implemented.
RMAssembler.cpp
RMAssembler.h
RMAssemblerInterface.h
RMAssemblerProxy.cpp
RMAssemblerProxy.h
isassem.c
exturing.cpp
4b29fe640ae852c04d5d87d0f9527bdc32177ad1 13-Nov-2009 Jean-Baptiste Queru <jbq@google.com> eclair snapshot
lending.cpp
006ba85e981d66ecf262a0ba0b2a6160b1923f24 02-Jun-2009 Mathias Agopian <mathias@google.com> fix 1650170 pixelflinger depends on KeyedVector.h, etc
RMAssembler.h
odeCache.h
dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
RMAssembler.cpp
RMAssembler.h
RMAssemblerInterface.cpp
RMAssemblerInterface.h
RMAssemblerProxy.cpp
RMAssemblerProxy.h
odeCache.cpp
odeCache.h
GLAssembler.cpp
GLAssembler.h
rmreg.h
lending.cpp
isassem.c
isassem.h
oad_store.cpp
exturing.cpp
e54eebbf1a908d65ee8cf80bab62821c05666d70 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
RMAssembler.cpp
RMAssembler.h
RMAssemblerInterface.cpp
RMAssemblerInterface.h
RMAssemblerProxy.cpp
RMAssemblerProxy.h
odeCache.cpp
odeCache.h
GLAssembler.cpp
GLAssembler.h
rmreg.h
lending.cpp
isassem.c
isassem.h
oad_store.cpp
exturing.cpp
2eef60297a0ca1433d0824d6d662efd402709cfd 16-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@126645
RMAssembler.cpp
35237d135807af84bf9b0e5b8d7f8633e58db6f5 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
GLAssembler.cpp
GLAssembler.h
lending.cpp
oad_store.cpp
exturing.cpp
4f6e8d7a00cbeda1e70cc15be9c4af1018bdad53 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
RMAssembler.cpp
RMAssembler.h
RMAssemblerInterface.cpp
RMAssemblerInterface.h
RMAssemblerProxy.cpp
RMAssemblerProxy.h
odeCache.cpp
odeCache.h
GLAssembler.cpp
GLAssembler.h
rmreg.h
lending.cpp
isassem.c
isassem.h
oad_store.cpp
exturing.cpp