Title: [149123] trunk/Source
Revision
149123
Author
[email protected]
Date
2013-04-25 11:19:05 -0700 (Thu, 25 Apr 2013)

Log Message

[Qt] Animated opacity does not trigger accelerated compositing
https://bugs.webkit.org/show_bug.cgi?id=115107

Reviewed by Simon Fraser.

Source/WebCore:

Add extra option to also trigger compositing on animated opacity.

* page/ChromeClient.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForAnimation):

Source/WebKit/qt:

We should trigger compositing on animated opacity as it is always faster on Qt.

* WebCoreSupport/ChromeClientQt.cpp:
VideoTrigger removed because we have already disabled AC for video in qwebsettings.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (149122 => 149123)


--- trunk/Source/WebCore/ChangeLog	2013-04-25 18:09:10 UTC (rev 149122)
+++ trunk/Source/WebCore/ChangeLog	2013-04-25 18:19:05 UTC (rev 149123)
@@ -1,3 +1,16 @@
+2013-04-25  Allan Sandfeld Jensen  <[email protected]>
+
+        [Qt] Animated opacity does not trigger accelerated compositing
+        https://bugs.webkit.org/show_bug.cgi?id=115107
+
+        Reviewed by Simon Fraser.
+
+        Add extra option to also trigger compositing on animated opacity.
+
+        * page/ChromeClient.h:
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::requiresCompositingForAnimation):
+
 2013-04-25  Lamarque V. Souza  <[email protected]>
 
         Sec-WebSocket-Extensions header field must not appear more than once in an HTTP response.

Modified: trunk/Source/WebCore/page/ChromeClient.h (149122 => 149123)


--- trunk/Source/WebCore/page/ChromeClient.h	2013-04-25 18:09:10 UTC (rev 149122)
+++ trunk/Source/WebCore/page/ChromeClient.h	2013-04-25 18:19:05 UTC (rev 149123)
@@ -279,6 +279,7 @@
         AnimationTrigger = 1 << 4,
         FilterTrigger = 1 << 5,
         ScrollableInnerFrameTrigger = 1 << 6,
+        AnimatedOpacityTrigger = 1 << 7,
         AllTriggers = 0xFFFFFFFF
     };
     typedef unsigned CompositingTriggerFlags;

Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (149122 => 149123)


--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2013-04-25 18:09:10 UTC (rev 149122)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2013-04-25 18:19:05 UTC (rev 149123)
@@ -2107,7 +2107,8 @@
         return false;
 
     if (AnimationController* animController = renderer->animation()) {
-        return (animController->isRunningAnimationOnRenderer(renderer, CSSPropertyOpacity) && inCompositingMode())
+        return (animController->isRunningAnimationOnRenderer(renderer, CSSPropertyOpacity)
+                && (inCompositingMode() || (m_compositingTriggers & ChromeClient::AnimatedOpacityTrigger)))
 #if ENABLE(CSS_FILTERS)
 #if !PLATFORM(MAC) || (!PLATFORM(IOS) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1080)
             // <rdar://problem/10907251> - WebKit2 doesn't support CA animations of CI filters on Lion and below

Modified: trunk/Source/WebKit/qt/ChangeLog (149122 => 149123)


--- trunk/Source/WebKit/qt/ChangeLog	2013-04-25 18:09:10 UTC (rev 149122)
+++ trunk/Source/WebKit/qt/ChangeLog	2013-04-25 18:19:05 UTC (rev 149123)
@@ -1,3 +1,15 @@
+2013-04-25  Allan Sandfeld Jensen  <[email protected]>
+
+        [Qt] Animated opacity does not trigger accelerated compositing
+        https://bugs.webkit.org/show_bug.cgi?id=115107
+
+        Reviewed by Simon Fraser.
+
+        We should trigger compositing on animated opacity as it is always faster on Qt.
+
+        * WebCoreSupport/ChromeClientQt.cpp:
+        VideoTrigger removed because we have already disabled AC for video in qwebsettings.
+
 2013-04-23  Allan Sandfeld Jensen  <[email protected]>
 
         [Qt][WK1] MemoryCache is not cleaned by default

Modified: trunk/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp (149122 => 149123)


--- trunk/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp	2013-04-25 18:09:10 UTC (rev 149122)
+++ trunk/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp	2013-04-25 18:19:05 UTC (rev 149123)
@@ -655,7 +655,7 @@
 ChromeClient::CompositingTriggerFlags ChromeClientQt::allowedCompositingTriggers() const
 {
     if (allowsAcceleratedCompositing())
-        return ThreeDTransformTrigger | VideoTrigger | CanvasTrigger | AnimationTrigger;
+        return ThreeDTransformTrigger | CanvasTrigger | AnimationTrigger | AnimatedOpacityTrigger;
 
     return 0;
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to