diff options
author | 2018-05-17 11:37:14 -0700 | |
---|---|---|
committer | 2018-05-18 17:26:14 +0000 | |
commit | 4ee88511bc04dcfb66c4c58d3b600f329bedb44e (patch) | |
tree | f9b9597cda5c9477005754175926ce8c40bbc237 /src/gpu/gl/GrGLRenderTarget.cpp | |
parent | 160e93dc19cb498dd846f5ad7b1fd810910c7465 (diff) |
Driver bug workaround: unbind_attachments_on_bound_render_fbo_delete
Bug: chromium: 829614
Change-Id: Ic6bc276d1203d24f96fe92b41655871e25f69623
Reviewed-on: https://skia-review.googlesource.com/128395
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Adrienne Walker <enne@chromium.org>
Diffstat (limited to 'src/gpu/gl/GrGLRenderTarget.cpp')
-rw-r--r-- | src/gpu/gl/GrGLRenderTarget.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/gpu/gl/GrGLRenderTarget.cpp b/src/gpu/gl/GrGLRenderTarget.cpp index 693bc12fae..34f8df1592 100644 --- a/src/gpu/gl/GrGLRenderTarget.cpp +++ b/src/gpu/gl/GrGLRenderTarget.cpp @@ -128,8 +128,7 @@ bool GrGLRenderTarget::completeStencilAttachment() { GrGLuint rb = glStencil->renderbufferID(); gpu->invalidateBoundRenderTarget(); - gpu->stats()->incRenderTargetBinds(); - GR_GL_CALL(interface, BindFramebuffer(GR_GL_FRAMEBUFFER, this->renderFBOID())); + gpu->bindFramebuffer(GR_GL_FRAMEBUFFER, this->renderFBOID()); GR_GL_CALL(interface, FramebufferRenderbuffer(GR_GL_FRAMEBUFFER, GR_GL_STENCIL_ATTACHMENT, GR_GL_RENDERBUFFER, rb)); @@ -143,7 +142,6 @@ bool GrGLRenderTarget::completeStencilAttachment() { GR_GL_RENDERBUFFER, 0)); } - gpu->didBindFramebuffer(); #ifdef SK_DEBUG if (kChromium_GrGLDriver != gpu->glContext().driver()) { @@ -160,11 +158,12 @@ bool GrGLRenderTarget::completeStencilAttachment() { void GrGLRenderTarget::onRelease() { if (GrBackendObjectOwnership::kBorrowed != fRTFBOOwnership) { + GrGLGpu* gpu = this->getGLGpu(); if (fTexFBOID) { - GL_CALL(DeleteFramebuffers(1, &fTexFBOID)); + gpu->deleteFramebuffer(fTexFBOID); } if (fRTFBOID && fRTFBOID != fTexFBOID) { - GL_CALL(DeleteFramebuffers(1, &fRTFBOID)); + gpu->deleteFramebuffer(fRTFBOID); } if (fMSColorRenderbufferID) { GL_CALL(DeleteRenderbuffers(1, &fMSColorRenderbufferID)); |