| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright 2015 Google Inc. | 2  * Copyright 2015 Google Inc. | 
| 3  * | 3  * | 
| 4  * Use of this source code is governed by a BSD-style license that can be | 4  * Use of this source code is governed by a BSD-style license that can be | 
| 5  * found in the LICENSE file. | 5  * found in the LICENSE file. | 
| 6  * | 6  * | 
| 7  */ | 7  */ | 
| 8 | 8 | 
| 9 #include <VisualBench/VisualBenchmarkStream.h> | 9 #include <VisualBench/VisualBenchmarkStream.h> | 
| 10 #include "CpuWrappedBenchmark.h" | 10 #include "CpuWrappedBenchmark.h" | 
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 67         if (SkStrEndsWith(FLAGS_skps[i], ".skp")) { | 67         if (SkStrEndsWith(FLAGS_skps[i], ".skp")) { | 
| 68             fSKPs.push_back() = FLAGS_skps[i]; | 68             fSKPs.push_back() = FLAGS_skps[i]; | 
| 69         } else { | 69         } else { | 
| 70             SkOSFile::Iter it(FLAGS_skps[i], ".skp"); | 70             SkOSFile::Iter it(FLAGS_skps[i], ".skp"); | 
| 71             SkString path; | 71             SkString path; | 
| 72             while (it.next(&path)) { | 72             while (it.next(&path)) { | 
| 73                 fSKPs.push_back() = SkOSPath::Join(FLAGS_skps[0], path.c_str()); | 73                 fSKPs.push_back() = SkOSPath::Join(FLAGS_skps[0], path.c_str()); | 
| 74             } | 74             } | 
| 75         } | 75         } | 
| 76     } | 76     } | 
| 77 |  | 
| 78     // seed with an initial benchmark |  | 
| 79     this->next(); |  | 
| 80 } | 77 } | 
| 81 | 78 | 
| 82 bool VisualBenchmarkStream::ReadPicture(const char* path, SkAutoTUnref<SkPicture
     >* pic) { | 79 bool VisualBenchmarkStream::ReadPicture(const char* path, SkAutoTUnref<SkPicture
     >* pic) { | 
| 83     // Not strictly necessary, as it will be checked again later, | 80     // Not strictly necessary, as it will be checked again later, | 
| 84     // but helps to avoid a lot of pointless work if we're going to skip it. | 81     // but helps to avoid a lot of pointless work if we're going to skip it. | 
| 85     if (SkCommandLineFlags::ShouldSkip(FLAGS_match, path)) { | 82     if (SkCommandLineFlags::ShouldSkip(FLAGS_match, path)) { | 
| 86         return false; | 83         return false; | 
| 87     } | 84     } | 
| 88 | 85 | 
| 89     SkAutoTDelete<SkStream> stream(SkStream::NewFromFile(path)); | 86     SkAutoTDelete<SkStream> stream(SkStream::NewFromFile(path)); | 
| 90     if (stream.get() == nullptr) { | 87     if (stream.get() == nullptr) { | 
| 91         SkDebugf("Could not read %s.\n", path); | 88         SkDebugf("Could not read %s.\n", path); | 
| 92         return false; | 89         return false; | 
| 93     } | 90     } | 
| 94 | 91 | 
| 95     pic->reset(SkPicture::CreateFromStream(stream.get())); | 92     pic->reset(SkPicture::CreateFromStream(stream.get())); | 
| 96     if (pic->get() == nullptr) { | 93     if (pic->get() == nullptr) { | 
| 97         SkDebugf("Could not read %s as an SkPicture.\n", path); | 94         SkDebugf("Could not read %s as an SkPicture.\n", path); | 
| 98         return false; | 95         return false; | 
| 99     } | 96     } | 
| 100     return true; | 97     return true; | 
| 101 } | 98 } | 
| 102 | 99 | 
| 103 Benchmark* VisualBenchmarkStream::next() { | 100 Benchmark* VisualBenchmarkStream::next() { | 
| 104     Benchmark* bench; |  | 
| 105     if (!fIsWarmedUp) { | 101     if (!fIsWarmedUp) { | 
| 106         fIsWarmedUp = true; | 102         fIsWarmedUp = true; | 
| 107         bench = new WarmupBench; | 103         return new WarmupBench; | 
| 108     } else { |  | 
| 109         // skips non matching benches |  | 
| 110         while ((bench = this->innerNext()) && |  | 
| 111                (SkCommandLineFlags::ShouldSkip(FLAGS_match, bench->getUniqueName
     ()) || |  | 
| 112                 !bench->isSuitableFor(Benchmark::kGPU_Backend))) { |  | 
| 113             bench->unref(); |  | 
| 114         } |  | 
| 115     } |  | 
| 116     if (bench && FLAGS_cpu) { |  | 
| 117         bench = new CpuWrappedBenchmark(bench); |  | 
| 118     } | 104     } | 
| 119 | 105 | 
| 120     fBenchmark.reset(bench); | 106     Benchmark* bench; | 
| 121     return fBenchmark; | 107 | 
|  | 108     // skips non matching benches | 
|  | 109     while ((bench = this->innerNext()) && | 
|  | 110            (SkCommandLineFlags::ShouldSkip(FLAGS_match, bench->getUniqueName()) 
     || | 
|  | 111             !bench->isSuitableFor(Benchmark::kGPU_Backend))) { | 
|  | 112         bench->unref(); | 
|  | 113     } | 
|  | 114     if (FLAGS_cpu) { | 
|  | 115         return new CpuWrappedBenchmark(bench); | 
|  | 116     } | 
|  | 117     return bench; | 
| 122 } | 118 } | 
| 123 | 119 | 
| 124 Benchmark* VisualBenchmarkStream::innerNext() { | 120 Benchmark* VisualBenchmarkStream::innerNext() { | 
| 125     while (fBenches) { | 121     while (fBenches) { | 
| 126         Benchmark* bench = fBenches->factory()(nullptr); | 122         Benchmark* bench = fBenches->factory()(nullptr); | 
| 127         fBenches = fBenches->next(); | 123         fBenches = fBenches->next(); | 
| 128         if (bench->isVisual()) { | 124         if (bench->isVisual()) { | 
| 129             fSourceType = "bench"; | 125             fSourceType = "bench"; | 
| 130             fBenchType  = "micro"; | 126             fBenchType  = "micro"; | 
| 131             return bench; | 127             return bench; | 
| (...skipping 20 matching lines...) Expand all  Loading... | 
| 152         } | 148         } | 
| 153 | 149 | 
| 154         SkString name = SkOSPath::Basename(path.c_str()); | 150         SkString name = SkOSPath::Basename(path.c_str()); | 
| 155         fSourceType = "skp"; | 151         fSourceType = "skp"; | 
| 156         fBenchType = "playback"; | 152         fBenchType = "playback"; | 
| 157         return new VisualSKPBench(name.c_str(), pic.get()); | 153         return new VisualSKPBench(name.c_str(), pic.get()); | 
| 158     } | 154     } | 
| 159 | 155 | 
| 160     return nullptr; | 156     return nullptr; | 
| 161 } | 157 } | 
| OLD | NEW | 
|---|