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

Side by Side Diff: cc/resources/tile_task_worker_pool_unittest.cc

Issue 999173004: cc: Move worker threads to content. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comment and webview fix Created 5 years, 9 months 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/resources/tile_task_worker_pool.h" 5 #include "cc/resources/tile_task_worker_pool.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/cancelable_callback.h" 10 #include "base/cancelable_callback.h"
11 #include "cc/base/unique_notifier.h" 11 #include "cc/base/unique_notifier.h"
12 #include "cc/resources/bitmap_tile_task_worker_pool.h" 12 #include "cc/resources/bitmap_tile_task_worker_pool.h"
13 #include "cc/resources/gpu_rasterizer.h" 13 #include "cc/resources/gpu_rasterizer.h"
14 #include "cc/resources/gpu_tile_task_worker_pool.h" 14 #include "cc/resources/gpu_tile_task_worker_pool.h"
15 #include "cc/resources/one_copy_tile_task_worker_pool.h" 15 #include "cc/resources/one_copy_tile_task_worker_pool.h"
16 #include "cc/resources/picture_pile.h" 16 #include "cc/resources/picture_pile.h"
17 #include "cc/resources/picture_pile_impl.h" 17 #include "cc/resources/picture_pile_impl.h"
18 #include "cc/resources/pixel_buffer_tile_task_worker_pool.h" 18 #include "cc/resources/pixel_buffer_tile_task_worker_pool.h"
19 #include "cc/resources/raster_buffer.h" 19 #include "cc/resources/raster_buffer.h"
20 #include "cc/resources/resource_pool.h" 20 #include "cc/resources/resource_pool.h"
21 #include "cc/resources/resource_provider.h" 21 #include "cc/resources/resource_provider.h"
22 #include "cc/resources/scoped_resource.h" 22 #include "cc/resources/scoped_resource.h"
23 #include "cc/resources/tile_task_runner.h" 23 #include "cc/resources/tile_task_runner.h"
24 #include "cc/resources/zero_copy_tile_task_worker_pool.h" 24 #include "cc/resources/zero_copy_tile_task_worker_pool.h"
25 #include "cc/test/fake_output_surface.h" 25 #include "cc/test/fake_output_surface.h"
26 #include "cc/test/fake_output_surface_client.h" 26 #include "cc/test/fake_output_surface_client.h"
27 #include "cc/test/fake_picture_pile_impl.h" 27 #include "cc/test/fake_picture_pile_impl.h"
28 #include "cc/test/test_gpu_memory_buffer_manager.h" 28 #include "cc/test/test_gpu_memory_buffer_manager.h"
29 #include "cc/test/test_shared_bitmap_manager.h" 29 #include "cc/test/test_shared_bitmap_manager.h"
30 #include "cc/test/test_task_graph_runner.h"
30 #include "cc/test/test_web_graphics_context_3d.h" 31 #include "cc/test/test_web_graphics_context_3d.h"
31 #include "gpu/GLES2/gl2extchromium.h" 32 #include "gpu/GLES2/gl2extchromium.h"
32 #include "testing/gtest/include/gtest/gtest.h" 33 #include "testing/gtest/include/gtest/gtest.h"
33 34
34 namespace cc { 35 namespace cc {
35 namespace { 36 namespace {
36 37
37 const size_t kMaxTransferBufferUsageBytes = 10000U; 38 const size_t kMaxTransferBufferUsageBytes = 10000U;
38 // A resource of this dimension^2 * 4 must be greater than the above transfer 39 // A resource of this dimension^2 * 4 must be greater than the above transfer
39 // buffer constant. 40 // buffer constant.
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 base::Unretained(this))), 136 base::Unretained(this))),
136 timeout_seconds_(5), 137 timeout_seconds_(5),
137 timed_out_(false) {} 138 timed_out_(false) {}
138 139
139 // Overridden from testing::Test: 140 // Overridden from testing::Test:
140 void SetUp() override { 141 void SetUp() override {
141 switch (GetParam()) { 142 switch (GetParam()) {
142 case TILE_TASK_WORKER_POOL_TYPE_PIXEL_BUFFER: 143 case TILE_TASK_WORKER_POOL_TYPE_PIXEL_BUFFER:
143 Create3dOutputSurfaceAndResourceProvider(); 144 Create3dOutputSurfaceAndResourceProvider();
144 tile_task_worker_pool_ = PixelBufferTileTaskWorkerPool::Create( 145 tile_task_worker_pool_ = PixelBufferTileTaskWorkerPool::Create(
145 base::MessageLoopProxy::current().get(), 146 base::MessageLoopProxy::current().get(), &task_graph_runner_,
146 TileTaskWorkerPool::GetTaskGraphRunner(), context_provider_.get(), 147 context_provider_.get(), resource_provider_.get(),
147 resource_provider_.get(), kMaxTransferBufferUsageBytes); 148 kMaxTransferBufferUsageBytes);
148 break; 149 break;
149 case TILE_TASK_WORKER_POOL_TYPE_ZERO_COPY: 150 case TILE_TASK_WORKER_POOL_TYPE_ZERO_COPY:
150 Create3dOutputSurfaceAndResourceProvider(); 151 Create3dOutputSurfaceAndResourceProvider();
151 tile_task_worker_pool_ = ZeroCopyTileTaskWorkerPool::Create( 152 tile_task_worker_pool_ = ZeroCopyTileTaskWorkerPool::Create(
152 base::MessageLoopProxy::current().get(), 153 base::MessageLoopProxy::current().get(), &task_graph_runner_,
153 TileTaskWorkerPool::GetTaskGraphRunner(), resource_provider_.get()); 154 resource_provider_.get());
154 break; 155 break;
155 case TILE_TASK_WORKER_POOL_TYPE_ONE_COPY: 156 case TILE_TASK_WORKER_POOL_TYPE_ONE_COPY:
156 Create3dOutputSurfaceAndResourceProvider(); 157 Create3dOutputSurfaceAndResourceProvider();
157 staging_resource_pool_ = ResourcePool::Create(resource_provider_.get(), 158 staging_resource_pool_ = ResourcePool::Create(resource_provider_.get(),
158 GL_TEXTURE_2D); 159 GL_TEXTURE_2D);
159 tile_task_worker_pool_ = OneCopyTileTaskWorkerPool::Create( 160 tile_task_worker_pool_ = OneCopyTileTaskWorkerPool::Create(
160 base::MessageLoopProxy::current().get(), 161 base::MessageLoopProxy::current().get(), &task_graph_runner_,
161 TileTaskWorkerPool::GetTaskGraphRunner(), context_provider_.get(), 162 context_provider_.get(), resource_provider_.get(),
162 resource_provider_.get(), staging_resource_pool_.get()); 163 staging_resource_pool_.get());
163 break; 164 break;
164 case TILE_TASK_WORKER_POOL_TYPE_GPU: 165 case TILE_TASK_WORKER_POOL_TYPE_GPU:
165 Create3dOutputSurfaceAndResourceProvider(); 166 Create3dOutputSurfaceAndResourceProvider();
166 rasterizer_ = GpuRasterizer::Create( 167 rasterizer_ = GpuRasterizer::Create(
167 context_provider_.get(), resource_provider_.get(), false, false, 0); 168 context_provider_.get(), resource_provider_.get(), false, false, 0);
168 tile_task_worker_pool_ = GpuTileTaskWorkerPool::Create( 169 tile_task_worker_pool_ = GpuTileTaskWorkerPool::Create(
169 base::MessageLoopProxy::current().get(), 170 base::MessageLoopProxy::current().get(), &task_graph_runner_,
170 TileTaskWorkerPool::GetTaskGraphRunner(),
171 static_cast<GpuRasterizer*>(rasterizer_.get())); 171 static_cast<GpuRasterizer*>(rasterizer_.get()));
172 break; 172 break;
173 case TILE_TASK_WORKER_POOL_TYPE_BITMAP: 173 case TILE_TASK_WORKER_POOL_TYPE_BITMAP:
174 CreateSoftwareOutputSurfaceAndResourceProvider(); 174 CreateSoftwareOutputSurfaceAndResourceProvider();
175 tile_task_worker_pool_ = BitmapTileTaskWorkerPool::Create( 175 tile_task_worker_pool_ = BitmapTileTaskWorkerPool::Create(
176 base::MessageLoopProxy::current().get(), 176 base::MessageLoopProxy::current().get(), &task_graph_runner_,
177 TileTaskWorkerPool::GetTaskGraphRunner(), resource_provider_.get()); 177 resource_provider_.get());
178 break; 178 break;
179 } 179 }
180 180
181 DCHECK(tile_task_worker_pool_); 181 DCHECK(tile_task_worker_pool_);
182 tile_task_worker_pool_->AsTileTaskRunner()->SetClient(this); 182 tile_task_worker_pool_->AsTileTaskRunner()->SetClient(this);
183 } 183 }
184 184
185 void TearDown() override { 185 void TearDown() override {
186 tile_task_worker_pool_->AsTileTaskRunner()->Shutdown(); 186 tile_task_worker_pool_->AsTileTaskRunner()->Shutdown();
187 tile_task_worker_pool_->AsTileTaskRunner()->CheckForCompletedTasks(); 187 tile_task_worker_pool_->AsTileTaskRunner()->CheckForCompletedTasks();
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 scoped_refptr<TestContextProvider> context_provider_; 324 scoped_refptr<TestContextProvider> context_provider_;
325 scoped_refptr<TestContextProvider> worker_context_provider_; 325 scoped_refptr<TestContextProvider> worker_context_provider_;
326 scoped_ptr<Rasterizer> rasterizer_; 326 scoped_ptr<Rasterizer> rasterizer_;
327 FakeOutputSurfaceClient output_surface_client_; 327 FakeOutputSurfaceClient output_surface_client_;
328 scoped_ptr<FakeOutputSurface> output_surface_; 328 scoped_ptr<FakeOutputSurface> output_surface_;
329 scoped_ptr<ResourceProvider> resource_provider_; 329 scoped_ptr<ResourceProvider> resource_provider_;
330 scoped_ptr<ResourcePool> staging_resource_pool_; 330 scoped_ptr<ResourcePool> staging_resource_pool_;
331 scoped_ptr<TileTaskWorkerPool> tile_task_worker_pool_; 331 scoped_ptr<TileTaskWorkerPool> tile_task_worker_pool_;
332 TestGpuMemoryBufferManager gpu_memory_buffer_manager_; 332 TestGpuMemoryBufferManager gpu_memory_buffer_manager_;
333 TestSharedBitmapManager shared_bitmap_manager_; 333 TestSharedBitmapManager shared_bitmap_manager_;
334 TestTaskGraphRunner task_graph_runner_;
334 base::CancelableClosure timeout_; 335 base::CancelableClosure timeout_;
335 UniqueNotifier all_tile_tasks_finished_; 336 UniqueNotifier all_tile_tasks_finished_;
336 int timeout_seconds_; 337 int timeout_seconds_;
337 bool timed_out_; 338 bool timed_out_;
338 RasterTaskVector tasks_; 339 RasterTaskVector tasks_;
339 std::vector<RasterTaskResult> completed_tasks_; 340 std::vector<RasterTaskResult> completed_tasks_;
340 TaskSetCollection completed_task_sets_; 341 TaskSetCollection completed_task_sets_;
341 }; 342 };
342 343
343 TEST_P(TileTaskWorkerPoolTest, Basic) { 344 TEST_P(TileTaskWorkerPoolTest, Basic) {
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 TileTaskWorkerPoolTests, 433 TileTaskWorkerPoolTests,
433 TileTaskWorkerPoolTest, 434 TileTaskWorkerPoolTest,
434 ::testing::Values(TILE_TASK_WORKER_POOL_TYPE_PIXEL_BUFFER, 435 ::testing::Values(TILE_TASK_WORKER_POOL_TYPE_PIXEL_BUFFER,
435 TILE_TASK_WORKER_POOL_TYPE_ZERO_COPY, 436 TILE_TASK_WORKER_POOL_TYPE_ZERO_COPY,
436 TILE_TASK_WORKER_POOL_TYPE_ONE_COPY, 437 TILE_TASK_WORKER_POOL_TYPE_ONE_COPY,
437 TILE_TASK_WORKER_POOL_TYPE_GPU, 438 TILE_TASK_WORKER_POOL_TYPE_GPU,
438 TILE_TASK_WORKER_POOL_TYPE_BITMAP)); 439 TILE_TASK_WORKER_POOL_TYPE_BITMAP));
439 440
440 } // namespace 441 } // namespace
441 } // namespace cc 442 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698