| 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 0c1397a0aee78276febfb17113fd03eb2092ef8e..7b76c273466357fd60366234b600ce42b88800d4 100644
|
| --- a/cc/raster/one_copy_tile_task_worker_pool.h
|
| +++ b/cc/raster/one_copy_tile_task_worker_pool.h
|
| @@ -39,7 +39,8 @@ class CC_EXPORT OneCopyTileTaskWorkerPool : public TileTaskWorkerPool,
|
| ContextProvider* context_provider,
|
| ResourceProvider* resource_provider,
|
| ResourcePool* resource_pool,
|
| - size_t max_bytes_per_copy_operation);
|
| + size_t max_bytes_per_copy_operation,
|
| + bool have_persistent_gpu_memory_buffers);
|
|
|
| // Overridden from TileTaskWorkerPool:
|
| TileTaskRunner* AsTileTaskRunner() override;
|
| @@ -53,43 +54,54 @@ class CC_EXPORT OneCopyTileTaskWorkerPool : public TileTaskWorkerPool,
|
|
|
| // Overridden from TileTaskClient:
|
| scoped_ptr<RasterBuffer> AcquireBufferForRaster(
|
| - const Resource* resource) override;
|
| + const Resource* resource,
|
| + uint64_t new_content_id,
|
| + uint64_t previous_content_id) 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
|
| + // |output_resource|. Returns a non-zero sequence number for this copy
|
| + // operation.
|
| CopySequenceNumber PlaybackAndScheduleCopyOnWorkerThread(
|
| - scoped_ptr<ResourceProvider::ScopedWriteLockGpuMemoryBuffer> write_lock,
|
| - const Resource* src,
|
| - const Resource* dst,
|
| + bool reusing_raster_resource,
|
| + scoped_ptr<ResourceProvider::ScopedWriteLockGpuMemoryBuffer>
|
| + raster_resource_write_lock,
|
| + const Resource* raster_resource,
|
| + const Resource* output_resource,
|
| const RasterSource* raster_source,
|
| - const gfx::Rect& rect,
|
| + const gfx::Rect& raster_full_rect,
|
| + const gfx::Rect& raster_dirty_rect,
|
| float scale);
|
|
|
| // Issues copy operations until |sequence| has been processed. This will
|
| // 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,
|
| - size_t max_bytes_per_copy_operation);
|
| + size_t max_bytes_per_copy_operation,
|
| + bool have_persistent_gpu_memory_buffers);
|
|
|
| private:
|
| struct CopyOperation {
|
| typedef ScopedPtrDeque<CopyOperation> Deque;
|
|
|
| - CopyOperation(
|
| - scoped_ptr<ResourceProvider::ScopedWriteLockGpuMemoryBuffer> write_lock,
|
| - const Resource* src,
|
| - const Resource* dst,
|
| - const gfx::Rect& rect);
|
| + CopyOperation(scoped_ptr<ResourceProvider::ScopedWriteLockGpuMemoryBuffer>
|
| + src_write_lock,
|
| + const Resource* src,
|
| + const Resource* dst,
|
| + const gfx::Rect& rect);
|
| ~CopyOperation();
|
|
|
| - scoped_ptr<ResourceProvider::ScopedWriteLockGpuMemoryBuffer> write_lock;
|
| + scoped_ptr<ResourceProvider::ScopedWriteLockGpuMemoryBuffer> src_write_lock;
|
| const Resource* src;
|
| const Resource* dst;
|
| const gfx::Rect rect;
|
| @@ -114,6 +126,7 @@ class CC_EXPORT OneCopyTileTaskWorkerPool : public TileTaskWorkerPool,
|
| ResourceProvider* resource_provider_;
|
| ResourcePool* resource_pool_;
|
| const size_t max_bytes_per_copy_operation_;
|
| + const bool have_persistent_gpu_memory_buffers_;
|
| TaskSetCollection tasks_pending_;
|
| scoped_refptr<TileTask> task_set_finished_tasks_[kNumberOfTaskSets];
|
| CopySequenceNumber last_issued_copy_operation_;
|
|
|