Revert "Detach op memory pool from recording context"
This reverts commit 6b955167286de1cc0cf215e460389614221903fe.
Reason for revert: breaking some Win10 bots
Original change's description:
> Detach op memory pool from recording context
>
> This changes GrOpMemoryPool to no longer extend SkRefCnt, and all usages
> either are std::unique_ptr for owners, or GrOpMemoryPool* when ownership
> is held somewhere else. The culmination of this is that DDLs explicitly
> detach the memory pool from the recording context instead of the GrOpsTask
> maintaining a strong ref that preserved the memory somewhat sneakily.
>
> Change-Id: I33e2caebea70cebe8fd7681207c631feeaf2c703
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259424
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
TBR=bsalomon@google.com,robertphillips@google.com,michaelludwig@google.com
Change-Id: I942ae1e07fdc63d9311f6ee482bd71beca090502
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/259696
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
diff --git a/src/gpu/GrOpsTask.cpp b/src/gpu/GrOpsTask.cpp
index ea21b55..b57066f 100644
--- a/src/gpu/GrOpsTask.cpp
+++ b/src/gpu/GrOpsTask.cpp
@@ -352,11 +352,11 @@
////////////////////////////////////////////////////////////////////////////////
-GrOpsTask::GrOpsTask(GrOpMemoryPool* opMemoryPool,
+GrOpsTask::GrOpsTask(sk_sp<GrOpMemoryPool> opMemoryPool,
GrSurfaceProxyView view,
GrAuditTrail* auditTrail)
: GrRenderTask(std::move(view))
- , fOpMemoryPool(opMemoryPool)
+ , fOpMemoryPool(std::move(opMemoryPool))
, fAuditTrail(auditTrail)
, fLastClipStackGenID(SK_InvalidUniqueID)
SkDEBUGCODE(, fNumClips(0)) {
@@ -366,7 +366,7 @@
void GrOpsTask::deleteOps() {
for (auto& chain : fOpChains) {
- chain.deleteOps(fOpMemoryPool);
+ chain.deleteOps(fOpMemoryPool.get());
}
fOpChains.reset();
}
@@ -815,7 +815,7 @@
while (true) {
OpChain& candidate = fOpChains.fromBack(i);
op = candidate.appendOp(std::move(op), processorAnalysis, dstProxyView, clip, caps,
- fOpMemoryPool, fAuditTrail);
+ fOpMemoryPool.get(), fAuditTrail);
if (!op) {
return;
}
@@ -850,7 +850,7 @@
int j = i + 1;
while (true) {
OpChain& candidate = fOpChains[j];
- if (candidate.prependChain(&chain, caps, fOpMemoryPool, fAuditTrail)) {
+ if (candidate.prependChain(&chain, caps, fOpMemoryPool.get(), fAuditTrail)) {
break;
}
// Stop traversing if we would cause a painter's order violation.