summaryrefslogtreecommitdiffstats
path: root/libs/hwui/Caches.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fixes cache misses and extra allocations.Romain Guy2011-02-031-0/+11
| | | | | | Bug #3421454 Change-Id: If4d5c960a7e4c581a9d213073e658284b4e1c497
* Allocate layers from the layers pool.Romain Guy2011-02-021-6/+2
| | | | | | | | | | | Bug #3413433 This change will be beneficial to Launcher to avoid hiccups when swiping pages of icons. When a layer is discarded, it is kept in the layers pool instead of being destroyed right away. This favors memory reuse over allocations. Change-Id: Ifb6944ba83d6ceb67c331527c0827b26ce648eb1
* Add rounded rects and circles support to OpenGLRenderer.Romain Guy2011-01-191-0/+4
| | | | Change-Id: I6cedf2b495d58de7c0437096809fa9e4518a1b8c
* Cleanup implementation of hardware layers.Romain Guy2011-01-131-17/+10
| | | | | | | | | | The new implementation relies on OpenGLRenderer's existing layer code instead of duplicating it. The new code is much cleaner, with simpler and better APIs and allows tracking of drawn regions inside layers. Region tracking is not yet enabled but this will be done in a future CL. Change-Id: Ie826121a2227de8252c77b992a61218defea5143
* Cleanup GL objects on the correct thread.Romain Guy2011-01-121-0/+26
| | | | Change-Id: Iddfea6e08a6591a4fab147151098ef27005f373d
* Composite layers as regions.Romain Guy2011-01-101-0/+4
| | | | | | | | | | This change detects what area of a layer was drawn into and generates a mesh to match this area exactly. This can be used to avoid blending empty pixels when the layer is composited. This change also adds proper layers support to lines rendering and implements layers composition in a more readable way. Change-Id: I4a5588b98b19bd66891ebdc39631b193c5e31999
* Free resources only from the GL context thread.Romain Guy2010-11-111-0/+10
| | | | | | | | | | Bug #3179882 Resources were freed following garbage collections on a worker thread. This worker thread had no EGL context, which would cause the renderer to incorrectly assume that the memory was liberated. Change-Id: Ifdb51f94ddf42641e8654522787bfac532976c7c
* Add new runtime debug flags.Romain Guy2010-11-101-0/+4
| | | | Change-Id: I07955de166a89b5053c6c13f250bb3e2936ca86e
* Move all debug flags in a single place.Romain Guy2010-11-101-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | This change also adds a new memory usage flag. When turned on, the following is printed after every frame: D/OpenGLRenderer( 3723): Current memory usage / total memory usage (bytes): D/OpenGLRenderer( 3723): TextureCache 3766680 / 20971520 D/OpenGLRenderer( 3723): LayerCache 3538944 / 8388608 D/OpenGLRenderer( 3723): GradientCache 135168 / 524288 D/OpenGLRenderer( 3723): PathCache 41180 / 4194304 D/OpenGLRenderer( 3723): TextDropShadowCache 0 / 2097152 D/OpenGLRenderer( 3723): FontRenderer 0 262144 / 262144 D/OpenGLRenderer( 3723): FontRenderer 1 262144 / 262144 D/OpenGLRenderer( 3723): FontRenderer 2 262144 / 262144 D/OpenGLRenderer( 3723): Other: D/OpenGLRenderer( 3723): FboCache 2 / 12 D/OpenGLRenderer( 3723): PatchCache 31 / 512 D/OpenGLRenderer( 3723): Total memory usage: D/OpenGLRenderer( 3723): 8268404 bytes, 7.89 MB This should help tracking possibe memory issues. Change-Id: I83f483ca1d2dbef904829bce368e33fe5503e8d6
* Optimize FBO drawing with regions.Romain Guy2010-11-021-9/+39
| | | | | | | | | This optimization is currently disabled until Launcher is modified to take advantage of it. The optimization can be enabled by turning on RENDER_LAYERS_AS_REGIONS in the OpenGLRenderer.h file. Change-Id: I2fdf59d0f4dc690a3d7f712173ab8db3848b27b1
* Remove unnecessary GL calls.Romain Guy2010-10-261-0/+2
| | | | | | | This change batches calls to glScissor() and removes extra GL queries and glActiveTexture() calls. Change-Id: I1cd079d314f87cd9c088f95c8d4909c2f860f6aa
* Small cleanup.Romain Guy2010-10-251-5/+5
| | | | | | | Removes unnecessary forward class declaration, make Caches::currentBuffer private instead of public. Change-Id: Idba6325c8c602d89239e667cb8ec87e7943f8e75
* Fix Caches singleton to avoid resource leaksChet Haase2010-10-241-0/+77
The declaration of Singleton objects must be in CPP files (not header files) to avoid creating separate instances of what is supposedly a single object. Change-Id: Ie903384824a458b5572f3ce5b6cfb359c18a9c44