| Index: cc/layers/render_surface_impl.cc
|
| diff --git a/cc/layers/render_surface_impl.cc b/cc/layers/render_surface_impl.cc
|
| index 1f03887ae097792581e13ae5960ca5d0355ce7d8..0d8acae0aaa3b10c2b7635e12a5a664d58aaeb9c 100644
|
| --- a/cc/layers/render_surface_impl.cc
|
| +++ b/cc/layers/render_surface_impl.cc
|
| @@ -152,6 +152,10 @@ bool RenderSurfaceImpl::HasCopyRequest() const {
|
| return OwningEffectNode()->has_copy_request;
|
| }
|
|
|
| +bool RenderSurfaceImpl::ShouldCacheRenderSurface() const {
|
| + return OwningEffectNode()->cache_render_surface;
|
| +}
|
| +
|
| int RenderSurfaceImpl::TransformTreeIndex() const {
|
| return OwningEffectNode()->transform_id;
|
| }
|
| @@ -201,7 +205,7 @@ gfx::Rect RenderSurfaceImpl::CalculateExpandedClipForFilters(
|
| }
|
|
|
| gfx::Rect RenderSurfaceImpl::CalculateClippedAccumulatedContentRect() {
|
| - if (HasCopyRequest() || !is_clipped())
|
| + if (ShouldCacheRenderSurface() || HasCopyRequest() || !is_clipped())
|
| return accumulated_content_rect();
|
|
|
| if (accumulated_content_rect().IsEmpty())
|
| @@ -336,6 +340,10 @@ void RenderSurfaceImpl::NoteAncestorPropertyChanged() {
|
| ancestor_property_changed_ = true;
|
| }
|
|
|
| +bool RenderSurfaceImpl::HasDamageFromeContributingContent() const {
|
| + return damage_tracker_->has_damage_from_contributing_content();
|
| +}
|
| +
|
| gfx::Rect RenderSurfaceImpl::GetDamageRect() const {
|
| gfx::Rect damage_rect;
|
| bool is_valid_rect = damage_tracker_->GetDamageRectIfValid(&damage_rect);
|
| @@ -357,6 +365,9 @@ std::unique_ptr<RenderPass> RenderSurfaceImpl::CreateRenderPass() {
|
| draw_properties_.screen_space_transform);
|
| pass->filters = Filters();
|
| pass->background_filters = BackgroundFilters();
|
| + pass->cache_render_pass = ShouldCacheRenderSurface();
|
| + pass->has_damage_from_contributing_content =
|
| + HasDamageFromeContributingContent();
|
| return pass;
|
| }
|
|
|
|
|