Destroy layers and flush layers cache when a window is destroyed.

Change-Id: I3fa1bc3ff50fb99e3d2e490925bd6b0a0f809fff
diff --git a/libs/hwui/Caches.cpp b/libs/hwui/Caches.cpp
index 7114b6a..c5858e9 100644
--- a/libs/hwui/Caches.cpp
+++ b/libs/hwui/Caches.cpp
@@ -173,13 +173,15 @@
             gradientCache.clear();
             // fall through
         case kFlushMode_Moderate:
-            layerCache.clear();
             pathCache.clear();
             roundRectShapeCache.clear();
             circleShapeCache.clear();
             ovalShapeCache.clear();
             rectShapeCache.clear();
             arcShapeCache.clear();
+            // fall through
+        case kFlushMode_Layers:
+            layerCache.clear();
             break;
     }
 }
diff --git a/libs/hwui/Caches.h b/libs/hwui/Caches.h
index 76dff4b..cdcbf21 100644
--- a/libs/hwui/Caches.h
+++ b/libs/hwui/Caches.h
@@ -101,7 +101,8 @@
 
 public:
     enum FlushMode {
-        kFlushMode_Moderate = 0,
+        kFlushMode_Layers = 0,
+        kFlushMode_Moderate,
         kFlushMode_Full
     };
 
diff --git a/libs/hwui/DisplayListRenderer.h b/libs/hwui/DisplayListRenderer.h
index 8157631..a3d346d 100644
--- a/libs/hwui/DisplayListRenderer.h
+++ b/libs/hwui/DisplayListRenderer.h
@@ -37,7 +37,7 @@
 // Defines
 ///////////////////////////////////////////////////////////////////////////////
 
-#define MIN_WRITER_SIZE 16384
+#define MIN_WRITER_SIZE 4096
 
 // Debug
 #if DEBUG_DISPLAY_LIST