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

Side by Side Diff: cc/layers/tiled_layer_impl_unittest.cc

Issue 448303002: Use custom ListContainer to allocate DrawQuads (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@perftest
Patch Set: fix rebase Created 6 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 "cc/layers/tiled_layer_impl.h" 5 #include "cc/layers/tiled_layer_impl.h"
6 6
7 #include "cc/layers/append_quads_data.h" 7 #include "cc/layers/append_quads_data.h"
8 #include "cc/quads/tile_draw_quad.h" 8 #include "cc/quads/tile_draw_quad.h"
9 #include "cc/resources/layer_tiling_data.h" 9 #include "cc/resources/layer_tiling_data.h"
10 #include "cc/test/fake_impl_proxy.h" 10 #include "cc/test/fake_impl_proxy.h"
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 // No checkerboarding 165 // No checkerboarding
166 { 166 {
167 MockOcclusionTracker<LayerImpl> occlusion_tracker; 167 MockOcclusionTracker<LayerImpl> occlusion_tracker;
168 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 168 scoped_ptr<RenderPass> render_pass = RenderPass::Create();
169 169
170 AppendQuadsData data; 170 AppendQuadsData data;
171 layer->AppendQuads(render_pass.get(), occlusion_tracker, &data); 171 layer->AppendQuads(render_pass.get(), occlusion_tracker, &data);
172 EXPECT_EQ(render_pass->quad_list.size(), 4u); 172 EXPECT_EQ(render_pass->quad_list.size(), 4u);
173 EXPECT_EQ(0u, data.num_missing_tiles); 173 EXPECT_EQ(0u, data.num_missing_tiles);
174 174
175 for (size_t i = 0; i < render_pass->quad_list.size(); ++i) 175 for (QuadList::Iterator iter = render_pass->quad_list.begin();
176 EXPECT_EQ(render_pass->quad_list[i]->material, DrawQuad::TILED_CONTENT); 176 iter != render_pass->quad_list.end();
177 ++iter)
178 EXPECT_EQ(iter->material, DrawQuad::TILED_CONTENT);
177 } 179 }
178 180
179 for (int i = 0; i < num_tiles_x; ++i) 181 for (int i = 0; i < num_tiles_x; ++i)
180 for (int j = 0; j < num_tiles_y; ++j) 182 for (int j = 0; j < num_tiles_y; ++j)
181 layer->PushTileProperties(i, j, 0, gfx::Rect(), false); 183 layer->PushTileProperties(i, j, 0, gfx::Rect(), false);
182 184
183 // All checkerboarding 185 // All checkerboarding
184 { 186 {
185 MockOcclusionTracker<LayerImpl> occlusion_tracker; 187 MockOcclusionTracker<LayerImpl> occlusion_tracker;
186 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 188 scoped_ptr<RenderPass> render_pass = RenderPass::Create();
187 189
188 AppendQuadsData data; 190 AppendQuadsData data;
189 layer->AppendQuads(render_pass.get(), occlusion_tracker, &data); 191 layer->AppendQuads(render_pass.get(), occlusion_tracker, &data);
190 EXPECT_LT(0u, data.num_missing_tiles); 192 EXPECT_LT(0u, data.num_missing_tiles);
191 EXPECT_EQ(render_pass->quad_list.size(), 4u); 193 EXPECT_EQ(render_pass->quad_list.size(), 4u);
192 for (size_t i = 0; i < render_pass->quad_list.size(); ++i) 194 for (QuadList::Iterator iter = render_pass->quad_list.begin();
193 EXPECT_NE(render_pass->quad_list[i]->material, DrawQuad::TILED_CONTENT); 195 iter != render_pass->quad_list.end();
196 ++iter)
197 EXPECT_NE(iter->material, DrawQuad::TILED_CONTENT);
194 } 198 }
195 } 199 }
196 200
197 // Test with both border texels and without. 201 // Test with both border texels and without.
198 #define WITH_AND_WITHOUT_BORDER_TEST(text_fixture_name) \ 202 #define WITH_AND_WITHOUT_BORDER_TEST(text_fixture_name) \
199 TEST_F(TiledLayerImplBorderTest, text_fixture_name##NoBorders) { \ 203 TEST_F(TiledLayerImplBorderTest, text_fixture_name##NoBorders) { \
200 text_fixture_name(LayerTilingData::NO_BORDER_TEXELS); \ 204 text_fixture_name(LayerTilingData::NO_BORDER_TEXELS); \
201 } \ 205 } \
202 TEST_F(TiledLayerImplBorderTest, text_fixture_name##HasBorders) { \ 206 TEST_F(TiledLayerImplBorderTest, text_fixture_name##HasBorders) { \
203 text_fixture_name(LayerTilingData::HAS_BORDER_TEXELS); \ 207 text_fixture_name(LayerTilingData::HAS_BORDER_TEXELS); \
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 TEST_F(TiledLayerImplTest, TextureInfoForLayerNoBorders) { 263 TEST_F(TiledLayerImplTest, TextureInfoForLayerNoBorders) {
260 gfx::Size tile_size(50, 50); 264 gfx::Size tile_size(50, 50);
261 gfx::Size layer_size(250, 250); 265 gfx::Size layer_size(250, 250);
262 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 266 scoped_ptr<RenderPass> render_pass = RenderPass::Create();
263 GetQuads(render_pass.get(), 267 GetQuads(render_pass.get(),
264 tile_size, 268 tile_size,
265 layer_size, 269 layer_size,
266 LayerTilingData::NO_BORDER_TEXELS, 270 LayerTilingData::NO_BORDER_TEXELS,
267 gfx::Rect(layer_size)); 271 gfx::Rect(layer_size));
268 272
269 for (size_t i = 0; i < render_pass->quad_list.size(); ++i) { 273 size_t i = 0;
270 const TileDrawQuad* quad = 274 for (QuadList::Iterator iter = render_pass->quad_list.begin();
271 TileDrawQuad::MaterialCast(render_pass->quad_list[i]); 275 iter != render_pass->quad_list.end();
276 ++iter) {
277 const TileDrawQuad* quad = TileDrawQuad::MaterialCast(&*iter);
272 278
273 EXPECT_NE(0u, quad->resource_id) << LayerTestCommon::quad_string << i; 279 EXPECT_NE(0u, quad->resource_id) << LayerTestCommon::quad_string << i;
274 EXPECT_EQ(gfx::RectF(gfx::PointF(), tile_size), quad->tex_coord_rect) 280 EXPECT_EQ(gfx::RectF(gfx::PointF(), tile_size), quad->tex_coord_rect)
275 << LayerTestCommon::quad_string << i; 281 << LayerTestCommon::quad_string << i;
276 EXPECT_EQ(tile_size, quad->texture_size) << LayerTestCommon::quad_string 282 EXPECT_EQ(tile_size, quad->texture_size) << LayerTestCommon::quad_string
277 << i; 283 << i;
278 EXPECT_EQ(gfx::Size(1, 1).ToString(), quad->opaque_rect.size().ToString()) 284 EXPECT_EQ(gfx::Size(1, 1).ToString(), quad->opaque_rect.size().ToString())
279 << LayerTestCommon::quad_string << i; 285 << LayerTestCommon::quad_string << i;
286 ++i;
280 } 287 }
281 } 288 }
282 289
283 TEST_F(TiledLayerImplTest, GPUMemoryUsage) { 290 TEST_F(TiledLayerImplTest, GPUMemoryUsage) {
284 gfx::Size tile_size(20, 30); 291 gfx::Size tile_size(20, 30);
285 int num_tiles_x = 12; 292 int num_tiles_x = 12;
286 int num_tiles_y = 32; 293 int num_tiles_y = 32;
287 gfx::Size layer_size(tile_size.width() * num_tiles_x, 294 gfx::Size layer_size(tile_size.width() * num_tiles_x,
288 tile_size.height() * num_tiles_y); 295 tile_size.height() * num_tiles_y);
289 296
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 occluded, 384 occluded,
378 &partially_occluded_count); 385 &partially_occluded_count);
379 // The layer outputs one quad, which is partially occluded. 386 // The layer outputs one quad, which is partially occluded.
380 EXPECT_EQ(100u - 10u, impl.quad_list().size()); 387 EXPECT_EQ(100u - 10u, impl.quad_list().size());
381 EXPECT_EQ(10u + 10u, partially_occluded_count); 388 EXPECT_EQ(10u + 10u, partially_occluded_count);
382 } 389 }
383 } 390 }
384 391
385 } // namespace 392 } // namespace
386 } // namespace cc 393 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698