| Index: cc/raster/one_copy_tile_task_worker_pool.h
|
| diff --git a/cc/raster/one_copy_tile_task_worker_pool.h b/cc/raster/one_copy_tile_task_worker_pool.h
|
| index 35b8873033a1d813bd1db96df7e26b8a0a859b13..4fe3868d941ccf160d9cc61931366cb29be61b4c 100644
|
| --- a/cc/raster/one_copy_tile_task_worker_pool.h
|
| +++ b/cc/raster/one_copy_tile_task_worker_pool.h
|
| @@ -38,7 +38,8 @@ class CC_EXPORT OneCopyTileTaskWorkerPool : public TileTaskWorkerPool,
|
| TaskGraphRunner* task_graph_runner,
|
| ContextProvider* context_provider,
|
| ResourceProvider* resource_provider,
|
| - ResourcePool* resource_pool);
|
| + ResourcePool* resource_pool,
|
| + bool have_persistent_gpu_memory_buffers);
|
|
|
| // Overridden from TileTaskWorkerPool:
|
| TileTaskRunner* AsTileTaskRunner() override;
|
| @@ -52,15 +53,18 @@ class CC_EXPORT OneCopyTileTaskWorkerPool : public TileTaskWorkerPool,
|
|
|
| // Overridden from TileTaskClient:
|
| scoped_ptr<RasterBuffer> AcquireBufferForRaster(
|
| - const Resource* resource) override;
|
| + const TileTaskData& data) override;
|
| void ReleaseBufferForRaster(scoped_ptr<RasterBuffer> buffer) override;
|
|
|
| - // Playback raster source and schedule copy of |src| resource to |dst|
|
| - // resource. Returns a non-zero sequence number for this copy operation.
|
| + // Playback raster source and schedule copy of |raster_resource| resource to
|
| + // |data|'s resource. Returns a non-zero sequence number for this copy
|
| + // operation.
|
| CopySequenceNumber PlaybackAndScheduleCopyOnWorkerThread(
|
| - scoped_ptr<ResourceProvider::ScopedWriteLockGpuMemoryBuffer> write_lock,
|
| - scoped_ptr<ScopedResource> src,
|
| - const Resource* dst,
|
| + bool reusing_raster_resource,
|
| + scoped_ptr<ResourceProvider::ScopedWriteLockGpuMemoryBuffer>
|
| + raster_resource_write_lock,
|
| + scoped_ptr<ScopedResource> raster_resource,
|
| + const TileTaskData& data,
|
| const RasterSource* raster_source,
|
| const gfx::Rect& rect,
|
| float scale);
|
| @@ -69,26 +73,32 @@ class CC_EXPORT OneCopyTileTaskWorkerPool : public TileTaskWorkerPool,
|
| // return immediately if |sequence| has already been processed.
|
| void AdvanceLastIssuedCopyTo(CopySequenceNumber sequence);
|
|
|
| + bool have_persistent_gpu_memory_buffers() const {
|
| + return have_persistent_gpu_memory_buffers_;
|
| + }
|
| +
|
| protected:
|
| OneCopyTileTaskWorkerPool(base::SequencedTaskRunner* task_runner,
|
| TaskGraphRunner* task_graph_runner,
|
| ContextProvider* context_provider,
|
| ResourceProvider* resource_provider,
|
| - ResourcePool* resource_pool);
|
| + ResourcePool* resource_pool,
|
| + bool have_persistent_gpu_memory_buffers);
|
|
|
| private:
|
| struct CopyOperation {
|
| typedef ScopedPtrDeque<CopyOperation> Deque;
|
|
|
| - CopyOperation(
|
| - scoped_ptr<ResourceProvider::ScopedWriteLockGpuMemoryBuffer> write_lock,
|
| - scoped_ptr<ScopedResource> src,
|
| - const Resource* dst);
|
| + CopyOperation(scoped_ptr<ResourceProvider::ScopedWriteLockGpuMemoryBuffer>
|
| + raster_resource_write_lock,
|
| + scoped_ptr<ScopedResource> raster_resource,
|
| + const TileTaskData& data);
|
| ~CopyOperation();
|
|
|
| - scoped_ptr<ResourceProvider::ScopedWriteLockGpuMemoryBuffer> write_lock;
|
| - scoped_ptr<ScopedResource> src;
|
| - const Resource* dst;
|
| + scoped_ptr<ResourceProvider::ScopedWriteLockGpuMemoryBuffer>
|
| + raster_resource_write_lock;
|
| + scoped_ptr<ScopedResource> raster_resource;
|
| + TileTaskData tile_task_data;
|
| };
|
|
|
| void OnTaskSetFinished(TaskSet task_set);
|
| @@ -102,6 +112,8 @@ class CC_EXPORT OneCopyTileTaskWorkerPool : public TileTaskWorkerPool,
|
| void StagingStateAsValueInto(
|
| base::trace_event::TracedValue* staging_state) const;
|
|
|
| + const bool have_persistent_gpu_memory_buffers_;
|
| +
|
| scoped_refptr<base::SequencedTaskRunner> task_runner_;
|
| TaskGraphRunner* task_graph_runner_;
|
| const NamespaceToken namespace_token_;
|
|
|