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

Side by Side Diff: cc/tiles/tile_task_manager.cc

Issue 2106503002: Revert of cc: Add mailbox support to ResourceProvider write locks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@worker_context_sync_tokens_revert
Patch Set: Created 4 years, 5 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
« no previous file with comments | « cc/tiles/tile_task_manager.h ('k') | cc/trees/layer_tree_host_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/tiles/tile_task_manager.h" 5 #include "cc/tiles/tile_task_manager.h"
6 6
7 #include "base/memory/ptr_util.h" 7 #include "base/memory/ptr_util.h"
8 #include "base/trace_event/trace_event.h" 8 #include "base/trace_event/trace_event.h"
9 9
10 namespace cc { 10 namespace cc {
11 11
12 TileTaskManager::TileTaskManager() {} 12 TileTaskManager::TileTaskManager() {}
13 13
14 TileTaskManager::~TileTaskManager() {} 14 TileTaskManager::~TileTaskManager() {}
15 15
16 // static 16 // static
17 std::unique_ptr<TileTaskManagerImpl> TileTaskManagerImpl::Create( 17 std::unique_ptr<TileTaskManagerImpl> TileTaskManagerImpl::Create(
18 std::unique_ptr<RasterBufferProvider> raster_buffer_provider,
18 TaskGraphRunner* task_graph_runner) { 19 TaskGraphRunner* task_graph_runner) {
19 return base::WrapUnique<TileTaskManagerImpl>( 20 return base::WrapUnique<TileTaskManagerImpl>(new TileTaskManagerImpl(
20 new TileTaskManagerImpl(task_graph_runner)); 21 std::move(raster_buffer_provider), task_graph_runner));
21 } 22 }
22 23
23 TileTaskManagerImpl::TileTaskManagerImpl(TaskGraphRunner* task_graph_runner) 24 TileTaskManagerImpl::TileTaskManagerImpl(
24 : task_graph_runner_(task_graph_runner), 25 std::unique_ptr<RasterBufferProvider> raster_buffer_provider,
26 TaskGraphRunner* task_graph_runner)
27 : raster_buffer_provider_(std::move(raster_buffer_provider)),
28 task_graph_runner_(task_graph_runner),
25 namespace_token_(task_graph_runner->GetNamespaceToken()) {} 29 namespace_token_(task_graph_runner->GetNamespaceToken()) {}
26 30
27 TileTaskManagerImpl::~TileTaskManagerImpl() {} 31 TileTaskManagerImpl::~TileTaskManagerImpl() {}
28 32
29 void TileTaskManagerImpl::ScheduleTasks(TaskGraph* graph) { 33 void TileTaskManagerImpl::ScheduleTasks(TaskGraph* graph) {
30 TRACE_EVENT0("cc", "TileTaskManagerImpl::ScheduleTasks"); 34 TRACE_EVENT0("cc", "TileTaskManagerImpl::ScheduleTasks");
35
36 raster_buffer_provider_->OrderingBarrier();
31 task_graph_runner_->ScheduleTasks(namespace_token_, graph); 37 task_graph_runner_->ScheduleTasks(namespace_token_, graph);
32 } 38 }
33 39
34 void TileTaskManagerImpl::CheckForCompletedTasks() { 40 void TileTaskManagerImpl::CheckForCompletedTasks() {
35 TRACE_EVENT0("cc", "TileTaskManagerImpl::CheckForCompletedTasks"); 41 TRACE_EVENT0("cc", "TileTaskManagerImpl::CheckForCompletedTasks");
36 Task::Vector completed_tasks; 42 Task::Vector completed_tasks;
37 task_graph_runner_->CollectCompletedTasks(namespace_token_, &completed_tasks); 43 task_graph_runner_->CollectCompletedTasks(namespace_token_, &completed_tasks);
38 44
39 for (auto& task : completed_tasks) { 45 for (auto& task : completed_tasks) {
40 DCHECK(task->state().IsFinished() || task->state().IsCanceled()); 46 DCHECK(task->state().IsFinished() || task->state().IsCanceled());
41 TileTask* tile_task = static_cast<TileTask*>(task.get()); 47 TileTask* tile_task = static_cast<TileTask*>(task.get());
42 tile_task->OnTaskCompleted(); 48 tile_task->OnTaskCompleted();
43 tile_task->DidComplete(); 49 tile_task->DidComplete();
44 } 50 }
45 } 51 }
46 52
47 void TileTaskManagerImpl::Shutdown() { 53 void TileTaskManagerImpl::Shutdown() {
48 TRACE_EVENT0("cc", "TileTaskManagerImpl::Shutdown"); 54 TRACE_EVENT0("cc", "TileTaskManagerImpl::Shutdown");
49 55
50 // Cancel non-scheduled tasks and wait for running tasks to finish. 56 // Cancel non-scheduled tasks and wait for running tasks to finish.
51 TaskGraph empty; 57 TaskGraph empty;
52 task_graph_runner_->ScheduleTasks(namespace_token_, &empty); 58 task_graph_runner_->ScheduleTasks(namespace_token_, &empty);
53 task_graph_runner_->WaitForTasksToFinishRunning(namespace_token_); 59 task_graph_runner_->WaitForTasksToFinishRunning(namespace_token_);
60
61 raster_buffer_provider_->Shutdown();
62 }
63
64 RasterBufferProvider* TileTaskManagerImpl::GetRasterBufferProvider() const {
65 return raster_buffer_provider_.get();
54 } 66 }
55 67
56 } // namespace cc 68 } // namespace cc
OLDNEW
« no previous file with comments | « cc/tiles/tile_task_manager.h ('k') | cc/trees/layer_tree_host_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698