Index: cc/resources/raster_worker_pool_perftest.cc |
diff --git a/cc/resources/raster_worker_pool_perftest.cc b/cc/resources/raster_worker_pool_perftest.cc |
index 8c33d172705674aa0b6ee00bcfcf399626f4c2ed..9f04436ac42a14d30e65a8225630fee096d994c5 100644 |
--- a/cc/resources/raster_worker_pool_perftest.cc |
+++ b/cc/resources/raster_worker_pool_perftest.cc |
@@ -7,9 +7,11 @@ |
#include "base/time/time.h" |
#include "cc/output/context_provider.h" |
#include "cc/resources/direct_raster_worker_pool.h" |
+#include "cc/resources/image_copy_raster_worker_pool.h" |
#include "cc/resources/image_raster_worker_pool.h" |
#include "cc/resources/pixel_buffer_raster_worker_pool.h" |
#include "cc/resources/rasterizer.h" |
+#include "cc/resources/resource_pool.h" |
#include "cc/resources/resource_provider.h" |
#include "cc/resources/scoped_resource.h" |
#include "cc/test/fake_output_surface.h" |
@@ -74,6 +76,7 @@ class PerfContextProvider : public ContextProvider { |
enum RasterWorkerPoolType { |
RASTER_WORKER_POOL_TYPE_PIXEL_BUFFER, |
RASTER_WORKER_POOL_TYPE_IMAGE, |
+ RASTER_WORKER_POOL_TYPE_IMAGE_COPY, |
RASTER_WORKER_POOL_TYPE_DIRECT |
}; |
@@ -155,6 +158,8 @@ class RasterWorkerPoolPerfTestBase { |
ResourceProvider::Create( |
output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1) |
.Pass(); |
+ staging_resource_pool_ = ResourcePool::Create( |
+ resource_provider_.get(), GL_TEXTURE_2D, RGBA_8888); |
} |
void CreateImageDecodeTasks(unsigned num_image_decode_tasks, |
@@ -195,6 +200,7 @@ class RasterWorkerPoolPerfTestBase { |
scoped_ptr<FakeOutputSurface> output_surface_; |
scoped_ptr<SharedBitmapManager> shared_bitmap_manager_; |
scoped_ptr<ResourceProvider> resource_provider_; |
+ scoped_ptr<ResourcePool> staging_resource_pool_; |
scoped_ptr<TaskGraphRunner> task_graph_runner_; |
LapTimer timer_; |
}; |
@@ -219,6 +225,13 @@ class RasterWorkerPoolPerfTest |
task_graph_runner_.get(), |
resource_provider_.get()); |
break; |
+ case RASTER_WORKER_POOL_TYPE_IMAGE_COPY: |
+ raster_worker_pool_ = ImageCopyRasterWorkerPool::Create( |
+ base::MessageLoopProxy::current().get(), |
+ task_graph_runner_.get(), |
+ resource_provider_.get(), |
+ staging_resource_pool_.get()); |
+ break; |
case RASTER_WORKER_POOL_TYPE_DIRECT: |
raster_worker_pool_ = DirectRasterWorkerPool::Create( |
base::MessageLoopProxy::current().get(), |
@@ -362,6 +375,8 @@ class RasterWorkerPoolPerfTest |
return std::string("_pixel_raster_worker_pool"); |
case RASTER_WORKER_POOL_TYPE_IMAGE: |
return std::string("_image_raster_worker_pool"); |
+ case RASTER_WORKER_POOL_TYPE_IMAGE_COPY: |
+ return std::string("_image_copy_raster_worker_pool"); |
case RASTER_WORKER_POOL_TYPE_DIRECT: |
return std::string("_direct_raster_worker_pool"); |
} |
@@ -403,6 +418,7 @@ INSTANTIATE_TEST_CASE_P(RasterWorkerPoolPerfTests, |
RasterWorkerPoolPerfTest, |
::testing::Values(RASTER_WORKER_POOL_TYPE_PIXEL_BUFFER, |
RASTER_WORKER_POOL_TYPE_IMAGE, |
+ RASTER_WORKER_POOL_TYPE_IMAGE_COPY, |
RASTER_WORKER_POOL_TYPE_DIRECT)); |
class RasterWorkerPoolCommonPerfTest : public RasterWorkerPoolPerfTestBase, |