diff options
author | Robert Phillips <robertphillips@google.com> | 2018-07-24 16:09:40 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-07-24 16:09:46 +0000 |
commit | 6a4e60bb8f49e4a031e8fc99c4d8edaa25b3619f (patch) | |
tree | 7bd381aa01a0976fc78b7e9a8b54739580363f00 /src/gpu/GrDrawingManager.cpp | |
parent | b95d278e7c2f72d42cd0626471b8f36587a47c3c (diff) |
Revert "Reduce arbitrary opList splitting when sorting (take 2)"
This reverts commit 20d4e546d8cb34f8944ef00d249416a047c95524.
Reason for revert: Android dying on Nexus7 & Nexus Player
Original change's description:
> Reduce arbitrary opList splitting when sorting (take 2)
>
> The original CL (https://skia-review.googlesource.com/c/skia/+/141243 (Reduce arbitrary opList splitting when sorting)) was reverted due to Gold image diffs and perf regressions on Android.
>
> The image diffs should be fixed by:
> https://skia-review.googlesource.com/c/skia/+/142163 (Fix explicit allocation bug)
>
> Change-Id: I4bcc59820daf440de81f48e8970b47a6c8ec2bbb
> Reviewed-on: https://skia-review.googlesource.com/142102
> Commit-Queue: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
TBR=egdaniel@google.com,robertphillips@google.com
Change-Id: Ice7ed703a17a1e1fef949446538c8da7524dc42e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/143121
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'src/gpu/GrDrawingManager.cpp')
-rw-r--r-- | src/gpu/GrDrawingManager.cpp | 42 |
1 files changed, 10 insertions, 32 deletions
diff --git a/src/gpu/GrDrawingManager.cpp b/src/gpu/GrDrawingManager.cpp index 366f285cf3..8b0fb22f6b 100644 --- a/src/gpu/GrDrawingManager.cpp +++ b/src/gpu/GrDrawingManager.cpp @@ -427,22 +427,11 @@ sk_sp<GrRenderTargetOpList> GrDrawingManager::newRTOpList(GrRenderTargetProxy* r SkASSERT(fContext); if (!fOpLists.empty()) { - if (fSortRenderTargets) { - // In this case we need to close all the opLists that rely on the current contents of - // 'rtp'. That is bc we're going to update the content of the proxy so they need to be - // split in case they use both the old and new content. (This is a bit of an overkill: - // they really only need to be split if they ever reference proxy's contents again but - // that is hard to predict/handle). - if (GrOpList* lastOpList = rtp->getLastOpList()) { - lastOpList->closeThoseWhoDependOnMe(*fContext->contextPriv().caps()); - } - } else { - // This is a temporary fix for the partial-MDB world. In that world we're not - // reordering so ops that (in the single opList world) would've just glommed onto the - // end of the single opList but referred to a far earlier RT need to appear in their - // own opList. - fOpLists.back()->makeClosed(*fContext->contextPriv().caps()); - } + // This is a temporary fix for the partial-MDB world. In that world we're not + // reordering so ops that (in the single opList world) would've just glommed onto the + // end of the single opList but referred to a far earlier RT need to appear in their + // own opList. + fOpLists.back()->makeClosed(*fContext->contextPriv().caps()); } auto resourceProvider = fContext->contextPriv().resourceProvider(); @@ -465,22 +454,11 @@ sk_sp<GrTextureOpList> GrDrawingManager::newTextureOpList(GrTextureProxy* textur SkASSERT(fContext); if (!fOpLists.empty()) { - if (fSortRenderTargets) { - // In this case we need to close all the opLists that rely on the current contents of - // 'rtp'. That is bc we're going to update the content of the proxy so they need to be - // split in case they use both the old and new content. (This is a bit of an overkill: - // they really only need to be split if they ever reference proxy's contents again but - // that is hard to predict/handle). - if (GrOpList* lastOpList = textureProxy->getLastOpList()) { - lastOpList->closeThoseWhoDependOnMe(*fContext->contextPriv().caps()); - } - } else { - // This is a temporary fix for the partial-MDB world. In that world we're not - // reordering so ops that (in the single opList world) would've just glommed onto the - // end of the single opList but referred to a far earlier RT need to appear in their - // own opList. - fOpLists.back()->makeClosed(*fContext->contextPriv().caps()); - } + // This is a temporary fix for the partial-MDB world. In that world we're not + // reordering so ops that (in the single opList world) would've just glommed onto the + // end of the single opList but referred to a far earlier RT need to appear in their + // own opList. + fOpLists.back()->makeClosed(*fContext->contextPriv().caps()); } sk_sp<GrTextureOpList> opList(new GrTextureOpList(fContext->contextPriv().resourceProvider(), |