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

Unified Diff: cc/resources/raster_worker_pool_perftest.cc

Issue 236313006: cc: Add initial GPU-to-GPU copy rasterizer implementation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address review feedback Created 6 years, 8 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
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 f99c29396e5fab163377d87be6ef87e9820e512e..da2405e0216b0c3d4e9a9788529293d11dd68c5f 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
};
@@ -157,6 +160,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,
@@ -197,6 +202,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_;
};
@@ -221,6 +227,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(),
@@ -364,6 +377,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");
}
@@ -405,6 +420,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,

Powered by Google App Engine
This is Rietveld 408576698