OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 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 #include <ctype.h> | 8 #include <ctype.h> |
9 | 9 |
10 #include "Benchmark.h" | 10 #include "Benchmark.h" |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 "Try up to this many times to guess loops for a bench, or skip the
bench."); | 70 "Try up to this many times to guess loops for a bench, or skip the
bench."); |
71 DEFINE_int32(maxLoops, 1000000, "Never run a bench more times than this."); | 71 DEFINE_int32(maxLoops, 1000000, "Never run a bench more times than this."); |
72 DEFINE_string(clip, "0,0,1000,1000", "Clip for SKPs."); | 72 DEFINE_string(clip, "0,0,1000,1000", "Clip for SKPs."); |
73 DEFINE_string(scales, "1.0", "Space-separated scales for SKPs."); | 73 DEFINE_string(scales, "1.0", "Space-separated scales for SKPs."); |
74 DEFINE_bool(bbh, true, "Build a BBH for SKPs?"); | 74 DEFINE_bool(bbh, true, "Build a BBH for SKPs?"); |
75 DEFINE_bool(mpd, true, "Use MultiPictureDraw for the SKPs?"); | 75 DEFINE_bool(mpd, true, "Use MultiPictureDraw for the SKPs?"); |
76 DEFINE_int32(flushEvery, 10, "Flush --outResultsFile every Nth run."); | 76 DEFINE_int32(flushEvery, 10, "Flush --outResultsFile every Nth run."); |
77 | 77 |
78 static SkString humanize(double ms) { | 78 static SkString humanize(double ms) { |
79 if (FLAGS_verbose) return SkStringPrintf("%llu", (uint64_t)(ms*1e6)); | 79 if (FLAGS_verbose) return SkStringPrintf("%llu", (uint64_t)(ms*1e6)); |
80 if (ms > 1e+3) return SkStringPrintf("%.3gs", ms/1e3); | 80 return HumanizeMs(ms); |
81 if (ms < 1e-3) return SkStringPrintf("%.3gns", ms*1e6); | |
82 #ifdef SK_BUILD_FOR_WIN | |
83 if (ms < 1) return SkStringPrintf("%.3gus", ms*1e3); | |
84 #else | |
85 if (ms < 1) return SkStringPrintf("%.3gµs", ms*1e3); | |
86 #endif | |
87 return SkStringPrintf("%.3gms", ms); | |
88 } | 81 } |
89 #define HUMANIZE(ms) humanize(ms).c_str() | 82 #define HUMANIZE(ms) humanize(ms).c_str() |
90 | 83 |
91 static double time(int loops, Benchmark* bench, SkCanvas* canvas, SkGLContext* g
l) { | 84 static double time(int loops, Benchmark* bench, SkCanvas* canvas, SkGLContext* g
l) { |
92 if (canvas) { | 85 if (canvas) { |
93 canvas->clear(SK_ColorWHITE); | 86 canvas->clear(SK_ColorWHITE); |
94 } | 87 } |
95 WallTimer timer; | 88 WallTimer timer; |
96 timer.start(); | 89 timer.start(); |
97 if (bench) { | 90 if (bench) { |
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
541 } | 534 } |
542 | 535 |
543 while (fCurrentUseMPD < fUseMPDs.count()) { | 536 while (fCurrentUseMPD < fUseMPDs.count()) { |
544 if (FLAGS_bbh) { | 537 if (FLAGS_bbh) { |
545 // The SKP we read off disk doesn't have a BBH. Re-reco
rd so it grows one. | 538 // The SKP we read off disk doesn't have a BBH. Re-reco
rd so it grows one. |
546 SkRTreeFactory factory; | 539 SkRTreeFactory factory; |
547 SkPictureRecorder recorder; | 540 SkPictureRecorder recorder; |
548 static const int kFlags = SkPictureRecorder::kComputeSav
eLayerInfo_RecordFlag; | 541 static const int kFlags = SkPictureRecorder::kComputeSav
eLayerInfo_RecordFlag; |
549 pic->playback(recorder.beginRecording(pic->cullRect().wi
dth(), | 542 pic->playback(recorder.beginRecording(pic->cullRect().wi
dth(), |
550 pic->cullRect().he
ight(), | 543 pic->cullRect().he
ight(), |
551 &factory, | 544 &factory, |
552 fUseMPDs[fCurrentU
seMPD] ? kFlags : 0)); | 545 fUseMPDs[fCurrentU
seMPD] ? kFlags : 0)); |
553 pic.reset(recorder.endRecording()); | 546 pic.reset(recorder.endRecording()); |
554 } | 547 } |
555 SkString name = SkOSPath::Basename(path.c_str()); | 548 SkString name = SkOSPath::Basename(path.c_str()); |
556 fSourceType = "skp"; | 549 fSourceType = "skp"; |
557 fBenchType = "playback"; | 550 fBenchType = "playback"; |
558 return SkNEW_ARGS(SKPBench, | 551 return SkNEW_ARGS(SKPBench, |
559 (name.c_str(), pic.get(), fClip, | 552 (name.c_str(), pic.get(), fClip, |
560 fScales[fCurrentScale], fUseMPDs[fCurrentUseMPD++])
); | 553 fScales[fCurrentScale], fUseMPDs[fCurrentUseMPD++])
); |
561 } | 554 } |
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
796 | 789 |
797 return 0; | 790 return 0; |
798 } | 791 } |
799 | 792 |
800 #if !defined SK_BUILD_FOR_IOS | 793 #if !defined SK_BUILD_FOR_IOS |
801 int main(int argc, char** argv) { | 794 int main(int argc, char** argv) { |
802 SkCommandLineFlags::Parse(argc, argv); | 795 SkCommandLineFlags::Parse(argc, argv); |
803 return nanobench_main(); | 796 return nanobench_main(); |
804 } | 797 } |
805 #endif | 798 #endif |
OLD | NEW |