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

Side by Side Diff: cc/test/fake_tile_manager.cc

Issue 733773005: cc: GPU rasterize tiles synchronously in PrepareToDraw (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove redundant completed_tasks_.clear() Created 6 years, 1 month 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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/test/fake_tile_manager.h" 5 #include "cc/test/fake_tile_manager.h"
6 6
7 #include <deque> 7 #include <deque>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
11 #include "cc/resources/raster_buffer.h" 11 #include "cc/resources/raster_buffer.h"
12 #include "cc/resources/rasterizer.h" 12 #include "cc/resources/rasterizer.h"
13 13
14 namespace cc { 14 namespace cc {
15 15
16 namespace { 16 namespace {
17 17
18 class FakeRasterizerImpl : public Rasterizer, public RasterizerTaskClient { 18 class FakeRasterizerImpl : public Rasterizer, public RasterizerTaskClient {
19 public: 19 public:
20 // Overridden from Rasterizer: 20 // Overridden from Rasterizer:
21 void SetClient(RasterizerClient* client) override {} 21 void SetClient(RasterizerClient* client) override {}
22 void Shutdown() override {} 22 void Shutdown() override {}
23 void ScheduleTasks(RasterTaskQueue* queue) override { 23 void RunTasks(RasterTaskQueue* queue) override {
24 for (RasterTaskQueue::Item::Vector::const_iterator it = 24 for (auto& item : queue->items) {
25 queue->items.begin(); 25 RasterTask* task = item.task;
26 it != queue->items.end();
27 ++it) {
28 RasterTask* task = it->task;
29 26
30 task->WillSchedule(); 27 task->WillSchedule();
31 task->ScheduleOnOriginThread(this); 28 task->ScheduleOnOriginThread(this);
29 task->DidSchedule();
30
31 task->WillRun();
32 task->RunOnWorkerThread();
33 task->DidRun();
34
35 completed_tasks_.push_back(task);
36 }
37 }
38 void ScheduleTasks(RasterTaskQueue* queue) override {
39 for (auto& item : queue->items) {
40 RasterTask* task = item.task;
41
42 task->WillSchedule();
43 task->ScheduleOnOriginThread(this);
32 task->DidSchedule(); 44 task->DidSchedule();
33 45
34 completed_tasks_.push_back(task); 46 completed_tasks_.push_back(task);
35 } 47 }
36 } 48 }
37 void CheckForCompletedTasks() override { 49 void CheckForCompletedTasks() override {
38 for (RasterTask::Vector::iterator it = completed_tasks_.begin(); 50 for (auto& task : completed_tasks_) {
39 it != completed_tasks_.end();
40 ++it) {
41 RasterTask* task = it->get();
42
43 task->WillComplete(); 51 task->WillComplete();
44 task->CompleteOnOriginThread(this); 52 task->CompleteOnOriginThread(this);
45 task->DidComplete(); 53 task->DidComplete();
46 54
47 task->RunReplyOnOriginThread(); 55 task->RunReplyOnOriginThread();
48 } 56 }
49 completed_tasks_.clear(); 57 completed_tasks_.clear();
50 } 58 }
51 59
52 // Overridden from RasterizerTaskClient: 60 // Overridden from RasterizerTaskClient:
(...skipping 30 matching lines...) Expand all
83 std::numeric_limits<size_t>::max()) { 91 std::numeric_limits<size_t>::max()) {
84 } 92 }
85 93
86 FakeTileManager::~FakeTileManager() {} 94 FakeTileManager::~FakeTileManager() {}
87 95
88 void FakeTileManager::AssignMemoryToTiles( 96 void FakeTileManager::AssignMemoryToTiles(
89 const GlobalStateThatImpactsTilePriority& state) { 97 const GlobalStateThatImpactsTilePriority& state) {
90 tiles_for_raster.clear(); 98 tiles_for_raster.clear();
91 99
92 SetGlobalStateForTesting(state); 100 SetGlobalStateForTesting(state);
93 AssignGpuMemoryToTiles(&tiles_for_raster); 101 AssignGpuMemoryToTiles(&tiles_for_raster, std::numeric_limits<size_t>::max());
94 } 102 }
95 103
96 bool FakeTileManager::HasBeenAssignedMemory(Tile* tile) { 104 bool FakeTileManager::HasBeenAssignedMemory(Tile* tile) {
97 return std::find(tiles_for_raster.begin(), 105 return std::find(tiles_for_raster.begin(),
98 tiles_for_raster.end(), 106 tiles_for_raster.end(),
99 tile) != tiles_for_raster.end(); 107 tile) != tiles_for_raster.end();
100 } 108 }
101 109
102 void FakeTileManager::Release(Tile* tile) { 110 void FakeTileManager::Release(Tile* tile) {
103 TileManager::Release(tile); 111 TileManager::Release(tile);
104 112
105 FreeResourcesForReleasedTiles(); 113 FreeResourcesForReleasedTiles();
106 CleanUpReleasedTiles(); 114 CleanUpReleasedTiles();
107 } 115 }
108 116
109 } // namespace cc 117 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698