Allocate layers from the layers pool.
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
diff --git a/libs/hwui/Caches.cpp b/libs/hwui/Caches.cpp
index bffab95..ebf7aa0 100644
--- a/libs/hwui/Caches.cpp
+++ b/libs/hwui/Caches.cpp
@@ -20,6 +20,7 @@
#include "Caches.h"
#include "Properties.h"
+#include "LayerRenderer.h"
namespace android {
@@ -116,12 +117,7 @@
size_t count = mLayerGarbage.size();
for (size_t i = 0; i < count; i++) {
Layer* layer = mLayerGarbage.itemAt(i);
- if (layer) {
- if (layer->fbo) glDeleteFramebuffers(1, &layer->fbo);
- if (layer->texture) glDeleteTextures(1, &layer->texture);
-
- delete layer;
- }
+ LayerRenderer::destroyLayer(layer);
}
mLayerGarbage.clear();
}