Always create an approx-size texture for approx-fit proxies

Bug: chromium:1003415
Change-Id: I699a22aaca36b6ec9f78076732eb810a90154337
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/241356
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/GrResourceProvider.cpp b/src/gpu/GrResourceProvider.cpp
index 29a616f..6d6352f 100644
--- a/src/gpu/GrResourceProvider.cpp
+++ b/src/gpu/GrResourceProvider.cpp
@@ -281,26 +281,17 @@
         return nullptr;
     }
 
-    if (auto tex = this->refScratchTexture(desc, format, renderable, renderTargetSampleCnt,
-                                           isProtected)) {
-        return tex;
-    }
-
-    SkTCopyOnFirstWrite<GrSurfaceDesc> copyDesc(desc);
-
     // bin by some multiple or power of 2 with a reasonable min
-    if (fGpu->caps()->reuseScratchTextures() || renderable == GrRenderable::kYes) {
-        GrSurfaceDesc* wdesc = copyDesc.writable();
-        wdesc->fWidth = MakeApprox(wdesc->fWidth);
-        wdesc->fHeight = MakeApprox(wdesc->fHeight);
-    }
+    GrSurfaceDesc copyDesc(desc);
+    copyDesc.fWidth = MakeApprox(desc.fWidth);
+    copyDesc.fHeight = MakeApprox(desc.fHeight);
 
-    if (auto tex = this->refScratchTexture(*copyDesc, format, renderable, renderTargetSampleCnt,
+    if (auto tex = this->refScratchTexture(copyDesc, format, renderable, renderTargetSampleCnt,
                                            isProtected)) {
         return tex;
     }
 
-    return fGpu->createTexture(*copyDesc, format, renderable, renderTargetSampleCnt,
+    return fGpu->createTexture(copyDesc, format, renderable, renderTargetSampleCnt,
                                SkBudgeted::kYes, isProtected);
 }