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

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

Issue 1910213005: cc: Refactor TileTaskWorkerPool. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@task_states
Patch Set: nits Created 4 years, 8 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/raster/tile_task_worker_pool.h" 5 #include "cc/raster/tile_task_worker_pool.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 16 matching lines...) Expand all
27 #include "cc/resources/resource_pool.h" 27 #include "cc/resources/resource_pool.h"
28 #include "cc/resources/resource_provider.h" 28 #include "cc/resources/resource_provider.h"
29 #include "cc/resources/scoped_resource.h" 29 #include "cc/resources/scoped_resource.h"
30 #include "cc/test/fake_output_surface.h" 30 #include "cc/test/fake_output_surface.h"
31 #include "cc/test/fake_output_surface_client.h" 31 #include "cc/test/fake_output_surface_client.h"
32 #include "cc/test/fake_raster_source.h" 32 #include "cc/test/fake_raster_source.h"
33 #include "cc/test/fake_resource_provider.h" 33 #include "cc/test/fake_resource_provider.h"
34 #include "cc/test/test_gpu_memory_buffer_manager.h" 34 #include "cc/test/test_gpu_memory_buffer_manager.h"
35 #include "cc/test/test_shared_bitmap_manager.h" 35 #include "cc/test/test_shared_bitmap_manager.h"
36 #include "cc/test/test_web_graphics_context_3d.h" 36 #include "cc/test/test_web_graphics_context_3d.h"
37 #include "cc/tiles/tile_task_manager.h"
37 #include "gpu/GLES2/gl2extchromium.h" 38 #include "gpu/GLES2/gl2extchromium.h"
38 #include "testing/gtest/include/gtest/gtest.h" 39 #include "testing/gtest/include/gtest/gtest.h"
39 40
40 namespace cc { 41 namespace cc {
41 namespace { 42 namespace {
42 43
43 const size_t kMaxBytesPerCopyOperation = 1000U; 44 const size_t kMaxBytesPerCopyOperation = 1000U;
44 const size_t kMaxStagingBuffers = 32U; 45 const size_t kMaxStagingBuffers = 32U;
45 46
46 enum TileTaskWorkerPoolType { 47 enum TileTaskWorkerPoolType {
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 all_tile_tasks_finished_( 135 all_tile_tasks_finished_(
135 base::ThreadTaskRunnerHandle::Get() 136 base::ThreadTaskRunnerHandle::Get()
136 .get(), 137 .get(),
137 base::Bind(&TileTaskWorkerPoolTest::AllTileTasksFinished, 138 base::Bind(&TileTaskWorkerPoolTest::AllTileTasksFinished,
138 base::Unretained(this))), 139 base::Unretained(this))),
139 timeout_seconds_(5), 140 timeout_seconds_(5),
140 timed_out_(false) {} 141 timed_out_(false) {}
141 142
142 // Overridden from testing::Test: 143 // Overridden from testing::Test:
143 void SetUp() override { 144 void SetUp() override {
145 std::unique_ptr<TileTaskWorkerPool> tile_task_worker_pool;
144 switch (GetParam()) { 146 switch (GetParam()) {
145 case TILE_TASK_WORKER_POOL_TYPE_ZERO_COPY: 147 case TILE_TASK_WORKER_POOL_TYPE_ZERO_COPY:
146 Create3dOutputSurfaceAndResourceProvider(); 148 Create3dOutputSurfaceAndResourceProvider();
147 tile_task_worker_pool_ = ZeroCopyTileTaskWorkerPool::Create( 149 tile_task_worker_pool = ZeroCopyTileTaskWorkerPool::Create(
148 base::ThreadTaskRunnerHandle::Get().get(), &task_graph_runner_,
149 resource_provider_.get(), PlatformColor::BestTextureFormat()); 150 resource_provider_.get(), PlatformColor::BestTextureFormat());
150 break; 151 break;
151 case TILE_TASK_WORKER_POOL_TYPE_ONE_COPY: 152 case TILE_TASK_WORKER_POOL_TYPE_ONE_COPY:
152 Create3dOutputSurfaceAndResourceProvider(); 153 Create3dOutputSurfaceAndResourceProvider();
153 tile_task_worker_pool_ = OneCopyTileTaskWorkerPool::Create( 154 tile_task_worker_pool = OneCopyTileTaskWorkerPool::Create(
154 base::ThreadTaskRunnerHandle::Get().get(), &task_graph_runner_, 155 base::ThreadTaskRunnerHandle::Get().get(), context_provider_.get(),
155 context_provider_.get(), resource_provider_.get(), 156 resource_provider_.get(), kMaxBytesPerCopyOperation, false,
156 kMaxBytesPerCopyOperation, false, kMaxStagingBuffers, 157 kMaxStagingBuffers, PlatformColor::BestTextureFormat());
157 PlatformColor::BestTextureFormat());
158 break; 158 break;
159 case TILE_TASK_WORKER_POOL_TYPE_GPU: 159 case TILE_TASK_WORKER_POOL_TYPE_GPU:
160 Create3dOutputSurfaceAndResourceProvider(); 160 Create3dOutputSurfaceAndResourceProvider();
161 tile_task_worker_pool_ = GpuTileTaskWorkerPool::Create( 161 tile_task_worker_pool = GpuTileTaskWorkerPool::Create(
162 base::ThreadTaskRunnerHandle::Get().get(), &task_graph_runner_,
163 context_provider_.get(), resource_provider_.get(), false, 0); 162 context_provider_.get(), resource_provider_.get(), false, 0);
164 break; 163 break;
165 case TILE_TASK_WORKER_POOL_TYPE_BITMAP: 164 case TILE_TASK_WORKER_POOL_TYPE_BITMAP:
166 CreateSoftwareOutputSurfaceAndResourceProvider(); 165 CreateSoftwareOutputSurfaceAndResourceProvider();
167 tile_task_worker_pool_ = BitmapTileTaskWorkerPool::Create( 166 tile_task_worker_pool =
168 base::ThreadTaskRunnerHandle::Get().get(), &task_graph_runner_, 167 BitmapTileTaskWorkerPool::Create(resource_provider_.get());
169 resource_provider_.get());
170 break; 168 break;
171 } 169 }
172 170
173 DCHECK(tile_task_worker_pool_); 171 DCHECK(tile_task_worker_pool);
172
173 tile_task_manager_ = TileTaskManager::Create(
174 std::move(tile_task_worker_pool), &task_graph_runner_);
174 } 175 }
175 176
176 void TearDown() override { 177 void TearDown() override {
177 tile_task_worker_pool_->Shutdown(); 178 tile_task_manager_->Shutdown();
178 tile_task_worker_pool_->CheckForCompletedTasks(); 179 tile_task_manager_->CheckForCompletedTasks();
179 } 180 }
180 181
181 void AllTileTasksFinished() { 182 void AllTileTasksFinished() {
182 tile_task_worker_pool_->CheckForCompletedTasks(); 183 tile_task_manager_->CheckForCompletedTasks();
183 base::MessageLoop::current()->QuitWhenIdle(); 184 base::MessageLoop::current()->QuitWhenIdle();
184 } 185 }
185 186
186 void RunMessageLoopUntilAllTasksHaveCompleted() { 187 void RunMessageLoopUntilAllTasksHaveCompleted() {
187 task_graph_runner_.RunUntilIdle(); 188 task_graph_runner_.RunUntilIdle();
188 tile_task_worker_pool_->CheckForCompletedTasks(); 189 tile_task_manager_->CheckForCompletedTasks();
189 } 190 }
190 191
191 void ScheduleTasks() { 192 void ScheduleTasks() {
192 graph_.Reset(); 193 graph_.Reset();
193 194
194 size_t priority = 0; 195 size_t priority = 0;
195 196
196 for (RasterTaskVector::const_iterator it = tasks_.begin(); 197 for (RasterTaskVector::const_iterator it = tasks_.begin();
197 it != tasks_.end(); ++it) { 198 it != tasks_.end(); ++it) {
198 graph_.nodes.emplace_back(it->get(), 0 /* group */, priority++, 199 graph_.nodes.emplace_back(it->get(), 0 /* group */, priority++,
199 0 /* dependencies */); 200 0 /* dependencies */);
200 } 201 }
201 202
202 tile_task_worker_pool_->ScheduleTasks(&graph_); 203 tile_task_manager_->ScheduleTasks(&graph_);
203 } 204 }
204 205
205 void AppendTask(unsigned id, const gfx::Size& size) { 206 void AppendTask(unsigned id, const gfx::Size& size) {
206 std::unique_ptr<ScopedResource> resource( 207 std::unique_ptr<ScopedResource> resource(
207 ScopedResource::Create(resource_provider_.get())); 208 ScopedResource::Create(resource_provider_.get()));
208 resource->Allocate(size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, 209 resource->Allocate(size, ResourceProvider::TEXTURE_HINT_IMMUTABLE,
209 RGBA_8888); 210 RGBA_8888);
210 const Resource* const_resource = resource.get(); 211 const Resource* const_resource = resource.get();
211 212
212 TileTask::Vector empty; 213 TileTask::Vector empty;
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 timed_out_ = true; 281 timed_out_ = true;
281 base::MessageLoop::current()->QuitWhenIdle(); 282 base::MessageLoop::current()->QuitWhenIdle();
282 } 283 }
283 284
284 protected: 285 protected:
285 scoped_refptr<TestContextProvider> context_provider_; 286 scoped_refptr<TestContextProvider> context_provider_;
286 scoped_refptr<TestContextProvider> worker_context_provider_; 287 scoped_refptr<TestContextProvider> worker_context_provider_;
287 FakeOutputSurfaceClient output_surface_client_; 288 FakeOutputSurfaceClient output_surface_client_;
288 std::unique_ptr<FakeOutputSurface> output_surface_; 289 std::unique_ptr<FakeOutputSurface> output_surface_;
289 std::unique_ptr<ResourceProvider> resource_provider_; 290 std::unique_ptr<ResourceProvider> resource_provider_;
290 std::unique_ptr<TileTaskWorkerPool> tile_task_worker_pool_; 291 std::unique_ptr<TileTaskManager> tile_task_manager_;
291 TestGpuMemoryBufferManager gpu_memory_buffer_manager_; 292 TestGpuMemoryBufferManager gpu_memory_buffer_manager_;
292 TestSharedBitmapManager shared_bitmap_manager_; 293 TestSharedBitmapManager shared_bitmap_manager_;
293 SynchronousTaskGraphRunner task_graph_runner_; 294 SynchronousTaskGraphRunner task_graph_runner_;
294 base::CancelableClosure timeout_; 295 base::CancelableClosure timeout_;
295 UniqueNotifier all_tile_tasks_finished_; 296 UniqueNotifier all_tile_tasks_finished_;
296 int timeout_seconds_; 297 int timeout_seconds_;
297 bool timed_out_; 298 bool timed_out_;
298 RasterTaskVector tasks_; 299 RasterTaskVector tasks_;
299 std::vector<RasterTaskResult> completed_tasks_; 300 std::vector<RasterTaskResult> completed_tasks_;
300 TaskGraph graph_; 301 TaskGraph graph_;
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 369
369 INSTANTIATE_TEST_CASE_P(TileTaskWorkerPoolTests, 370 INSTANTIATE_TEST_CASE_P(TileTaskWorkerPoolTests,
370 TileTaskWorkerPoolTest, 371 TileTaskWorkerPoolTest,
371 ::testing::Values(TILE_TASK_WORKER_POOL_TYPE_ZERO_COPY, 372 ::testing::Values(TILE_TASK_WORKER_POOL_TYPE_ZERO_COPY,
372 TILE_TASK_WORKER_POOL_TYPE_ONE_COPY, 373 TILE_TASK_WORKER_POOL_TYPE_ONE_COPY,
373 TILE_TASK_WORKER_POOL_TYPE_GPU, 374 TILE_TASK_WORKER_POOL_TYPE_GPU,
374 TILE_TASK_WORKER_POOL_TYPE_BITMAP)); 375 TILE_TASK_WORKER_POOL_TYPE_BITMAP));
375 376
376 } // namespace 377 } // namespace
377 } // namespace cc 378 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698