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

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: rebase 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
« no previous file with comments | « cc/raster/gpu_tile_task_worker_pool.cc ('k') | cc/raster/one_copy_tile_task_worker_pool.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_;
« no previous file with comments | « cc/raster/gpu_tile_task_worker_pool.cc ('k') | cc/raster/one_copy_tile_task_worker_pool.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698