| Index: cc/trees/layer_tree_impl.cc
|
| diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
|
| index 703c37b4abee339e6405cf903b39cef8f89776b3..041c5fea5186105c11c86371cea45ed66c3ee206 100644
|
| --- a/cc/trees/layer_tree_impl.cc
|
| +++ b/cc/trees/layer_tree_impl.cc
|
| @@ -560,6 +560,7 @@ bool LayerTreeImpl::UpdateDrawProperties() {
|
| typedef LayerIterator<LayerImpl> LayerIteratorType;
|
| LayerIteratorType end = LayerIteratorType::End(&render_surface_layer_list_);
|
| size_t layers_updated_count = 0;
|
| + bool tile_priorities_updated = false;
|
| for (LayerIteratorType it =
|
| LayerIteratorType::Begin(&render_surface_layer_list_);
|
| it != end;
|
| @@ -574,8 +575,8 @@ bool LayerTreeImpl::UpdateDrawProperties() {
|
| : Occlusion();
|
|
|
| if (it.represents_itself()) {
|
| - layer->UpdateTiles(occlusion_in_content_space,
|
| - resourceless_software_draw);
|
| + tile_priorities_updated |= layer->UpdateTiles(
|
| + occlusion_in_content_space, resourceless_software_draw);
|
| ++layers_updated_count;
|
| }
|
|
|
| @@ -586,13 +587,14 @@ bool LayerTreeImpl::UpdateDrawProperties() {
|
| }
|
|
|
| if (layer->mask_layer()) {
|
| - layer->mask_layer()->UpdateTiles(occlusion_in_content_space,
|
| - resourceless_software_draw);
|
| + tile_priorities_updated |= layer->mask_layer()->UpdateTiles(
|
| + occlusion_in_content_space, resourceless_software_draw);
|
| ++layers_updated_count;
|
| }
|
| if (layer->replica_layer() && layer->replica_layer()->mask_layer()) {
|
| - layer->replica_layer()->mask_layer()->UpdateTiles(
|
| - occlusion_in_content_space, resourceless_software_draw);
|
| + tile_priorities_updated |=
|
| + layer->replica_layer()->mask_layer()->UpdateTiles(
|
| + occlusion_in_content_space, resourceless_software_draw);
|
| ++layers_updated_count;
|
| }
|
|
|
| @@ -600,6 +602,9 @@ bool LayerTreeImpl::UpdateDrawProperties() {
|
| occlusion_tracker->LeaveLayer(it);
|
| }
|
|
|
| + if (tile_priorities_updated)
|
| + DidModifyTilePriorities();
|
| +
|
| TRACE_EVENT_END1("cc", "LayerTreeImpl::UpdateTilePriorities",
|
| "layers_updated_count", layers_updated_count);
|
| }
|
| @@ -1081,10 +1086,7 @@ bool LayerTreeImpl::IsUIResourceOpaque(UIResourceId uid) const {
|
| }
|
|
|
| void LayerTreeImpl::ProcessUIResourceRequestQueue() {
|
| - while (ui_resource_request_queue_.size() > 0) {
|
| - UIResourceRequest req = ui_resource_request_queue_.front();
|
| - ui_resource_request_queue_.pop_front();
|
| -
|
| + for (const auto& req : ui_resource_request_queue_) {
|
| switch (req.GetType()) {
|
| case UIResourceRequest::UIResourceCreate:
|
| layer_tree_host_impl_->CreateUIResource(req.GetId(), req.GetBitmap());
|
| @@ -1097,6 +1099,7 @@ void LayerTreeImpl::ProcessUIResourceRequestQueue() {
|
| break;
|
| }
|
| }
|
| + ui_resource_request_queue_.clear();
|
|
|
| // If all UI resource evictions were not recreated by processing this queue,
|
| // then another commit is required.
|
|
|