Chromium Code Reviews| 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 1d9874ee2d6c4962b57588e552183b1b29255d76..7fecf87a2c16b24316679a4a98d472f6539c1890 100644 |
| --- a/android_webview/browser/shared_renderer_state.cc |
| +++ b/android_webview/browser/shared_renderer_state.cc |
| @@ -287,6 +287,7 @@ void SharedRendererState::DrawGL(AwDrawGLInfo* draw_info) { |
| void SharedRendererState::ReleaseHardwareDrawIfNeededOnUI() { |
| DCHECK(ui_loop_->BelongsToCurrentThread()); |
| InsideHardwareReleaseReset auto_inside_hardware_release_reset(this); |
| + bool offscreen_pre_raster = browser_view_renderer_->offscreen_pre_raster(); |
| browser_view_renderer_->DetachFunctorFromView(); |
| bool hardware_initialized = browser_view_renderer_->hardware_enabled(); |
| @@ -300,7 +301,8 @@ void SharedRendererState::ReleaseHardwareDrawIfNeededOnUI() { |
| DrawGL(&info); |
| } |
| - browser_view_renderer_->ReleaseHardware(); |
| + if (!offscreen_pre_raster) |
| + browser_view_renderer_->ReleaseHardware(); |
|
boliu
2015/04/15 00:31:01
Then this is also skipping ReleaseHardware in deta
hush (inactive)
2015/04/15 21:35:48
Yeah. That is a problem. And it actually caused so
|
| } |
| GLViewRendererManager* manager = GLViewRendererManager::GetInstance(); |
| @@ -313,7 +315,7 @@ void SharedRendererState::ReleaseHardwareDrawIfNeededOnUI() { |
| } |
| } |
| - if (hardware_initialized) { |
| + if (hardware_initialized && !offscreen_pre_raster) { |
| // Flush any invoke functors that's caused by ReleaseHardware. |
| browser_view_renderer_->RequestDrawGL(true); |
| } |