Index: cc/layers/picture_layer_impl.cc |
diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc |
index 405d68590da67bd73005aa601c48c66c0ad97627..f54764814e2924a4c19adf8bcf2cccec6b3ad6e3 100644 |
--- a/cc/layers/picture_layer_impl.cc |
+++ b/cc/layers/picture_layer_impl.cc |
@@ -48,6 +48,10 @@ const int kMinHeightForGpuRasteredTile = 256; |
// of using the same tile size. |
const int kTileRoundUp = 64; |
+// For performance reasons and to support compressed tile textures, tile |
+// width and height should be an even multiple of 4 in size. |
+const int kTileMinimalAlignment = 4; |
+ |
} // namespace |
namespace cc { |
@@ -767,6 +771,10 @@ gfx::Size PictureLayerImpl::CalculateTileSize( |
tile_height = std::min(tile_height, default_tile_height); |
} |
+ // Ensure that tile width and height are properly aligned. |
+ tile_width = MathUtil::UncheckedRoundUp(tile_width, kTileMinimalAlignment); |
+ tile_height = MathUtil::UncheckedRoundUp(tile_height, kTileMinimalAlignment); |
+ |
// Under no circumstance should we be larger than the max texture size. |
tile_width = std::min(tile_width, max_texture_size); |
tile_height = std::min(tile_height, max_texture_size); |