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

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

Issue 2480533002: Don't free non-tile resources on GPU rasterization toggle (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/layers/picture_layer_impl.cc ('k') | cc/layers/texture_layer_impl_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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/picture_layer_impl.h" 5 #include "cc/layers/picture_layer_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <limits> 10 #include <limits>
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 animating_transform); 225 animating_transform);
226 226
227 SetupDrawPropertiesAndUpdateTiles( 227 SetupDrawPropertiesAndUpdateTiles(
228 active_layer(), contents_scale, device_scale_factor, page_scale_factor, 228 active_layer(), contents_scale, device_scale_factor, page_scale_factor,
229 maximum_animation_contents_scale, starting_animation_contents_scale, 229 maximum_animation_contents_scale, starting_animation_contents_scale,
230 animating_transform); 230 animating_transform);
231 } 231 }
232 232
233 void ResetTilingsAndRasterScales() { 233 void ResetTilingsAndRasterScales() {
234 if (pending_layer()) { 234 if (pending_layer()) {
235 pending_layer()->ReleaseResources(); 235 pending_layer()->ReleaseTileResources();
236 EXPECT_FALSE(pending_layer()->tilings()); 236 EXPECT_FALSE(pending_layer()->tilings());
237 pending_layer()->RecreateResources(); 237 pending_layer()->RecreateTileResources();
238 EXPECT_EQ(0u, pending_layer()->tilings()->num_tilings()); 238 EXPECT_EQ(0u, pending_layer()->tilings()->num_tilings());
239 } 239 }
240 240
241 if (active_layer()) { 241 if (active_layer()) {
242 active_layer()->ReleaseResources(); 242 active_layer()->ReleaseTileResources();
243 EXPECT_FALSE(active_layer()->tilings()); 243 EXPECT_FALSE(active_layer()->tilings());
244 active_layer()->RecreateResources(); 244 active_layer()->RecreateTileResources();
245 EXPECT_EQ(0u, active_layer()->tilings()->num_tilings()); 245 EXPECT_EQ(0u, active_layer()->tilings()->num_tilings());
246 } 246 }
247 } 247 }
248 248
249 size_t NumberOfTilesRequired(PictureLayerTiling* tiling) { 249 size_t NumberOfTilesRequired(PictureLayerTiling* tiling) {
250 size_t num_required = 0; 250 size_t num_required = 0;
251 std::vector<Tile*> tiles = tiling->AllTilesForTesting(); 251 std::vector<Tile*> tiles = tiling->AllTilesForTesting();
252 for (size_t i = 0; i < tiles.size(); ++i) { 252 for (size_t i = 0; i < tiles.size(); ++i) {
253 if (tiles[i]->required_for_activation()) 253 if (tiles[i]->required_for_activation())
254 num_required++; 254 num_required++;
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
582 } 582 }
583 } 583 }
584 584
585 TEST_F(PictureLayerImplTest, UpdateTilesCreatesTilings) { 585 TEST_F(PictureLayerImplTest, UpdateTilesCreatesTilings) {
586 gfx::Size layer_bounds(1300, 1900); 586 gfx::Size layer_bounds(1300, 1900);
587 SetupDefaultTrees(layer_bounds); 587 SetupDefaultTrees(layer_bounds);
588 588
589 float low_res_factor = host_impl()->settings().low_res_contents_scale_factor; 589 float low_res_factor = host_impl()->settings().low_res_contents_scale_factor;
590 EXPECT_LT(low_res_factor, 1.f); 590 EXPECT_LT(low_res_factor, 1.f);
591 591
592 active_layer()->ReleaseResources(); 592 active_layer()->ReleaseTileResources();
593 EXPECT_FALSE(active_layer()->tilings()); 593 EXPECT_FALSE(active_layer()->tilings());
594 active_layer()->RecreateResources(); 594 active_layer()->RecreateTileResources();
595 EXPECT_EQ(0u, active_layer()->tilings()->num_tilings()); 595 EXPECT_EQ(0u, active_layer()->tilings()->num_tilings());
596 596
597 SetupDrawPropertiesAndUpdateTiles(active_layer(), 597 SetupDrawPropertiesAndUpdateTiles(active_layer(),
598 6.f, // ideal contents scale 598 6.f, // ideal contents scale
599 3.f, // device scale 599 3.f, // device scale
600 2.f, // page scale 600 2.f, // page scale
601 1.f, // maximum animation scale 601 1.f, // maximum animation scale
602 0.f, // starting animation scale 602 0.f, // starting animation scale
603 false); 603 false);
604 ASSERT_EQ(2u, active_layer()->tilings()->num_tilings()); 604 ASSERT_EQ(2u, active_layer()->tilings()->num_tilings());
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 active_layer()->tilings()->tiling_at(3)->contents_scale()); 651 active_layer()->tilings()->tiling_at(3)->contents_scale());
652 } 652 }
653 653
654 TEST_F(PictureLayerImplTest, PendingLayerOnlyHasHighResTiling) { 654 TEST_F(PictureLayerImplTest, PendingLayerOnlyHasHighResTiling) {
655 gfx::Size layer_bounds(1300, 1900); 655 gfx::Size layer_bounds(1300, 1900);
656 SetupDefaultTrees(layer_bounds); 656 SetupDefaultTrees(layer_bounds);
657 657
658 float low_res_factor = host_impl()->settings().low_res_contents_scale_factor; 658 float low_res_factor = host_impl()->settings().low_res_contents_scale_factor;
659 EXPECT_LT(low_res_factor, 1.f); 659 EXPECT_LT(low_res_factor, 1.f);
660 660
661 pending_layer()->ReleaseResources(); 661 pending_layer()->ReleaseTileResources();
662 EXPECT_FALSE(pending_layer()->tilings()); 662 EXPECT_FALSE(pending_layer()->tilings());
663 pending_layer()->RecreateResources(); 663 pending_layer()->RecreateTileResources();
664 EXPECT_EQ(0u, pending_layer()->tilings()->num_tilings()); 664 EXPECT_EQ(0u, pending_layer()->tilings()->num_tilings());
665 665
666 SetupDrawPropertiesAndUpdateTiles(pending_layer(), 666 SetupDrawPropertiesAndUpdateTiles(pending_layer(),
667 6.f, // ideal contents scale 667 6.f, // ideal contents scale
668 3.f, // device scale 668 3.f, // device scale
669 2.f, // page scale 669 2.f, // page scale
670 1.f, // maximum animation scale 670 1.f, // maximum animation scale
671 0.f, // starting animation scale 671 0.f, // starting animation scale
672 false); 672 false);
673 ASSERT_EQ(1u, pending_layer()->tilings()->num_tilings()); 673 ASSERT_EQ(1u, pending_layer()->tilings()->num_tilings());
(...skipping 533 matching lines...) Expand 10 before | Expand all | Expand 10 after
1207 mask->SetDrawsContent(true); 1207 mask->SetDrawsContent(true);
1208 pending_layer()->test_properties()->SetMaskLayer(std::move(mask)); 1208 pending_layer()->test_properties()->SetMaskLayer(std::move(mask));
1209 pending_layer()->SetHasRenderSurface(true); 1209 pending_layer()->SetHasRenderSurface(true);
1210 RebuildPropertyTreesOnPendingTree(); 1210 RebuildPropertyTreesOnPendingTree();
1211 host_impl()->pending_tree()->UpdateDrawProperties(false); 1211 host_impl()->pending_tree()->UpdateDrawProperties(false);
1212 1212
1213 FakePictureLayerImpl* mask_raw = static_cast<FakePictureLayerImpl*>( 1213 FakePictureLayerImpl* mask_raw = static_cast<FakePictureLayerImpl*>(
1214 pending_layer()->test_properties()->mask_layer); 1214 pending_layer()->test_properties()->mask_layer);
1215 // We did an UpdateDrawProperties above, which will set a contents scale on 1215 // We did an UpdateDrawProperties above, which will set a contents scale on
1216 // the mask layer, so allow us to reset the contents scale. 1216 // the mask layer, so allow us to reset the contents scale.
1217 mask_raw->ReleaseResources(); 1217 mask_raw->ReleaseTileResources();
1218 mask_raw->RecreateResources(); 1218 mask_raw->RecreateTileResources();
1219 1219
1220 SetupDrawPropertiesAndUpdateTiles( 1220 SetupDrawPropertiesAndUpdateTiles(
1221 mask_raw, contents_scale, device_scale, page_scale, 1221 mask_raw, contents_scale, device_scale, page_scale,
1222 maximum_animation_scale, starting_animation_scale, animating_transform); 1222 maximum_animation_scale, starting_animation_scale, animating_transform);
1223 EXPECT_EQ(mask_raw->HighResTiling()->contents_scale(), contents_scale); 1223 EXPECT_EQ(mask_raw->HighResTiling()->contents_scale(), contents_scale);
1224 EXPECT_EQ(mask_raw->num_tilings(), 1u); 1224 EXPECT_EQ(mask_raw->num_tilings(), 1u);
1225 } 1225 }
1226 1226
1227 TEST_F(PictureLayerImplTest, HugeMasksGetScaledDown) { 1227 TEST_F(PictureLayerImplTest, HugeMasksGetScaledDown) {
1228 host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1)); 1228 host_impl()->AdvanceToNextFrame(base::TimeDelta::FromMilliseconds(1));
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1263 // Mask layers have a tiling with a single tile in it. 1263 // Mask layers have a tiling with a single tile in it.
1264 EXPECT_EQ(1u, active_mask->HighResTiling()->AllTilesForTesting().size()); 1264 EXPECT_EQ(1u, active_mask->HighResTiling()->AllTilesForTesting().size());
1265 // The mask resource exists. 1265 // The mask resource exists.
1266 ResourceId mask_resource_id; 1266 ResourceId mask_resource_id;
1267 gfx::Size mask_texture_size; 1267 gfx::Size mask_texture_size;
1268 active_mask->GetContentsResourceId(&mask_resource_id, &mask_texture_size); 1268 active_mask->GetContentsResourceId(&mask_resource_id, &mask_texture_size);
1269 EXPECT_NE(0u, mask_resource_id); 1269 EXPECT_NE(0u, mask_resource_id);
1270 EXPECT_EQ(active_mask->bounds(), mask_texture_size); 1270 EXPECT_EQ(active_mask->bounds(), mask_texture_size);
1271 1271
1272 // Drop resources and recreate them, still the same. 1272 // Drop resources and recreate them, still the same.
1273 pending_mask->ReleaseResources(); 1273 pending_mask->ReleaseTileResources();
1274 active_mask->ReleaseResources(); 1274 active_mask->ReleaseTileResources();
1275 pending_mask->RecreateResources(); 1275 pending_mask->RecreateTileResources();
1276 active_mask->RecreateResources(); 1276 active_mask->RecreateTileResources();
1277 SetupDrawPropertiesAndUpdateTiles(active_mask, 1.f, 1.f, 1.f, 1.f, 0.f, 1277 SetupDrawPropertiesAndUpdateTiles(active_mask, 1.f, 1.f, 1.f, 1.f, 0.f,
1278 false); 1278 false);
1279 active_mask->HighResTiling()->CreateAllTilesForTesting(); 1279 active_mask->HighResTiling()->CreateAllTilesForTesting();
1280 EXPECT_EQ(1u, active_mask->HighResTiling()->AllTilesForTesting().size()); 1280 EXPECT_EQ(1u, active_mask->HighResTiling()->AllTilesForTesting().size());
1281 EXPECT_NE(0u, mask_resource_id); 1281 EXPECT_NE(0u, mask_resource_id);
1282 EXPECT_EQ(active_mask->bounds(), mask_texture_size); 1282 EXPECT_EQ(active_mask->bounds(), mask_texture_size);
1283 1283
1284 // Resize larger than the max texture size. 1284 // Resize larger than the max texture size.
1285 int max_texture_size = host_impl()->resource_provider()->max_texture_size(); 1285 int max_texture_size = host_impl()->resource_provider()->max_texture_size();
1286 gfx::Size huge_bounds(max_texture_size + 1, 10); 1286 gfx::Size huge_bounds(max_texture_size + 1, 10);
(...skipping 19 matching lines...) Expand all
1306 // Mask layers have a tiling with a single tile in it. 1306 // Mask layers have a tiling with a single tile in it.
1307 EXPECT_EQ(1u, active_mask->HighResTiling()->AllTilesForTesting().size()); 1307 EXPECT_EQ(1u, active_mask->HighResTiling()->AllTilesForTesting().size());
1308 // The mask resource exists. 1308 // The mask resource exists.
1309 active_mask->GetContentsResourceId(&mask_resource_id, &mask_texture_size); 1309 active_mask->GetContentsResourceId(&mask_resource_id, &mask_texture_size);
1310 EXPECT_NE(0u, mask_resource_id); 1310 EXPECT_NE(0u, mask_resource_id);
1311 gfx::Size expected_size = active_mask->bounds(); 1311 gfx::Size expected_size = active_mask->bounds();
1312 expected_size.SetToMin(gfx::Size(max_texture_size, max_texture_size)); 1312 expected_size.SetToMin(gfx::Size(max_texture_size, max_texture_size));
1313 EXPECT_EQ(expected_size, mask_texture_size); 1313 EXPECT_EQ(expected_size, mask_texture_size);
1314 1314
1315 // Drop resources and recreate them, still the same. 1315 // Drop resources and recreate them, still the same.
1316 pending_mask->ReleaseResources(); 1316 pending_mask->ReleaseTileResources();
1317 active_mask->ReleaseResources(); 1317 active_mask->ReleaseTileResources();
1318 pending_mask->RecreateResources(); 1318 pending_mask->RecreateTileResources();
1319 active_mask->RecreateResources(); 1319 active_mask->RecreateTileResources();
1320 SetupDrawPropertiesAndUpdateTiles(active_mask, 1.f, 1.f, 1.f, 1.f, 0.f, 1320 SetupDrawPropertiesAndUpdateTiles(active_mask, 1.f, 1.f, 1.f, 1.f, 0.f,
1321 false); 1321 false);
1322 active_mask->HighResTiling()->CreateAllTilesForTesting(); 1322 active_mask->HighResTiling()->CreateAllTilesForTesting();
1323 EXPECT_EQ(1u, active_mask->HighResTiling()->AllTilesForTesting().size()); 1323 EXPECT_EQ(1u, active_mask->HighResTiling()->AllTilesForTesting().size());
1324 EXPECT_NE(0u, mask_resource_id); 1324 EXPECT_NE(0u, mask_resource_id);
1325 EXPECT_EQ(expected_size, mask_texture_size); 1325 EXPECT_EQ(expected_size, mask_texture_size);
1326 1326
1327 // Do another activate, the same holds. 1327 // Do another activate, the same holds.
1328 SetupPendingTree(huge_raster_source); 1328 SetupPendingTree(huge_raster_source);
1329 ActivateTree(); 1329 ActivateTree();
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
1395 // The mask resource exists. 1395 // The mask resource exists.
1396 ResourceId mask_resource_id; 1396 ResourceId mask_resource_id;
1397 gfx::Size mask_texture_size; 1397 gfx::Size mask_texture_size;
1398 active_mask->GetContentsResourceId(&mask_resource_id, &mask_texture_size); 1398 active_mask->GetContentsResourceId(&mask_resource_id, &mask_texture_size);
1399 EXPECT_NE(0u, mask_resource_id); 1399 EXPECT_NE(0u, mask_resource_id);
1400 gfx::Size expected_mask_texture_size = 1400 gfx::Size expected_mask_texture_size =
1401 gfx::ScaleToCeiledSize(active_mask->bounds(), 1.3f); 1401 gfx::ScaleToCeiledSize(active_mask->bounds(), 1.3f);
1402 EXPECT_EQ(mask_texture_size, expected_mask_texture_size); 1402 EXPECT_EQ(mask_texture_size, expected_mask_texture_size);
1403 } 1403 }
1404 1404
1405 TEST_F(PictureLayerImplTest, ReleaseResources) { 1405 TEST_F(PictureLayerImplTest, ReleaseTileResources) {
1406 gfx::Size layer_bounds(1300, 1900); 1406 gfx::Size layer_bounds(1300, 1900);
1407 SetupDefaultTrees(layer_bounds); 1407 SetupDefaultTrees(layer_bounds);
1408 EXPECT_EQ(1u, pending_layer()->tilings()->num_tilings()); 1408 EXPECT_EQ(1u, pending_layer()->tilings()->num_tilings());
1409 1409
1410 // All tilings should be removed when losing output surface. 1410 // All tilings should be removed when losing output surface.
1411 active_layer()->ReleaseResources(); 1411 active_layer()->ReleaseTileResources();
1412 EXPECT_FALSE(active_layer()->tilings()); 1412 EXPECT_FALSE(active_layer()->tilings());
1413 active_layer()->RecreateResources(); 1413 active_layer()->RecreateTileResources();
1414 EXPECT_EQ(0u, active_layer()->tilings()->num_tilings()); 1414 EXPECT_EQ(0u, active_layer()->tilings()->num_tilings());
1415 pending_layer()->ReleaseResources(); 1415 pending_layer()->ReleaseTileResources();
1416 EXPECT_FALSE(pending_layer()->tilings()); 1416 EXPECT_FALSE(pending_layer()->tilings());
1417 pending_layer()->RecreateResources(); 1417 pending_layer()->RecreateTileResources();
1418 EXPECT_EQ(0u, pending_layer()->tilings()->num_tilings()); 1418 EXPECT_EQ(0u, pending_layer()->tilings()->num_tilings());
1419 1419
1420 // This should create new tilings. 1420 // This should create new tilings.
1421 SetupDrawPropertiesAndUpdateTiles(pending_layer(), 1421 SetupDrawPropertiesAndUpdateTiles(pending_layer(),
1422 1.f, // ideal contents scale 1422 1.f, // ideal contents scale
1423 1.f, // device scale 1423 1.f, // device scale
1424 1.f, // page scale 1424 1.f, // page scale
1425 1.f, // maximum animation scale 1425 1.f, // maximum animation scale
1426 0.f, // starting animation_scale 1426 0.f, // starting animation_scale
1427 false); 1427 false);
1428 EXPECT_EQ(1u, pending_layer()->tilings()->num_tilings()); 1428 EXPECT_EQ(1u, pending_layer()->tilings()->num_tilings());
1429 } 1429 }
1430 1430
1431 // ReleaseResources should behave identically to ReleaseTileResources.
1432 TEST_F(PictureLayerImplTest, ReleaseResources) {
1433 gfx::Size layer_bounds(1300, 1900);
1434 SetupDefaultTrees(layer_bounds);
1435 EXPECT_EQ(1u, pending_layer()->tilings()->num_tilings());
1436
1437 // All tilings should be removed when losing output surface.
1438 active_layer()->ReleaseResources();
1439 EXPECT_FALSE(active_layer()->tilings());
1440 active_layer()->RecreateTileResources();
1441 EXPECT_EQ(0u, active_layer()->tilings()->num_tilings());
1442 pending_layer()->ReleaseResources();
1443 EXPECT_FALSE(pending_layer()->tilings());
1444 pending_layer()->RecreateTileResources();
1445 EXPECT_EQ(0u, pending_layer()->tilings()->num_tilings());
1446 }
1447
1431 TEST_F(PictureLayerImplTest, ClampTilesToMaxTileSize) { 1448 TEST_F(PictureLayerImplTest, ClampTilesToMaxTileSize) {
1432 gfx::Size layer_bounds(5000, 5000); 1449 gfx::Size layer_bounds(5000, 5000);
1433 1450
1434 scoped_refptr<FakeRasterSource> pending_raster_source = 1451 scoped_refptr<FakeRasterSource> pending_raster_source =
1435 FakeRasterSource::CreateFilled(layer_bounds); 1452 FakeRasterSource::CreateFilled(layer_bounds);
1436 1453
1437 SetupPendingTree(pending_raster_source); 1454 SetupPendingTree(pending_raster_source);
1438 EXPECT_GE(pending_layer()->tilings()->num_tilings(), 1u); 1455 EXPECT_GE(pending_layer()->tilings()->num_tilings(), 1u);
1439 1456
1440 pending_layer()->tilings()->tiling_at(0)->CreateAllTilesForTesting(); 1457 pending_layer()->tilings()->tiling_at(0)->CreateAllTilesForTesting();
(...skipping 885 matching lines...) Expand 10 before | Expand all | Expand 10 after
2326 scoped_refptr<FakeRasterSource> active_raster_source = 2343 scoped_refptr<FakeRasterSource> active_raster_source =
2327 FakeRasterSource::CreateFilled(layer_bounds); 2344 FakeRasterSource::CreateFilled(layer_bounds);
2328 2345
2329 SetupTrees(pending_raster_source, active_raster_source); 2346 SetupTrees(pending_raster_source, active_raster_source);
2330 2347
2331 EXPECT_TRUE(pending_layer()->tilings()->FindTilingWithScale(1.f)); 2348 EXPECT_TRUE(pending_layer()->tilings()->FindTilingWithScale(1.f));
2332 EXPECT_TRUE(active_layer()->tilings()->FindTilingWithScale(1.f)); 2349 EXPECT_TRUE(active_layer()->tilings()->FindTilingWithScale(1.f));
2333 2350
2334 // Gpu rasterization is disabled by default. 2351 // Gpu rasterization is disabled by default.
2335 EXPECT_FALSE(host_impl()->use_gpu_rasterization()); 2352 EXPECT_FALSE(host_impl()->use_gpu_rasterization());
2353 EXPECT_EQ(0u, pending_layer()->release_tile_resources_count());
2354 EXPECT_EQ(0u, active_layer()->release_tile_resources_count());
2336 EXPECT_EQ(0u, pending_layer()->release_resources_count()); 2355 EXPECT_EQ(0u, pending_layer()->release_resources_count());
2337 EXPECT_EQ(0u, active_layer()->release_resources_count()); 2356 EXPECT_EQ(0u, active_layer()->release_resources_count());
2338 // Toggling the gpu rasterization clears all tilings on both trees. 2357 // Toggling the gpu rasterization clears all tilings on both trees.
2339 host_impl()->SetHasGpuRasterizationTrigger(true); 2358 host_impl()->SetHasGpuRasterizationTrigger(true);
2340 host_impl()->SetContentIsSuitableForGpuRasterization(true); 2359 host_impl()->SetContentIsSuitableForGpuRasterization(true);
2341 host_impl()->CommitComplete(); 2360 host_impl()->CommitComplete();
2361 EXPECT_EQ(1u, pending_layer()->release_tile_resources_count());
2362 EXPECT_EQ(1u, active_layer()->release_tile_resources_count());
2342 EXPECT_EQ(1u, pending_layer()->release_resources_count()); 2363 EXPECT_EQ(1u, pending_layer()->release_resources_count());
2343 EXPECT_EQ(1u, active_layer()->release_resources_count()); 2364 EXPECT_EQ(1u, active_layer()->release_resources_count());
2344 2365
2345 // But the pending layer gets a tiling back, and can activate it. 2366 // But the pending layer gets a tiling back, and can activate it.
2346 EXPECT_TRUE(pending_layer()->tilings()->FindTilingWithScale(1.f)); 2367 EXPECT_TRUE(pending_layer()->tilings()->FindTilingWithScale(1.f));
2347 EXPECT_EQ(0u, active_layer()->tilings()->num_tilings()); 2368 EXPECT_EQ(0u, active_layer()->tilings()->num_tilings());
2348 2369
2349 ActivateTree(); 2370 ActivateTree();
2350 EXPECT_TRUE(active_layer()->tilings()->FindTilingWithScale(1.f)); 2371 EXPECT_TRUE(active_layer()->tilings()->FindTilingWithScale(1.f));
2351 2372
2352 SetupPendingTree(pending_raster_source); 2373 SetupPendingTree(pending_raster_source);
2353 EXPECT_TRUE(pending_layer()->tilings()->FindTilingWithScale(1.f)); 2374 EXPECT_TRUE(pending_layer()->tilings()->FindTilingWithScale(1.f));
2354 2375
2355 // Toggling the gpu rasterization clears all tilings on both trees. 2376 // Toggling the gpu rasterization clears all tilings on both trees.
2356 EXPECT_TRUE(host_impl()->use_gpu_rasterization()); 2377 EXPECT_TRUE(host_impl()->use_gpu_rasterization());
2357 host_impl()->SetHasGpuRasterizationTrigger(false); 2378 host_impl()->SetHasGpuRasterizationTrigger(false);
2358 host_impl()->CommitComplete(); 2379 host_impl()->CommitComplete();
2359 EXPECT_EQ(GpuRasterizationStatus::OFF_VIEWPORT, 2380 EXPECT_EQ(GpuRasterizationStatus::OFF_VIEWPORT,
2360 host_impl()->gpu_rasterization_status()); 2381 host_impl()->gpu_rasterization_status());
2382 EXPECT_EQ(2u, pending_layer()->release_tile_resources_count());
2383 EXPECT_EQ(2u, active_layer()->release_tile_resources_count());
2361 EXPECT_EQ(2u, pending_layer()->release_resources_count()); 2384 EXPECT_EQ(2u, pending_layer()->release_resources_count());
2362 EXPECT_EQ(2u, active_layer()->release_resources_count()); 2385 EXPECT_EQ(2u, active_layer()->release_resources_count());
2363 2386
2364 host_impl()->SetHasGpuRasterizationTrigger(true); 2387 host_impl()->SetHasGpuRasterizationTrigger(true);
2365 host_impl()->SetContentIsSuitableForGpuRasterization(false); 2388 host_impl()->SetContentIsSuitableForGpuRasterization(false);
2366 host_impl()->CommitComplete(); 2389 host_impl()->CommitComplete();
2367 EXPECT_EQ(GpuRasterizationStatus::OFF_CONTENT, 2390 EXPECT_EQ(GpuRasterizationStatus::OFF_CONTENT,
2368 host_impl()->gpu_rasterization_status()); 2391 host_impl()->gpu_rasterization_status());
2369 } 2392 }
2370 2393
(...skipping 1142 matching lines...) Expand 10 before | Expand all | Expand 10 after
3513 active_layer()->CleanUpTilingsOnActiveLayer(used_tilings); 3536 active_layer()->CleanUpTilingsOnActiveLayer(used_tilings);
3514 ASSERT_EQ(2u, active_layer()->tilings()->num_tilings()); 3537 ASSERT_EQ(2u, active_layer()->tilings()->num_tilings());
3515 3538
3516 // If we remove it from our used tilings set, it is outside the range to keep 3539 // If we remove it from our used tilings set, it is outside the range to keep
3517 // so it is deleted. 3540 // so it is deleted.
3518 used_tilings.clear(); 3541 used_tilings.clear();
3519 active_layer()->CleanUpTilingsOnActiveLayer(used_tilings); 3542 active_layer()->CleanUpTilingsOnActiveLayer(used_tilings);
3520 ASSERT_EQ(1u, active_layer()->tilings()->num_tilings()); 3543 ASSERT_EQ(1u, active_layer()->tilings()->num_tilings());
3521 } 3544 }
3522 3545
3523 TEST_F(NoLowResPictureLayerImplTest, ReleaseResources) { 3546 TEST_F(NoLowResPictureLayerImplTest, ReleaseTileResources) {
3524 gfx::Size layer_bounds(1300, 1900); 3547 gfx::Size layer_bounds(1300, 1900);
3525 SetupDefaultTrees(layer_bounds); 3548 SetupDefaultTrees(layer_bounds);
3526 EXPECT_EQ(1u, pending_layer()->tilings()->num_tilings()); 3549 EXPECT_EQ(1u, pending_layer()->tilings()->num_tilings());
3527 EXPECT_EQ(1u, active_layer()->tilings()->num_tilings()); 3550 EXPECT_EQ(1u, active_layer()->tilings()->num_tilings());
3528 3551
3529 // All tilings should be removed when losing output surface. 3552 // All tilings should be removed when losing output surface.
3530 active_layer()->ReleaseResources(); 3553 active_layer()->ReleaseTileResources();
3531 EXPECT_FALSE(active_layer()->tilings()); 3554 EXPECT_FALSE(active_layer()->tilings());
3532 active_layer()->RecreateResources(); 3555 active_layer()->RecreateTileResources();
3533 EXPECT_EQ(0u, active_layer()->tilings()->num_tilings()); 3556 EXPECT_EQ(0u, active_layer()->tilings()->num_tilings());
3534 pending_layer()->ReleaseResources(); 3557 pending_layer()->ReleaseTileResources();
3535 EXPECT_FALSE(pending_layer()->tilings()); 3558 EXPECT_FALSE(pending_layer()->tilings());
3536 pending_layer()->RecreateResources(); 3559 pending_layer()->RecreateTileResources();
3537 EXPECT_EQ(0u, pending_layer()->tilings()->num_tilings()); 3560 EXPECT_EQ(0u, pending_layer()->tilings()->num_tilings());
3538 3561
3539 // This should create new tilings. 3562 // This should create new tilings.
3540 SetupDrawPropertiesAndUpdateTiles(pending_layer(), 3563 SetupDrawPropertiesAndUpdateTiles(pending_layer(),
3541 1.3f, // ideal contents scale 3564 1.3f, // ideal contents scale
3542 2.7f, // device scale 3565 2.7f, // device scale
3543 3.2f, // page scale 3566 3.2f, // page scale
3544 1.f, // maximum animation scale 3567 1.f, // maximum animation scale
3545 0.f, // starting animation scale 3568 0.f, // starting animation scale
3546 false); 3569 false);
(...skipping 1425 matching lines...) Expand 10 before | Expand all | Expand 10 after
4972 EXPECT_FLOAT_EQ(expected_contents_scale, 4995 EXPECT_FLOAT_EQ(expected_contents_scale,
4973 pending_layer_ptr->picture_layer_tiling_set() 4996 pending_layer_ptr->picture_layer_tiling_set()
4974 ->FindTilingWithResolution(HIGH_RESOLUTION) 4997 ->FindTilingWithResolution(HIGH_RESOLUTION)
4975 ->contents_scale()) 4998 ->contents_scale())
4976 << "ideal_contents_scale: " << ideal_contents_scale; 4999 << "ideal_contents_scale: " << ideal_contents_scale;
4977 } 5000 }
4978 } 5001 }
4979 5002
4980 } // namespace 5003 } // namespace
4981 } // namespace cc 5004 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/picture_layer_impl.cc ('k') | cc/layers/texture_layer_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698