| Index: cc/raster/one_copy_raster_buffer_provider.cc
|
| diff --git a/cc/raster/one_copy_tile_task_worker_pool.cc b/cc/raster/one_copy_raster_buffer_provider.cc
|
| similarity index 82%
|
| rename from cc/raster/one_copy_tile_task_worker_pool.cc
|
| rename to cc/raster/one_copy_raster_buffer_provider.cc
|
| index 3c12301f2320406e1deb3090aaf41da35748a7e8..816820b02f3ea13bd0da90de2bead452279ce364 100644
|
| --- a/cc/raster/one_copy_tile_task_worker_pool.cc
|
| +++ b/cc/raster/one_copy_raster_buffer_provider.cc
|
| @@ -2,7 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "cc/raster/one_copy_tile_task_worker_pool.h"
|
| +#include "cc/raster/one_copy_raster_buffer_provider.h"
|
|
|
| #include <stdint.h>
|
|
|
| @@ -27,7 +27,7 @@ namespace {
|
|
|
| class RasterBufferImpl : public RasterBuffer {
|
| public:
|
| - RasterBufferImpl(OneCopyTileTaskWorkerPool* worker_pool,
|
| + RasterBufferImpl(OneCopyRasterBufferProvider* worker_pool,
|
| ResourceProvider* resource_provider,
|
| ResourceFormat resource_format,
|
| const Resource* resource,
|
| @@ -53,7 +53,7 @@ class RasterBufferImpl : public RasterBuffer {
|
| }
|
|
|
| private:
|
| - OneCopyTileTaskWorkerPool* worker_pool_;
|
| + OneCopyRasterBufferProvider* worker_pool_;
|
| const Resource* resource_;
|
| ResourceProvider::ScopedWriteLockGL lock_;
|
| uint64_t previous_content_id_;
|
| @@ -68,32 +68,28 @@ const int kMaxBytesPerCopyOperation = 1024 * 1024 * 4;
|
| } // namespace
|
|
|
| // static
|
| -std::unique_ptr<TileTaskWorkerPool> OneCopyTileTaskWorkerPool::Create(
|
| +std::unique_ptr<RasterBufferProvider> OneCopyRasterBufferProvider::Create(
|
| base::SequencedTaskRunner* task_runner,
|
| - TaskGraphRunner* task_graph_runner,
|
| ContextProvider* context_provider,
|
| ResourceProvider* resource_provider,
|
| int max_copy_texture_chromium_size,
|
| bool use_partial_raster,
|
| int max_staging_buffer_usage_in_bytes,
|
| ResourceFormat preferred_tile_format) {
|
| - return base::WrapUnique<TileTaskWorkerPool>(new OneCopyTileTaskWorkerPool(
|
| - task_runner, task_graph_runner, resource_provider,
|
| - max_copy_texture_chromium_size, use_partial_raster,
|
| - max_staging_buffer_usage_in_bytes, preferred_tile_format));
|
| + return base::WrapUnique<RasterBufferProvider>(new OneCopyRasterBufferProvider(
|
| + task_runner, resource_provider, max_copy_texture_chromium_size,
|
| + use_partial_raster, max_staging_buffer_usage_in_bytes,
|
| + preferred_tile_format));
|
| }
|
|
|
| -OneCopyTileTaskWorkerPool::OneCopyTileTaskWorkerPool(
|
| +OneCopyRasterBufferProvider::OneCopyRasterBufferProvider(
|
| base::SequencedTaskRunner* task_runner,
|
| - TaskGraphRunner* task_graph_runner,
|
| ResourceProvider* resource_provider,
|
| int max_copy_texture_chromium_size,
|
| bool use_partial_raster,
|
| int max_staging_buffer_usage_in_bytes,
|
| ResourceFormat preferred_tile_format)
|
| - : task_graph_runner_(task_graph_runner),
|
| - namespace_token_(task_graph_runner->GetNamespaceToken()),
|
| - resource_provider_(resource_provider),
|
| + : resource_provider_(resource_provider),
|
| max_bytes_per_copy_operation_(
|
| max_copy_texture_chromium_size
|
| ? std::min(kMaxBytesPerCopyOperation,
|
| @@ -107,51 +103,35 @@ OneCopyTileTaskWorkerPool::OneCopyTileTaskWorkerPool(
|
| max_staging_buffer_usage_in_bytes);
|
| }
|
|
|
| -OneCopyTileTaskWorkerPool::~OneCopyTileTaskWorkerPool() {
|
| -}
|
| -
|
| -void OneCopyTileTaskWorkerPool::Shutdown() {
|
| - TRACE_EVENT0("cc", "OneCopyTileTaskWorkerPool::Shutdown");
|
| -
|
| - TaskGraph empty;
|
| - task_graph_runner_->ScheduleTasks(namespace_token_, &empty);
|
| - task_graph_runner_->WaitForTasksToFinishRunning(namespace_token_);
|
| +OneCopyRasterBufferProvider::~OneCopyRasterBufferProvider() {}
|
|
|
| - staging_pool_->Shutdown();
|
| +std::unique_ptr<RasterBuffer>
|
| +OneCopyRasterBufferProvider::AcquireBufferForRaster(
|
| + const Resource* resource,
|
| + uint64_t resource_content_id,
|
| + uint64_t previous_content_id) {
|
| + // TODO(danakj): If resource_content_id != 0, we only need to copy/upload
|
| + // the dirty rect.
|
| + return base::WrapUnique<RasterBuffer>(
|
| + new RasterBufferImpl(this, resource_provider_, resource->format(),
|
| + resource, previous_content_id));
|
| }
|
|
|
| -void OneCopyTileTaskWorkerPool::ScheduleTasks(TaskGraph* graph) {
|
| - TRACE_EVENT0("cc", "OneCopyTileTaskWorkerPool::ScheduleTasks");
|
| +void OneCopyRasterBufferProvider::ReleaseBufferForRaster(
|
| + std::unique_ptr<RasterBuffer> buffer) {
|
| + // Nothing to do here. RasterBufferImpl destructor cleans up after itself.
|
| +}
|
|
|
| - ScheduleTasksOnOriginThread(this, graph);
|
| +void OneCopyRasterBufferProvider::OrderingBarrier() {
|
| + TRACE_EVENT0("cc", "OneCopyRasterBufferProvider::OrderingBarrier");
|
|
|
| - // Barrier to sync any new resources to the worker context.
|
| resource_provider_->output_surface()
|
| ->context_provider()
|
| ->ContextGL()
|
| ->OrderingBarrierCHROMIUM();
|
| -
|
| - task_graph_runner_->ScheduleTasks(namespace_token_, graph);
|
| }
|
|
|
| -void OneCopyTileTaskWorkerPool::CheckForCompletedTasks() {
|
| - TRACE_EVENT0("cc", "OneCopyTileTaskWorkerPool::CheckForCompletedTasks");
|
| -
|
| - task_graph_runner_->CollectCompletedTasks(namespace_token_,
|
| - &completed_tasks_);
|
| -
|
| - for (Task::Vector::const_iterator it = completed_tasks_.begin();
|
| - it != completed_tasks_.end(); ++it) {
|
| - TileTask* task = static_cast<TileTask*>(it->get());
|
| -
|
| - task->WillComplete();
|
| - task->CompleteOnOriginThread(this);
|
| - task->DidComplete();
|
| - }
|
| - completed_tasks_.clear();
|
| -}
|
| -
|
| -ResourceFormat OneCopyTileTaskWorkerPool::GetResourceFormat(
|
| +ResourceFormat OneCopyRasterBufferProvider::GetResourceFormat(
|
| bool must_support_alpha) const {
|
| if (resource_provider_->IsResourceFormatSupported(preferred_tile_format_) &&
|
| (DoesResourceFormatSupportAlpha(preferred_tile_format_) ||
|
| @@ -162,32 +142,16 @@ ResourceFormat OneCopyTileTaskWorkerPool::GetResourceFormat(
|
| return resource_provider_->best_texture_format();
|
| }
|
|
|
| -bool OneCopyTileTaskWorkerPool::GetResourceRequiresSwizzle(
|
| +bool OneCopyRasterBufferProvider::GetResourceRequiresSwizzle(
|
| bool must_support_alpha) const {
|
| return ResourceFormatRequiresSwizzle(GetResourceFormat(must_support_alpha));
|
| }
|
|
|
| -RasterBufferProvider* OneCopyTileTaskWorkerPool::AsRasterBufferProvider() {
|
| - return this;
|
| -}
|
| -
|
| -std::unique_ptr<RasterBuffer> OneCopyTileTaskWorkerPool::AcquireBufferForRaster(
|
| - const Resource* resource,
|
| - uint64_t resource_content_id,
|
| - uint64_t previous_content_id) {
|
| - // TODO(danakj): If resource_content_id != 0, we only need to copy/upload
|
| - // the dirty rect.
|
| - return base::WrapUnique<RasterBuffer>(
|
| - new RasterBufferImpl(this, resource_provider_, resource->format(),
|
| - resource, previous_content_id));
|
| -}
|
| -
|
| -void OneCopyTileTaskWorkerPool::ReleaseBufferForRaster(
|
| - std::unique_ptr<RasterBuffer> buffer) {
|
| - // Nothing to do here. RasterBufferImpl destructor cleans up after itself.
|
| +void OneCopyRasterBufferProvider::Shutdown() {
|
| + staging_pool_->Shutdown();
|
| }
|
|
|
| -void OneCopyTileTaskWorkerPool::PlaybackAndCopyOnWorkerThread(
|
| +void OneCopyRasterBufferProvider::PlaybackAndCopyOnWorkerThread(
|
| const Resource* resource,
|
| ResourceProvider::ScopedWriteLockGL* resource_lock,
|
| const RasterSource* raster_source,
|
| @@ -211,7 +175,7 @@ void OneCopyTileTaskWorkerPool::PlaybackAndCopyOnWorkerThread(
|
| staging_pool_->ReleaseStagingBuffer(std::move(staging_buffer));
|
| }
|
|
|
| -void OneCopyTileTaskWorkerPool::PlaybackToStagingBuffer(
|
| +void OneCopyRasterBufferProvider::PlaybackToStagingBuffer(
|
| StagingBuffer* staging_buffer,
|
| const Resource* resource,
|
| const RasterSource* raster_source,
|
| @@ -248,12 +212,12 @@ void OneCopyTileTaskWorkerPool::PlaybackToStagingBuffer(
|
| bool rv = buffer->Map();
|
| DCHECK(rv);
|
| DCHECK(buffer->memory(0));
|
| - // TileTaskWorkerPool::PlaybackToMemory only supports unsigned strides.
|
| + // RasterBufferProvider::PlaybackToMemory only supports unsigned strides.
|
| DCHECK_GE(buffer->stride(0), 0);
|
|
|
| DCHECK(!playback_rect.IsEmpty())
|
| << "Why are we rastering a tile that's not dirty?";
|
| - TileTaskWorkerPool::PlaybackToMemory(
|
| + RasterBufferProvider::PlaybackToMemory(
|
| buffer->memory(0), resource->format(), staging_buffer->size,
|
| buffer->stride(0), raster_source, raster_full_rect, playback_rect,
|
| scale, playback_settings);
|
| @@ -262,7 +226,7 @@ void OneCopyTileTaskWorkerPool::PlaybackToStagingBuffer(
|
| }
|
| }
|
|
|
| -void OneCopyTileTaskWorkerPool::CopyOnWorkerThread(
|
| +void OneCopyRasterBufferProvider::CopyOnWorkerThread(
|
| StagingBuffer* staging_buffer,
|
| const Resource* resource,
|
| ResourceProvider::ScopedWriteLockGL* resource_lock,
|
|
|