| Index: cc/resources/tile_manager_unittest.cc
|
| diff --git a/cc/resources/tile_manager_unittest.cc b/cc/resources/tile_manager_unittest.cc
|
| index e826f55d7713754729b99e0ffc8f45ddc0337520..4b4b92c9d57bf5fe2cc110a151d98ecc611f14a3 100644
|
| --- a/cc/resources/tile_manager_unittest.cc
|
| +++ b/cc/resources/tile_manager_unittest.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "cc/resources/eviction_tile_priority_queue.h"
|
| #include "cc/resources/raster_tile_priority_queue.h"
|
| +#include "cc/resources/resource_pool.h"
|
| #include "cc/resources/tile.h"
|
| #include "cc/resources/tile_priority.h"
|
| #include "cc/resources/tiling_set_raster_queue_all.h"
|
| @@ -1299,7 +1300,7 @@ TEST_F(TileManagerTilePriorityQueueTest, SetIsLikelyToRequireADraw) {
|
| }
|
|
|
| TEST_F(TileManagerTilePriorityQueueTest,
|
| - NoSetIsLikelyToRequireADrawOnZeroMemoryBudget) {
|
| + SetIsLikelyToRequireADrawOnZeroMemoryBudget) {
|
| const gfx::Size layer_bounds(1000, 1000);
|
| host_impl_.SetViewportSize(layer_bounds);
|
| SetupDefaultTrees(layer_bounds);
|
| @@ -1319,5 +1320,60 @@ TEST_F(TileManagerTilePriorityQueueTest,
|
| EXPECT_FALSE(host_impl_.is_likely_to_require_a_draw());
|
| }
|
|
|
| +TEST_F(TileManagerTilePriorityQueueTest,
|
| + SetIsLikelyToRequireADrawOnLimitedMemoryBudget) {
|
| + const gfx::Size layer_bounds(1000, 1000);
|
| + host_impl_.SetViewportSize(layer_bounds);
|
| + SetupDefaultTrees(layer_bounds);
|
| +
|
| + // Verify that the queue has a required for draw tile at Top.
|
| + scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue(
|
| + SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL));
|
| + EXPECT_FALSE(queue->IsEmpty());
|
| + EXPECT_TRUE(queue->Top()->required_for_draw());
|
| + EXPECT_EQ(gfx::Size(256, 256), queue->Top()->desired_texture_size());
|
| + EXPECT_EQ(RGBA_8888, host_impl_.resource_provider()->best_texture_format());
|
| +
|
| + ManagedMemoryPolicy policy = host_impl_.ActualManagedMemoryPolicy();
|
| + policy.bytes_limit_when_visible =
|
| + Resource::MemorySizeBytes(gfx::Size(256, 256), RGBA_8888);
|
| + host_impl_.SetMemoryPolicy(policy);
|
| +
|
| + EXPECT_FALSE(host_impl_.is_likely_to_require_a_draw());
|
| + host_impl_.tile_manager()->PrepareTiles(host_impl_.global_tile_state());
|
| + EXPECT_TRUE(host_impl_.is_likely_to_require_a_draw());
|
| +
|
| + scoped_ptr<ScopedResource> resource =
|
| + host_impl_.resource_pool()->AcquireResource(gfx::Size(256, 256),
|
| + RGBA_8888);
|
| +
|
| + host_impl_.tile_manager()->CheckIfMoreTilesNeedToBePreparedForTesting();
|
| + EXPECT_FALSE(host_impl_.is_likely_to_require_a_draw());
|
| +
|
| + host_impl_.resource_pool()->ReleaseResource(resource.Pass());
|
| +}
|
| +
|
| +TEST_F(TileManagerTilePriorityQueueTest,
|
| + SetIsLikelyToRequireADrawOnSynchronousRaster) {
|
| + const gfx::Size layer_bounds(1000, 1000);
|
| + host_impl_.SetViewportSize(layer_bounds);
|
| + host_impl_.SetUseGpuRasterization(true);
|
| + EXPECT_EQ(host_impl_.rasterizer()->GetPrepareTilesMode(),
|
| + PrepareTilesMode::PREPARE_NONE);
|
| + SetupDefaultTrees(layer_bounds);
|
| +
|
| + // Verify that the queue has a required for draw tile at Top.
|
| + scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue(
|
| + SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL));
|
| + EXPECT_FALSE(queue->IsEmpty());
|
| + EXPECT_TRUE(queue->Top()->required_for_draw());
|
| +
|
| + host_impl_.SetIsLikelyToRequireADraw(true);
|
| +
|
| + EXPECT_TRUE(host_impl_.is_likely_to_require_a_draw());
|
| + host_impl_.tile_manager()->UpdateVisibleTiles(host_impl_.global_tile_state());
|
| + EXPECT_FALSE(host_impl_.is_likely_to_require_a_draw());
|
| +}
|
| +
|
| } // namespace
|
| } // namespace cc
|
|
|