| Index: cc/layer_tree_host_common.cc
|
| diff --git a/cc/layer_tree_host_common.cc b/cc/layer_tree_host_common.cc
|
| index b13e68941613d23b0af62d5ebef3e72bfbbed888..bad0cc58100f196dd47c6e24494db5888451607d 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.
|
|
|