OLD | NEW |
1 #include "SkBenchmark.h" | 1 #include "SkBenchmark.h" |
2 #include "SkColorPriv.h" | 2 #include "SkColorPriv.h" |
3 #include "SkMatrix.h" | 3 #include "SkMatrix.h" |
4 #include "SkRandom.h" | 4 #include "SkRandom.h" |
5 #include "SkString.h" | 5 #include "SkString.h" |
6 #include "SkPaint.h" | 6 #include "SkPaint.h" |
7 | 7 |
8 static float sk_fsel(float pred, float result_ge, float result_lt) { | 8 static float sk_fsel(float pred, float result_ge, float result_lt) { |
9 return pred >= 0 ? result_ge : result_lt; | 9 return pred >= 0 ? result_ge : result_lt; |
10 } | 10 } |
(...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
507 } | 507 } |
508 | 508 |
509 private: | 509 private: |
510 typedef SkBenchmark INHERITED; | 510 typedef SkBenchmark INHERITED; |
511 }; | 511 }; |
512 | 512 |
513 /////////////////////////////////////////////////////////////////////////////// | 513 /////////////////////////////////////////////////////////////////////////////// |
514 | 514 |
515 template <typename T> | 515 template <typename T> |
516 class DivModBench : public SkBenchmark { | 516 class DivModBench : public SkBenchmark { |
517 const char* fName; | 517 SkString fName; |
518 public: | 518 public: |
519 explicit DivModBench(const char* name) : fName(name) { | 519 explicit DivModBench(const char* name) { |
| 520 fName.printf("divmod_%s", name); |
520 fIsRendering = false; | 521 fIsRendering = false; |
521 } | 522 } |
522 | 523 |
523 protected: | 524 protected: |
524 virtual const char* onGetName() { | 525 virtual const char* onGetName() { |
525 return SkStringPrintf("divmod_%s", fName).c_str(); | 526 return fName.c_str(); |
526 } | 527 } |
527 | 528 |
528 virtual void onDraw(SkCanvas*) { | 529 virtual void onDraw(SkCanvas*) { |
529 volatile T a = 0, b = 0; | 530 volatile T a = 0, b = 0; |
530 T div = 0, mod = 0; | 531 T div = 0, mod = 0; |
531 for (int i = 0; i < this->getLoops(); i++) { | 532 for (int i = 0; i < this->getLoops(); i++) { |
532 if ((T)i == 0) continue; // Small T will wrap around. | 533 if ((T)i == 0) continue; // Small T will wrap around. |
533 SkTDivMod((T)(i+1), (T)i, &div, &mod); | 534 SkTDivMod((T)(i+1), (T)i, &div, &mod); |
534 a ^= div; | 535 a ^= div; |
535 b ^= mod; | 536 b ^= mod; |
(...skipping 28 matching lines...) Expand all Loading... |
564 | 565 |
565 DEF_BENCH( return new FloorBench(false); ) | 566 DEF_BENCH( return new FloorBench(false); ) |
566 DEF_BENCH( return new FloorBench(true); ) | 567 DEF_BENCH( return new FloorBench(true); ) |
567 | 568 |
568 DEF_BENCH( return new CLZBench(false); ) | 569 DEF_BENCH( return new CLZBench(false); ) |
569 DEF_BENCH( return new CLZBench(true); ) | 570 DEF_BENCH( return new CLZBench(true); ) |
570 | 571 |
571 DEF_BENCH( return new NormalizeBench(); ) | 572 DEF_BENCH( return new NormalizeBench(); ) |
572 | 573 |
573 DEF_BENCH( return new FixedMathBench(); ) | 574 DEF_BENCH( return new FixedMathBench(); ) |
OLD | NEW |