Turn on all pixel-perfect SkRecord optimizations.

BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/550083006
diff --git a/tests/PictureTest.cpp b/tests/PictureTest.cpp
index b1cdf7e..8755440 100644
--- a/tests/PictureTest.cpp
+++ b/tests/PictureTest.cpp
@@ -914,7 +914,7 @@
         {
             SkPictureRecorder recorder;
 
-            SkCanvas* c = recorder.beginRecording(SkIntToScalar(kWidth), 
+            SkCanvas* c = recorder.beginRecording(SkIntToScalar(kWidth),
                                                   SkIntToScalar(kHeight));
             // 1)
             c->saveLayer(NULL, NULL); // layer #0
@@ -990,7 +990,7 @@
 
             REPORTER_ASSERT(reporter, info0.fValid);
             REPORTER_ASSERT(reporter, pict->uniqueID() == info0.fPictureID);
-            REPORTER_ASSERT(reporter, kWidth == info0.fSize.fWidth && 
+            REPORTER_ASSERT(reporter, kWidth == info0.fSize.fWidth &&
                                       kHeight == info0.fSize.fHeight);
             REPORTER_ASSERT(reporter, info0.fOriginXform.isIdentity());
             REPORTER_ASSERT(reporter, 0 == info0.fOffset.fX && 0 == info0.fOffset.fY);
@@ -999,12 +999,12 @@
 
             REPORTER_ASSERT(reporter, info1.fValid);
             REPORTER_ASSERT(reporter, pict->uniqueID() == info1.fPictureID);
-            REPORTER_ASSERT(reporter, kWidth == info1.fSize.fWidth && 
+            REPORTER_ASSERT(reporter, kWidth == info1.fSize.fWidth &&
                                       kHeight == info1.fSize.fHeight);
             REPORTER_ASSERT(reporter, info1.fOriginXform.isIdentity());
             REPORTER_ASSERT(reporter, 0 == info1.fOffset.fX && 0 == info1.fOffset.fY);
             REPORTER_ASSERT(reporter, NULL == info1.fPaint);
-            REPORTER_ASSERT(reporter, !info1.fIsNested && 
+            REPORTER_ASSERT(reporter, !info1.fIsNested &&
                                       info1.fHasNestedLayers); // has a nested SL
 
             REPORTER_ASSERT(reporter, info2.fValid);
@@ -1013,13 +1013,13 @@
                                       kHeight/2 == info2.fSize.fHeight); // bound reduces size
             REPORTER_ASSERT(reporter, info2.fOriginXform.isIdentity());
             REPORTER_ASSERT(reporter, kWidth/2 == info2.fOffset.fX &&   // translated
-                                      kHeight/2 == info2.fOffset.fY); 
+                                      kHeight/2 == info2.fOffset.fY);
             REPORTER_ASSERT(reporter, NULL == info1.fPaint);
             REPORTER_ASSERT(reporter, info2.fIsNested && !info2.fHasNestedLayers); // is nested
 
             REPORTER_ASSERT(reporter, info3.fValid);
             REPORTER_ASSERT(reporter, pict->uniqueID() == info3.fPictureID);
-            REPORTER_ASSERT(reporter, kWidth == info3.fSize.fWidth && 
+            REPORTER_ASSERT(reporter, kWidth == info3.fSize.fWidth &&
                                       kHeight == info3.fSize.fHeight);
             REPORTER_ASSERT(reporter, info3.fOriginXform.isIdentity());
             REPORTER_ASSERT(reporter, 0 == info3.fOffset.fX && 0 == info3.fOffset.fY);
@@ -1028,17 +1028,17 @@
 
             REPORTER_ASSERT(reporter, info4.fValid);
             REPORTER_ASSERT(reporter, pict->uniqueID() == info4.fPictureID);
-            REPORTER_ASSERT(reporter, kWidth == info4.fSize.fWidth && 
+            REPORTER_ASSERT(reporter, kWidth == info4.fSize.fWidth &&
                                       kHeight == info4.fSize.fHeight);
             REPORTER_ASSERT(reporter, 0 == info4.fOffset.fX && 0 == info4.fOffset.fY);
             REPORTER_ASSERT(reporter, info4.fOriginXform.isIdentity());
             REPORTER_ASSERT(reporter, NULL == info4.fPaint);
-            REPORTER_ASSERT(reporter, !info4.fIsNested && 
+            REPORTER_ASSERT(reporter, !info4.fIsNested &&
                                       info4.fHasNestedLayers); // has a nested SL
 
             REPORTER_ASSERT(reporter, info5.fValid);
             REPORTER_ASSERT(reporter, child->uniqueID() == info5.fPictureID); // in a child picture
-            REPORTER_ASSERT(reporter, kWidth == info5.fSize.fWidth && 
+            REPORTER_ASSERT(reporter, kWidth == info5.fSize.fWidth &&
                                       kHeight == info5.fSize.fHeight);
             REPORTER_ASSERT(reporter, 0 == info5.fOffset.fX && 0 == info5.fOffset.fY);
             REPORTER_ASSERT(reporter, info5.fOriginXform.isIdentity());
@@ -1047,17 +1047,17 @@
 
             REPORTER_ASSERT(reporter, info6.fValid);
             REPORTER_ASSERT(reporter, pict->uniqueID() == info6.fPictureID);
-            REPORTER_ASSERT(reporter, kWidth == info6.fSize.fWidth && 
+            REPORTER_ASSERT(reporter, kWidth == info6.fSize.fWidth &&
                                       kHeight == info6.fSize.fHeight);
             REPORTER_ASSERT(reporter, 0 == info6.fOffset.fX && 0 == info6.fOffset.fY);
             REPORTER_ASSERT(reporter, info6.fOriginXform.isIdentity());
             REPORTER_ASSERT(reporter, NULL == info6.fPaint);
-            REPORTER_ASSERT(reporter, !info6.fIsNested && 
+            REPORTER_ASSERT(reporter, !info6.fIsNested &&
                                       info6.fHasNestedLayers); // has a nested SL
 
             REPORTER_ASSERT(reporter, info7.fValid);
             REPORTER_ASSERT(reporter, child->uniqueID() == info7.fPictureID); // in a child picture
-            REPORTER_ASSERT(reporter, kWidth == info7.fSize.fWidth && 
+            REPORTER_ASSERT(reporter, kWidth == info7.fSize.fWidth &&
                                       kHeight == info7.fSize.fHeight);
             REPORTER_ASSERT(reporter, 0 == info7.fOffset.fX && 0 == info7.fOffset.fY);
             REPORTER_ASSERT(reporter, info7.fOriginXform.isIdentity());
@@ -1188,14 +1188,16 @@
 void check_save_state(skiatest::Reporter* reporter, SkPicture* picture,
                       unsigned int numSaves, unsigned int numSaveLayers,
                       unsigned int numRestores) {
-    SaveCountingCanvas canvas(SkScalarCeilToInt(picture->cullRect().width()), 
+    SaveCountingCanvas canvas(SkScalarCeilToInt(picture->cullRect().width()),
                               SkScalarCeilToInt(picture->cullRect().height()));
 
     picture->playback(&canvas);
 
-    REPORTER_ASSERT(reporter, numSaves == canvas.getSaveCount());
-    REPORTER_ASSERT(reporter, numSaveLayers == canvas.getSaveLayerCount());
-    REPORTER_ASSERT(reporter, numRestores == canvas.getRestoreCount());
+    // Optimizations may have removed these,
+    // so expect to have seen no more than num{Saves,SaveLayers,Restores}.
+    REPORTER_ASSERT(reporter, numSaves >= canvas.getSaveCount());
+    REPORTER_ASSERT(reporter, numSaveLayers >= canvas.getSaveLayerCount());
+    REPORTER_ASSERT(reporter, numRestores >= canvas.getRestoreCount());
 }
 
 // This class exists so SkPicture can friend it and give it access to
@@ -1445,7 +1447,7 @@
 
 static SkData* serialized_picture_from_bitmap(const SkBitmap& bitmap) {
     SkPictureRecorder recorder;
-    SkCanvas* canvas = recorder.beginRecording(SkIntToScalar(bitmap.width()), 
+    SkCanvas* canvas = recorder.beginRecording(SkIntToScalar(bitmap.width()),
                                                SkIntToScalar(bitmap.height()));
     canvas->drawBitmap(bitmap, 0, 0);
     SkAutoTUnref<SkPicture> picture(recorder.endRecording());