diff options
author | Robert Phillips <robertphillips@google.com> | 2018-06-15 15:59:38 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-06-15 15:59:45 +0000 |
commit | 4f6ba2e522bcc3f84c02c9b7dd834b9b5476968b (patch) | |
tree | 790f98d53f60cdef293fa2788ac02ec4722c33c1 /src/gpu/GrRenderTargetOpList.cpp | |
parent | 0513dd8675534afdd605cea32778a4b4671b2c3d (diff) |
Revert "Move op memory storage to GrContext"
This reverts commit c8cee446bf9c07da8848bbd032abf26e79966ac1.
Reason for revert: TSAN issues
Original change's description:
> Move op memory storage to GrContext
>
> TBR=bsalomon@google.com
> Change-Id: Ifa95bf0073b9d948f2c937d10088b7734b971f90
> Reviewed-on: https://skia-review.googlesource.com/131500
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>
TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com
Change-Id: Ia0d2b7408314d9b67d57388315376bbea23d3780
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/135181
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'src/gpu/GrRenderTargetOpList.cpp')
-rw-r--r-- | src/gpu/GrRenderTargetOpList.cpp | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/src/gpu/GrRenderTargetOpList.cpp b/src/gpu/GrRenderTargetOpList.cpp index 423b71ca10..b04ec3629a 100644 --- a/src/gpu/GrRenderTargetOpList.cpp +++ b/src/gpu/GrRenderTargetOpList.cpp @@ -26,29 +26,14 @@ static const int kMaxOpLookback = 10; static const int kMaxOpLookahead = 10; GrRenderTargetOpList::GrRenderTargetOpList(GrResourceProvider* resourceProvider, - sk_sp<GrOpMemoryPool> opMemoryPool, GrRenderTargetProxy* proxy, GrAuditTrail* auditTrail) - : INHERITED(resourceProvider, std::move(opMemoryPool), proxy, auditTrail) + : INHERITED(resourceProvider, proxy, auditTrail) , fLastClipStackGenID(SK_InvalidUniqueID) SkDEBUGCODE(, fNumClips(0)) { } -void GrRenderTargetOpList::RecordedOp::deleteOp(GrOpMemoryPool* opMemoryPool) { - opMemoryPool->release(std::move(fOp)); -} - -void GrRenderTargetOpList::deleteOps() { - for (int i = 0; i < fRecordedOps.count(); ++i) { - if (fRecordedOps[i].fOp) { - fRecordedOps[i].deleteOp(fOpMemoryPool.get()); - } - } - fRecordedOps.reset(); -} - GrRenderTargetOpList::~GrRenderTargetOpList() { - this->deleteOps(); } //////////////////////////////////////////////////////////////////////////////// @@ -203,7 +188,7 @@ bool GrRenderTargetOpList::onExecute(GrOpFlushState* flushState) { void GrRenderTargetOpList::endFlush() { fLastClipStackGenID = SK_InvalidUniqueID; - this->deleteOps(); + fRecordedOps.reset(); fClipAllocator.reset(); INHERITED::endFlush(); } @@ -225,7 +210,7 @@ void GrRenderTargetOpList::fullClear(GrContext* context, GrColor color) { // Beware! If we ever add any ops that have a side effect beyond modifying the stencil // buffer we will need a more elaborate tracking system (skbug.com/7002). if (this->isEmpty() || !fTarget.get()->asRenderTargetProxy()->needsStencil()) { - this->deleteOps(); + fRecordedOps.reset(); fDeferredProxies.reset(); fColorLoadOp = GrLoadOp::kClear; fLoadClearColor = color; @@ -272,7 +257,7 @@ void GrRenderTargetOpList::purgeOpsWithUninstantiatedProxies() { recordedOp.visitProxies(checkInstantiation); if (hasUninstantiatedProxy) { // When instantiation of the proxy fails we drop the Op - recordedOp.deleteOp(fOpMemoryPool.get()); + recordedOp.fOp = nullptr; } } } @@ -375,7 +360,6 @@ uint32_t GrRenderTargetOpList::recordOp(std::unique_ptr<GrOp> op, GrOP_INFO("\t\t\tBackward: Combined op info:\n"); GrOP_INFO(SkTabString(candidate.fOp->dumpInfo(), 4).c_str()); GR_AUDIT_TRAIL_OPS_RESULT_COMBINED(fAuditTrail, candidate.fOp.get(), op.get()); - fOpMemoryPool->release(std::move(op)); return SK_InvalidUniqueID; } // Stop going backwards if we would cause a painter's order violation. @@ -421,7 +405,6 @@ void GrRenderTargetOpList::forwardCombine(const GrCaps& caps) { i, op->name(), op->uniqueID(), candidate.fOp->name(), candidate.fOp->uniqueID()); GR_AUDIT_TRAIL_OPS_RESULT_COMBINED(fAuditTrail, op, candidate.fOp.get()); - fOpMemoryPool->release(std::move(fRecordedOps[j].fOp)); fRecordedOps[j].fOp = std::move(fRecordedOps[i].fOp); break; } |