Revert "Remove the resolve rect and resolve types from GrRenderTarget"
This reverts commit ec85f407bfee58f1d8b80966256cf746bde2591a.
Reason for revert: Vulkan crashes
Original change's description:
> Remove the resolve rect and resolve types from GrRenderTarget
>
> Change-Id: Id0c1155130c23e835490714fe1314f4ec4a83015
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/240002
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
TBR=egdaniel@google.com,jvanverth@google.com,bsalomon@google.com,csmartdalton@google.com
Change-Id: Ie138488086a1a91599ad0f5ede4272ac286895c9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/244660
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
diff --git a/src/gpu/GrTextureResolveRenderTask.cpp b/src/gpu/GrTextureResolveRenderTask.cpp
index 2230edf..92e505e 100644
--- a/src/gpu/GrTextureResolveRenderTask.cpp
+++ b/src/gpu/GrTextureResolveRenderTask.cpp
@@ -70,9 +70,12 @@
if (GrSurfaceProxy::ResolveFlags::kMSAA & resolve.fFlags) {
// peekRenderTarget might be null if there was an instantiation error.
GrRenderTarget* renderTarget = resolve.fProxy->peekRenderTarget();
- flushState->gpu()->resolveRenderTarget(renderTarget, resolve.fMSAAResolveRect,
- resolve.fProxy->origin(),
- GrGpu::ForExternalIO::kNo);
+ if (renderTarget && renderTarget->needsResolve()) {
+ flushState->gpu()->resolveRenderTarget(renderTarget, resolve.fMSAAResolveRect,
+ resolve.fProxy->origin(),
+ GrGpu::ForExternalIO::kNo);
+ SkASSERT(!renderTarget->needsResolve());
+ }
}
}
// Regenerate all mipmaps back-to-back.