diff --git a/gm/gmmain.cpp b/gm/gmmain.cpp
index 5b0f662..8cb74be 100644
--- a/gm/gmmain.cpp
+++ b/gm/gmmain.cpp
@@ -1035,7 +1035,8 @@
                 PipeController pipeController(&canvas);
                 SkGPipeWriter writer;
                 SkCanvas* pipeCanvas = writer.startRecording(&pipeController,
-                                                             gPipeWritingFlagCombos[i].flags);
+                                                             gPipeWritingFlagCombos[i].flags,
+                                                             size.width(), size.height());
                 if (!simulateFailure) {
                     invokeGM(gm, pipeCanvas, false, false);
                 }
@@ -1073,7 +1074,8 @@
                 TiledPipeController pipeController(bitmap);
                 SkGPipeWriter writer;
                 SkCanvas* pipeCanvas = writer.startRecording(&pipeController,
-                                                             gPipeWritingFlagCombos[i].flags);
+                                                             gPipeWritingFlagCombos[i].flags,
+                                                             size.width(), size.height());
                 invokeGM(gm, pipeCanvas, false, false);
                 complete_bitmap(&bitmap);
                 writer.endRecording();
diff --git a/gm/mixedxfermodes.cpp b/gm/mixedxfermodes.cpp
index dbc7453..beb5d54 100644
--- a/gm/mixedxfermodes.cpp
+++ b/gm/mixedxfermodes.cpp
@@ -90,9 +90,6 @@
         canvas->restore();
     }
 
-    // https://code.google.com/p/skia/issues/detail?id=1199&thanks=1199&ts=1364839297
-    virtual uint32_t onGetFlags() const SK_OVERRIDE { return kSkipPipe_Flag; }
-
 private:
     enum {
         kMinR = 10,
