diff options
author | ericrk <ericrk@chromium.org> | 2016-05-04 12:01:58 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-05-04 12:01:58 -0700 |
commit | c4025189d31efcb0d54bf14b7712b38725f86c13 (patch) | |
tree | 45a3c7a2fa0ab990a6bb2d5abef26f44545625dc /src | |
parent | 427c2819d9237d7d7729c59238036cfc73c072ea (diff) |
Allow stencils to be attached to render targets created via SkSurface::MakeFromBackendTextureAsRenderTarget
This is a regression from "Refactor to separate backend object lifecycle
and GpuResource budget decision".
GrGLRenderer::canAttemptStencilAttachment was incorrectly returning false
for all wrapped render targets. This function should return false only if
the FBO is wrapped (unowned). If the FBO is owned by Skia, we can attach
stencils.
BUG=608238
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1924183003
Review-Url: https://codereview.chromium.org/1941353003
Diffstat (limited to 'src')
-rw-r--r-- | src/gpu/gl/GrGLRenderTarget.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/gpu/gl/GrGLRenderTarget.cpp b/src/gpu/gl/GrGLRenderTarget.cpp index 3c27535825..27713b2dd2 100644 --- a/src/gpu/gl/GrGLRenderTarget.cpp +++ b/src/gpu/gl/GrGLRenderTarget.cpp @@ -159,10 +159,10 @@ GrGLGpu* GrGLRenderTarget::getGLGpu() const { } bool GrGLRenderTarget::canAttemptStencilAttachment() const { - // When we have not created the FBO ID we do not attempt to modify its attachments. - // Direct GrGLRenderTarget instances are always created with CreateWrapped. - SkASSERT(this->resourcePriv().refsWrappedObjects()); - return false; + // Only modify the FBO's attachments if we have created the FBO. Public APIs do not currently + // allow for borrowed FBO ownership, so we can safely assume that if an object is owned, + // Skia created it. + return this->fRTFBOOwnership == GrBackendObjectOwnership::kOwned; } void GrGLRenderTarget::dumpMemoryStatistics(SkTraceMemoryDump* traceMemoryDump) const { |