aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/gl
diff options
context:
space:
mode:
authorGravatar ericrk <ericrk@chromium.org>2016-05-04 12:01:58 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-05-04 12:01:58 -0700
commitc4025189d31efcb0d54bf14b7712b38725f86c13 (patch)
tree45a3c7a2fa0ab990a6bb2d5abef26f44545625dc /src/gpu/gl
parent427c2819d9237d7d7729c59238036cfc73c072ea (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/gpu/gl')
-rw-r--r--src/gpu/gl/GrGLRenderTarget.cpp8
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 {