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);
}