Chromium Code Reviews| 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 5685b609a1920cbc3bcf4c5bb5486fea41a01539..22e796d7ef4f89119cc44bfdb4f600f14d81f64f 100644 |
| --- a/cc/resources/pixel_buffer_raster_worker_pool.cc |
| +++ b/cc/resources/pixel_buffer_raster_worker_pool.cc |
| @@ -4,6 +4,8 @@ |
| #include "cc/resources/pixel_buffer_raster_worker_pool.h" |
| +#include <limits> |
| + |
| #include "base/containers/stack_container.h" |
| #include "base/debug/trace_event.h" |
| #include "base/values.h" |
| @@ -94,7 +96,8 @@ bool WasCanceled(const internal::RasterWorkerPoolTask* task) { |
| PixelBufferRasterWorkerPool::PixelBufferRasterWorkerPool( |
| ResourceProvider* resource_provider, |
| - size_t num_threads) |
| + size_t num_threads, |
| + ContextProvider* context_provider) |
| : RasterWorkerPool(resource_provider, num_threads), |
| shutdown_(false), |
| scheduled_raster_task_count_(0), |
| @@ -104,25 +107,14 @@ PixelBufferRasterWorkerPool::PixelBufferRasterWorkerPool( |
| should_notify_client_if_no_tasks_are_pending_(false), |
| should_notify_client_if_no_tasks_required_for_activation_are_pending_( |
| false) { |
| -// If we raster too fast we become upload bound, and pending |
| -// uploads consume memory. For maximum upload throughput, we would |
| -// want to allow for upload_throughput * pipeline_time of pending |
| -// uploads, after which we are just wasting memory. Since we don't |
| -// know our upload throughput yet, this just caps our memory usage. |
| -#if defined(OS_ANDROID) |
| - size_t divider = 1; |
| - if (base::android::SysUtils::IsLowEndDevice()) |
| - divider = 3; |
| - |
| - // For reference Nexus10 can upload 1MB in about 2.5ms. |
| - const size_t kMaxBytesUploadedPerMs = (2 * 1024 * 1024) / (5 * divider); |
| -#else |
| - // For reference Chromebook Pixel can upload 1MB in about 0.5ms. |
| - const size_t kMaxBytesUploadedPerMs = 1024 * 1024 * 2; |
| -#endif |
| - |
| - // Assuming a two frame deep pipeline. |
| - max_bytes_pending_upload_ = 16 * 2 * kMaxBytesUploadedPerMs; |
| + if (context_provider != NULL) { |
| + max_bytes_pending_upload_ = |
| + context_provider->ContextCapabilities().max_transfer_buffer_usage_bytes; |
| + } else { |
| + // For unit tests: |
|
danakj
2013/08/29 20:10:28
// Software compositing should not use this path i
danakj
2013/08/29 20:10:28
reveman@ can we #if !defined(UNIT_TEST) => NOT_REA
kaanb
2013/08/30 01:11:35
Done.
|
| + // TODO(kaanb): make this a static const somewhere? |
|
danakj
2013/08/29 20:10:28
No idea where. If reveman@ has an idea let's do th
kaanb
2013/08/30 01:11:35
Done.
|
| + max_bytes_pending_upload_ = std::numeric_limits<size_t>::max(); |
| + } |
| } |
| PixelBufferRasterWorkerPool::~PixelBufferRasterWorkerPool() { |