| 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.
|
|
|