Make all GrRenderTargetOpList ops store a GrRenderTarget pointer

Change-Id: I39652b4b8b2ba96b5206304dfc51395283c3fe16
Reviewed-on: https://skia-review.googlesource.com/13332
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/ops/GrCopySurfaceOp.h b/src/gpu/ops/GrCopySurfaceOp.h
index 05ee8d0..e455c3e 100644
--- a/src/gpu/ops/GrCopySurfaceOp.h
+++ b/src/gpu/ops/GrCopySurfaceOp.h
@@ -35,6 +35,8 @@
         return string;
     }
 
+    bool needsCommandBufferIsolation() const override { return true; }
+
 private:
     GrCopySurfaceOp(GrSurface* dst, GrSurface* src,
                     GrSurfaceProxy::UniqueID dstID, GrSurfaceProxy::UniqueID srcID,
@@ -57,13 +59,8 @@
     void onPrepare(GrOpFlushState*) override {}
 
     void onExecute(GrOpFlushState* state) override {
-        if (!state->commandBuffer()) {
-            state->gpu()->copySurface(fDst.get(), fSrc.get(), fSrcRect, fDstPoint);
-        } else {
-            // Currently we are not sending copies through the GrGpuCommandBuffer. See comment in
-            // renderTargetUniqueID().
-            SkASSERT(false);
-        }
+        SkASSERT(!state->commandBuffer());
+        state->gpu()->copySurface(fDst.get(), fSrc.get(), fSrcRect, fDstPoint);
     }
 
     // MDB TODO: remove the proxy IDs once the GrSurfaceProxy carries the ref since they will
diff --git a/src/gpu/ops/GrOp.h b/src/gpu/ops/GrOp.h
index ef752b5..7f8f8e7 100644
--- a/src/gpu/ops/GrOp.h
+++ b/src/gpu/ops/GrOp.h
@@ -151,6 +151,8 @@
         return string;
     }
 
+    virtual bool needsCommandBufferIsolation() const { return false; }
+
 protected:
     /**
      * Indicates that the op will produce geometry that extends beyond its bounds for the