diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gpu/GrGpu.cpp | 9 | ||||
-rw-r--r-- | src/gpu/gl/GrGLGpu.cpp | 5 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/gpu/GrGpu.cpp b/src/gpu/GrGpu.cpp index 45a58afb4a..c4b155a2d4 100644 --- a/src/gpu/GrGpu.cpp +++ b/src/gpu/GrGpu.cpp @@ -98,6 +98,15 @@ bool GrGpu::attachStencilBufferToRenderTarget(GrRenderTarget* rt) { return false; } if (this->createStencilBufferForRenderTarget(rt, width, height)) { + // Right now we're clearing the stencil buffer here after it is + // attached to an RT for the first time. When we start matching + // stencil buffers with smaller color targets this will no longer + // be correct because it won't be guaranteed to clear the entire + // sb. + // We used to clear down in the GL subclass using a special purpose + // FBO. But iOS doesn't allow a stencil-only FBO. It reports unsupported + // FBO status. + this->clearStencil(rt); GrStencilBuffer* sb = rt->renderTargetPriv().getStencilBuffer(); sb->resourcePriv().setUniqueKey(sbKey); return true; diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp index a2c8d7f3ea..0f7a0c152b 100644 --- a/src/gpu/gl/GrGLGpu.cpp +++ b/src/gpu/gl/GrGLGpu.cpp @@ -1182,7 +1182,8 @@ bool GrGLGpu::createStencilBufferForRenderTarget(GrRenderTarget* rt, int width, if (this->attachStencilBufferToRenderTarget(sb, rt)) { fLastSuccessfulStencilFmtIdx = sIdx; rt->renderTargetPriv().didAttachStencilBuffer(sb); - +// This work around is currently breaking on windows 7 hd2000 bot when we bind a color buffer +#if 0 // Clear the stencil buffer. We use a special purpose FBO for this so that the // entire stencil buffer is cleared, even if it is attached to an FBO with a // smaller color target. @@ -1233,7 +1234,7 @@ bool GrGLGpu::createStencilBufferForRenderTarget(GrRenderTarget* rt, int width, GR_GL_DEPTH_ATTACHMENT, GR_GL_RENDERBUFFER, 0)); } - +#endif return true; } // Remove the scratch key from this resource so we don't grab it from the cache ever |