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

Unified Diff: cc/resources/pixel_buffer_raster_worker_pool.cc

Issue 165603002: cc: Move GPU raster to DirectRasterWorkerPool. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: cc/resources/pixel_buffer_raster_worker_pool.cc
diff --git a/cc/resources/pixel_buffer_raster_worker_pool.cc b/cc/resources/pixel_buffer_raster_worker_pool.cc
index ac5ea85b68a09ad8003f3e5a52a3c8af7a290e33..75f1f58c29a438f2e24c24cee4868baa5f29b2a7 100644
--- a/cc/resources/pixel_buffer_raster_worker_pool.cc
+++ b/cc/resources/pixel_buffer_raster_worker_pool.cc
@@ -30,21 +30,18 @@ bool WasCanceled(const internal::RasterWorkerPoolTask* task) {
// static
scoped_ptr<RasterWorkerPool> PixelBufferRasterWorkerPool::Create(
ResourceProvider* resource_provider,
- ContextProvider* context_provider,
size_t max_transfer_buffer_usage_bytes) {
return make_scoped_ptr<RasterWorkerPool>(
new PixelBufferRasterWorkerPool(GetTaskGraphRunner(),
resource_provider,
- context_provider,
max_transfer_buffer_usage_bytes));
}
PixelBufferRasterWorkerPool::PixelBufferRasterWorkerPool(
internal::TaskGraphRunner* task_graph_runner,
ResourceProvider* resource_provider,
- ContextProvider* context_provider,
size_t max_transfer_buffer_usage_bytes)
- : RasterWorkerPool(task_graph_runner, resource_provider, context_provider),
+ : RasterWorkerPool(task_graph_runner, resource_provider),
shutdown_(false),
scheduled_raster_task_count_(0),
bytes_pending_upload_(0),
@@ -91,9 +88,15 @@ void PixelBufferRasterWorkerPool::Shutdown() {
DCHECK_EQ(completed_raster_tasks_.size(), raster_task_states_.size());
}
-void PixelBufferRasterWorkerPool::ScheduleTasks(RasterTask::Queue* queue) {
+void PixelBufferRasterWorkerPool::ScheduleTasks(RasterTaskQueue* queue) {
TRACE_EVENT0("cc", "PixelBufferRasterWorkerPool::ScheduleTasks");
+ DCHECK_EQ(queue->required_for_activation_count,
+ static_cast<size_t>(
+ std::count_if(queue->tasks.begin(),
+ queue->tasks.end(),
+ RasterTaskQueue::Task::IsRequiredForActivation)));
+
if (!should_notify_client_if_no_tasks_are_pending_)
TRACE_EVENT_ASYNC_BEGIN0("cc", "ScheduledTasks", this);
@@ -104,16 +107,10 @@ void PixelBufferRasterWorkerPool::ScheduleTasks(RasterTask::Queue* queue) {
// Build new raster task state map.
RasterTaskStateMap new_raster_task_states;
- RasterTaskVector gpu_raster_tasks;
for (RasterTaskQueueIterator it(queue); it; ++it) {
internal::RasterWorkerPoolTask* task = *it;
DCHECK(new_raster_task_states.find(task) == new_raster_task_states.end());
- if (task->use_gpu_rasterization()) {
- gpu_raster_tasks.push_back(task);
- continue;
- }
-
RasterTaskStateMap::iterator state_it = raster_task_states_.find(task);
if (state_it != raster_task_states_.end()) {
RasterTaskState state = state_it->second;
@@ -175,9 +172,6 @@ void PixelBufferRasterWorkerPool::ScheduleTasks(RasterTask::Queue* queue) {
check_for_completed_raster_tasks_time_ = base::TimeTicks();
ScheduleCheckForCompletedRasterTasks();
- if (!gpu_raster_tasks.empty())
- RunGpuRasterTasks(gpu_raster_tasks);
-
TRACE_EVENT_ASYNC_STEP_INTO1(
"cc",
"ScheduledTasks",
@@ -223,15 +217,10 @@ void PixelBufferRasterWorkerPool::CheckForCompletedTasks() {
completed_raster_tasks_.pop_front();
}
-
- CheckForCompletedGpuRasterTasks();
}
SkCanvas* PixelBufferRasterWorkerPool::AcquireCanvasForRaster(
internal::RasterWorkerPoolTask* task) {
- if (task->use_gpu_rasterization())
- return resource_provider()->MapDirectRasterBuffer(task->resource()->id());
-
resource_provider()->AcquirePixelRasterBuffer(task->resource()->id());
return resource_provider()->MapPixelRasterBuffer(task->resource()->id());
}
@@ -239,11 +228,6 @@ SkCanvas* PixelBufferRasterWorkerPool::AcquireCanvasForRaster(
void PixelBufferRasterWorkerPool::OnRasterCompleted(
internal::RasterWorkerPoolTask* task,
const PicturePileImpl::Analysis& analysis) {
- if (task->use_gpu_rasterization()) {
- resource_provider()->UnmapDirectRasterBuffer(task->resource()->id());
- return;
- }
-
TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("cc"),
"PixelBufferRasterWorkerPool::OnRasterCompleted",
"was_canceled",

Powered by Google App Engine
This is Rietveld 408576698