| Index: cc/trees/layer_tree_host_impl.cc
|
| diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
|
| index cb43af9715c2e3ad4bddcff3f55f5d8f08fda9cc..9d01bd653cb692523f0cfccf3bcc9f098ad0f097 100644
|
| --- a/cc/trees/layer_tree_host_impl.cc
|
| +++ b/cc/trees/layer_tree_host_impl.cc
|
| @@ -330,6 +330,15 @@
|
| void LayerTreeHostImpl::BeginCommit() {
|
| TRACE_EVENT0("cc", "LayerTreeHostImpl::BeginCommit");
|
|
|
| + // Ensure all textures are returned so partial texture updates can happen
|
| + // during the commit.
|
| + // TODO(ericrk): We should not need to ForceReclaimResources when using
|
| + // Impl-side-painting as it doesn't upload during commits. However,
|
| + // Display::Draw currently relies on resource being reclaimed to block drawing
|
| + // between BeginCommit / Swap. See crbug.com/489515.
|
| + if (compositor_frame_sink_)
|
| + compositor_frame_sink_->ForceReclaimResources();
|
| +
|
| if (!CommitToActiveTree())
|
| CreatePendingTree();
|
| }
|
| @@ -773,12 +782,12 @@
|
| !root_surface->layer_list().empty();
|
| bool hud_wants_to_draw_ = active_tree_->hud_layer() &&
|
| active_tree_->hud_layer()->IsAnimatingHUDContents();
|
| - bool must_always_swap =
|
| - compositor_frame_sink_->capabilities().must_always_swap;
|
| + bool resources_must_be_resent =
|
| + compositor_frame_sink_->capabilities().can_force_reclaim_resources;
|
| if (root_surface_has_contributing_layers &&
|
| root_surface_has_no_visible_damage &&
|
| !active_tree_->property_trees()->effect_tree.HasCopyRequests() &&
|
| - !must_always_swap && !hud_wants_to_draw_) {
|
| + !resources_must_be_resent && !hud_wants_to_draw_) {
|
| TRACE_EVENT0("cc",
|
| "LayerTreeHostImpl::CalculateRenderPasses::EmptyDamageRect");
|
| frame->has_no_damage = true;
|
|
|