| Index: dm/DMSerializeTask.cpp | 
| diff --git a/dm/DMSerializeTask.cpp b/dm/DMSerializeTask.cpp | 
| index 62c45b3f048924c06fd2439b1b7fe5ea8446385c..86fbff33db43aa6d11fdd9c7a2b07cdcd1d860d4 100644 | 
| --- a/dm/DMSerializeTask.cpp | 
| +++ b/dm/DMSerializeTask.cpp | 
| @@ -7,20 +7,27 @@ | 
| #include "SkPixelRef.h" | 
|  | 
| DEFINE_bool(serialize, true, "If true, run picture serialization tests."); | 
| +DECLARE_bool(skr);  // in DMReplayTask.cpp | 
| + | 
| +static const char* kSuffixes[] = { "serialize", "serialize_skr" }; | 
| +static const bool* kEnabled[]  = { &FLAGS_serialize, &FLAGS_skr }; | 
|  | 
| namespace DM { | 
|  | 
| SerializeTask::SerializeTask(const Task& parent, | 
| skiagm::GM* gm, | 
| -                             SkBitmap reference) | 
| +                             SkBitmap reference, | 
| +                             SerializeTask::Mode mode) | 
| : CpuTask(parent) | 
| -    , fName(UnderJoin(parent.name().c_str(), "serialize")) | 
| +    , fMode(mode) | 
| +    , fName(UnderJoin(parent.name().c_str(), kSuffixes[mode])) | 
| , fGM(gm) | 
| , fReference(reference) | 
| {} | 
|  | 
| void SerializeTask::draw() { | 
| -    SkAutoTUnref<SkPicture> recorded(RecordPicture(fGM.get())); | 
| +    SkAutoTUnref<SkPicture> recorded( | 
| +        RecordPicture(fGM.get(), NULL/*no BBH*/, kSkRecord_Mode == fMode)); | 
|  | 
| SkDynamicMemoryWStream wStream; | 
| recorded->serialize(&wStream, NULL); | 
| @@ -29,7 +36,7 @@ void SerializeTask::draw() { | 
|  | 
| SkBitmap bitmap; | 
| AllocatePixels(fReference, &bitmap); | 
| -    DrawPicture(reconstructed, &bitmap); | 
| +    DrawPicture(*reconstructed, &bitmap); | 
| if (!BitmapsEqual(bitmap, fReference)) { | 
| this->fail(); | 
| this->spawnChild(SkNEW_ARGS(WriteTask, (*this, bitmap))); | 
| @@ -37,7 +44,10 @@ void SerializeTask::draw() { | 
| } | 
|  | 
| bool SerializeTask::shouldSkip() const { | 
| -    return !FLAGS_serialize || fGM->getFlags() & skiagm::GM::kSkipPicture_Flag; | 
| +    if (fGM->getFlags() & skiagm::GM::kSkipPicture_Flag) { | 
| +        return true; | 
| +    } | 
| +    return !*kEnabled[fMode]; | 
| } | 
|  | 
| }  // namespace DM | 
|  |