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 f97710e86a61009ce7b6b54517f63040d5f8cb3b..9ca3071a75d1d648bf836a5d43bc6ae955c90a63 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
@@ -4269,6 +4269,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_->WasBound(); |
+ } |
} |
// Called after the FBO is checked for completeness. |