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

Unified Diff: cc/ipc/cc_serialization_perftest.cc

Issue 2190943002: cc serialization perf: Add a couple more tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed Ali's comment Created 4 years, 5 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/ipc/cc_serialization_perftest.cc
diff --git a/cc/ipc/cc_serialization_perftest.cc b/cc/ipc/cc_serialization_perftest.cc
index 9cfa3761836b8b300d9d0e8353c59f5caf603b4a..30d7835a1cc4198be9a3c84717abdece2f27a150 100644
--- a/cc/ipc/cc_serialization_perftest.cc
+++ b/cc/ipc/cc_serialization_perftest.cc
@@ -35,6 +35,8 @@ static const int kTimeLimitMillis = 2000;
static const int kNumWarmupRuns = 20;
static const int kTimeCheckInterval = 10;
+enum class UseSingleSharedQuadState { YES, NO };
+
class CCSerializationPerfTest : public testing::Test {
protected:
static bool ReadMessage(const IPC::Message* msg, CompositorFrame* frame) {
@@ -179,6 +181,33 @@ class CCSerializationPerfTest : public testing::Test {
"", test_name, count, "", true);
}
+ static void RunCompositorFrameTest(const std::string& test_name,
+ uint32_t num_quads,
+ uint32_t num_passes,
+ UseSingleSharedQuadState single_sqs) {
+ CompositorFrame frame;
+ frame.delegated_frame_data.reset(new DelegatedFrameData);
+
+ for (uint32_t i = 0; i < num_passes; ++i) {
+ std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
+ render_pass->SetNew(RenderPassId(1, 1), gfx::Rect(), gfx::Rect(),
+ gfx::Transform());
+ for (uint32_t j = 0; j < num_quads; ++j) {
+ if (j == 0 || single_sqs == UseSingleSharedQuadState::NO)
+ render_pass->CreateAndAppendSharedQuadState();
+ const gfx::Rect bounds(100, 100, 100, 100);
+ const bool kForceAntiAliasingOff = true;
+ SolidColorDrawQuad* quad =
+ render_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
+ quad->SetNew(render_pass->shared_quad_state_list.back(), bounds, bounds,
+ SK_ColorRED, kForceAntiAliasingOff);
+ }
+ frame.delegated_frame_data->render_pass_list.push_back(
+ std::move(render_pass));
+ }
+ RunTest(test_name, std::move(frame));
+ }
+
static void RunTest(const std::string& test_name, CompositorFrame frame) {
RunSerializationTestStructTraits(test_name, frame);
RunDeserializationTestStructTraits(test_name, frame);
@@ -188,119 +217,38 @@ class CCSerializationPerfTest : public testing::Test {
};
TEST_F(CCSerializationPerfTest, DelegatedFrame_ManyQuads_1_4000) {
- CompositorFrame frame;
-
- std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
- render_pass->SetNew(RenderPassId(1, 1), gfx::Rect(), gfx::Rect(),
- gfx::Transform());
- render_pass->CreateAndAppendSharedQuadState();
- for (int i = 0; i < 4000; ++i) {
- const gfx::Rect bounds(100, 100, 100, 100);
- const bool kForceAntiAliasingOff = true;
- SolidColorDrawQuad* quad =
- render_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
- quad->SetNew(render_pass->shared_quad_state_list.back(), bounds, bounds,
- SK_ColorRED, kForceAntiAliasingOff);
- }
-
- frame.delegated_frame_data.reset(new DelegatedFrameData);
- frame.delegated_frame_data->render_pass_list.push_back(
- std::move(render_pass));
-
- RunTest("DelegatedFrame_ManyQuads_1_4000", std::move(frame));
+ RunCompositorFrameTest("DelegatedFrame_ManyQuads_1_4000", 4000, 1,
+ UseSingleSharedQuadState::YES);
}
TEST_F(CCSerializationPerfTest, DelegatedFrame_ManyQuads_1_100000) {
- CompositorFrame frame;
-
- std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
- render_pass->SetNew(RenderPassId(1, 1), gfx::Rect(), gfx::Rect(),
- gfx::Transform());
- render_pass->CreateAndAppendSharedQuadState();
- for (int i = 0; i < 100000; ++i) {
- const gfx::Rect bounds(100, 100, 100, 100);
- const bool kForceAntiAliasingOff = true;
- SolidColorDrawQuad* quad =
- render_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
- quad->SetNew(render_pass->shared_quad_state_list.back(), bounds, bounds,
- SK_ColorRED, kForceAntiAliasingOff);
- }
-
- frame.delegated_frame_data.reset(new DelegatedFrameData);
- frame.delegated_frame_data->render_pass_list.push_back(
- std::move(render_pass));
-
- RunTest("DelegatedFrame_ManyQuads_1_100000", std::move(frame));
+ RunCompositorFrameTest("DelegatedFrame_ManyQuads_1_100000", 100000, 1,
+ UseSingleSharedQuadState::YES);
}
TEST_F(CCSerializationPerfTest, DelegatedFrame_ManyQuads_4000_4000) {
- CompositorFrame frame;
-
- std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
- render_pass->SetNew(RenderPassId(1, 1), gfx::Rect(), gfx::Rect(),
- gfx::Transform());
- for (int i = 0; i < 4000; ++i) {
- const gfx::Rect bounds(100, 100, 100, 100);
- const bool kForceAntiAliasingOff = true;
- render_pass->CreateAndAppendSharedQuadState();
- SolidColorDrawQuad* quad =
- render_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
- quad->SetNew(render_pass->shared_quad_state_list.back(), bounds, bounds,
- SK_ColorRED, kForceAntiAliasingOff);
- }
-
- frame.delegated_frame_data.reset(new DelegatedFrameData);
- frame.delegated_frame_data->render_pass_list.push_back(
- std::move(render_pass));
-
- RunTest("DelegatedFrame_ManyQuads_4000_4000", std::move(frame));
+ RunCompositorFrameTest("DelegatedFrame_ManyQuads_4000_4000", 4000, 1,
+ UseSingleSharedQuadState::NO);
}
TEST_F(CCSerializationPerfTest, DelegatedFrame_ManyQuads_100000_100000) {
- CompositorFrame frame;
-
- std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
- render_pass->SetNew(RenderPassId(1, 1), gfx::Rect(), gfx::Rect(),
- gfx::Transform());
- for (int i = 0; i < 100000; ++i) {
- render_pass->CreateAndAppendSharedQuadState();
- const gfx::Rect bounds(100, 100, 100, 100);
- const bool kForceAntiAliasingOff = true;
- SolidColorDrawQuad* quad =
- render_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
- quad->SetNew(render_pass->shared_quad_state_list.back(), bounds, bounds,
- SK_ColorRED, kForceAntiAliasingOff);
- }
-
- frame.delegated_frame_data.reset(new DelegatedFrameData);
- frame.delegated_frame_data->render_pass_list.push_back(
- std::move(render_pass));
+ RunCompositorFrameTest("DelegatedFrame_ManyQuads_100000_100000", 100000, 1,
+ UseSingleSharedQuadState::NO);
+}
- RunTest("DelegatedFrame_ManyQuads_100000_100000", std::move(frame));
+TEST_F(CCSerializationPerfTest, DelegatedFrame_ManyRenderPasses_5_100) {
+ RunCompositorFrameTest("DelegatedFrame_ManyRenderPasses_5_100", 100, 5,
+ UseSingleSharedQuadState::NO);
}
-TEST_F(CCSerializationPerfTest, DelegatedFrame_ManyRenderPasses_10000_100) {
- CompositorFrame frame;
- frame.delegated_frame_data.reset(new DelegatedFrameData);
-
- for (int i = 0; i < 1000; ++i) {
- std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
- render_pass->SetNew(RenderPassId(1, 1), gfx::Rect(), gfx::Rect(),
- gfx::Transform());
- for (int j = 0; j < 100; ++j) {
- render_pass->CreateAndAppendSharedQuadState();
- const gfx::Rect bounds(100, 100, 100, 100);
- const bool kForceAntiAliasingOff = true;
- SolidColorDrawQuad* quad =
- render_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
- quad->SetNew(render_pass->shared_quad_state_list.back(), bounds, bounds,
- SK_ColorRED, kForceAntiAliasingOff);
- }
- frame.delegated_frame_data->render_pass_list.push_back(
- std::move(render_pass));
- }
+TEST_F(CCSerializationPerfTest, DelegatedFrame_ManyRenderPasses_10_500) {
+ RunCompositorFrameTest("DelegatedFrame_ManyRenderPasses_10_500", 500, 10,
+ UseSingleSharedQuadState::NO);
+}
- RunTest("DelegatedFrame_ManyRenderPasses_10000_100", std::move(frame));
+TEST_F(CCSerializationPerfTest, DelegatedFrame_ManyRenderPasses_1000_100) {
+ RunCompositorFrameTest("DelegatedFrame_ManyRenderPasses_10000_100", 100, 1000,
+ UseSingleSharedQuadState::NO);
}
} // namespace
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698