Chromium Code Reviews| Index: android_webview/browser/browser_view_renderer.cc |
| diff --git a/android_webview/browser/browser_view_renderer.cc b/android_webview/browser/browser_view_renderer.cc |
| index 98c45b25568924dc55ce946b151465e4a504beb0..8dc7ae05643ef005d23ef81fb806e468f5d08f6d 100644 |
| --- a/android_webview/browser/browser_view_renderer.cc |
| +++ b/android_webview/browser/browser_view_renderer.cc |
| @@ -250,11 +250,16 @@ bool BrowserViewRenderer::OnDraw(jobject java_canvas, |
| } |
| bool BrowserViewRenderer::OnDrawHardware(jobject java_canvas) { |
| + TRACE_EVENT0("android_webview", "BrowserViewRenderer::OnDrawHardware"); |
| if (!compositor_) |
| return false; |
| - if (last_on_draw_global_visible_rect_.IsEmpty()) |
| + if (last_on_draw_global_visible_rect_.IsEmpty()) { |
| + TRACE_EVENT_INSTANT0("android_webview", |
| + "EarlyOut_EmptyVisibleRect", |
| + TRACE_EVENT_SCOPE_THREAD); |
| return client_->RequestDrawGL(java_canvas, false); |
| + } |
| if (!hardware_enabled_) { |
| hardware_enabled_ = compositor_->InitializeHwDraw(); |
| @@ -265,11 +270,21 @@ bool BrowserViewRenderer::OnDrawHardware(jobject java_canvas) { |
| if (!hardware_enabled_) |
| return false; |
| + |
| ReturnResourceFromParent(); |
| SynchronousCompositorMemoryPolicy new_policy = CalculateDesiredMemoryPolicy(); |
| RequestMemoryPolicy(new_policy); |
| compositor_->SetMemoryPolicy(memory_policy_); |
| + if (shared_renderer_state_->HasDrawGLInput()) { |
| + TRACE_EVENT_INSTANT0("android_webview", |
| + "EarlyOut_PreviousFrameUnconsumed", |
| + TRACE_EVENT_SCOPE_THREAD); |
| + // TODO(boliu): Rename this method. We didn't actually composite here. |
| + DidComposite(); |
| + return client_->RequestDrawGL(java_canvas, false); |
| + } |
| + |
| scoped_ptr<DrawGLInput> draw_gl_input(new DrawGLInput); |
| draw_gl_input->scroll_offset = last_on_draw_scroll_offset_; |
| draw_gl_input->width = width_; |
| @@ -304,7 +319,6 @@ bool BrowserViewRenderer::OnDrawHardware(jobject java_canvas) { |
| GlobalTileManager::GetInstance()->DidUse(tile_manager_key_); |
| frame->AssignTo(&draw_gl_input->frame); |
| - ReturnUnusedResource(shared_renderer_state_->PassDrawGLInput()); |
|
hush (inactive)
2014/09/20 02:15:53
why is this removed?
boliu
2014/09/20 02:20:21
If we are consuming the input, we can't detect whe
|
| shared_renderer_state_->SetDrawGLInput(draw_gl_input.Pass()); |
| DidComposite(); |
| return client_->RequestDrawGL(java_canvas, false); |