Index: gpu/command_buffer/service/gles2_cmd_decoder.cc |
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
index 6d37175a9853c5cb0de6b2497c781d9828a40530..7ea1a06e73bdf90cbccf38f381c3188bc6d7f7ac 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
@@ -4278,6 +4278,14 @@ void GLES2DecoderImpl::SetIgnoreCachedStateForTest(bool ignore) { |
void GLES2DecoderImpl::OnFboChanged() const { |
if (workarounds().restore_scissor_on_fbo_change) |
state_.fbo_binding_for_scissor_workaround_dirty_ = true; |
+ |
+ if (workarounds().gl_begin_gl_end_on_fbo_change_to_backbuffer) { |
+ GLint bound_fbo_unsigned = -1; |
+ glGetIntegerv(GL_FRAMEBUFFER_BINDING_EXT, &bound_fbo_unsigned); |
+ GLuint bound_fbo = static_cast<GLuint>(bound_fbo_unsigned); |
+ if (surface_ && surface_->GetBackingFrameBufferObject() == bound_fbo) |
+ surface_->NotifyWasBound(); |
+ } |
} |
// Called after the FBO is checked for completeness. |