summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornduca@chromium.org <nduca@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-23 23:35:04 +0000
committernduca@chromium.org <nduca@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-23 23:35:04 +0000
commite33ba37ae3162993ec39f00d657e5ca9348e0c99 (patch)
tree4864b7304198818eda6f5ecdf09e9c9163557b6d
parenta989ad2c794162b1201531abadf354307d79a3b6 (diff)
downloadchromium_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.cc13
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();
}