| Index: src/core/SkPictureShader.cpp | 
| diff --git a/src/core/SkPictureShader.cpp b/src/core/SkPictureShader.cpp | 
| index 8f6d43f862992eccd5cb4e37ccbb27d36d4cab6d..f1addadd20012745373b76ce91b3bf3bcab98e99 100644 | 
| --- a/src/core/SkPictureShader.cpp | 
| +++ b/src/core/SkPictureShader.cpp | 
| @@ -197,14 +197,18 @@ SkShader* SkPictureShader::refBitmapShader(const SkMatrix& viewMatrix, const SkM | 
| } | 
| #endif | 
|  | 
| -    SkISize tileSize = scaledSize.toRound(); | 
| +#ifdef SK_SUPPORT_LEGACY_PICTURESHADER_ROUNDING | 
| +    const SkISize tileSize = scaledSize.toRound(); | 
| +#else | 
| +    const SkISize tileSize = scaledSize.toCeil(); | 
| +#endif | 
| if (tileSize.isEmpty()) { | 
| return SkShader::CreateEmptyShader(); | 
| } | 
|  | 
| // The actual scale, compensating for rounding & clamping. | 
| -    SkSize tileScale = SkSize::Make(SkIntToScalar(tileSize.width()) / fTile.width(), | 
| -                                    SkIntToScalar(tileSize.height()) / fTile.height()); | 
| +    const SkSize tileScale = SkSize::Make(SkIntToScalar(tileSize.width()) / fTile.width(), | 
| +                                          SkIntToScalar(tileSize.height()) / fTile.height()); | 
|  | 
| SkAutoTUnref<SkShader> tileShader; | 
| BitmapShaderKey key(fPicture->uniqueID(), | 
|  |