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

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

Issue 2449853004: Getting rid of DelegatedFrameData (Closed)
Patch Set: nit 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"
9 #include "cc/quads/surface_draw_quad.h" 8 #include "cc/quads/surface_draw_quad.h"
10 #include "cc/quads/texture_draw_quad.h" 9 #include "cc/quads/texture_draw_quad.h"
11 #include "cc/surfaces/surface_aggregator.h" 10 #include "cc/surfaces/surface_aggregator.h"
12 #include "cc/surfaces/surface_factory.h" 11 #include "cc/surfaces/surface_factory.h"
13 #include "cc/surfaces/surface_factory_client.h" 12 #include "cc/surfaces/surface_factory_client.h"
14 #include "cc/surfaces/surface_manager.h" 13 #include "cc/surfaces/surface_manager.h"
15 #include "cc/test/fake_output_surface_client.h" 14 #include "cc/test/fake_output_surface_client.h"
16 #include "cc/test/fake_resource_provider.h" 15 #include "cc/test/fake_resource_provider.h"
17 #include "cc/test/test_context_provider.h" 16 #include "cc/test/test_context_provider.h"
18 #include "cc/test/test_shared_bitmap_manager.h" 17 #include "cc/test/test_shared_bitmap_manager.h"
(...skipping 30 matching lines...) Expand all
49 float opacity, 48 float opacity,
50 bool optimize_damage, 49 bool optimize_damage,
51 bool full_damage, 50 bool full_damage,
52 const std::string& name) { 51 const std::string& name) {
53 aggregator_.reset(new SurfaceAggregator(&manager_, resource_provider_.get(), 52 aggregator_.reset(new SurfaceAggregator(&manager_, resource_provider_.get(),
54 optimize_damage)); 53 optimize_damage));
55 for (int i = 1; i <= num_surfaces; i++) { 54 for (int i = 1; i <= num_surfaces; i++) {
56 LocalFrameId local_frame_id(i, kArbitraryToken); 55 LocalFrameId local_frame_id(i, kArbitraryToken);
57 factory_.Create(local_frame_id); 56 factory_.Create(local_frame_id);
58 std::unique_ptr<RenderPass> pass(RenderPass::Create()); 57 std::unique_ptr<RenderPass> pass(RenderPass::Create());
59 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData); 58 CompositorFrame frame;
60 59
61 SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState(); 60 SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState();
62 for (int j = 0; j < num_textures; j++) { 61 for (int j = 0; j < num_textures; j++) {
63 TransferableResource resource; 62 TransferableResource resource;
64 resource.id = j; 63 resource.id = j;
65 resource.is_software = true; 64 resource.is_software = true;
66 frame_data->resource_list.push_back(resource); 65 frame.resource_list.push_back(resource);
67 66
68 TextureDrawQuad* quad = 67 TextureDrawQuad* quad =
69 pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); 68 pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
70 const gfx::Rect rect(0, 0, 1, 1); 69 const gfx::Rect rect(0, 0, 1, 1);
71 const gfx::Rect opaque_rect; 70 const gfx::Rect opaque_rect;
72 // Half of rects should be visible with partial damage. 71 // Half of rects should be visible with partial damage.
73 gfx::Rect visible_rect = 72 gfx::Rect visible_rect =
74 j % 2 == 0 ? gfx::Rect(0, 0, 1, 1) : gfx::Rect(1, 1, 1, 1); 73 j % 2 == 0 ? gfx::Rect(0, 0, 1, 1) : gfx::Rect(1, 1, 1, 1);
75 bool needs_blending = false; 74 bool needs_blending = false;
76 bool premultiplied_alpha = false; 75 bool premultiplied_alpha = false;
(...skipping 11 matching lines...) Expand all
88 sqs = pass->CreateAndAppendSharedQuadState(); 87 sqs = pass->CreateAndAppendSharedQuadState();
89 sqs->opacity = opacity; 88 sqs->opacity = opacity;
90 if (i > 1) { 89 if (i > 1) {
91 SurfaceDrawQuad* surface_quad = 90 SurfaceDrawQuad* surface_quad =
92 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); 91 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>();
93 surface_quad->SetNew(sqs, gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1), 92 surface_quad->SetNew(sqs, gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1),
94 SurfaceId(kArbitraryFrameSinkId, 93 SurfaceId(kArbitraryFrameSinkId,
95 LocalFrameId(i - 1, kArbitraryToken))); 94 LocalFrameId(i - 1, kArbitraryToken)));
96 } 95 }
97 96
98 frame_data->render_pass_list.push_back(std::move(pass)); 97 frame.render_pass_list.push_back(std::move(pass));
99 CompositorFrame frame;
100 frame.delegated_frame_data = std::move(frame_data);
101 factory_.SubmitCompositorFrame(local_frame_id, std::move(frame), 98 factory_.SubmitCompositorFrame(local_frame_id, std::move(frame),
102 SurfaceFactory::DrawCallback()); 99 SurfaceFactory::DrawCallback());
103 } 100 }
104 101
105 factory_.Create(LocalFrameId(num_surfaces + 1, kArbitraryToken)); 102 factory_.Create(LocalFrameId(num_surfaces + 1, kArbitraryToken));
106 timer_.Reset(); 103 timer_.Reset();
107 do { 104 do {
108 std::unique_ptr<RenderPass> pass(RenderPass::Create()); 105 std::unique_ptr<RenderPass> pass(RenderPass::Create());
109 std::unique_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData); 106 CompositorFrame frame;
110 107
111 SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState(); 108 SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState();
112 SurfaceDrawQuad* surface_quad = 109 SurfaceDrawQuad* surface_quad =
113 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>(); 110 pass->CreateAndAppendDrawQuad<SurfaceDrawQuad>();
114 surface_quad->SetNew( 111 surface_quad->SetNew(
115 sqs, gfx::Rect(0, 0, 100, 100), gfx::Rect(0, 0, 100, 100), 112 sqs, gfx::Rect(0, 0, 100, 100), gfx::Rect(0, 0, 100, 100),
116 SurfaceId(kArbitraryFrameSinkId, 113 SurfaceId(kArbitraryFrameSinkId,
117 LocalFrameId(num_surfaces, kArbitraryToken))); 114 LocalFrameId(num_surfaces, kArbitraryToken)));
118 115
119 if (full_damage) 116 if (full_damage)
120 pass->damage_rect = gfx::Rect(0, 0, 100, 100); 117 pass->damage_rect = gfx::Rect(0, 0, 100, 100);
121 else 118 else
122 pass->damage_rect = gfx::Rect(0, 0, 1, 1); 119 pass->damage_rect = gfx::Rect(0, 0, 1, 1);
123 120
124 frame_data->render_pass_list.push_back(std::move(pass)); 121 frame.render_pass_list.push_back(std::move(pass));
125 CompositorFrame frame;
126 frame.delegated_frame_data = std::move(frame_data);
127 factory_.SubmitCompositorFrame( 122 factory_.SubmitCompositorFrame(
128 LocalFrameId(num_surfaces + 1, kArbitraryToken), std::move(frame), 123 LocalFrameId(num_surfaces + 1, kArbitraryToken), std::move(frame),
129 SurfaceFactory::DrawCallback()); 124 SurfaceFactory::DrawCallback());
130 125
131 CompositorFrame aggregated = aggregator_->Aggregate( 126 CompositorFrame aggregated = aggregator_->Aggregate(
132 SurfaceId(kArbitraryFrameSinkId, 127 SurfaceId(kArbitraryFrameSinkId,
133 LocalFrameId(num_surfaces + 1, kArbitraryToken))); 128 LocalFrameId(num_surfaces + 1, kArbitraryToken)));
134 timer_.NextLap(); 129 timer_.NextLap();
135 } while (!timer_.HasTimeLimitExpired()); 130 } while (!timer_.HasTimeLimitExpired());
136 131
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 TEST_F(SurfaceAggregatorPerfTest, FewSurfacesDamageCalc) { 171 TEST_F(SurfaceAggregatorPerfTest, FewSurfacesDamageCalc) {
177 RunTest(3, 1000, 1.f, true, true, "few_surfaces_damage_calc"); 172 RunTest(3, 1000, 1.f, true, true, "few_surfaces_damage_calc");
178 } 173 }
179 174
180 TEST_F(SurfaceAggregatorPerfTest, FewSurfacesAggregateDamaged) { 175 TEST_F(SurfaceAggregatorPerfTest, FewSurfacesAggregateDamaged) {
181 RunTest(3, 1000, 1.f, true, false, "few_surfaces_aggregate_damaged"); 176 RunTest(3, 1000, 1.f, true, false, "few_surfaces_aggregate_damaged");
182 } 177 }
183 178
184 } // namespace 179 } // namespace
185 } // namespace cc 180 } // 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