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_; |