| Index: src/gpu/GrResourceCache.h
 | 
| diff --git a/src/gpu/GrResourceCache.h b/src/gpu/GrResourceCache.h
 | 
| index bf7b237006b0fd270a1056744c130b5ce006be94..ae9a4e7ee7e3bae513b5503083209b96e1d8fb74 100644
 | 
| --- a/src/gpu/GrResourceCache.h
 | 
| +++ b/src/gpu/GrResourceCache.h
 | 
| @@ -40,12 +40,6 @@ class SkTraceMemoryDump;
 | 
|   * A unique key always takes precedence over a scratch key when a resource has both types of keys.
 | 
|   * If a resource has neither key type then it will be deleted as soon as the last reference to it
 | 
|   * is dropped.
 | 
| - *
 | 
| - * When proactive purging is enabled, on every flush, the timestamp of that flush is stored in a
 | 
| - * n-sized ring buffer. When purging occurs each purgeable resource's timestamp is compared to the
 | 
| - * timestamp of the n-th prior flush. If the resource's last use timestamp is older than the old
 | 
| - * flush then the resource is proactively purged even when the cache is under budget. By default
 | 
| - * this feature is disabled, though it can be enabled by calling GrResourceCache::setLimits.
 | 
|   */
 | 
|  class GrResourceCache {
 | 
|  public:
 | 
| @@ -56,11 +50,12 @@ public:
 | 
|      static const int    kDefaultMaxCount            = 2 * (1 << 12);
 | 
|      // Default maximum number of bytes of gpu memory of budgeted resources in the cache.
 | 
|      static const size_t kDefaultMaxSize             = 96 * (1 << 20);
 | 
| -    // Default number of flushes a budgeted resources can go unused in the cache before it is
 | 
| -    // purged. Large values disable the feature (as the ring buffer of flush timestamps would be
 | 
| -    // large). This is currently the default until we decide to enable this feature
 | 
| -    // of the cache by default.
 | 
| -    static const int    kDefaultMaxUnusedFlushes    = 64;
 | 
| +    // Default number of external flushes a budgeted resources can go unused in the cache before it 
 | 
| +    // is purged. Using a value <= 0 disables this feature.
 | 
| +    static const int    kDefaultMaxUnusedFlushes =
 | 
| +            1  * /* flushes per frame */
 | 
| +            60 * /* fps */
 | 
| +            30;  /* seconds */
 | 
|  
 | 
|      /** Used to access functionality needed by GrGpuResource for lifetime management. */
 | 
|      class ResourceAccess;
 | 
| @@ -68,9 +63,9 @@ public:
 | 
|  
 | 
|      /**
 | 
|       * Sets the cache limits in terms of number of resources, max gpu memory byte size, and number
 | 
| -     * of GrContext flushes that a resource can be unused before it is evicted. The latter value is
 | 
| -     * a suggestion and there is no promise that a resource will be purged immediately after it
 | 
| -     * hasn't been used in maxUnusedFlushes flushes.
 | 
| +     * of external GrContext flushes that a resource can be unused before it is evicted. The latter
 | 
| +     * value is a suggestion and there is no promise that a resource will be purged immediately
 | 
| +     * after it hasn't been used in maxUnusedFlushes flushes.
 | 
|       */
 | 
|      void setLimits(int count, size_t bytes, int maxUnusedFlushes = kDefaultMaxUnusedFlushes);
 | 
|  
 | 
| @@ -237,7 +232,6 @@ private:
 | 
|      void refAndMakeResourceMRU(GrGpuResource*);
 | 
|      /// @}
 | 
|  
 | 
| -    void resetFlushTimestamps();
 | 
|      void processInvalidUniqueKeys(const SkTArray<GrUniqueKeyInvalidatedMessage>&);
 | 
|      void addToNonpurgeableArray(GrGpuResource*);
 | 
|      void removeFromNonpurgeableArray(GrGpuResource*);
 | 
| @@ -321,11 +315,7 @@ private:
 | 
|      size_t                              fBudgetedBytes;
 | 
|  
 | 
|      bool                                fRequestFlush;
 | 
| -
 | 
| -    // We keep track of the "timestamps" of the last n flushes. If a resource hasn't been used in
 | 
| -    // that time then we well preemptively purge it to reduce memory usage.
 | 
| -    uint32_t*                           fFlushTimestamps;
 | 
| -    int                                 fLastFlushTimestampIndex;
 | 
| +    uint32_t                            fExternalFlushCnt;
 | 
|  
 | 
|      InvalidUniqueKeyInbox               fInvalidUniqueKeyInbox;
 | 
|  
 | 
| 
 |