diff options
author | nduca@chromium.org <nduca@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-23 23:35:04 +0000 |
---|---|---|
committer | nduca@chromium.org <nduca@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-23 23:35:04 +0000 |
commit | e33ba37ae3162993ec39f00d657e5ca9348e0c99 (patch) | |
tree | 4864b7304198818eda6f5ecdf09e9c9163557b6d | |
parent | a989ad2c794162b1201531abadf354307d79a3b6 (diff) | |
download | chromium_src-e33ba37ae3162993ec39f00d657e5ca9348e0c99.zip chromium_src-e33ba37ae3162993ec39f00d657e5ca9348e0c99.tar.gz chromium_src-e33ba37ae3162993ec39f00d657e5ca9348e0c99.tar.bz2 |
Merge 90128 - Repost invalidation task in swapbuffers callback.
BUG=86438
Review URL: http://codereview.chromium.org/7236006
TBR=nduca@chromium.org
Review URL: http://codereview.chromium.org/7238014
git-svn-id: svn://svn.chromium.org/chrome/branches/782/src@90292 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | content/renderer/render_widget.cc | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc index dc5902a..8576f7d 100644 --- a/content/renderer/render_widget.cc +++ b/content/renderer/render_widget.cc @@ -405,14 +405,17 @@ void RenderWidget::OnSwapBuffersComplete() } // If we are not accelerated rendering, then this is a stale swapbuffers from - // when we were previously rendering. - if (!is_accelerated_compositing_active_) { + // when we were previously rendering. However, if an invalidation task is not + // posted, there may be software rendering work pending. In that case, don't + // early out. + if (!is_accelerated_compositing_active_ && invalidation_task_posted_) { TRACE_EVENT0("renderer", "EarlyOut_AcceleratedCompositingOff"); return; } // Notify subclasses. - DidFlushPaint(); + if(is_accelerated_compositing_active_) + DidFlushPaint(); // Continue painting if necessary... DoDeferredUpdateAndSendInputAck(); @@ -501,7 +504,8 @@ void RenderWidget::ClearFocus() { void RenderWidget::PaintRect(const gfx::Rect& rect, const gfx::Point& canvas_origin, skia::PlatformCanvas* canvas) { - + TRACE_EVENT2("renderer", "PaintRect", + "width", rect.width(), "height", rect.height()); canvas->save(); // Bring the canvas into the coordinate system of the paint rect. @@ -642,6 +646,7 @@ void RenderWidget::AnimateIfNeeded() { } void RenderWidget::InvalidationCallback() { + TRACE_EVENT0("renderer", "RenderWidget::InvalidationCallback"); invalidation_task_posted_ = false; DoDeferredUpdateAndSendInputAck(); } |