| Index: cc/layers/tiled_layer_unittest.cc
|
| diff --git a/cc/layers/tiled_layer_unittest.cc b/cc/layers/tiled_layer_unittest.cc
|
| index f784a52ae3fcc33410f8f7f502b22336dbabfee6..0e5d4a286a2434bc9d46d2d52508f691998f4aa0 100644
|
| --- a/cc/layers/tiled_layer_unittest.cc
|
| +++ b/cc/layers/tiled_layer_unittest.cc
|
| @@ -8,7 +8,6 @@
|
| #include <vector>
|
|
|
| #include "base/run_loop.h"
|
| -#include "cc/debug/overdraw_metrics.h"
|
| #include "cc/resources/bitmap_content_layer_updater.h"
|
| #include "cc/resources/layer_painter.h"
|
| #include "cc/resources/prioritized_resource_manager.h"
|
| @@ -33,7 +32,7 @@ namespace {
|
|
|
| class TestOcclusionTracker : public OcclusionTracker<Layer> {
|
| public:
|
| - TestOcclusionTracker() : OcclusionTracker(gfx::Rect(0, 0, 1000, 1000), true) {
|
| + TestOcclusionTracker() : OcclusionTracker(gfx::Rect(0, 0, 1000, 1000)) {
|
| stack_.push_back(StackObject());
|
| }
|
|
|
| @@ -301,11 +300,6 @@ TEST_F(TiledLayerTest, PushOccludedDirtyTiles) {
|
| CalcDrawProps(&render_surface_layer_list);
|
| UpdateAndPush(layer, layer_impl);
|
|
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 0, 1);
|
| - EXPECT_NEAR(
|
| - occluded.overdraw_metrics()->pixels_uploaded_translucent(), 20000, 1);
|
| - EXPECT_EQ(0, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| -
|
| // We should have both tiles on the impl side.
|
| EXPECT_TRUE(layer_impl->HasResourceIdForTileAt(0, 0));
|
| EXPECT_TRUE(layer_impl->HasResourceIdForTileAt(0, 1));
|
| @@ -321,12 +315,6 @@ TEST_F(TiledLayerTest, PushOccludedDirtyTiles) {
|
| CalcDrawProps(&render_surface_layer_list);
|
| UpdateAndPush(layer, layer_impl);
|
|
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 0, 1);
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_translucent(),
|
| - 20000 + 2500,
|
| - 1);
|
| - EXPECT_EQ(0, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| -
|
| // We should still have both tiles, as part of the top tile is still
|
| // unoccluded.
|
| EXPECT_TRUE(layer_impl->HasResourceIdForTileAt(0, 0));
|
| @@ -573,10 +561,7 @@ TEST_F(TiledLayerTest, PushIdlePaintedOccludedTiles) {
|
| layer->draw_properties().visible_content_rect = gfx::Rect(0, 0, 100, 100);
|
| UpdateAndPush(layer, layer_impl);
|
|
|
| - // We should have the prepainted tile on the impl side, but culled it during
|
| - // paint.
|
| EXPECT_TRUE(layer_impl->HasResourceIdForTileAt(0, 0));
|
| - EXPECT_EQ(1, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| }
|
|
|
| TEST_F(TiledLayerTest, PushTilesMarkedDirtyDuringPaint) {
|
| @@ -1228,11 +1213,6 @@ TEST_F(TiledLayerTest, TilesPaintedWithOcclusion) {
|
| layer->Update(queue_.get(), &occluded);
|
| EXPECT_EQ(36 - 3, layer->fake_layer_updater()->update_count());
|
|
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 0, 1);
|
| - EXPECT_NEAR(
|
| - occluded.overdraw_metrics()->pixels_uploaded_translucent(), 330000, 1);
|
| - EXPECT_EQ(3, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| -
|
| layer->fake_layer_updater()->ClearUpdateCount();
|
| layer->SetTexturePriorities(priority_calculator_);
|
| resource_manager_->PrioritizeTextures();
|
| @@ -1243,12 +1223,6 @@ TEST_F(TiledLayerTest, TilesPaintedWithOcclusion) {
|
| layer->Update(queue_.get(), &occluded);
|
| EXPECT_EQ(36 - 2, layer->fake_layer_updater()->update_count());
|
|
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 0, 1);
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_translucent(),
|
| - 330000 + 340000,
|
| - 1);
|
| - EXPECT_EQ(3 + 2, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| -
|
| layer->fake_layer_updater()->ClearUpdateCount();
|
| layer->SetTexturePriorities(priority_calculator_);
|
| resource_manager_->PrioritizeTextures();
|
| @@ -1258,12 +1232,6 @@ TEST_F(TiledLayerTest, TilesPaintedWithOcclusion) {
|
| layer->SavePaintProperties();
|
| layer->Update(queue_.get(), &occluded);
|
| EXPECT_EQ(36, layer->fake_layer_updater()->update_count());
|
| -
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 0, 1);
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_translucent(),
|
| - 330000 + 340000 + 360000,
|
| - 1);
|
| - EXPECT_EQ(3 + 2, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| }
|
|
|
| TEST_F(TiledLayerTest, TilesPaintedWithOcclusionAndVisiblityConstraints) {
|
| @@ -1294,11 +1262,6 @@ TEST_F(TiledLayerTest, TilesPaintedWithOcclusionAndVisiblityConstraints) {
|
| layer->Update(queue_.get(), &occluded);
|
| EXPECT_EQ(24 - 3, layer->fake_layer_updater()->update_count());
|
|
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 0, 1);
|
| - EXPECT_NEAR(
|
| - occluded.overdraw_metrics()->pixels_uploaded_translucent(), 210000, 1);
|
| - EXPECT_EQ(3, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| -
|
| layer->fake_layer_updater()->ClearUpdateCount();
|
|
|
| // Now the visible region stops at the edge of the occlusion so the partly
|
| @@ -1313,12 +1276,6 @@ TEST_F(TiledLayerTest, TilesPaintedWithOcclusionAndVisiblityConstraints) {
|
| layer->Update(queue_.get(), &occluded);
|
| EXPECT_EQ(24 - 6, layer->fake_layer_updater()->update_count());
|
|
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 0, 1);
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_translucent(),
|
| - 210000 + 180000,
|
| - 1);
|
| - EXPECT_EQ(3 + 6, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| -
|
| layer->fake_layer_updater()->ClearUpdateCount();
|
|
|
| // Now the visible region is even smaller than the occlusion, it should have
|
| @@ -1332,12 +1289,6 @@ TEST_F(TiledLayerTest, TilesPaintedWithOcclusionAndVisiblityConstraints) {
|
| layer->SavePaintProperties();
|
| layer->Update(queue_.get(), &occluded);
|
| EXPECT_EQ(24 - 6, layer->fake_layer_updater()->update_count());
|
| -
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 0, 1);
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_translucent(),
|
| - 210000 + 180000 + 180000,
|
| - 1);
|
| - EXPECT_EQ(3 + 6 + 6, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| }
|
|
|
| TEST_F(TiledLayerTest, TilesNotPaintedWithoutInvalidation) {
|
| @@ -1364,12 +1315,7 @@ TEST_F(TiledLayerTest, TilesNotPaintedWithoutInvalidation) {
|
| layer->SavePaintProperties();
|
| layer->Update(queue_.get(), &occluded);
|
| EXPECT_EQ(36 - 3, layer->fake_layer_updater()->update_count());
|
| - { UpdateTextures(); }
|
| -
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 0, 1);
|
| - EXPECT_NEAR(
|
| - occluded.overdraw_metrics()->pixels_uploaded_translucent(), 330000, 1);
|
| - EXPECT_EQ(3, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| + UpdateTextures();
|
|
|
| layer->fake_layer_updater()->ClearUpdateCount();
|
| layer->SetTexturePriorities(priority_calculator_);
|
| @@ -1380,11 +1326,6 @@ TEST_F(TiledLayerTest, TilesNotPaintedWithoutInvalidation) {
|
| // now.
|
| layer->Update(queue_.get(), &occluded);
|
| EXPECT_EQ(3, layer->fake_layer_updater()->update_count());
|
| -
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 0, 1);
|
| - EXPECT_NEAR(
|
| - occluded.overdraw_metrics()->pixels_uploaded_translucent(), 330000, 1);
|
| - EXPECT_EQ(6, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| }
|
|
|
| TEST_F(TiledLayerTest, TilesPaintedWithOcclusionAndTransforms) {
|
| @@ -1419,11 +1360,6 @@ TEST_F(TiledLayerTest, TilesPaintedWithOcclusionAndTransforms) {
|
| layer->SavePaintProperties();
|
| layer->Update(queue_.get(), &occluded);
|
| EXPECT_EQ(36 - 3, layer->fake_layer_updater()->update_count());
|
| -
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 0, 1);
|
| - EXPECT_NEAR(
|
| - occluded.overdraw_metrics()->pixels_uploaded_translucent(), 330000, 1);
|
| - EXPECT_EQ(3, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| }
|
|
|
| TEST_F(TiledLayerTest, TilesPaintedWithOcclusionAndScaling) {
|
| @@ -1469,12 +1405,6 @@ TEST_F(TiledLayerTest, TilesPaintedWithOcclusionAndScaling) {
|
| int visible_tiles1 = 6 * 6;
|
| EXPECT_EQ(visible_tiles1, layer->fake_layer_updater()->update_count());
|
|
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 0, 1);
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_translucent(),
|
| - visible_tiles1 * 100 * 100,
|
| - 1);
|
| - EXPECT_EQ(0, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| -
|
| layer->fake_layer_updater()->ClearUpdateCount();
|
|
|
| // The occlusion of 300x100 will be cover 3 tiles as tiles are 100x100 still.
|
| @@ -1491,13 +1421,6 @@ TEST_F(TiledLayerTest, TilesPaintedWithOcclusionAndScaling) {
|
| int visible_tiles2 = 6 * 6 - 3;
|
| EXPECT_EQ(visible_tiles2, layer->fake_layer_updater()->update_count());
|
|
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 0, 1);
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_translucent(),
|
| - visible_tiles2 * 100 * 100 +
|
| - visible_tiles1 * 100 * 100,
|
| - 1);
|
| - EXPECT_EQ(3, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| -
|
| layer->fake_layer_updater()->ClearUpdateCount();
|
|
|
| // This makes sure content scaling and transforms work together.
|
| @@ -1523,14 +1446,6 @@ TEST_F(TiledLayerTest, TilesPaintedWithOcclusionAndScaling) {
|
| layer->Update(queue_.get(), &occluded);
|
| int visible_tiles3 = 6 * 6 - 6;
|
| EXPECT_EQ(visible_tiles3, layer->fake_layer_updater()->update_count());
|
| -
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 0, 1);
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_translucent(),
|
| - visible_tiles3 * 100 * 100 +
|
| - visible_tiles2 * 100 * 100 +
|
| - visible_tiles1 * 100 * 100,
|
| - 1);
|
| - EXPECT_EQ(6 + 3, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| }
|
|
|
| TEST_F(TiledLayerTest, VisibleContentOpaqueRegion) {
|
| @@ -1568,12 +1483,6 @@ TEST_F(TiledLayerTest, VisibleContentOpaqueRegion) {
|
| opaque_contents = layer->VisibleContentOpaqueRegion();
|
| EXPECT_TRUE(opaque_contents.IsEmpty());
|
|
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_painted(), 20000, 1);
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 0, 1);
|
| - EXPECT_NEAR(
|
| - occluded.overdraw_metrics()->pixels_uploaded_translucent(), 20000, 1);
|
| - EXPECT_EQ(0, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| -
|
| // VisibleContentOpaqueRegion should match the visible part of what is painted
|
| // opaque.
|
| opaque_paint_rect = gfx::Rect(10, 10, 90, 190);
|
| @@ -1588,13 +1497,6 @@ TEST_F(TiledLayerTest, VisibleContentOpaqueRegion) {
|
| EXPECT_EQ(gfx::IntersectRects(opaque_paint_rect, visible_bounds).ToString(),
|
| opaque_contents.ToString());
|
|
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_painted(), 20000 * 2, 1);
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 17100, 1);
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_translucent(),
|
| - 20000 + 20000 - 17100,
|
| - 1);
|
| - EXPECT_EQ(0, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| -
|
| // If we paint again without invalidating, the same stuff should be opaque.
|
| layer->fake_layer_updater()->SetOpaquePaintRect(gfx::Rect());
|
| layer->SetTexturePriorities(priority_calculator_);
|
| @@ -1606,13 +1508,6 @@ TEST_F(TiledLayerTest, VisibleContentOpaqueRegion) {
|
| EXPECT_EQ(gfx::IntersectRects(opaque_paint_rect, visible_bounds).ToString(),
|
| opaque_contents.ToString());
|
|
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_painted(), 20000 * 2, 1);
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 17100, 1);
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_translucent(),
|
| - 20000 + 20000 - 17100,
|
| - 1);
|
| - EXPECT_EQ(0, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| -
|
| // If we repaint a non-opaque part of the tile, then it shouldn't lose its
|
| // opaque-ness. And other tiles should not be affected.
|
| layer->fake_layer_updater()->SetOpaquePaintRect(gfx::Rect());
|
| @@ -1626,13 +1521,6 @@ TEST_F(TiledLayerTest, VisibleContentOpaqueRegion) {
|
| EXPECT_EQ(gfx::IntersectRects(opaque_paint_rect, visible_bounds).ToString(),
|
| opaque_contents.ToString());
|
|
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_painted(), 20000 * 2 + 1, 1);
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 17100, 1);
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_translucent(),
|
| - 20000 + 20000 - 17100 + 1,
|
| - 1);
|
| - EXPECT_EQ(0, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| -
|
| // If we repaint an opaque part of the tile, then it should lose its
|
| // opaque-ness. But other tiles should still not be affected.
|
| layer->fake_layer_updater()->SetOpaquePaintRect(gfx::Rect());
|
| @@ -1646,77 +1534,6 @@ TEST_F(TiledLayerTest, VisibleContentOpaqueRegion) {
|
| EXPECT_EQ(gfx::IntersectRects(gfx::Rect(10, 100, 90, 100),
|
| visible_bounds).ToString(),
|
| opaque_contents.ToString());
|
| -
|
| - EXPECT_NEAR(
|
| - occluded.overdraw_metrics()->pixels_painted(), 20000 * 2 + 1 + 1, 1);
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 17100, 1);
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_translucent(),
|
| - 20000 + 20000 - 17100 + 1 + 1,
|
| - 1);
|
| - EXPECT_EQ(0, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| -}
|
| -
|
| -TEST_F(TiledLayerTest, PixelsPaintedMetrics) {
|
| - scoped_refptr<FakeTiledLayer> layer =
|
| - make_scoped_refptr(new FakeTiledLayer(resource_manager_.get()));
|
| - RenderSurfaceLayerList render_surface_layer_list;
|
| - TestOcclusionTracker occluded;
|
| - occlusion_ = &occluded;
|
| - layer_tree_host_->SetViewportSize(gfx::Size(1000, 1000));
|
| -
|
| - layer_tree_host_->root_layer()->AddChild(layer);
|
| -
|
| - // The tile size is 100x100, so this invalidates and then paints two tiles in
|
| - // various ways.
|
| -
|
| - gfx::Rect opaque_paint_rect;
|
| - Region opaque_contents;
|
| -
|
| - gfx::Rect content_bounds = gfx::Rect(0, 0, 100, 300);
|
| - layer->SetBounds(content_bounds.size());
|
| - CalcDrawProps(&render_surface_layer_list);
|
| -
|
| - // Invalidates and paints the whole layer.
|
| - layer->fake_layer_updater()->SetOpaquePaintRect(gfx::Rect());
|
| - layer->InvalidateContentRect(content_bounds);
|
| - layer->SetTexturePriorities(priority_calculator_);
|
| - resource_manager_->PrioritizeTextures();
|
| - layer->SavePaintProperties();
|
| - layer->Update(queue_.get(), &occluded);
|
| - UpdateTextures();
|
| - opaque_contents = layer->VisibleContentOpaqueRegion();
|
| - EXPECT_TRUE(opaque_contents.IsEmpty());
|
| -
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_painted(), 30000, 1);
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 0, 1);
|
| - EXPECT_NEAR(
|
| - occluded.overdraw_metrics()->pixels_uploaded_translucent(), 30000, 1);
|
| - EXPECT_EQ(0, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| -
|
| - // Invalidates an area on the top and bottom tile, which will cause us to
|
| - // paint the tile in the middle, even though it is not dirty and will not be
|
| - // uploaded.
|
| - layer->fake_layer_updater()->SetOpaquePaintRect(gfx::Rect());
|
| - layer->InvalidateContentRect(gfx::Rect(0, 0, 1, 1));
|
| - layer->InvalidateContentRect(gfx::Rect(50, 200, 10, 10));
|
| - layer->SetTexturePriorities(priority_calculator_);
|
| - resource_manager_->PrioritizeTextures();
|
| - layer->SavePaintProperties();
|
| - layer->Update(queue_.get(), &occluded);
|
| - UpdateTextures();
|
| - opaque_contents = layer->VisibleContentOpaqueRegion();
|
| - EXPECT_TRUE(opaque_contents.IsEmpty());
|
| -
|
| - // The middle tile was painted even though not invalidated.
|
| - EXPECT_NEAR(
|
| - occluded.overdraw_metrics()->pixels_painted(), 30000 + 60 * 210, 1);
|
| - // The pixels uploaded will not include the non-invalidated tile in the
|
| - // middle.
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_opaque(), 0, 1);
|
| - EXPECT_NEAR(occluded.overdraw_metrics()->pixels_uploaded_translucent(),
|
| - 30000 + 1 + 100,
|
| - 1);
|
| - EXPECT_EQ(0, occluded.overdraw_metrics()->tiles_culled_for_upload());
|
| }
|
|
|
| TEST_F(TiledLayerTest, DontAllocateContentsWhenTargetSurfaceCantBeAllocated) {
|
|
|