Revert "Reorder msaa and mipmap resolves to happen all at once"

This reverts commit fd1414608ba1174a26af27067575c65c2dc3d605.

Reason for revert: red bots

Original change's description:
> Reorder msaa and mipmap resolves to happen all at once
> 
> Makes it so every renderTask has only one textureResolveTask, and
> modifies GrTextureResolveTask to perform multiple resolves
> back-to-back.
> 
> Bug: skia:9406
> Change-Id: I93566cf4b23764bd846a1e0a0848642c9b3a507a
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/241936
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>

TBR=egdaniel@google.com,robertphillips@google.com,csmartdalton@google.com

Change-Id: I12f340da3dfec81477ceeab806ca76ce2b3c397b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:9406
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/242390
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
diff --git a/src/gpu/GrRenderTask.cpp b/src/gpu/GrRenderTask.cpp
index 287fd5a..42906dd 100644
--- a/src/gpu/GrRenderTask.cpp
+++ b/src/gpu/GrRenderTask.cpp
@@ -10,7 +10,6 @@
 #include "src/gpu/GrRenderTargetPriv.h"
 #include "src/gpu/GrStencilAttachment.h"
 #include "src/gpu/GrTextureProxyPriv.h"
-#include "src/gpu/GrTextureResolveRenderTask.h"
 
 uint32_t GrRenderTask::CreateUniqueID() {
     static std::atomic<uint32_t> nextID{1};
@@ -62,12 +61,6 @@
         }
     }
 
-    if (fTextureResolveTask) {
-        this->addDependency(fTextureResolveTask);
-        fTextureResolveTask->makeClosed(caps);
-        fTextureResolveTask = nullptr;
-    }
-
     this->setFlag(kClosed_Flag);
 }
 
@@ -153,23 +146,18 @@
 
     // Does this proxy have msaa to resolve and/or mipmaps to regenerate?
     if (GrSurfaceProxy::ResolveFlags::kNone != resolveFlags) {
-        if (!fTextureResolveTask) {
-            fTextureResolveTask = textureResolveManager.newTextureResolveRenderTask(caps);
-        }
-        fTextureResolveTask->addProxy(sk_ref_sp(dependedOn), resolveFlags, caps);
-
-        // addProxy() should have closed the texture proxy's previous task.
-        SkASSERT(!dependedOnTask || dependedOnTask->isClosed());
-        SkASSERT(dependedOn->getLastRenderTask() == fTextureResolveTask);
+        // Create a renderTask that resolves the texture's mipmap data.
+        GrRenderTask* textureResolveTask = textureResolveManager.newTextureResolveRenderTask(
+                sk_ref_sp(dependedOn), resolveFlags, caps);
 
 #ifdef SK_DEBUG
-        // addProxy() should have called addDependency (in this instance, recursively) on
-        // fTextureResolveTask.
+        // GrTextureResolveRenderTask::init should have called addDependency (in this instance,
+        // recursively) on the textureResolveTask.
         if (dependedOnTask) {
-            SkASSERT(fTextureResolveTask->dependsOn(dependedOnTask));
+            SkASSERT(textureResolveTask->dependsOn(dependedOnTask));
         }
         if (textureProxy && textureProxy->texPriv().isDeferred()) {
-            SkASSERT(fTextureResolveTask->fDeferredProxies.back() == textureProxy);
+            SkASSERT(textureResolveTask->fDeferredProxies.back() == textureProxy);
         }
 
         // The GrTextureResolveRenderTask factory should have also marked the proxy clean, set the
@@ -180,12 +168,13 @@
         if (textureProxy) {
             SkASSERT(!textureProxy->mipMapsAreDirty());
         }
-        SkASSERT(dependedOn->getLastRenderTask() == fTextureResolveTask);
+        SkASSERT(dependedOn->getLastRenderTask() == textureResolveTask);
+        SkASSERT(textureResolveTask->isClosed());
 #endif
-        return;
-    }
 
-    if (textureProxy && textureProxy->texPriv().isDeferred()) {
+        // Fall through and add textureResolveTask as a dependency of "this".
+        dependedOnTask = textureResolveTask;
+    } else if (textureProxy && textureProxy->texPriv().isDeferred()) {
         fDeferredProxies.push_back(textureProxy);
     }