Some cleanup in GrTextureProvider and GrResourceProvider.

Review URL: https://codereview.chromium.org/1261643004
diff --git a/src/gpu/GrIndexBuffer.h b/src/gpu/GrIndexBuffer.h
index bf64ff8..2e3b437 100644
--- a/src/gpu/GrIndexBuffer.h
+++ b/src/gpu/GrIndexBuffer.h
@@ -36,9 +36,12 @@
 protected:
     GrIndexBuffer(GrGpu* gpu, size_t gpuMemorySize, bool dynamic, bool cpuBacked)
         : INHERITED(gpu, gpuMemorySize, dynamic, cpuBacked) {
-        GrScratchKey key;
-        ComputeScratchKey(gpuMemorySize, dynamic, &key);
-        this->setScratchKey(key);
+        // We currently only make buffers scratch if they're both pow2 sized and not cpuBacked.
+        if (!cpuBacked && SkIsPow2(gpuMemorySize)) {
+            GrScratchKey key;
+            ComputeScratchKey(gpuMemorySize, dynamic, &key);
+            this->setScratchKey(key);
+        }
     }
 
 private: