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 17a3e6102ef677d8f9d6c6b16425fc630682d05a..c05b3983d518c0a50ade6b90f2449def4be6e971 100644 |
--- a/cc/trees/layer_tree_host_impl.cc |
+++ b/cc/trees/layer_tree_host_impl.cc |
@@ -241,7 +241,8 @@ LayerTreeHostImpl::LayerTreeHostImpl( |
id_(id), |
requires_high_res_to_draw_(false), |
is_likely_to_require_a_draw_(false), |
- mutator_(nullptr) { |
+ mutator_(nullptr), |
+ has_fixed_raster_scale_blurry_content_(false) { |
animation_host_ = AnimationHost::Create(ThreadInstance::IMPL); |
animation_host_->SetMutatorHostClient(this); |
animation_host_->SetSupportsScrollAnimations(SupportsImplScrolling()); |
@@ -354,6 +355,9 @@ void LayerTreeHostImpl::CommitComplete() { |
UpdateTreeResourcesForGpuRasterizationIfNeeded(); |
sync_tree()->set_needs_update_draw_properties(); |
+ // Advance the attempted scale change history before updaring draw properties. |
+ fixed_raster_scale_attempted_scale_change_history_ <<= 1; |
+ |
// We need an update immediately post-commit to have the opportunity to create |
// tilings. Because invalidations may be coming from the main thread, it's |
// safe to do an update for lcd text at this point and see if lcd text needs |
@@ -3958,4 +3962,14 @@ bool LayerTreeHostImpl::CommitToActiveTree() const { |
return !task_runner_provider_->HasImplThread(); |
} |
+bool LayerTreeHostImpl::HasFixedRasterScalePotentialPerformanceRegression() |
+ const { |
+ return fixed_raster_scale_attempted_scale_change_history_.count() >= |
+ kFixedRasterScaleAttemptedScaleChangeThreshold; |
+} |
+ |
+void LayerTreeHostImpl::SetFixedRasterScaleAttemptedToChangeScale() { |
+ fixed_raster_scale_attempted_scale_change_history_.set(0); |
+} |
+ |
} // namespace cc |