diff options
author | Zeno Albisser <zeno.albisser@digia.com> | 2013-11-21 14:09:57 +0100 |
---|---|---|
committer | Andras Becsi <andras.becsi@digia.com> | 2013-11-29 15:14:36 +0100 |
commit | eb32ba6f51d0c21d58cd7d89785285ff8fa64624 (patch) | |
tree | 2c7c940e1dbee81b89d935626110816b494aa32c /chromium/cc/trees | |
parent | 9427c1a0222ebd67efef1a2c7990a0fa5c9aac84 (diff) | |
download | qtwebengine-chromium-eb32ba6f51d0c21d58cd7d89785285ff8fa64624.tar.gz |
Update chromium to branch 1599.
Change-Id: I04e775a946a208bb4500d3b722bcb05c82b9d7cb
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Diffstat (limited to 'chromium/cc/trees')
-rw-r--r-- | chromium/cc/trees/layer_tree_host_impl.cc | 11 | ||||
-rw-r--r-- | chromium/cc/trees/layer_tree_host_impl_unittest.cc | 2 | ||||
-rw-r--r-- | chromium/cc/trees/layer_tree_host_unittest.cc | 75 | ||||
-rw-r--r-- | chromium/cc/trees/layer_tree_host_unittest_context.cc | 12 |
4 files changed, 24 insertions, 76 deletions
diff --git a/chromium/cc/trees/layer_tree_host_impl.cc b/chromium/cc/trees/layer_tree_host_impl.cc index 720febd7fc7..9519e745af4 100644 --- a/chromium/cc/trees/layer_tree_host_impl.cc +++ b/chromium/cc/trees/layer_tree_host_impl.cc @@ -327,11 +327,9 @@ void LayerTreeHostImpl::ManageTiles() { size_t memory_required_bytes; size_t memory_nice_to_have_bytes; - size_t memory_allocated_bytes; size_t memory_used_bytes; tile_manager_->GetMemoryStats(&memory_required_bytes, &memory_nice_to_have_bytes, - &memory_allocated_bytes, &memory_used_bytes); SendManagedMemoryStats(memory_required_bytes, memory_nice_to_have_bytes, @@ -1529,6 +1527,11 @@ void LayerTreeHostImpl::SetVisible(bool visible) { DidVisibilityChange(this, visible_); EnforceManagedMemoryPolicy(ActualManagedMemoryPolicy()); + // Evict tiles immediately if invisible since this tab may never get another + // draw or timer tick. + if (!visible_) + ManageTiles(); + if (!renderer_) return; @@ -2502,9 +2505,7 @@ void LayerTreeHostImpl::CreateUIResource( if (id) DeleteUIResource(uid); id = resource_provider_->CreateResource( - bitmap->GetSize(), - resource_provider_->best_texture_format(), - ResourceProvider::TextureUsageAny); + bitmap->GetSize(), GL_RGBA, ResourceProvider::TextureUsageAny); ui_resource_map_[uid] = id; resource_provider_->SetPixels(id, diff --git a/chromium/cc/trees/layer_tree_host_impl_unittest.cc b/chromium/cc/trees/layer_tree_host_impl_unittest.cc index 764a9cf93de..ab81c672b8c 100644 --- a/chromium/cc/trees/layer_tree_host_impl_unittest.cc +++ b/chromium/cc/trees/layer_tree_host_impl_unittest.cc @@ -10,7 +10,6 @@ #include "base/command_line.h" #include "base/containers/hash_tables.h" #include "cc/base/math_util.h" -#include "cc/debug/test_web_graphics_context_3d.h" #include "cc/input/top_controls_manager.h" #include "cc/layers/delegated_renderer_layer_impl.h" #include "cc/layers/heads_up_display_layer_impl.h" @@ -40,6 +39,7 @@ #include "cc/test/geometry_test_utils.h" #include "cc/test/layer_test_common.h" #include "cc/test/render_pass_test_common.h" +#include "cc/test/test_web_graphics_context_3d.h" #include "cc/trees/layer_tree_impl.h" #include "cc/trees/single_thread_proxy.h" #include "media/base/media.h" diff --git a/chromium/cc/trees/layer_tree_host_unittest.cc b/chromium/cc/trees/layer_tree_host_unittest.cc index 55841e52e70..b18a88a7865 100644 --- a/chromium/cc/trees/layer_tree_host_unittest.cc +++ b/chromium/cc/trees/layer_tree_host_unittest.cc @@ -1111,7 +1111,7 @@ class LayerTreeHostTestDeviceScaleFactorScalesViewportAndLayers MULTI_THREAD_TEST_F(LayerTreeHostTestDeviceScaleFactorScalesViewportAndLayers); // Verify atomicity of commits and reuse of textures. -class LayerTreeHostTestDirectRendererAtomicCommit : public LayerTreeHostTest { +class LayerTreeHostTestAtomicCommit : public LayerTreeHostTest { public: virtual void InitializeSettings(LayerTreeSettings* settings) OVERRIDE { // Make sure partial texture updates are turned off. @@ -1162,18 +1162,19 @@ class LayerTreeHostTestDirectRendererAtomicCommit : public LayerTreeHostTest { PostSetNeedsCommitToMainThread(); break; case 1: - // Number of textures should be one for scrollbar layer since it was - // requested and deleted on the impl-thread, and double for the content - // layer since its first texture is used by impl thread and cannot by - // used for update. - ASSERT_EQ(3u, context->NumTextures()); - // Number of textures used for commit should be one for each layer. + // Number of textures should be doubled as the first textures + // are used by impl thread and cannot by used for update. + ASSERT_EQ(4u, context->NumTextures()); + // Number of textures used for commit should still be + // one for each layer. EXPECT_EQ(2u, context->NumUsedTextures()); // First textures should not have been used. EXPECT_FALSE(context->UsedTexture(context->TextureAt(0))); - EXPECT_TRUE(context->UsedTexture(context->TextureAt(1))); + EXPECT_FALSE(context->UsedTexture(context->TextureAt(1))); // New textures should have been used. EXPECT_TRUE(context->UsedTexture(context->TextureAt(2))); + EXPECT_TRUE(context->UsedTexture(context->TextureAt(3))); + context->ResetUsedTextures(); PostSetNeedsCommitToMainThread(); break; @@ -1208,68 +1209,14 @@ class LayerTreeHostTestDirectRendererAtomicCommit : public LayerTreeHostTest { virtual void AfterTest() OVERRIDE {} - protected: + private: FakeContentLayerClient client_; scoped_refptr<FakeContentLayer> layer_; scoped_refptr<FakeScrollbarLayer> scrollbar_; int drew_frame_; }; -MULTI_THREAD_DIRECT_RENDERER_TEST_F( - LayerTreeHostTestDirectRendererAtomicCommit); - -class LayerTreeHostTestDelegatingRendererAtomicCommit - : public LayerTreeHostTestDirectRendererAtomicCommit { - public: - virtual void DidActivateTreeOnThread(LayerTreeHostImpl* impl) OVERRIDE { - ASSERT_EQ(0u, layer_tree_host()->settings().max_partial_texture_updates); - - TestWebGraphicsContext3D* context = static_cast<TestWebGraphicsContext3D*>( - impl->output_surface()->context3d()); - - switch (impl->active_tree()->source_frame_number()) { - case 0: - // Number of textures should be one for each layer - ASSERT_EQ(2u, context->NumTextures()); - // Number of textures used for commit should be one for each layer. - EXPECT_EQ(2u, context->NumUsedTextures()); - // Verify that used texture is correct. - EXPECT_TRUE(context->UsedTexture(context->TextureAt(0))); - EXPECT_TRUE(context->UsedTexture(context->TextureAt(1))); - context->ResetUsedTextures(); - PostSetNeedsCommitToMainThread(); - break; - case 1: - // Number of textures should be doubled as the first context layer - // texture is being used by the impl-thread and cannot be used for - // update. The scrollbar behavior is different direct renderer because - // UI resource deletion with delegating renderer occurs after tree - // activation. - ASSERT_EQ(4u, context->NumTextures()); - // Number of textures used for commit should still be - // one for each layer. - EXPECT_EQ(2u, context->NumUsedTextures()); - // First textures should not have been used. - EXPECT_FALSE(context->UsedTexture(context->TextureAt(0))); - EXPECT_FALSE(context->UsedTexture(context->TextureAt(1))); - // New textures should have been used. - EXPECT_TRUE(context->UsedTexture(context->TextureAt(2))); - EXPECT_TRUE(context->UsedTexture(context->TextureAt(3))); - context->ResetUsedTextures(); - PostSetNeedsCommitToMainThread(); - break; - case 2: - EndTest(); - break; - default: - NOTREACHED(); - break; - } - } -}; - -MULTI_THREAD_DELEGATING_RENDERER_TEST_F( - LayerTreeHostTestDelegatingRendererAtomicCommit); +MULTI_THREAD_TEST_F(LayerTreeHostTestAtomicCommit); static void SetLayerPropertiesForTesting(Layer* layer, Layer* parent, diff --git a/chromium/cc/trees/layer_tree_host_unittest_context.cc b/chromium/cc/trees/layer_tree_host_unittest_context.cc index 3404c1ea9df..1787d31ddf3 100644 --- a/chromium/cc/trees/layer_tree_host_unittest_context.cc +++ b/chromium/cc/trees/layer_tree_host_unittest_context.cc @@ -5,8 +5,6 @@ #include "cc/trees/layer_tree_host.h" #include "base/basictypes.h" -#include "cc/debug/test_context_provider.h" -#include "cc/debug/test_web_graphics_context_3d.h" #include "cc/layers/content_layer.h" #include "cc/layers/heads_up_display_layer.h" #include "cc/layers/io_surface_layer.h" @@ -21,6 +19,7 @@ #include "cc/test/fake_content_layer.h" #include "cc/test/fake_content_layer_client.h" #include "cc/test/fake_content_layer_impl.h" +#include "cc/test/fake_context_provider.h" #include "cc/test/fake_delegated_renderer_layer.h" #include "cc/test/fake_delegated_renderer_layer_impl.h" #include "cc/test/fake_layer_tree_host_client.h" @@ -31,6 +30,7 @@ #include "cc/test/fake_video_frame_provider.h" #include "cc/test/layer_tree_test.h" #include "cc/test/render_pass_test_common.h" +#include "cc/test/test_web_graphics_context_3d.h" #include "cc/trees/layer_tree_host_impl.h" #include "cc/trees/layer_tree_impl.h" #include "cc/trees/single_thread_proxy.h" @@ -141,7 +141,7 @@ class LayerTreeHostContextTest : public LayerTreeTest { if (!offscreen_contexts_main_thread_.get() || offscreen_contexts_main_thread_->DestroyedOnMainThread()) { - offscreen_contexts_main_thread_ = TestContextProvider::Create( + offscreen_contexts_main_thread_ = FakeContextProvider::Create( base::Bind(&LayerTreeHostContextTest::CreateOffscreenContext3d, base::Unretained(this))); if (offscreen_contexts_main_thread_.get() && @@ -157,7 +157,7 @@ class LayerTreeHostContextTest : public LayerTreeTest { if (!offscreen_contexts_compositor_thread_.get() || offscreen_contexts_compositor_thread_->DestroyedOnMainThread()) { - offscreen_contexts_compositor_thread_ = TestContextProvider::Create( + offscreen_contexts_compositor_thread_ = FakeContextProvider::Create( base::Bind(&LayerTreeHostContextTest::CreateOffscreenContext3d, base::Unretained(this))); } @@ -236,8 +236,8 @@ class LayerTreeHostContextTest : public LayerTreeTest { bool context_should_support_io_surface_; bool fallback_context_works_; - scoped_refptr<TestContextProvider> offscreen_contexts_main_thread_; - scoped_refptr<TestContextProvider> offscreen_contexts_compositor_thread_; + scoped_refptr<FakeContextProvider> offscreen_contexts_main_thread_; + scoped_refptr<FakeContextProvider> offscreen_contexts_compositor_thread_; }; class LayerTreeHostContextTestLostContextSucceeds |