Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(938)

Side by Side Diff: cc/trees/layer_tree_host_unittest.cc

Issue 812543002: Update from https://crrev.com/308331 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/layer_tree_host.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/synchronization/lock.h" 10 #include "base/synchronization/lock.h"
(...skipping 2072 matching lines...) Expand 10 before | Expand all | Expand 10 after
2083 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_3D); 2083 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_3D);
2084 2084
2085 scoped_ptr<FakeProxy> proxy(new FakeProxy); 2085 scoped_ptr<FakeProxy> proxy(new FakeProxy);
2086 proxy->GetRendererCapabilities().allow_partial_texture_updates = false; 2086 proxy->GetRendererCapabilities().allow_partial_texture_updates = false;
2087 proxy->SetMaxPartialTextureUpdates(5); 2087 proxy->SetMaxPartialTextureUpdates(5);
2088 2088
2089 LayerTreeSettings settings; 2089 LayerTreeSettings settings;
2090 settings.max_partial_texture_updates = 10; 2090 settings.max_partial_texture_updates = 10;
2091 2091
2092 LayerTreeHostWithProxy host(&client, settings, proxy.Pass()); 2092 LayerTreeHostWithProxy host(&client, settings, proxy.Pass());
2093 host.OnCreateAndInitializeOutputSurfaceAttempted(true);
2094 2093
2095 EXPECT_EQ(0u, host.MaxPartialTextureUpdates()); 2094 EXPECT_EQ(0u, host.MaxPartialTextureUpdates());
2096 } 2095 }
2097 2096
2098 // When partial updates are allowed, 2097 // When partial updates are allowed,
2099 // max updates should be limited by the proxy. 2098 // max updates should be limited by the proxy.
2100 { 2099 {
2101 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_3D); 2100 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_3D);
2102 2101
2103 scoped_ptr<FakeProxy> proxy(new FakeProxy); 2102 scoped_ptr<FakeProxy> proxy(new FakeProxy);
2104 proxy->GetRendererCapabilities().allow_partial_texture_updates = true; 2103 proxy->GetRendererCapabilities().allow_partial_texture_updates = true;
2105 proxy->SetMaxPartialTextureUpdates(5); 2104 proxy->SetMaxPartialTextureUpdates(5);
2106 2105
2107 LayerTreeSettings settings; 2106 LayerTreeSettings settings;
2108 settings.max_partial_texture_updates = 10; 2107 settings.max_partial_texture_updates = 10;
2109 2108
2110 LayerTreeHostWithProxy host(&client, settings, proxy.Pass()); 2109 LayerTreeHostWithProxy host(&client, settings, proxy.Pass());
2111 host.OnCreateAndInitializeOutputSurfaceAttempted(true);
2112 2110
2113 EXPECT_EQ(5u, host.MaxPartialTextureUpdates()); 2111 EXPECT_EQ(5u, host.MaxPartialTextureUpdates());
2114 } 2112 }
2115 2113
2116 // When partial updates are allowed, 2114 // When partial updates are allowed,
2117 // max updates should also be limited by the settings. 2115 // max updates should also be limited by the settings.
2118 { 2116 {
2119 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_3D); 2117 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_3D);
2120 2118
2121 scoped_ptr<FakeProxy> proxy(new FakeProxy); 2119 scoped_ptr<FakeProxy> proxy(new FakeProxy);
2122 proxy->GetRendererCapabilities().allow_partial_texture_updates = true; 2120 proxy->GetRendererCapabilities().allow_partial_texture_updates = true;
2123 proxy->SetMaxPartialTextureUpdates(20); 2121 proxy->SetMaxPartialTextureUpdates(20);
2124 2122
2125 LayerTreeSettings settings; 2123 LayerTreeSettings settings;
2126 settings.max_partial_texture_updates = 10; 2124 settings.max_partial_texture_updates = 10;
2127 2125
2128 LayerTreeHostWithProxy host(&client, settings, proxy.Pass()); 2126 LayerTreeHostWithProxy host(&client, settings, proxy.Pass());
2129 host.OnCreateAndInitializeOutputSurfaceAttempted(true);
2130 2127
2131 EXPECT_EQ(10u, host.MaxPartialTextureUpdates()); 2128 EXPECT_EQ(10u, host.MaxPartialTextureUpdates());
2132 } 2129 }
2133 } 2130 }
2134 2131
2135 TEST(LayerTreeHostTest, PartialUpdatesWithGLRenderer) { 2132 TEST(LayerTreeHostTest, PartialUpdatesWithGLRenderer) {
2136 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_3D); 2133 FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_3D);
2137 2134
2138 LayerTreeSettings settings; 2135 LayerTreeSettings settings;
2139 settings.max_partial_texture_updates = 4; 2136 settings.max_partial_texture_updates = 4;
(...skipping 541 matching lines...) Expand 10 before | Expand all | Expand 10 after
2681 GLsizei count, 2678 GLsizei count,
2682 GLenum type, 2679 GLenum type,
2683 GLintptr offset)); 2680 GLintptr offset));
2684 MOCK_METHOD1(deleteTexture, void(GLenum texture)); 2681 MOCK_METHOD1(deleteTexture, void(GLenum texture));
2685 MOCK_METHOD2(produceTextureCHROMIUM, 2682 MOCK_METHOD2(produceTextureCHROMIUM,
2686 void(GLenum target, const GLbyte* mailbox)); 2683 void(GLenum target, const GLbyte* mailbox));
2687 }; 2684 };
2688 2685
2689 class LayerTreeHostTestIOSurfaceDrawing : public LayerTreeHostTest { 2686 class LayerTreeHostTestIOSurfaceDrawing : public LayerTreeHostTest {
2690 protected: 2687 protected:
2691 scoped_ptr<FakeOutputSurface> CreateFakeOutputSurface( 2688 scoped_ptr<FakeOutputSurface> CreateFakeOutputSurface() override {
2692 bool fallback) override {
2693 scoped_ptr<MockIOSurfaceWebGraphicsContext3D> mock_context_owned( 2689 scoped_ptr<MockIOSurfaceWebGraphicsContext3D> mock_context_owned(
2694 new MockIOSurfaceWebGraphicsContext3D); 2690 new MockIOSurfaceWebGraphicsContext3D);
2695 mock_context_ = mock_context_owned.get(); 2691 mock_context_ = mock_context_owned.get();
2696 2692
2697 if (delegating_renderer()) 2693 if (delegating_renderer())
2698 return FakeOutputSurface::CreateDelegating3d(mock_context_owned.Pass()); 2694 return FakeOutputSurface::CreateDelegating3d(mock_context_owned.Pass());
2699 else 2695 else
2700 return FakeOutputSurface::Create3d(mock_context_owned.Pass()); 2696 return FakeOutputSurface::Create3d(mock_context_owned.Pass());
2701 } 2697 }
2702 2698
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
2876 LayerTreeHostTest::SetupTree(); 2872 LayerTreeHostTest::SetupTree();
2877 } 2873 }
2878 2874
2879 void BeginTest() override { 2875 void BeginTest() override {
2880 did_initialize_gl_ = false; 2876 did_initialize_gl_ = false;
2881 did_release_gl_ = false; 2877 did_release_gl_ = false;
2882 last_source_frame_number_drawn_ = -1; // Never drawn. 2878 last_source_frame_number_drawn_ = -1; // Never drawn.
2883 PostSetNeedsCommitToMainThread(); 2879 PostSetNeedsCommitToMainThread();
2884 } 2880 }
2885 2881
2886 scoped_ptr<FakeOutputSurface> CreateFakeOutputSurface( 2882 scoped_ptr<FakeOutputSurface> CreateFakeOutputSurface() override {
2887 bool fallback) override {
2888 scoped_ptr<TestWebGraphicsContext3D> context3d( 2883 scoped_ptr<TestWebGraphicsContext3D> context3d(
2889 TestWebGraphicsContext3D::Create()); 2884 TestWebGraphicsContext3D::Create());
2890 2885
2891 return FakeOutputSurface::CreateDeferredGL( 2886 return FakeOutputSurface::CreateDeferredGL(
2892 scoped_ptr<SoftwareOutputDevice>(new SoftwareOutputDevice), 2887 scoped_ptr<SoftwareOutputDevice>(new SoftwareOutputDevice),
2893 delegating_renderer()); 2888 delegating_renderer());
2894 } 2889 }
2895 2890
2896 void DrawLayersOnThread(LayerTreeHostImpl* host_impl) override { 2891 void DrawLayersOnThread(LayerTreeHostImpl* host_impl) override {
2897 ASSERT_TRUE(host_impl->RootLayer()); 2892 ASSERT_TRUE(host_impl->RootLayer());
(...skipping 1475 matching lines...) Expand 10 before | Expand all | Expand 10 after
4373 MULTI_THREAD_TEST_F(LayerTreeHostTestAbortEvictedTextures); 4368 MULTI_THREAD_TEST_F(LayerTreeHostTestAbortEvictedTextures);
4374 4369
4375 class LayerTreeHostTestMaxTransferBufferUsageBytes : public LayerTreeHostTest { 4370 class LayerTreeHostTestMaxTransferBufferUsageBytes : public LayerTreeHostTest {
4376 protected: 4371 protected:
4377 void InitializeSettings(LayerTreeSettings* settings) override { 4372 void InitializeSettings(LayerTreeSettings* settings) override {
4378 settings->impl_side_painting = true; 4373 settings->impl_side_painting = true;
4379 settings->use_zero_copy = false; 4374 settings->use_zero_copy = false;
4380 settings->use_one_copy = false; 4375 settings->use_one_copy = false;
4381 } 4376 }
4382 4377
4383 scoped_ptr<FakeOutputSurface> CreateFakeOutputSurface( 4378 scoped_ptr<FakeOutputSurface> CreateFakeOutputSurface() override {
4384 bool fallback) override {
4385 scoped_refptr<TestContextProvider> context_provider = 4379 scoped_refptr<TestContextProvider> context_provider =
4386 TestContextProvider::Create(); 4380 TestContextProvider::Create();
4387 context_provider->SetMaxTransferBufferUsageBytes(512 * 512); 4381 context_provider->SetMaxTransferBufferUsageBytes(512 * 512);
4388 if (delegating_renderer()) 4382 if (delegating_renderer())
4389 return FakeOutputSurface::CreateDelegating3d(context_provider); 4383 return FakeOutputSurface::CreateDelegating3d(context_provider);
4390 else 4384 else
4391 return FakeOutputSurface::Create3d(context_provider); 4385 return FakeOutputSurface::Create3d(context_provider);
4392 } 4386 }
4393 4387
4394 void SetupTree() override { 4388 void SetupTree() override {
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
4515 4509
4516 } // namespace 4510 } // namespace
4517 4511
4518 class LayerTreeHostTestSetMemoryPolicyOnLostOutputSurface 4512 class LayerTreeHostTestSetMemoryPolicyOnLostOutputSurface
4519 : public LayerTreeHostTest { 4513 : public LayerTreeHostTest {
4520 protected: 4514 protected:
4521 LayerTreeHostTestSetMemoryPolicyOnLostOutputSurface() 4515 LayerTreeHostTestSetMemoryPolicyOnLostOutputSurface()
4522 : first_output_surface_memory_limit_(4321234), 4516 : first_output_surface_memory_limit_(4321234),
4523 second_output_surface_memory_limit_(1234321) {} 4517 second_output_surface_memory_limit_(1234321) {}
4524 4518
4525 scoped_ptr<FakeOutputSurface> CreateFakeOutputSurface( 4519 scoped_ptr<FakeOutputSurface> CreateFakeOutputSurface() override {
4526 bool fallback) override {
4527 if (!first_context_provider_.get()) { 4520 if (!first_context_provider_.get()) {
4528 first_context_provider_ = TestContextProvider::Create(); 4521 first_context_provider_ = TestContextProvider::Create();
4529 } else { 4522 } else {
4530 EXPECT_FALSE(second_context_provider_.get()); 4523 EXPECT_FALSE(second_context_provider_.get());
4531 second_context_provider_ = TestContextProvider::Create(); 4524 second_context_provider_ = TestContextProvider::Create();
4532 } 4525 }
4533 4526
4534 scoped_refptr<TestContextProvider> provider(second_context_provider_.get() 4527 scoped_refptr<TestContextProvider> provider(second_context_provider_.get()
4535 ? second_context_provider_ 4528 ? second_context_provider_
4536 : first_context_provider_); 4529 : first_context_provider_);
(...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after
5101 void AfterTest() override {} 5094 void AfterTest() override {}
5102 5095
5103 FakeContentLayerClient layer_client_; 5096 FakeContentLayerClient layer_client_;
5104 }; 5097 };
5105 5098
5106 MULTI_THREAD_TEST_F(LayerTreeHostTestGpuRasterizationEnabled); 5099 MULTI_THREAD_TEST_F(LayerTreeHostTestGpuRasterizationEnabled);
5107 5100
5108 class LayerTreeHostTestGpuRasterizationForced : public LayerTreeHostTest { 5101 class LayerTreeHostTestGpuRasterizationForced : public LayerTreeHostTest {
5109 protected: 5102 protected:
5110 void InitializeSettings(LayerTreeSettings* settings) override { 5103 void InitializeSettings(LayerTreeSettings* settings) override {
5111 settings->impl_side_painting = true; 5104 ASSERT_TRUE(settings->impl_side_painting);
5112 5105
5113 EXPECT_FALSE(settings->gpu_rasterization_forced); 5106 EXPECT_FALSE(settings->gpu_rasterization_forced);
5114 settings->gpu_rasterization_forced = true; 5107 settings->gpu_rasterization_forced = true;
5115 } 5108 }
5116 5109
5117 void SetupTree() override { 5110 void SetupTree() override {
5118 LayerTreeHostTest::SetupTree(); 5111 LayerTreeHostTest::SetupTree();
5119 5112
5120 scoped_refptr<FakePictureLayer> layer = 5113 scoped_refptr<FakePictureLayer> layer =
5121 FakePictureLayer::Create(&layer_client_); 5114 FakePictureLayer::Create(&layer_client_);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
5162 EXPECT_TRUE(host_impl->active_tree()->use_gpu_rasterization()); 5155 EXPECT_TRUE(host_impl->active_tree()->use_gpu_rasterization());
5163 EXPECT_TRUE(host_impl->use_gpu_rasterization()); 5156 EXPECT_TRUE(host_impl->use_gpu_rasterization());
5164 EndTest(); 5157 EndTest();
5165 } 5158 }
5166 5159
5167 void AfterTest() override {} 5160 void AfterTest() override {}
5168 5161
5169 FakeContentLayerClient layer_client_; 5162 FakeContentLayerClient layer_client_;
5170 }; 5163 };
5171 5164
5172 MULTI_THREAD_TEST_F(LayerTreeHostTestGpuRasterizationForced); 5165 SINGLE_AND_MULTI_THREAD_IMPL_TEST_F(LayerTreeHostTestGpuRasterizationForced);
5173 5166
5174 class LayerTreeHostTestContinuousPainting : public LayerTreeHostTest { 5167 class LayerTreeHostTestContinuousPainting : public LayerTreeHostTest {
5175 public: 5168 public:
5176 LayerTreeHostTestContinuousPainting() 5169 LayerTreeHostTestContinuousPainting()
5177 : num_commits_(0), num_draws_(0), bounds_(20, 20), child_layer_(NULL) {} 5170 : num_commits_(0), num_draws_(0), bounds_(20, 20), child_layer_(NULL) {}
5178 5171
5179 protected: 5172 protected:
5180 enum { kExpectedNumCommits = 10 }; 5173 enum { kExpectedNumCommits = 10 };
5181 5174
5182 void SetupTree() override { 5175 void SetupTree() override {
(...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after
5707 5700
5708 MULTI_THREAD_IMPL_TEST_F(LayerTreeHostTestCrispUpAfterPinchEnds); 5701 MULTI_THREAD_IMPL_TEST_F(LayerTreeHostTestCrispUpAfterPinchEnds);
5709 5702
5710 class LayerTreeHostTestCrispUpAfterPinchEndsWithOneCopy 5703 class LayerTreeHostTestCrispUpAfterPinchEndsWithOneCopy
5711 : public LayerTreeHostTestCrispUpAfterPinchEnds { 5704 : public LayerTreeHostTestCrispUpAfterPinchEnds {
5712 protected: 5705 protected:
5713 void InitializeSettings(LayerTreeSettings* settings) override { 5706 void InitializeSettings(LayerTreeSettings* settings) override {
5714 settings->use_one_copy = true; 5707 settings->use_one_copy = true;
5715 } 5708 }
5716 5709
5717 scoped_ptr<FakeOutputSurface> CreateFakeOutputSurface( 5710 scoped_ptr<FakeOutputSurface> CreateFakeOutputSurface() override {
5718 bool fallback) override {
5719 scoped_ptr<TestWebGraphicsContext3D> context3d = 5711 scoped_ptr<TestWebGraphicsContext3D> context3d =
5720 TestWebGraphicsContext3D::Create(); 5712 TestWebGraphicsContext3D::Create();
5721 context3d->set_support_image(true); 5713 context3d->set_support_image(true);
5722 context3d->set_support_sync_query(true); 5714 context3d->set_support_sync_query(true);
5723 #if defined(OS_MACOSX) 5715 #if defined(OS_MACOSX)
5724 context3d->set_support_texture_rectangle(true); 5716 context3d->set_support_texture_rectangle(true);
5725 #endif 5717 #endif
5726 5718
5727 if (delegating_renderer()) 5719 if (delegating_renderer())
5728 return FakeOutputSurface::CreateDelegating3d(context3d.Pass()); 5720 return FakeOutputSurface::CreateDelegating3d(context3d.Pass());
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
5960 5952
5961 protected: 5953 protected:
5962 FakeContentLayerClient client_; 5954 FakeContentLayerClient client_;
5963 size_t notify_ready_to_activate_count_; 5955 size_t notify_ready_to_activate_count_;
5964 size_t scheduled_prepare_tiles_count_; 5956 size_t scheduled_prepare_tiles_count_;
5965 }; 5957 };
5966 5958
5967 MULTI_THREAD_IMPL_TEST_F(LayerTreeHostTestOneActivatePerPrepareTiles); 5959 MULTI_THREAD_IMPL_TEST_F(LayerTreeHostTestOneActivatePerPrepareTiles);
5968 5960
5969 } // namespace cc 5961 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_pixeltest_blending.cc ('k') | cc/trees/layer_tree_host_unittest_context.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698