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..32b2733116ee85aae4afd1824f87287205e32ed3 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 |
| + // |data|'s resource. Returns a non-zero sequence number for this copy |
|
reveman
2015/05/29 14:50:27
nit: update comment, |data| -> X
danakj
2015/05/29 17:16:07
Done.
|
| + // 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/29 14:50:27
nit: kill 'upload_' prefix. 'resource' alone is go
danakj
2015/05/29 17:16:07
ok output_resource everywhere.
|
| 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/29 14:50:27
nit: raster_resource_write_lock like the ctor?
danakj
2015/05/29 17:16:06
meant to leave CopyOperation as src/dst, fixed the
|
| 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_; |