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