summaryrefslogtreecommitdiffstats
path: root/libs/hwui/TextureCache.h
Commit message (Collapse)AuthorAgeFilesLines
* Free resources only from the GL context thread.Romain Guy2010-11-111-6/+15
| | | | | | | | | | 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/+2
| | | | Change-Id: I07955de166a89b5053c6c13f250bb3e2936ca86e
* Move all debug flags in a single place.Romain Guy2010-11-101-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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
* Correctly remove unused paths from the cache.Romain Guy2010-11-091-0/+4
| | | | Change-Id: I41d9334dcd9871634037344ab49bf69383498161
* Optimize FBO drawing with regions.Romain Guy2010-11-021-4/+4
| | | | | | | | | 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
* DisplayList optimizations and fixes.Chet Haase2010-10-261-0/+14
| | | | | | | | We now use a copy of SkPaint objects to avoid having it changed from under us. We reuse copies that have not changed. We also copy the SkMatrix every time to avoid the same problem. Change-Id: If3fd80698f2d43ea16d23302063e0fd8d0549027
* Move GenerationCache to the utils directory.Romain Guy2010-10-081-1/+1
| | | | Change-Id: I210ffa8f1d76a102bb7d971c649c20a74d03fbe6
* Add support for paletted textures.Romain Guy2010-10-051-0/+1
| | | | Change-Id: I36e6069bd58f78c609cdd1f3e4560c98f128f48e
* Fix texture corruption issue, faster re-upload of textures.Romain Guy2010-09-221-0/+3
| | | | | | Bug #2950691 Change-Id: I57e2bc1d1a23e8683c25de7d09d6f5af2df59f41
* Purge Skia objects from GL caches as needed.Romain Guy2010-09-081-0/+4
| | | | Change-Id: I754c671cf790ad5ae8bf047ad328034217da4ecc
* Fix possible infinite loop when purging textures.Romain Guy2010-09-081-0/+2
| | | | Change-Id: Ib05b398ae03e734da2dab0496df416fed4570b1c
* Use only one GL context per process, share chaches.Romain Guy2010-08-241-0/+3
| | | | Change-Id: Ieabaa25338d2f4b8d4fd90e7401ad6e7452eae11
* Make libhwui entirely optional.Romain Guy2010-08-081-1/+1
| | | | | | | | | | | | The makefile variable USE_OPENGL_RENDERER must be set to true to compile libhwui and the related code in the JNI layer. This change also removes obsolete APIs from Canvas that must not be used and would be confusing if left in. These APIs were remnants of our first attempt at an OpenGL renderer for the view hierarchy and had not been taken out before Android 1.0 was released. Change-Id: I2475ff1307212bab26c926724f3c508681c7dae1
* Enforce maximum texture size.Romain Guy2010-08-071-0/+1
| | | | | | | | | | | | When an app tries to render a bitmap or path larger than the GPU's maximum texture size, the drawing command is ignored and a warning is logged. This change also makes texture drawing more robust by catching potential errors during texture creation. This change also fixes a crash in the FontRenderer. The destructor would sometimes try to free an uninitialized array. Change-Id: I95ae0939c52192d97b340aa02417bf6d0c962c57
* Simpler way to deal with the FBO multi-cache.Romain Guy2010-07-071-1/+1
| | | | | | | | This change removes the need for the SortedList and instead just add a generated id to each FBO stored in the cache. This is an artificial way to store several FBOs with the same dimensions. Change-Id: I9638364e9bdc0f2391261937a0c86096f20505bf
* Optimize FBO cache.Romain Guy2010-07-071-1/+1
| | | | | | | | | This change introduces a new generational cache called GenerationMultiCache that can store several values with the same key. This can be used to use multiple layers of the same size at the same time, without recreating them over and over again. Change-Id: I425466a20908b862c5f464a0f9e582ec18cbd7ac
* Add a layer (FBO) cache.Romain Guy2010-07-061-2/+2
| | | | | | | | | | | | | | The cache is used to draw layers so that a new texture does not have to be recreated every time a call to saveLayer() happens. The FBO cache used a KeyedVector, which is a bad idea. The cache should be able to store several FBOs of the same size (this happens a lot during scrolling with fading edges for instance.) This will be changed in a future CL. Change-Id: Ic316189e625f0dbcf0d273a71cc981a433d48726
* Remove extra leftover logs and use uint32_t instead of unsigned int.Romain Guy2010-07-021-6/+6
| | | | Change-Id: I944f82fe3255de38dc04048cc8bd861f578f01a7
* Track the size in memory of the texture cache.Romain Guy2010-07-011-3/+45
| | | | | | | | | The texture cache was previously checking the number of stored textures. This was not very useful as this could easily lead to an abuse of memory. The new cache instead tracks the total size occupied in RAM by the cached textures. When a new texture is generated, older textures are kicked out as needed. Change-Id: Ib27142f4a018d5bf84774c1fb6f45a67a85f20bc
* Remove unnecessary return and add bitmap generation ID tracking.Romain Guy2010-06-301-1/+1
| | | | Change-Id: Icf5e0635e789f5ea53268c22fad51cf733b5b1a6
* Fix the build.Romain Guy2010-06-301-1/+1
| | | | Change-Id: I08bd6daf25351daca3ae552e1cfcfce85eefa73b
* Add hooks for drawBitmap().Romain Guy2010-06-301-0/+48
Change-Id: I58e962c3a8b2bc75c2605fe369ad3002579d86e0 Add texture cache. Change-Id: I1c0e5581d228869e114438258a1014e33e024ad7