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

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

Issue 689463003: cc: Move FallbackFence implementation from GLRenderer to ResourceProvider. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@one-copy-throttling
Patch Set: rebase 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
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | cc/resources/resource_provider.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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/one_copy_raster_worker_pool.h" 5 #include "cc/resources/one_copy_raster_worker_pool.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 } 380 }
381 client_->DidFinishRunningTasks(task_set); 381 client_->DidFinishRunningTasks(task_set);
382 } 382 }
383 383
384 void OneCopyRasterWorkerPool::IssueCopyOperations(int64 count) { 384 void OneCopyRasterWorkerPool::IssueCopyOperations(int64 count) {
385 TRACE_EVENT1( 385 TRACE_EVENT1(
386 "cc", "OneCopyRasterWorkerPool::IssueCopyOperations", "count", count); 386 "cc", "OneCopyRasterWorkerPool::IssueCopyOperations", "count", count);
387 387
388 CopyOperation::Deque copy_operations; 388 CopyOperation::Deque copy_operations;
389 389
390 // This is a good time to check for completed copy operations as
391 // |issued_copy_operation_count_| need to be updated below.
392 resource_pool_->CheckBusyResources();
393
394 { 390 {
395 base::AutoLock lock(lock_); 391 base::AutoLock lock(lock_);
396 392
397 for (int64 i = 0; i < count; ++i) { 393 for (int64 i = 0; i < count; ++i) {
398 DCHECK(!pending_copy_operations_.empty()); 394 DCHECK(!pending_copy_operations_.empty());
399 copy_operations.push_back(pending_copy_operations_.take_front()); 395 copy_operations.push_back(pending_copy_operations_.take_front());
400 } 396 }
401 397
402 // Decrement |scheduled_copy_operation_count_| and increment 398 // Decrement |scheduled_copy_operation_count_| and increment
403 // |issued_copy_operation_count_| to reflect the transition of copy 399 // |issued_copy_operation_count_| to reflect the transition of copy
404 // operations from "pending" to "issued" state. 400 // operations from "pending" to "issued" state.
405 DCHECK_GE(scheduled_copy_operation_count_, copy_operations.size()); 401 DCHECK_GE(scheduled_copy_operation_count_, copy_operations.size());
406 scheduled_copy_operation_count_ -= copy_operations.size(); 402 scheduled_copy_operation_count_ -= copy_operations.size();
407 403 issued_copy_operation_count_ += copy_operations.size();
408 issued_copy_operation_count_ =
409 resource_pool_->busy_resource_count() + copy_operations.size();
410 } 404 }
411 405
412 while (!copy_operations.empty()) { 406 while (!copy_operations.empty()) {
413 scoped_ptr<CopyOperation> copy_operation = copy_operations.take_front(); 407 scoped_ptr<CopyOperation> copy_operation = copy_operations.take_front();
414 408
415 // Remove the write lock. 409 // Remove the write lock.
416 copy_operation->write_lock.reset(); 410 copy_operation->write_lock.reset();
417 411
418 // Copy contents of source resource to destination resource. 412 // Copy contents of source resource to destination resource.
419 resource_provider_->CopyResource(copy_operation->src->id(), 413 resource_provider_->CopyResource(copy_operation->src->id(),
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 resource_pool_->total_memory_usage_bytes()); 494 resource_pool_->total_memory_usage_bytes());
501 staging_state->SetInteger("pending_copy_count", 495 staging_state->SetInteger("pending_copy_count",
502 resource_pool_->total_resource_count() - 496 resource_pool_->total_resource_count() -
503 resource_pool_->acquired_resource_count()); 497 resource_pool_->acquired_resource_count());
504 staging_state->SetInteger("bytes_pending_copy", 498 staging_state->SetInteger("bytes_pending_copy",
505 resource_pool_->total_memory_usage_bytes() - 499 resource_pool_->total_memory_usage_bytes() -
506 resource_pool_->acquired_memory_usage_bytes()); 500 resource_pool_->acquired_memory_usage_bytes());
507 } 501 }
508 502
509 } // namespace cc 503 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | cc/resources/resource_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698