diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc index a3df43c5f2586..753d171ab5bda 100644 --- a/cc/trees/layer_tree_impl.cc +++ b/cc/trees/layer_tree_impl.cc @@ -599,6 +599,7 @@ void LayerTreeImpl::SetDeviceScaleFactor(float device_scale_factor) { return; device_scale_factor_ = device_scale_factor; + set_needs_update_draw_properties(); if (IsActiveTree()) layer_tree_host_impl_->SetFullRootLayerDamage(); } diff --git a/cc/trees/layer_tree_impl_unittest.cc b/cc/trees/layer_tree_impl_unittest.cc index 5298ed9c41035..393266e9d7f3b 100644 --- a/cc/trees/layer_tree_impl_unittest.cc +++ b/cc/trees/layer_tree_impl_unittest.cc @@ -2370,5 +2370,13 @@ TEST_F(LayerTreeImplTest, NumLayersSmallTree) { EXPECT_EQ(4u, host_impl().active_tree()->NumLayers()); } +TEST_F(LayerTreeImplTest, DeviceScaleFactorNeedsDrawPropertiesUpdate) { + host_impl().active_tree()->SetDeviceScaleFactor(1.f); + host_impl().active_tree()->UpdateDrawProperties(false); + EXPECT_FALSE(host_impl().active_tree()->needs_update_draw_properties()); + host_impl().active_tree()->SetDeviceScaleFactor(2.f); + EXPECT_TRUE(host_impl().active_tree()->needs_update_draw_properties()); +} + } // namespace } // namespace cc