diff options
author | Robert Phillips <robertphillips@google.com> | 2017-04-18 17:10:13 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-04-18 17:10:22 +0000 |
commit | 7ce67db5643eb8ff1149c152ede1253d43e875d4 (patch) | |
tree | 31140f73dd7e37482ff16378c2432d950152667b /src/gpu/GrTextureContext.cpp | |
parent | 73e597d0eddeaaa466101d5bb7da537c0066166a (diff) |
Revert "Split up opLists"
This reverts commit bc8ee52d4649afdc972599e5ef2a2a543867985d.
Reason for revert: Instanced rendering is broken
Original change's description:
> Split up opLists
>
> Split into:
> https://skia-review.googlesource.com/c/11793/ (Remove lastProxy capability from GrSurface)
>
> Change-Id: I903ba30e17de4aab8cb0d2cc3281ae5c262142f9
> Reviewed-on: https://skia-review.googlesource.com/11581
> Commit-Queue: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
>
TBR=egdaniel@google.com,robertphillips@google.com,brianosman@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Change-Id: Ic3ae650630a09730d40da4a9587d9e25a9dd5e6c
Reviewed-on: https://skia-review.googlesource.com/13725
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'src/gpu/GrTextureContext.cpp')
-rw-r--r-- | src/gpu/GrTextureContext.cpp | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/gpu/GrTextureContext.cpp b/src/gpu/GrTextureContext.cpp index f41fcd1837..68e94f9be3 100644 --- a/src/gpu/GrTextureContext.cpp +++ b/src/gpu/GrTextureContext.cpp @@ -68,16 +68,32 @@ GrTextureOpList* GrTextureContext::getOpList() { return fOpList.get(); } -// MDB TODO: move this (and GrRenderTargetContext::copy) to GrSurfaceContext? +// TODO: move this (and GrRenderTargetContext::copy) to GrSurfaceContext? bool GrTextureContext::onCopy(GrSurfaceProxy* srcProxy, const SkIRect& srcRect, const SkIPoint& dstPoint) { ASSERT_SINGLE_OWNER RETURN_FALSE_IF_ABANDONED SkDEBUGCODE(this->validate();) - GR_AUDIT_TRAIL_AUTO_FRAME(fAuditTrail, "GrTextureContext::onCopy"); + GR_AUDIT_TRAIL_AUTO_FRAME(fAuditTrail, "GrTextureContext::copy"); - return this->getOpList()->copySurface(fContext->resourceProvider(), - fTextureProxy.get(), srcProxy, srcRect, dstPoint); +#ifndef ENABLE_MDB + // We can't yet fully defer copies to textures, so GrTextureContext::copySurface will + // execute the copy immediately. Ensure the data is ready. + fContext->contextPriv().flushSurfaceWrites(srcProxy); +#endif + + GrTextureOpList* opList = this->getOpList(); + bool result = opList->copySurface(fContext->resourceProvider(), + fTextureProxy.get(), srcProxy, srcRect, dstPoint); + +#ifndef ENABLE_MDB + GrOpFlushState flushState(fContext->getGpu(), nullptr); + opList->prepareOps(&flushState); + opList->executeOps(&flushState); + opList->reset(); +#endif + + return result; } |