GM for http://skbug.com/3398

BUG=skia:3398

Review URL: https://codereview.chromium.org/896093005
diff --git a/gm/pictureshader.cpp b/gm/pictureshader.cpp
index eccf6a6..630ecd8 100644
--- a/gm/pictureshader.cpp
+++ b/gm/pictureshader.cpp
@@ -180,3 +180,38 @@
 };
 
 DEF_GM( return SkNEW_ARGS(PictureShaderGM, (50, 100)); )
+
+DEF_SIMPLE_GM(tiled_picture_shader, canvas, 400, 400) {
+    // https://code.google.com/p/skia/issues/detail?id=3398
+    SkRect tile = SkRect::MakeWH(100, 100);
+
+    SkPictureRecorder recorder;
+    SkCanvas* c = recorder.beginRecording(tile);
+
+    SkRect r = tile;
+    r.inset(4, 4);
+    SkPaint p;
+    p.setColor(0xFF303F9F);  // dark blue
+    c->drawRect(r, p);
+    p.setColor(0xFFC5CAE9);  // light blue
+    p.setStrokeWidth(10);
+    c->drawLine(20, 20, 80, 80, p);
+
+    SkAutoTUnref<SkPicture> picture(recorder.endRecording());
+    SkAutoTUnref<SkShader> shader(SkShader::CreatePictureShader(
+	      picture.get(),
+	      SkShader::kRepeat_TileMode,
+	      SkShader::kRepeat_TileMode,
+	      NULL,
+	      NULL));
+
+    p.setColor(0xFF8BC34A);  // green
+    canvas->drawPaint(p);
+
+    canvas->clipRect(SkRect::MakeXYWH(0, 0, 400, 350));
+    p.setColor(0xFFB6B6B6);  // gray
+    canvas->drawPaint(p);
+    p.setShader(shader.get());
+
+    canvas->drawPaint(p);
+}