summaryrefslogtreecommitdiffstats
path: root/cc/raster
diff options
context:
space:
mode:
authorvmpstr <vmpstr@chromium.org>2015-11-13 17:37:11 -0800
committerCommit bot <commit-bot@chromium.org>2015-11-14 01:38:00 +0000
commit36d6abffa95c4ea211d0028c3be07adffef7d80e (patch)
tree6344ac72fa05092ecc2d6bc807eade093e5421ea /cc/raster
parent78bf53f95967c29512e0ea503072ec60ead5444c (diff)
downloadchromium_src-36d6abffa95c4ea211d0028c3be07adffef7d80e.zip
chromium_src-36d6abffa95c4ea211d0028c3be07adffef7d80e.tar.gz
chromium_src-36d6abffa95c4ea211d0028c3be07adffef7d80e.tar.bz2
cc: Remove ScopedPtrDeque.
This patch removes ScopedPtrDeque and replaces it with a deque of scoped_ptrs. Note that this also adds a helper container_util file that contains TakeBack and TakeFront helpers. R=danakj CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1441613002 Cr-Commit-Position: refs/heads/master@{#359724}
Diffstat (limited to 'cc/raster')
-rw-r--r--cc/raster/one_copy_tile_task_worker_pool.cc47
-rw-r--r--cc/raster/one_copy_tile_task_worker_pool.h4
-rw-r--r--cc/raster/task_graph_runner_unittest.cc9
3 files changed, 32 insertions, 28 deletions
diff --git a/cc/raster/one_copy_tile_task_worker_pool.cc b/cc/raster/one_copy_tile_task_worker_pool.cc
index 5e31746..5aa1aaa 100644
--- a/cc/raster/one_copy_tile_task_worker_pool.cc
+++ b/cc/raster/one_copy_tile_task_worker_pool.cc
@@ -12,6 +12,7 @@
#include "base/trace_event/memory_dump_manager.h"
#include "base/trace_event/trace_event.h"
#include "base/trace_event/trace_event_argument.h"
+#include "cc/base/container_util.h"
#include "cc/base/math_util.h"
#include "cc/debug/traced_value.h"
#include "cc/raster/raster_buffer.h"
@@ -613,8 +614,8 @@ OneCopyTileTaskWorkerPool::AcquireStagingBuffer(const Resource* resource,
if (!CheckForQueryResult(gl, busy_buffers_.front()->query_id))
break;
- MarkStagingBufferAsFree(busy_buffers_.front());
- free_buffers_.push_back(busy_buffers_.take_front());
+ MarkStagingBufferAsFree(busy_buffers_.front().get());
+ free_buffers_.push_back(PopFront(&busy_buffers_));
}
}
@@ -628,14 +629,14 @@ OneCopyTileTaskWorkerPool::AcquireStagingBuffer(const Resource* resource,
if (resource_provider_->use_sync_query()) {
WaitForQueryResult(gl, busy_buffers_.front()->query_id);
- MarkStagingBufferAsFree(busy_buffers_.front());
- free_buffers_.push_back(busy_buffers_.take_front());
+ MarkStagingBufferAsFree(busy_buffers_.front().get());
+ free_buffers_.push_back(PopFront(&busy_buffers_));
} else {
// Fall-back to glFinish if CHROMIUM_sync_query is not available.
gl->Finish();
while (!busy_buffers_.empty()) {
- MarkStagingBufferAsFree(busy_buffers_.front());
- free_buffers_.push_back(busy_buffers_.take_front());
+ MarkStagingBufferAsFree(busy_buffers_.front().get());
+ free_buffers_.push_back(PopFront(&busy_buffers_));
}
}
}
@@ -643,13 +644,14 @@ OneCopyTileTaskWorkerPool::AcquireStagingBuffer(const Resource* resource,
// Find a staging buffer that allows us to perform partial raster when
// using persistent GpuMemoryBuffers.
if (use_partial_raster_ && previous_content_id) {
- StagingBufferDeque::iterator it =
- std::find_if(free_buffers_.begin(), free_buffers_.end(),
- [previous_content_id](const StagingBuffer* buffer) {
- return buffer->content_id == previous_content_id;
- });
+ StagingBufferDeque::iterator it = std::find_if(
+ free_buffers_.begin(), free_buffers_.end(),
+ [previous_content_id](const scoped_ptr<StagingBuffer>& buffer) {
+ return buffer->content_id == previous_content_id;
+ });
if (it != free_buffers_.end()) {
- staging_buffer = free_buffers_.take(it);
+ staging_buffer = it->Pass();
+ free_buffers_.erase(it);
MarkStagingBufferAsBusy(staging_buffer.get());
}
}
@@ -658,12 +660,13 @@ OneCopyTileTaskWorkerPool::AcquireStagingBuffer(const Resource* resource,
if (!staging_buffer) {
StagingBufferDeque::iterator it =
std::find_if(free_buffers_.begin(), free_buffers_.end(),
- [resource](const StagingBuffer* buffer) {
+ [resource](const scoped_ptr<StagingBuffer>& buffer) {
return buffer->size == resource->size() &&
buffer->format == resource->format();
});
if (it != free_buffers_.end()) {
- staging_buffer = free_buffers_.take(it);
+ staging_buffer = it->Pass();
+ free_buffers_.erase(it);
MarkStagingBufferAsBusy(staging_buffer.get());
}
}
@@ -681,9 +684,9 @@ OneCopyTileTaskWorkerPool::AcquireStagingBuffer(const Resource* resource,
break;
free_buffers_.front()->DestroyGLResources(gl);
- MarkStagingBufferAsBusy(free_buffers_.front());
- RemoveStagingBuffer(free_buffers_.front());
- free_buffers_.take_front();
+ MarkStagingBufferAsBusy(free_buffers_.front().get());
+ RemoveStagingBuffer(free_buffers_.front().get());
+ free_buffers_.pop_front();
}
return staging_buffer.Pass();
@@ -763,9 +766,9 @@ void OneCopyTileTaskWorkerPool::ReleaseBuffersNotUsedSince(
return;
free_buffers_.front()->DestroyGLResources(gl);
- MarkStagingBufferAsBusy(free_buffers_.front());
- RemoveStagingBuffer(free_buffers_.front());
- free_buffers_.take_front();
+ MarkStagingBufferAsBusy(free_buffers_.front().get());
+ RemoveStagingBuffer(free_buffers_.front().get());
+ free_buffers_.pop_front();
}
while (!busy_buffers_.empty()) {
@@ -773,8 +776,8 @@ void OneCopyTileTaskWorkerPool::ReleaseBuffersNotUsedSince(
return;
busy_buffers_.front()->DestroyGLResources(gl);
- RemoveStagingBuffer(busy_buffers_.front());
- busy_buffers_.take_front();
+ RemoveStagingBuffer(busy_buffers_.front().get());
+ busy_buffers_.pop_front();
}
}
}
diff --git a/cc/raster/one_copy_tile_task_worker_pool.h b/cc/raster/one_copy_tile_task_worker_pool.h
index a582c4e..08445b0 100644
--- a/cc/raster/one_copy_tile_task_worker_pool.h
+++ b/cc/raster/one_copy_tile_task_worker_pool.h
@@ -5,6 +5,7 @@
#ifndef CC_RASTER_ONE_COPY_TILE_TASK_WORKER_POOL_H_
#define CC_RASTER_ONE_COPY_TILE_TASK_WORKER_POOL_H_
+#include <deque>
#include <set>
#include "base/memory/weak_ptr.h"
@@ -12,7 +13,6 @@
#include "base/time/time.h"
#include "base/trace_event/memory_dump_provider.h"
#include "base/values.h"
-#include "cc/base/scoped_ptr_deque.h"
#include "cc/output/context_provider.h"
#include "cc/raster/tile_task_runner.h"
#include "cc/raster/tile_task_worker_pool.h"
@@ -152,7 +152,7 @@ class CC_EXPORT OneCopyTileTaskWorkerPool
// |lock_| must be acquired when accessing the following members.
using StagingBufferSet = std::set<const StagingBuffer*>;
StagingBufferSet buffers_;
- using StagingBufferDeque = ScopedPtrDeque<StagingBuffer>;
+ using StagingBufferDeque = std::deque<scoped_ptr<StagingBuffer>>;
StagingBufferDeque free_buffers_;
StagingBufferDeque busy_buffers_;
int bytes_scheduled_since_last_flush_;
diff --git a/cc/raster/task_graph_runner_unittest.cc b/cc/raster/task_graph_runner_unittest.cc
index eb9b6d9..31144e7 100644
--- a/cc/raster/task_graph_runner_unittest.cc
+++ b/cc/raster/task_graph_runner_unittest.cc
@@ -4,12 +4,13 @@
#include "cc/raster/task_graph_runner.h"
+#include <deque>
#include <vector>
#include "base/bind.h"
#include "base/synchronization/lock.h"
#include "base/threading/simple_thread.h"
-#include "cc/base/scoped_ptr_deque.h"
+#include "cc/base/container_util.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace cc {
@@ -181,8 +182,8 @@ class TaskGraphRunnerTest : public TaskGraphRunnerTestBase,
}
void TearDown() override {
task_graph_runner_->Shutdown();
- while (workers_.size()) {
- scoped_ptr<base::DelegateSimpleThread> worker = workers_.take_front();
+ while (!workers_.empty()) {
+ scoped_ptr<base::DelegateSimpleThread> worker = PopFront(&workers_);
worker->Join();
}
}
@@ -191,7 +192,7 @@ class TaskGraphRunnerTest : public TaskGraphRunnerTestBase,
// Overridden from base::DelegateSimpleThread::Delegate:
void Run() override { task_graph_runner_->Run(); }
- ScopedPtrDeque<base::DelegateSimpleThread> workers_;
+ std::deque<scoped_ptr<base::DelegateSimpleThread>> workers_;
};
TEST_P(TaskGraphRunnerTest, Basic) {