| 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 f691232c33caee2269be9d2cf7e838059312de1d..c4614b1ac75036ddcc576c8aeeeb61dabaa904c1 100644
|
| --- a/cc/raster/one_copy_tile_task_worker_pool.h
|
| +++ b/cc/raster/one_copy_tile_task_worker_pool.h
|
| @@ -7,41 +7,20 @@
|
|
|
| #include <stdint.h>
|
|
|
| -#include <deque>
|
| -#include <set>
|
| -
|
| #include "base/macros.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "base/synchronization/lock.h"
|
| -#include "base/time/time.h"
|
| -#include "base/trace_event/memory_dump_provider.h"
|
| -#include "base/values.h"
|
| #include "cc/output/context_provider.h"
|
| #include "cc/raster/tile_task_runner.h"
|
| #include "cc/raster/tile_task_worker_pool.h"
|
| #include "cc/resources/resource_provider.h"
|
|
|
| -namespace base {
|
| -namespace trace_event {
|
| -class ConvertableToTraceFormat;
|
| -class TracedValue;
|
| -}
|
| -}
|
| -
|
| -namespace gpu {
|
| -namespace gles2 {
|
| -class GLES2Interface;
|
| -}
|
| -}
|
| -
|
| namespace cc {
|
| +struct StagingBuffer;
|
| +class StagingBufferPool;
|
| class ResourcePool;
|
|
|
| -class CC_EXPORT OneCopyTileTaskWorkerPool
|
| - : public TileTaskWorkerPool,
|
| - public TileTaskRunner,
|
| - public TileTaskClient,
|
| - public base::trace_event::MemoryDumpProvider {
|
| +class CC_EXPORT OneCopyTileTaskWorkerPool : public TileTaskWorkerPool,
|
| + public TileTaskRunner,
|
| + public TileTaskClient {
|
| public:
|
| ~OneCopyTileTaskWorkerPool() override;
|
|
|
| @@ -72,10 +51,6 @@ class CC_EXPORT OneCopyTileTaskWorkerPool
|
| uint64_t previous_content_id) override;
|
| void ReleaseBufferForRaster(scoped_ptr<RasterBuffer> buffer) override;
|
|
|
| - // Overridden from base::trace_event::MemoryDumpProvider:
|
| - bool OnMemoryDump(const base::trace_event::MemoryDumpArgs& args,
|
| - base::trace_event::ProcessMemoryDump* pmd) override;
|
| -
|
| // Playback raster source and copy result into |resource|.
|
| void PlaybackAndCopyOnWorkerThread(
|
| const Resource* resource,
|
| @@ -85,8 +60,8 @@ class CC_EXPORT OneCopyTileTaskWorkerPool
|
| const gfx::Rect& raster_dirty_rect,
|
| float scale,
|
| const RasterSource::PlaybackSettings& playback_settings,
|
| - uint64_t resource_content_id,
|
| - uint64_t previous_content_id);
|
| + uint64_t previous_content_id,
|
| + uint64_t new_content_id);
|
|
|
| protected:
|
| OneCopyTileTaskWorkerPool(base::SequencedTaskRunner* task_runner,
|
| @@ -98,67 +73,36 @@ class CC_EXPORT OneCopyTileTaskWorkerPool
|
| ResourceFormat preferred_tile_format);
|
|
|
| private:
|
| - struct StagingBuffer {
|
| - StagingBuffer(const gfx::Size& size, ResourceFormat format);
|
| - ~StagingBuffer();
|
| -
|
| - void DestroyGLResources(gpu::gles2::GLES2Interface* gl);
|
| - void OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd,
|
| - ResourceFormat format,
|
| - bool is_free) const;
|
| -
|
| - const gfx::Size size;
|
| - const ResourceFormat format;
|
| - scoped_ptr<gfx::GpuMemoryBuffer> gpu_memory_buffer;
|
| - base::TimeTicks last_usage;
|
| - unsigned texture_id;
|
| - unsigned image_id;
|
| - unsigned query_id;
|
| - uint64_t content_id;
|
| - };
|
| -
|
| - void AddStagingBuffer(const StagingBuffer* staging_buffer,
|
| - ResourceFormat format);
|
| - void RemoveStagingBuffer(const StagingBuffer* staging_buffer);
|
| - void MarkStagingBufferAsFree(const StagingBuffer* staging_buffer);
|
| - void MarkStagingBufferAsBusy(const StagingBuffer* staging_buffer);
|
| - scoped_ptr<StagingBuffer> AcquireStagingBuffer(const Resource* resource,
|
| - uint64_t previous_content_id);
|
| - base::TimeTicks GetUsageTimeForLRUBuffer();
|
| - void ScheduleReduceMemoryUsage();
|
| - void ReduceMemoryUsage();
|
| - void ReleaseBuffersNotUsedSince(base::TimeTicks time);
|
| -
|
| - scoped_ptr<base::trace_event::ConvertableToTraceFormat> StateAsValue() const;
|
| - void StagingStateAsValueInto(
|
| - base::trace_event::TracedValue* staging_state) const;
|
| -
|
| - scoped_refptr<base::SequencedTaskRunner> task_runner_;
|
| + void PlaybackToStagingBuffer(
|
| + StagingBuffer* staging_buffer,
|
| + const Resource* resource,
|
| + const RasterSource* raster_source,
|
| + const gfx::Rect& raster_full_rect,
|
| + const gfx::Rect& raster_dirty_rect,
|
| + float scale,
|
| + const RasterSource::PlaybackSettings& playback_settings,
|
| + uint64_t previous_content_id,
|
| + uint64_t new_content_id);
|
| + void CopyOnWorkerThread(StagingBuffer* staging_buffer,
|
| + const Resource* resource,
|
| + ResourceProvider::ScopedWriteLockGL* resource_lock,
|
| + const RasterSource* raster_source,
|
| + uint64_t previous_content_id,
|
| + uint64_t new_content_id);
|
| +
|
| TaskGraphRunner* task_graph_runner_;
|
| const NamespaceToken namespace_token_;
|
| ResourceProvider* const resource_provider_;
|
| const int max_bytes_per_copy_operation_;
|
| - const bool use_partial_raster_;
|
| + bool use_partial_raster_;
|
|
|
| - Task::Vector completed_tasks_;
|
| -
|
| - mutable base::Lock lock_;
|
| - // |lock_| must be acquired when accessing the following members.
|
| - using StagingBufferSet = std::set<const StagingBuffer*>;
|
| - StagingBufferSet buffers_;
|
| - using StagingBufferDeque = std::deque<scoped_ptr<StagingBuffer>>;
|
| - StagingBufferDeque free_buffers_;
|
| - StagingBufferDeque busy_buffers_;
|
| + // Context lock must be acquired when accessing this member.
|
| int bytes_scheduled_since_last_flush_;
|
| - const int max_staging_buffer_usage_in_bytes_;
|
| +
|
| ResourceFormat preferred_tile_format_;
|
| - int staging_buffer_usage_in_bytes_;
|
| - int free_staging_buffer_usage_in_bytes_;
|
| - const base::TimeDelta staging_buffer_expiration_delay_;
|
| - bool reduce_memory_usage_pending_;
|
| - base::Closure reduce_memory_usage_callback_;
|
| + scoped_ptr<StagingBufferPool> staging_pool_;
|
|
|
| - base::WeakPtrFactory<OneCopyTileTaskWorkerPool> weak_ptr_factory_;
|
| + Task::Vector completed_tasks_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(OneCopyTileTaskWorkerPool);
|
| };
|
|
|