Revert "When flushing, reset flush state before op lists"
This reverts commit 78bdee200c
.
Reason for revert: breaking PathRendererCacheTests.cpp unit test
Original change's description:
> When flushing, reset flush state before op lists
>
> When we reset the flush state after executing the ops in a flush, we reset
> the stored pipelines which may be holding refs to resources in their processors.
>
> We want the resources that we wrote to in the op list to be freed last for caching
> LRU purposes. Thus we make sure to free all the pipeline resources first before
> resetting and freeing the op lists
>
> Bug: skia:
> Change-Id: I5b02e9b7532007b5854e906bf4d64e901e7e7e53
> Reviewed-on: https://skia-review.googlesource.com/54760
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>
TBR=egdaniel@google.com,robertphillips@google.com
Change-Id: If74a158e90316553a401386c8c7a6b3c2b29a7df
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/55080
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
This commit is contained in:
parent
78bdee200c
commit
f8bc0018be
@ -211,26 +211,16 @@ GrSemaphoresSubmitted GrDrawingManager::internalFlush(GrSurfaceProxy*,
|
||||
if (fOpLists[i]->execute(&fFlushState)) {
|
||||
flushed = true;
|
||||
}
|
||||
}
|
||||
|
||||
SkASSERT(fFlushState.nextDrawToken() == fFlushState.nextTokenToFlush());
|
||||
|
||||
// We reset the flush state before the OpLists so that the last resources to be freed are those
|
||||
// that are written to in the OpLists. This helps to make sure the most recently used resources
|
||||
// are the last to be purged by the resource cache.
|
||||
fFlushState.reset();
|
||||
|
||||
for (int i = 0; i < fOpLists.count(); ++i) {
|
||||
if (!fOpLists[i]) {
|
||||
continue;
|
||||
}
|
||||
fOpLists[i]->reset();
|
||||
}
|
||||
fOpLists.reset();
|
||||
|
||||
SkASSERT(fFlushState.nextDrawToken() == fFlushState.nextTokenToFlush());
|
||||
|
||||
GrSemaphoresSubmitted result = fContext->getGpu()->finishFlush(numSemaphores,
|
||||
backendSemaphores);
|
||||
|
||||
fFlushState.reset();
|
||||
// We always have to notify the cache when it requested a flush so it can reset its state.
|
||||
if (flushed || type == GrResourceCache::FlushType::kCacheRequested) {
|
||||
fContext->getResourceCache()->notifyFlushOccurred(type);
|
||||
|
Loading…
Reference in New Issue
Block a user