Bug 1243589 - Use SingleTiledContentClient even for scrollable layers if the layer is smaller than a single tile. r?mattwoodrow
--- a/gfx/layers/client/ClientTiledPaintedLayer.cpp
+++ b/gfx/layers/client/ClientTiledPaintedLayer.cpp
@@ -412,17 +412,19 @@ ClientTiledPaintedLayer::RenderLayer()
IntSize layerSize = mVisibleRegion.ToUnknownRegion().GetBounds().Size();
if (mContentClient && !mContentClient->SupportsLayerSize(layerSize, ClientManager())) {
mContentClient = nullptr;
mValidRegion.SetEmpty();
}
if (!mContentClient) {
- if (mCreationHint == LayerManager::NONE &&
+ IntSize tileSize(gfxPlatform::GetPlatform()->GetTileWidth(),
+ gfxPlatform::GetPlatform()->GetTileHeight());
+ if ((mCreationHint == LayerManager::NONE || layerSize < tileSize) &&
SingleTiledContentClient::ClientSupportsLayerSize(layerSize, ClientManager()) &&
gfxPrefs::LayersSingleTileEnabled()) {
mContentClient = new SingleTiledContentClient(this, ClientManager());
} else {
mContentClient = new MultiTiledContentClient(this, ClientManager());
}
mContentClient->Connect();