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

Side by Side Diff: cc/resources/pixel_buffer_raster_worker_pool.cc

Issue 569733002: cc: Remove cc:RasterRequiredForActivation synthetic delays. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: post-increment to pre-increment Created 6 years, 3 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/resources/image_raster_worker_pool.cc ('k') | cc/resources/raster_worker_pool.cc » ('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 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/resources/pixel_buffer_raster_worker_pool.h" 5 #include "cc/resources/pixel_buffer_raster_worker_pool.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/containers/stack_container.h" 9 #include "base/containers/stack_container.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 completed_raster_tasks_.push_back(state.task); 110 completed_raster_tasks_.push_back(state.task);
111 state.type = RasterTaskState::COMPLETED; 111 state.type = RasterTaskState::COMPLETED;
112 } 112 }
113 } 113 }
114 DCHECK_EQ(completed_raster_tasks_.size(), raster_task_states_.size()); 114 DCHECK_EQ(completed_raster_tasks_.size(), raster_task_states_.size());
115 } 115 }
116 116
117 void PixelBufferRasterWorkerPool::ScheduleTasks(RasterTaskQueue* queue) { 117 void PixelBufferRasterWorkerPool::ScheduleTasks(RasterTaskQueue* queue) {
118 TRACE_EVENT0("cc", "PixelBufferRasterWorkerPool::ScheduleTasks"); 118 TRACE_EVENT0("cc", "PixelBufferRasterWorkerPool::ScheduleTasks");
119 119
120 DCHECK_EQ(queue->required_for_activation_count,
121 static_cast<size_t>(
122 std::count_if(queue->items.begin(),
123 queue->items.end(),
124 RasterTaskQueue::Item::IsRequiredForActivation)));
125
126 if (!should_notify_client_if_no_tasks_are_pending_) 120 if (!should_notify_client_if_no_tasks_are_pending_)
127 TRACE_EVENT_ASYNC_BEGIN0("cc", "ScheduledTasks", this); 121 TRACE_EVENT_ASYNC_BEGIN0("cc", "ScheduledTasks", this);
128 122
129 should_notify_client_if_no_tasks_are_pending_ = true; 123 should_notify_client_if_no_tasks_are_pending_ = true;
130 should_notify_client_if_no_tasks_required_for_activation_are_pending_ = true; 124 should_notify_client_if_no_tasks_required_for_activation_are_pending_ = true;
131 125
132 raster_tasks_required_for_activation_count_ = 0u; 126 raster_tasks_required_for_activation_count_ = 0u;
133 127
134 // Update raster task state and remove items from old queue. 128 // Update raster task state and remove items from old queue.
135 for (RasterTaskQueue::Item::Vector::const_iterator it = queue->items.begin(); 129 for (RasterTaskQueue::Item::Vector::const_iterator it = queue->items.begin();
(...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 559
566 size_t scheduled_raster_task_required_for_activation_count = 560 size_t scheduled_raster_task_required_for_activation_count =
567 tasks_required_for_activation.container().size(); 561 tasks_required_for_activation.container().size();
568 DCHECK_LE(scheduled_raster_task_required_for_activation_count, 562 DCHECK_LE(scheduled_raster_task_required_for_activation_count,
569 raster_tasks_required_for_activation_count_); 563 raster_tasks_required_for_activation_count_);
570 // Schedule OnRasterTasksRequiredForActivationFinished call only when 564 // Schedule OnRasterTasksRequiredForActivationFinished call only when
571 // notification is pending and throttling is not preventing all pending 565 // notification is pending and throttling is not preventing all pending
572 // tasks required for activation from being scheduled. 566 // tasks required for activation from being scheduled.
573 if (!did_throttle_raster_tasks_required_for_activation && 567 if (!did_throttle_raster_tasks_required_for_activation &&
574 should_notify_client_if_no_tasks_required_for_activation_are_pending_) { 568 should_notify_client_if_no_tasks_required_for_activation_are_pending_) {
575 new_raster_required_for_activation_finished_task = 569 new_raster_required_for_activation_finished_task = CreateRasterFinishedTask(
576 CreateRasterRequiredForActivationFinishedTask( 570 task_runner_.get(),
577 raster_tasks_.required_for_activation_count, 571 base::Bind(
578 task_runner_.get(), 572 &PixelBufferRasterWorkerPool::OnRasterRequiredForActivationFinished,
579 base::Bind(&PixelBufferRasterWorkerPool:: 573 raster_finished_weak_ptr_factory_.GetWeakPtr()));
580 OnRasterRequiredForActivationFinished,
581 raster_finished_weak_ptr_factory_.GetWeakPtr()));
582 raster_required_for_activation_finished_task_pending_ = true; 574 raster_required_for_activation_finished_task_pending_ = true;
583 InsertNodeForTask(&graph_, 575 InsertNodeForTask(&graph_,
584 new_raster_required_for_activation_finished_task.get(), 576 new_raster_required_for_activation_finished_task.get(),
585 kRasterRequiredForActivationFinishedTaskPriority, 577 kRasterRequiredForActivationFinishedTaskPriority,
586 scheduled_raster_task_required_for_activation_count); 578 scheduled_raster_task_required_for_activation_count);
587 for (RasterTaskVector::ContainerType::const_iterator it = 579 for (RasterTaskVector::ContainerType::const_iterator it =
588 tasks_required_for_activation.container().begin(); 580 tasks_required_for_activation.container().begin();
589 it != tasks_required_for_activation.container().end(); 581 it != tasks_required_for_activation.container().end();
590 ++it) { 582 ++it) {
591 graph_.edges.push_back(TaskGraph::Edge( 583 graph_.edges.push_back(TaskGraph::Edge(
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
743 void PixelBufferRasterWorkerPool::ThrottleStateAsValueInto( 735 void PixelBufferRasterWorkerPool::ThrottleStateAsValueInto(
744 base::debug::TracedValue* throttle_state) const { 736 base::debug::TracedValue* throttle_state) const {
745 throttle_state->SetInteger("bytes_available_for_upload", 737 throttle_state->SetInteger("bytes_available_for_upload",
746 max_bytes_pending_upload_ - bytes_pending_upload_); 738 max_bytes_pending_upload_ - bytes_pending_upload_);
747 throttle_state->SetInteger("bytes_pending_upload", bytes_pending_upload_); 739 throttle_state->SetInteger("bytes_pending_upload", bytes_pending_upload_);
748 throttle_state->SetInteger("scheduled_raster_task_count", 740 throttle_state->SetInteger("scheduled_raster_task_count",
749 scheduled_raster_task_count_); 741 scheduled_raster_task_count_);
750 } 742 }
751 743
752 } // namespace cc 744 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resources/image_raster_worker_pool.cc ('k') | cc/resources/raster_worker_pool.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698