Index: cc/layer_tree_host_common.cc |
diff --git a/cc/layer_tree_host_common.cc b/cc/layer_tree_host_common.cc |
index c629ea35d2d0c892f6e999a28c7e71d0f3a26977..8419b3bcdc5a827e030fca9da15899d7409fc8d5 100644 |
--- a/cc/layer_tree_host_common.cc |
+++ b/cc/layer_tree_host_common.cc |
@@ -242,7 +242,7 @@ static bool subtreeShouldRenderToSeparateSurface(LayerType* layer, bool axisAlig |
return true; |
// If the layer uses a CSS filter. |
- if (!layer->filters().isEmpty() || !layer->backgroundFilters().isEmpty()) |
+ if (!layer->filters().isEmpty() || !layer->backgroundFilters().isEmpty() || layer->filter()) |
return true; |
// If the layer flattens its subtree (i.e. the layer doesn't preserve-3d), but it is |
@@ -576,7 +576,9 @@ static void calculateDrawTransformsInternal(LayerType* layer, LayerType* rootLay |
layer->replicaLayer()->maskLayer()->setVisibleContentRect(IntRect(IntPoint(), layer->contentBounds())); |
} |
- if (layer->filters().hasFilterThatMovesPixels()) |
+ // FIXME: make this smarter for the SkImageFilter case (check for |
+ // pixel-moving filters) |
+ if (layer->filters().hasFilterThatMovesPixels() || layer->filter()) |
nearestAncestorThatMovesPixels = renderSurface; |
// The render surface clipRect is expressed in the space where this surface draws, i.e. the same space as clipRectFromAncestor. |