Title: [113494] trunk/Source/WebCore
Revision
113494
Author
[email protected]
Date
2012-04-06 14:17:55 -0700 (Fri, 06 Apr 2012)

Log Message

Avoid trying to set filters on transform layers
https://bugs.webkit.org/show_bug.cgi?id=83344

Reviewed by Dean Jackson.

Return early from GraphicsLayerCA::setFilters() when the filters
haven't changed. This avoids trying to clear filters on CALayers
which never had them, which should both help performance, and avoids
console spew related to setting shadow properties on transform layers.

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setFilters):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (113493 => 113494)


--- trunk/Source/WebCore/ChangeLog	2012-04-06 21:15:55 UTC (rev 113493)
+++ trunk/Source/WebCore/ChangeLog	2012-04-06 21:17:55 UTC (rev 113494)
@@ -1,3 +1,18 @@
+2012-04-05  Simon Fraser  <[email protected]>
+
+        Avoid trying to set filters on transform layers
+        https://bugs.webkit.org/show_bug.cgi?id=83344
+
+        Reviewed by Dean Jackson.
+
+        Return early from GraphicsLayerCA::setFilters() when the filters
+        haven't changed. This avoids trying to clear filters on CALayers
+        which never had them, which should both help performance, and avoids
+        console spew related to setting shadow properties on transform layers.
+        
+        * platform/graphics/ca/GraphicsLayerCA.cpp:
+        (WebCore::GraphicsLayerCA::setFilters):
+
 2012-04-06  James Robinson  <[email protected]>
 
         WebGL content swapped at wrong time in threaded compositing mode

Modified: trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp (113493 => 113494)


--- trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp	2012-04-06 21:15:55 UTC (rev 113493)
+++ trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp	2012-04-06 21:17:55 UTC (rev 113494)
@@ -604,6 +604,13 @@
 bool GraphicsLayerCA::setFilters(const FilterOperations& filterOperations)
 {
     bool canCompositeFilters = PlatformCALayer::filtersCanBeComposited(filterOperations);
+
+    if (m_filters == filterOperations)
+        return canCompositeFilters;
+
+    // Filters cause flattening, so we should never have filters on a layer with preserves3D().
+    ASSERT(!filterOperations.size() || !preserves3D());
+
     if (canCompositeFilters) {
         GraphicsLayer::setFilters(filterOperations);
         noteLayerPropertyChanged(FiltersChanged);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to