Chromium Code Reviews| Index: cc/tiles/tiling_set_raster_queue_all.cc |
| diff --git a/cc/tiles/tiling_set_raster_queue_all.cc b/cc/tiles/tiling_set_raster_queue_all.cc |
| index 74bf1b2f144f806cadf802723924da96fc597f33..2e862f2708cd120348f40ef8ace71a401c9e78c8 100644 |
| --- a/cc/tiles/tiling_set_raster_queue_all.cc |
| +++ b/cc/tiles/tiling_set_raster_queue_all.cc |
| @@ -200,8 +200,23 @@ bool TilingSetRasterQueueAll::OnePriorityRectIterator:: |
| bool TilingSetRasterQueueAll::OnePriorityRectIterator::IsTileValid( |
| const Tile* tile) const { |
| - if (!tile || !TileNeedsRaster(tile)) |
| + if (!tile) |
| return false; |
| + |
| + // A tile is valid for raster if it needs raster and is unoccluded. |
| + bool tile_is_valid_for_raster = |
| + tile->draw_info().NeedsRaster() && !tiling_->IsTileOccluded(tile); |
| + |
| + bool tile_is_valid_for_checker_images = |
| + tile->draw_info().is_checker_imaged() && |
| + tiling_->ShouldDecodeCheckeredImagesForTile(tile); |
|
vmpstr
2017/04/18 00:20:00
You can optimize and not call this if tile_is_vali
Khushal
2017/04/19 06:16:42
Done.
|
| + |
| + // A tile is not valid for the raster queue if it is not valid for raster or |
| + // processing for checker-images. |
| + if (!tile_is_valid_for_raster && !tile_is_valid_for_checker_images) { |
| + return false; |
| + } |
| + |
| // After the pending visible rect has been processed, we must return false |
| // for pending visible rect tiles as tiling iterators do not ignore those |
| // tiles. |