Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2779)

Unified Diff: cc/raster/one_copy_tile_task_worker_pool.h

Issue 1139063002: cc: Partial tile update for one-copy raster. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: monocle: tilemanagerconsistency Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_;

Powered by Google App Engine
This is Rietveld 408576698