[BlackBerry] requestAnimationFrame performance choppy & inconsistent
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 10 Apr 2012 00:01:02 +0000 (00:01 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 10 Apr 2012 00:01:02 +0000 (00:01 +0000)
https://bugs.webkit.org/show_bug.cgi?id=83499

Patch by Andrew Lo <anlo@rim.com> on 2012-04-09
Reviewed by Rob Buis.

Respect m_scheduled & m_previousFrameDone flags like the Mac port of
DisplayRefreshMonitor does.
Internal PR: 147826

requestAnimationFrame already covered by tests in LayoutTests/fast/animation.

* platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
(WebCore::DisplayRefreshMonitor::displayLinkFired):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@113644 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp

index 58c6e4f..253262d 100644 (file)
@@ -1,3 +1,19 @@
+2012-04-09  Andrew Lo  <anlo@rim.com>
+
+        [BlackBerry] requestAnimationFrame performance choppy & inconsistent
+        https://bugs.webkit.org/show_bug.cgi?id=83499
+
+        Reviewed by Rob Buis.
+
+        Respect m_scheduled & m_previousFrameDone flags like the Mac port of
+        DisplayRefreshMonitor does.
+        Internal PR: 147826
+
+        requestAnimationFrame already covered by tests in LayoutTests/fast/animation.
+
+        * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
+        (WebCore::DisplayRefreshMonitor::displayLinkFired):
+
 2012-04-09  Luke Macpherson  <macpherson@chromium.org>
 
         Make CSSValueID's into an enum instead of a collection of integers.
index ded8ef0..f704e2a 100644 (file)
@@ -76,7 +76,11 @@ void DisplayRefreshMonitor::displayLinkFired()
 {
     MutexLocker lock(m_mutex);
 
-    m_scheduled = false;
+    if (!m_scheduled || !m_previousFrameDone)
+        return;
+
+    m_previousFrameDone = false;
+
     m_timestamp = currentTime();
 
     callOnMainThread(refreshDisplayOnMainThread, this);