Index: android_webview/browser/shared_renderer_state.cc |
diff --git a/android_webview/browser/shared_renderer_state.cc b/android_webview/browser/shared_renderer_state.cc |
index cb0bda938b11ba71cd3133f8a2474c532e035721..38d5bdbb5cbeae63c256b6501829d963731c25f8 100644 |
--- a/android_webview/browser/shared_renderer_state.cc |
+++ b/android_webview/browser/shared_renderer_state.cc |
@@ -259,6 +259,13 @@ void SharedRendererState::DrawGL(AwDrawGLInfo* draw_info) { |
draw_info->mode == AwDrawGLInfo::kModeDraw |
? ScopedAppGLStateRestore::MODE_DRAW |
: ScopedAppGLStateRestore::MODE_RESOURCE_MANAGEMENT); |
+ // Set the correct FBO before any GL command is run. The GL commands run in |
+ // kModeDraw and kModeProcess may require a correctly bound FBO. |
+ if (hardware_renderer_) { |
+ hardware_renderer_->SetBackingFrameBufferObject( |
+ state_restore.framebuffer_binding_ext()); |
boliu
2015/09/14 21:25:35
Limit this to kModeDraw only. You can probably mov
hush (inactive)
2015/09/14 23:00:27
Done.
|
+ } |
+ |
ScopedAllowGL allow_gl; |
if (draw_info->mode == AwDrawGLInfo::kModeProcessNoContext) { |
@@ -285,7 +292,6 @@ void SharedRendererState::DrawGL(AwDrawGLInfo* draw_info) { |
} |
hardware_renderer_->DrawGL(state_restore.stencil_enabled(), |
- state_restore.framebuffer_binding_ext(), |
draw_info); |
DeferredGpuCommandService::GetInstance()->PerformIdleWork(false); |
} |