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

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

Issue 1890903002: cc: Simplify Task and its derived classes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remove_tile_task_runner
Patch Set: feedback 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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 const size_t kMaxBytesPerCopyOperation = 1000U; 44 const size_t kMaxBytesPerCopyOperation = 1000U;
45 const size_t kMaxStagingBuffers = 32U; 45 const size_t kMaxStagingBuffers = 32U;
46 46
47 enum TileTaskWorkerPoolType { 47 enum TileTaskWorkerPoolType {
48 TILE_TASK_WORKER_POOL_TYPE_ZERO_COPY, 48 TILE_TASK_WORKER_POOL_TYPE_ZERO_COPY,
49 TILE_TASK_WORKER_POOL_TYPE_ONE_COPY, 49 TILE_TASK_WORKER_POOL_TYPE_ONE_COPY,
50 TILE_TASK_WORKER_POOL_TYPE_GPU, 50 TILE_TASK_WORKER_POOL_TYPE_GPU,
51 TILE_TASK_WORKER_POOL_TYPE_BITMAP 51 TILE_TASK_WORKER_POOL_TYPE_BITMAP
52 }; 52 };
53 53
54 class TestRasterTaskImpl : public RasterTask { 54 class TestRasterTaskImpl : public TileTask {
55 public: 55 public:
56 typedef base::Callback<void(bool was_canceled)> Reply; 56 typedef base::Callback<void(bool was_canceled)> Reply;
57 57
58 TestRasterTaskImpl(const Resource* resource, 58 TestRasterTaskImpl(const Resource* resource,
59 const Reply& reply, 59 const Reply& reply,
60 ImageDecodeTask::Vector* dependencies) 60 TileTask::Vector* dependencies)
61 : RasterTask(dependencies), 61 : TileTask(true, dependencies),
62 resource_(resource), 62 resource_(resource),
63 reply_(reply), 63 reply_(reply),
64 raster_source_(FakeRasterSource::CreateFilled(gfx::Size(1, 1))) {} 64 raster_source_(FakeRasterSource::CreateFilled(gfx::Size(1, 1))) {}
65 65
66 // Overridden from Task: 66 // Overridden from Task:
67 void RunOnWorkerThread() override { 67 void RunOnWorkerThread() override {
68 uint64_t new_content_id = 0; 68 uint64_t new_content_id = 0;
69 raster_buffer_->Playback(raster_source_.get(), gfx::Rect(1, 1), 69 raster_buffer_->Playback(raster_source_.get(), gfx::Rect(1, 1),
70 gfx::Rect(1, 1), new_content_id, 1.f, 70 gfx::Rect(1, 1), new_content_id, 1.f,
71 RasterSource::PlaybackSettings()); 71 RasterSource::PlaybackSettings());
(...skipping 20 matching lines...) Expand all
92 scoped_refptr<RasterSource> raster_source_; 92 scoped_refptr<RasterSource> raster_source_;
93 93
94 DISALLOW_COPY_AND_ASSIGN(TestRasterTaskImpl); 94 DISALLOW_COPY_AND_ASSIGN(TestRasterTaskImpl);
95 }; 95 };
96 96
97 class BlockingTestRasterTaskImpl : public TestRasterTaskImpl { 97 class BlockingTestRasterTaskImpl : public TestRasterTaskImpl {
98 public: 98 public:
99 BlockingTestRasterTaskImpl(const Resource* resource, 99 BlockingTestRasterTaskImpl(const Resource* resource,
100 const Reply& reply, 100 const Reply& reply,
101 base::Lock* lock, 101 base::Lock* lock,
102 ImageDecodeTask::Vector* dependencies) 102 TileTask::Vector* dependencies)
103 : TestRasterTaskImpl(resource, reply, dependencies), lock_(lock) {} 103 : TestRasterTaskImpl(resource, reply, dependencies), lock_(lock) {}
104 104
105 // Overridden from Task: 105 // Overridden from Task:
106 void RunOnWorkerThread() override { 106 void RunOnWorkerThread() override {
107 base::AutoLock lock(*lock_); 107 base::AutoLock lock(*lock_);
108 TestRasterTaskImpl::RunOnWorkerThread(); 108 TestRasterTaskImpl::RunOnWorkerThread();
109 } 109 }
110 110
111 protected: 111 protected:
112 ~BlockingTestRasterTaskImpl() override {} 112 ~BlockingTestRasterTaskImpl() override {}
113 113
114 private: 114 private:
115 base::Lock* lock_; 115 base::Lock* lock_;
116 116
117 DISALLOW_COPY_AND_ASSIGN(BlockingTestRasterTaskImpl); 117 DISALLOW_COPY_AND_ASSIGN(BlockingTestRasterTaskImpl);
118 }; 118 };
119 119
120 class TileTaskWorkerPoolTest 120 class TileTaskWorkerPoolTest
121 : public testing::TestWithParam<TileTaskWorkerPoolType> { 121 : public testing::TestWithParam<TileTaskWorkerPoolType> {
122 public: 122 public:
123 struct RasterTaskResult { 123 struct RasterTaskResult {
124 unsigned id; 124 unsigned id;
125 bool canceled; 125 bool canceled;
126 }; 126 };
127 127
128 typedef std::vector<scoped_refptr<RasterTask>> RasterTaskVector; 128 typedef std::vector<scoped_refptr<TileTask>> RasterTaskVector;
129 129
130 enum NamedTaskSet { REQUIRED_FOR_ACTIVATION, REQUIRED_FOR_DRAW, ALL }; 130 enum NamedTaskSet { REQUIRED_FOR_ACTIVATION, REQUIRED_FOR_DRAW, ALL };
131 131
132 TileTaskWorkerPoolTest() 132 TileTaskWorkerPoolTest()
133 : context_provider_(TestContextProvider::Create()), 133 : context_provider_(TestContextProvider::Create()),
134 worker_context_provider_(TestContextProvider::CreateWorker()), 134 worker_context_provider_(TestContextProvider::CreateWorker()),
135 all_tile_tasks_finished_( 135 all_tile_tasks_finished_(
136 base::ThreadTaskRunnerHandle::Get() 136 base::ThreadTaskRunnerHandle::Get()
137 .get(), 137 .get(),
138 base::Bind(&TileTaskWorkerPoolTest::AllTileTasksFinished, 138 base::Bind(&TileTaskWorkerPoolTest::AllTileTasksFinished,
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 tile_task_worker_pool_->AsTileTaskRunner()->ScheduleTasks(&graph_); 203 tile_task_worker_pool_->AsTileTaskRunner()->ScheduleTasks(&graph_);
204 } 204 }
205 205
206 void AppendTask(unsigned id, const gfx::Size& size) { 206 void AppendTask(unsigned id, const gfx::Size& size) {
207 std::unique_ptr<ScopedResource> resource( 207 std::unique_ptr<ScopedResource> resource(
208 ScopedResource::Create(resource_provider_.get())); 208 ScopedResource::Create(resource_provider_.get()));
209 resource->Allocate(size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, 209 resource->Allocate(size, ResourceProvider::TEXTURE_HINT_IMMUTABLE,
210 RGBA_8888); 210 RGBA_8888);
211 const Resource* const_resource = resource.get(); 211 const Resource* const_resource = resource.get();
212 212
213 ImageDecodeTask::Vector empty; 213 TileTask::Vector empty;
214 tasks_.push_back(new TestRasterTaskImpl( 214 tasks_.push_back(new TestRasterTaskImpl(
215 const_resource, 215 const_resource,
216 base::Bind(&TileTaskWorkerPoolTest::OnTaskCompleted, 216 base::Bind(&TileTaskWorkerPoolTest::OnTaskCompleted,
217 base::Unretained(this), base::Passed(&resource), id), 217 base::Unretained(this), base::Passed(&resource), id),
218 &empty)); 218 &empty));
219 } 219 }
220 220
221 void AppendTask(unsigned id) { AppendTask(id, gfx::Size(1, 1)); } 221 void AppendTask(unsigned id) { AppendTask(id, gfx::Size(1, 1)); }
222 222
223 void AppendBlockingTask(unsigned id, base::Lock* lock) { 223 void AppendBlockingTask(unsigned id, base::Lock* lock) {
224 const gfx::Size size(1, 1); 224 const gfx::Size size(1, 1);
225 225
226 std::unique_ptr<ScopedResource> resource( 226 std::unique_ptr<ScopedResource> resource(
227 ScopedResource::Create(resource_provider_.get())); 227 ScopedResource::Create(resource_provider_.get()));
228 resource->Allocate(size, ResourceProvider::TEXTURE_HINT_IMMUTABLE, 228 resource->Allocate(size, ResourceProvider::TEXTURE_HINT_IMMUTABLE,
229 RGBA_8888); 229 RGBA_8888);
230 const Resource* const_resource = resource.get(); 230 const Resource* const_resource = resource.get();
231 231
232 ImageDecodeTask::Vector empty; 232 TileTask::Vector empty;
233 tasks_.push_back(new BlockingTestRasterTaskImpl( 233 tasks_.push_back(new BlockingTestRasterTaskImpl(
234 const_resource, 234 const_resource,
235 base::Bind(&TileTaskWorkerPoolTest::OnTaskCompleted, 235 base::Bind(&TileTaskWorkerPoolTest::OnTaskCompleted,
236 base::Unretained(this), base::Passed(&resource), id), 236 base::Unretained(this), base::Passed(&resource), id),
237 lock, &empty)); 237 lock, &empty));
238 } 238 }
239 239
240 const std::vector<RasterTaskResult>& completed_tasks() const { 240 const std::vector<RasterTaskResult>& completed_tasks() const {
241 return completed_tasks_; 241 return completed_tasks_;
242 } 242 }
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 369
370 INSTANTIATE_TEST_CASE_P(TileTaskWorkerPoolTests, 370 INSTANTIATE_TEST_CASE_P(TileTaskWorkerPoolTests,
371 TileTaskWorkerPoolTest, 371 TileTaskWorkerPoolTest,
372 ::testing::Values(TILE_TASK_WORKER_POOL_TYPE_ZERO_COPY, 372 ::testing::Values(TILE_TASK_WORKER_POOL_TYPE_ZERO_COPY,
373 TILE_TASK_WORKER_POOL_TYPE_ONE_COPY, 373 TILE_TASK_WORKER_POOL_TYPE_ONE_COPY,
374 TILE_TASK_WORKER_POOL_TYPE_GPU, 374 TILE_TASK_WORKER_POOL_TYPE_GPU,
375 TILE_TASK_WORKER_POOL_TYPE_BITMAP)); 375 TILE_TASK_WORKER_POOL_TYPE_BITMAP));
376 376
377 } // namespace 377 } // namespace
378 } // namespace cc 378 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698