| Index: src/gpu/gl/GrGLGpu.cpp
|
| diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp
|
| index 0793d7b0475079cdbb5615b1d89bc7dbbe8d5172..34ceb066e0740015c0b03bd7ca44c30d252e0e7e 100644
|
| --- a/src/gpu/gl/GrGLGpu.cpp
|
| +++ b/src/gpu/gl/GrGLGpu.cpp
|
| @@ -1203,8 +1203,23 @@ bool GrGLGpu::createStencilBufferForRenderTarget(GrRenderTarget* rt, int width,
|
| }
|
|
|
| GL_CALL(ClearStencil(0));
|
| + // Many GL implementations seem to have trouble with clearing an FBO with only
|
| + // a stencil buffer.
|
| + GrGLuint tempRB;
|
| + GL_CALL(GenRenderbuffers(1, &tempRB));
|
| + GL_CALL(BindRenderbuffer(GR_GL_RENDERBUFFER, tempRB));
|
| + GL_CALL(RenderbufferStorage(GR_GL_RENDERBUFFER, GR_GL_RGBA8, width, height));
|
| + GL_CALL(FramebufferRenderbuffer(GR_GL_FRAMEBUFFER,
|
| + GR_GL_COLOR_ATTACHMENT0,
|
| + GR_GL_RENDERBUFFER, tempRB));
|
| +
|
| GL_CALL(Clear(GR_GL_STENCIL_BUFFER_BIT));
|
|
|
| + GL_CALL(FramebufferRenderbuffer(GR_GL_FRAMEBUFFER,
|
| + GR_GL_COLOR_ATTACHMENT0,
|
| + GR_GL_RENDERBUFFER, 0));
|
| + GL_CALL(DeleteRenderbuffers(1, &tempRB));
|
| +
|
| // Unbind the SB from the FBO so that we don't keep it alive.
|
| GL_CALL(FramebufferRenderbuffer(GR_GL_FRAMEBUFFER,
|
| GR_GL_STENCIL_ATTACHMENT,
|
|
|