Chromium Code Reviews| 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..43391c12da81f13a61ddcc81affe32f17822eb51 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,52 @@ 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, |
| - const Resource* src, |
| - const Resource* dst, |
| + bool reusing_raster_resource, |
| + scoped_ptr<ResourceProvider::ScopedWriteLockGpuMemoryBuffer> |
| + raster_resource_write_lock, |
| + const Resource* raster_resource, |
| + const Resource* upload_resource, |
|
reveman
2015/05/28 05:07:24
s/upload/copy/. what's wrong with |write_lock|, |s
danakj
2015/05/28 18:54:46
see previous comment?
|
| 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> |
| + raster_resource_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; |
|
reveman
2015/05/28 05:07:24
is this name change necessary?
|
| const Resource* src; |
| const Resource* dst; |
| const gfx::Rect rect; |
| @@ -114,6 +124,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_; |