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

Side by Side Diff: cc/surfaces/surface_aggregator_perftest.cc

Issue 2503203002: Revert "Getting rid of DelegatedFrameData" (Closed)
Patch Set: Created 4 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « cc/surfaces/surface_aggregator.cc ('k') | cc/surfaces/surface_aggregator_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/memory/ptr_util.h" 5 #include "base/memory/ptr_util.h"
6 #include "cc/debug/lap_timer.h" 6 #include "cc/debug/lap_timer.h"
7 #include "cc/output/compositor_frame.h" 7 #include "cc/output/compositor_frame.h"
8 #include "cc/output/delegated_frame_data.h"
8 #include "cc/quads/surface_draw_quad.h" 9 #include "cc/quads/surface_draw_quad.h"
9 #include "cc/quads/texture_draw_quad.h" 10 #include "cc/quads/texture_draw_quad.h"
10 #include "cc/surfaces/surface_aggregator.h" 11 #include "cc/surfaces/surface_aggregator.h"
11 #include "cc/surfaces/surface_factory.h" 12 #include "cc/surfaces/surface_factory.h"
12 #include "cc/surfaces/surface_factory_client.h" 13 #include "cc/surfaces/surface_factory_client.h"
13 #include "cc/surfaces/surface_manager.h" 14 #include "cc/surfaces/surface_manager.h"
14 #include "cc/test/fake_output_surface_client.h" 15 #include "cc/test/fake_output_surface_client.h"
15 #include "cc/test/fake_resource_provider.h" 16 #include "cc/test/fake_resource_provider.h"
16 #include "cc/test/test_context_provider.h" 17 #include "cc/test/test_context_provider.h"
17 #include "cc/test/test_shared_bitmap_manager.h" 18 #include "cc/test/test_shared_bitmap_manager.h"
(...skipping 30 matching lines...) Expand all
48 float opacity, 49 float opacity,
49 bool optimize_damage, 50 bool optimize_damage,
50 bool full_damage, 51 bool full_damage,
51 const std::string& name) { 52 const std::string& name) {
52 aggregator_.reset(new SurfaceAggregator(&manager_, resource_provider_.get(), 53 aggregator_.reset(new SurfaceAggregator(&manager_, resource_provider_.get(),
53 optimize_damage)); 54 optimize_damage));
54 for (int i = 1; i <= num_surfaces; i++) { 55 for (int i = 1; i <= num_surfaces; i++) {
55 LocalFrameId local_frame_id(i, kArbitraryToken); 56 LocalFrameId local_frame_id(i, kArbitraryToken);
56 factory_.Create(local_frame_id); 57 factory_.Create(local_frame_id);
57 std::unique_ptr<RenderPass> pass(RenderPass::Create()); 58 std::unique_ptr<RenderPass> pass(RenderPass::Create());
58 CompositorFrame frame; 59 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
59 60
60 SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState(); 61 SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState();
61 for (int j = 0; j < num_textures; j++) { 62 for (int j = 0; j < num_textures; j++) {
62 TransferableResource resource; 63 TransferableResource resource;
63 resource.id = j; 64 resource.id = j;
64 resource.is_software = true; 65 resource.is_software = true;
65 frame.resource_list.push_back(resource); 66 frame_data->resource_list.push_back(resource);
66 67
67 TextureDrawQuad* quad = 68 TextureDrawQuad* quad =
68 pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); 69 pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
69 const gfx::Rect rect(0, 0, 1, 1); 70 const gfx::Rect rect(0, 0, 1, 1);
70 const gfx::Rect opaque_rect; 71 const gfx::Rect opaque_rect;
71 // Half of rects should be visible with partial damage. 72 // Half of rects should be visible with partial damage.
72 gfx::Rect visible_rect = 73 gfx::Rect visible_rect =
73 j % 2 == 0 ? gfx::Rect(0, 0, 1, 1) : gfx::Rect(1, 1, 1, 1); 74 j % 2 == 0 ? gfx::Rect(0, 0, 1, 1) : gfx::Rect(1, 1, 1, 1);
74 bool needs_blending = false; 75 bool needs_blending = false;
75 bool premultiplied_alpha = false; 76 bool premultiplied_alpha = false;
(...skipping 11 matching lines...) Expand all
87 sqs = pass->CreateAndAppendSharedQuadState(); 88 sqs = pass->CreateAndAppendSharedQuadState();
88 sqs->opacity = opacity; 89 sqs->opacity = opacity;
89 if (i > 1) { 90 if (i > 1) {
90 SurfaceDrawQuad* surface_quad = 91 SurfaceDrawQuad* surface_quad =
91 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); 92 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>();
92 surface_quad->SetNew(sqs, gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1), 93 surface_quad->SetNew(sqs, gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1),
93 SurfaceId(kArbitraryFrameSinkId, 94 SurfaceId(kArbitraryFrameSinkId,
94 LocalFrameId(i - 1, kArbitraryToken))); 95 LocalFrameId(i - 1, kArbitraryToken)));
95 } 96 }
96 97
97 frame.render_pass_list.push_back(std::move(pass)); 98 frame_data->render_pass_list.push_back(std::move(pass));
99 CompositorFrame frame;
100 frame.delegated_frame_data = std::move(frame_data);
98 factory_.SubmitCompositorFrame(local_frame_id, std::move(frame), 101 factory_.SubmitCompositorFrame(local_frame_id, std::move(frame),
99 SurfaceFactory::DrawCallback()); 102 SurfaceFactory::DrawCallback());
100 } 103 }
101 104
102 factory_.Create(LocalFrameId(num_surfaces + 1, kArbitraryToken)); 105 factory_.Create(LocalFrameId(num_surfaces + 1, kArbitraryToken));
103 timer_.Reset(); 106 timer_.Reset();
104 do { 107 do {
105 std::unique_ptr<RenderPass> pass(RenderPass::Create()); 108 std::unique_ptr<RenderPass> pass(RenderPass::Create());
106 CompositorFrame frame; 109 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
107 110
108 SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState(); 111 SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState();
109 SurfaceDrawQuad* surface_quad = 112 SurfaceDrawQuad* surface_quad =
110 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); 113 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>();
111 surface_quad->SetNew( 114 surface_quad->SetNew(
112 sqs, gfx::Rect(0, 0, 100, 100), gfx::Rect(0, 0, 100, 100), 115 sqs, gfx::Rect(0, 0, 100, 100), gfx::Rect(0, 0, 100, 100),
113 SurfaceId(kArbitraryFrameSinkId, 116 SurfaceId(kArbitraryFrameSinkId,
114 LocalFrameId(num_surfaces, kArbitraryToken))); 117 LocalFrameId(num_surfaces, kArbitraryToken)));
115 118
116 if (full_damage) 119 if (full_damage)
117 pass->damage_rect = gfx::Rect(0, 0, 100, 100); 120 pass->damage_rect = gfx::Rect(0, 0, 100, 100);
118 else 121 else
119 pass->damage_rect = gfx::Rect(0, 0, 1, 1); 122 pass->damage_rect = gfx::Rect(0, 0, 1, 1);
120 123
121 frame.render_pass_list.push_back(std::move(pass)); 124 frame_data->render_pass_list.push_back(std::move(pass));
125 CompositorFrame frame;
126 frame.delegated_frame_data = std::move(frame_data);
122 factory_.SubmitCompositorFrame( 127 factory_.SubmitCompositorFrame(
123 LocalFrameId(num_surfaces + 1, kArbitraryToken), std::move(frame), 128 LocalFrameId(num_surfaces + 1, kArbitraryToken), std::move(frame),
124 SurfaceFactory::DrawCallback()); 129 SurfaceFactory::DrawCallback());
125 130
126 CompositorFrame aggregated = aggregator_->Aggregate( 131 CompositorFrame aggregated = aggregator_->Aggregate(
127 SurfaceId(kArbitraryFrameSinkId, 132 SurfaceId(kArbitraryFrameSinkId,
128 LocalFrameId(num_surfaces + 1, kArbitraryToken))); 133 LocalFrameId(num_surfaces + 1, kArbitraryToken)));
129 timer_.NextLap(); 134 timer_.NextLap();
130 } while (!timer_.HasTimeLimitExpired()); 135 } while (!timer_.HasTimeLimitExpired());
131 136
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 TEST_F(SurfaceAggregatorPerfTest, FewSurfacesDamageCalc) { 176 TEST_F(SurfaceAggregatorPerfTest, FewSurfacesDamageCalc) {
172 RunTest(3, 1000, 1.f, true, true, "few_surfaces_damage_calc"); 177 RunTest(3, 1000, 1.f, true, true, "few_surfaces_damage_calc");
173 } 178 }
174 179
175 TEST_F(SurfaceAggregatorPerfTest, FewSurfacesAggregateDamaged) { 180 TEST_F(SurfaceAggregatorPerfTest, FewSurfacesAggregateDamaged) {
176 RunTest(3, 1000, 1.f, true, false, "few_surfaces_aggregate_damaged"); 181 RunTest(3, 1000, 1.f, true, false, "few_surfaces_aggregate_damaged");
177 } 182 }
178 183
179 } // namespace 184 } // namespace
180 } // namespace cc 185 } // namespace cc
OLDNEW
« no previous file with comments | « cc/surfaces/surface_aggregator.cc ('k') | cc/surfaces/surface_aggregator_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698