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

Unified Diff: cc/resources/one_copy_raster_worker_pool.h

Issue 683113005: Update from chromium https://crrev.com/302282 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 2 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/quads/render_pass.cc ('k') | cc/resources/one_copy_raster_worker_pool.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/resources/one_copy_raster_worker_pool.h
diff --git a/cc/resources/one_copy_raster_worker_pool.h b/cc/resources/one_copy_raster_worker_pool.h
index 7372fb7ae47f5b3b63cb7d8e8d4cbf9a559c7e8a..1dc102f81a8c980fb0155b8a8e30da95ddcfa682 100644
--- a/cc/resources/one_copy_raster_worker_pool.h
+++ b/cc/resources/one_copy_raster_worker_pool.h
@@ -23,7 +23,7 @@ class TracedValue;
namespace cc {
class ResourcePool;
-class ResourceProvider;
+class ScopedResource;
typedef int64 CopySequenceNumber;
@@ -54,12 +54,16 @@ class CC_EXPORT OneCopyRasterWorkerPool : public RasterWorkerPool,
const Resource* resource) override;
void ReleaseBufferForRaster(scoped_ptr<RasterBuffer> buffer) override;
- // Schedule copy of |src| resource to |dst| resource. Returns a non-zero
- // sequence number for this copy operation.
- CopySequenceNumber ScheduleCopyOnWorkerThread(
+ // Playback raster source and schedule copy of |src| resource to |dst|
+ // 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);
+ scoped_ptr<ScopedResource> src,
+ const Resource* dst,
+ const RasterSource* raster_source,
+ const gfx::Rect& rect,
+ float scale,
+ RenderingStatsInstrumentation* stats);
// Issues copy operations until |sequence| has been processed. This will
// return immediately if |sequence| has already been processed.
@@ -78,18 +82,21 @@ class CC_EXPORT OneCopyRasterWorkerPool : public RasterWorkerPool,
CopyOperation(
scoped_ptr<ResourceProvider::ScopedWriteLockGpuMemoryBuffer> write_lock,
- ResourceProvider::ResourceId src,
- ResourceProvider::ResourceId dst);
+ scoped_ptr<ScopedResource> src,
+ const Resource* dst);
~CopyOperation();
scoped_ptr<ResourceProvider::ScopedWriteLockGpuMemoryBuffer> write_lock;
- ResourceProvider::ResourceId src;
- ResourceProvider::ResourceId dst;
+ scoped_ptr<ScopedResource> src;
+ const Resource* dst;
};
void OnRasterFinished(TaskSet task_set);
void AdvanceLastFlushedCopyTo(CopySequenceNumber sequence);
void IssueCopyOperations(int64 count);
+ void ScheduleCheckForCompletedCopyOperationsWithLockAcquired(
+ bool wait_if_needed);
+ void CheckForCompletedCopyOperations(bool wait_if_needed);
scoped_refptr<base::debug::ConvertableToTraceFormat> StateAsValue() const;
void StagingStateAsValueInto(base::debug::TracedValue* staging_state) const;
@@ -112,8 +119,14 @@ class CC_EXPORT OneCopyRasterWorkerPool : public RasterWorkerPool,
base::Lock lock_;
// |lock_| must be acquired when accessing the following members.
+ base::ConditionVariable copy_operation_count_cv_;
+ size_t scheduled_copy_operation_count_;
+ size_t issued_copy_operation_count_;
CopyOperation::Deque pending_copy_operations_;
CopySequenceNumber next_copy_operation_sequence_;
+ bool check_for_completed_copy_operations_pending_;
+ base::TimeTicks last_check_for_completed_copy_operations_time_;
+ bool shutdown_;
base::WeakPtrFactory<OneCopyRasterWorkerPool> weak_ptr_factory_;
// "raster finished" tasks need their own factory as they need to be
« no previous file with comments | « cc/quads/render_pass.cc ('k') | cc/resources/one_copy_raster_worker_pool.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698