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.