Index: cc/raster/one_copy_tile_task_worker_pool.cc |
diff --git a/cc/raster/one_copy_tile_task_worker_pool.cc b/cc/raster/one_copy_tile_task_worker_pool.cc |
index dd8937c483d2cb6b778c6dd03e6b674cbb0b64ec..9a31f6ab0adabe43f99f1b281e5f81860d925e35 100644 |
--- a/cc/raster/one_copy_tile_task_worker_pool.cc |
+++ b/cc/raster/one_copy_tile_task_worker_pool.cc |
@@ -109,6 +109,10 @@ const int kCheckForCompletedCopyOperationsTickRateMs = 1; |
// wait for copy operations to complete if needed. |
const int kFailedAttemptsBeforeWaitIfNeeded = 256; |
+// 4MiB is the size of 4 512x512 tiles, which has proven to be a good |
+// default batch size for copy operations. |
+const int kMaxBytesPerCopyOperation = 1024 * 1024 * 4; |
+ |
} // namespace |
OneCopyTileTaskWorkerPool::CopyOperation::CopyOperation( |
@@ -129,11 +133,11 @@ scoped_ptr<TileTaskWorkerPool> OneCopyTileTaskWorkerPool::Create( |
ContextProvider* context_provider, |
ResourceProvider* resource_provider, |
ResourcePool* resource_pool, |
- int max_bytes_per_copy_operation, |
+ int max_copy_texture_chromium_size, |
bool have_persistent_gpu_memory_buffers) { |
return make_scoped_ptr<TileTaskWorkerPool>(new OneCopyTileTaskWorkerPool( |
task_runner, task_graph_runner, context_provider, resource_provider, |
- resource_pool, max_bytes_per_copy_operation, |
+ resource_pool, max_copy_texture_chromium_size, |
have_persistent_gpu_memory_buffers)); |
} |
@@ -143,7 +147,7 @@ OneCopyTileTaskWorkerPool::OneCopyTileTaskWorkerPool( |
ContextProvider* context_provider, |
ResourceProvider* resource_provider, |
ResourcePool* resource_pool, |
- int max_bytes_per_copy_operation, |
+ int max_copy_texture_chromium_size, |
bool have_persistent_gpu_memory_buffers) |
: task_runner_(task_runner), |
task_graph_runner_(task_graph_runner), |
@@ -151,7 +155,11 @@ OneCopyTileTaskWorkerPool::OneCopyTileTaskWorkerPool( |
context_provider_(context_provider), |
resource_provider_(resource_provider), |
resource_pool_(resource_pool), |
- max_bytes_per_copy_operation_(max_bytes_per_copy_operation), |
+ max_bytes_per_copy_operation_( |
+ max_copy_texture_chromium_size |
+ ? std::min(kMaxBytesPerCopyOperation, |
+ max_copy_texture_chromium_size) |
+ : kMaxBytesPerCopyOperation), |
have_persistent_gpu_memory_buffers_(have_persistent_gpu_memory_buffers), |
last_issued_copy_operation_(0), |
last_flushed_copy_operation_(0), |