Refactor GrBufferAllocPools to use resource cache

Committed: https://skia.googlesource.com/skia/+/e935f1a0e2351373c33600b8388492ce1218014a

Review URL: https://codereview.chromium.org/1139753002
diff --git a/src/gpu/GrIndexBuffer.h b/src/gpu/GrIndexBuffer.h
index 4dfd1c1..bf64ff8 100644
--- a/src/gpu/GrIndexBuffer.h
+++ b/src/gpu/GrIndexBuffer.h
@@ -13,8 +13,18 @@
 
 #include "GrGeometryBuffer.h"
 
+
 class GrIndexBuffer : public GrGeometryBuffer {
 public:
+    static void ComputeScratchKey(size_t size, bool dynamic, GrScratchKey* key) {
+        static const GrScratchKey::ResourceType kType = GrScratchKey::GenerateResourceType();
+
+        GrScratchKey::Builder builder(key, kType, 2);
+
+        builder[0] = SkToUInt(size);
+        builder[1] = dynamic ? 1 : 0;
+    }
+
     /**
      * Retrieves the maximum number of quads that could be rendered
      * from the index buffer (using kTriangles_GrPrimitiveType).
@@ -25,7 +35,12 @@
     }
 protected:
     GrIndexBuffer(GrGpu* gpu, size_t gpuMemorySize, bool dynamic, bool cpuBacked)
-        : INHERITED(gpu, gpuMemorySize, dynamic, cpuBacked) {}
+        : INHERITED(gpu, gpuMemorySize, dynamic, cpuBacked) {
+        GrScratchKey key;
+        ComputeScratchKey(gpuMemorySize, dynamic, &key);
+        this->setScratchKey(key);
+    }
+
 private:
     typedef GrGeometryBuffer INHERITED;
 };