aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/gl/GrGLRenderTarget.cpp
diff options
context:
space:
mode:
authorGravatar Adrienne Walker <enne@chromium.org>2018-05-17 11:37:14 -0700
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-05-18 17:26:14 +0000
commit4ee88511bc04dcfb66c4c58d3b600f329bedb44e (patch)
treef9b9597cda5c9477005754175926ce8c40bbc237 /src/gpu/gl/GrGLRenderTarget.cpp
parent160e93dc19cb498dd846f5ad7b1fd810910c7465 (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.cpp9
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));