Merge "Remove usage of Texture::cleanup in PathCache" into mnc-dev
diff --git a/libs/hwui/PathCache.cpp b/libs/hwui/PathCache.cpp
index 74964f6..8f5fea3 100644
--- a/libs/hwui/PathCache.cpp
+++ b/libs/hwui/PathCache.cpp
@@ -142,7 +142,7 @@
char property[PROPERTY_VALUE_MAX];
if (property_get(PROPERTY_PATH_CACHE_SIZE, property, nullptr) > 0) {
INIT_LOGD(" Setting %s cache size to %sMB", name, property);
- setMaxSize(MB(atof(property)));
+ mMaxSize = MB(atof(property));
} else {
INIT_LOGD(" Using default %s cache size of %.2fMB", name, DEFAULT_PATH_CACHE_SIZE);
}
@@ -172,13 +172,6 @@
return mMaxSize;
}
-void PathCache::setMaxSize(uint32_t maxSize) {
- mMaxSize = maxSize;
- while (mSize > mMaxSize) {
- mCache.removeOldest();
- }
-}
-
///////////////////////////////////////////////////////////////////////////////
// Callbacks
///////////////////////////////////////////////////////////////////////////////
@@ -267,24 +260,18 @@
PathTexture* texture, bool addToCache) {
generateTexture(*bitmap, texture);
+ // Note here that we upload to a texture even if it's bigger than mMaxSize.
+ // Such an entry in mCache will only be temporary, since it will be evicted
+ // immediately on trim, or on any other Path entering the cache.
uint32_t size = texture->width * texture->height;
- if (size < mMaxSize) {
- mSize += size;
- PATH_LOGD("PathCache::get/create: name, size, mSize = %d, %d, %d",
- texture->id, size, mSize);
- if (mDebugEnabled) {
- ALOGD("Shape created, size = %d", size);
- }
- if (addToCache) {
- mCache.put(entry, texture);
- }
- } else {
- // It's okay to add a texture that's bigger than the cache since
- // we'll trim the cache later when addToCache is set to false
- if (!addToCache) {
- mSize += size;
- }
- texture->cleanup = true;
+ mSize += size;
+ PATH_LOGD("PathCache::get/create: name, size, mSize = %d, %d, %d",
+ texture->id, size, mSize);
+ if (mDebugEnabled) {
+ ALOGD("Shape created, size = %d", size);
+ }
+ if (addToCache) {
+ mCache.put(entry, texture);
}
}
diff --git a/libs/hwui/PathCache.h b/libs/hwui/PathCache.h
index 4297693..7014863 100644
--- a/libs/hwui/PathCache.h
+++ b/libs/hwui/PathCache.h
@@ -186,10 +186,6 @@
void clear();
/**
- * Sets the maximum size of the cache in bytes.
- */
- void setMaxSize(uint32_t maxSize);
- /**
* Returns the maximum size of the cache in bytes.
*/
uint32_t getMaxSize();