Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(80)

Side by Side Diff: bench/PathBench.cpp

Issue 1379923005: Remove const from `const int loops`. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: n too Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « bench/PatchGridBench.cpp ('k') | bench/PathIterBench.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2011 Google Inc. 2 * Copyright 2011 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 "Benchmark.h" 8 #include "Benchmark.h"
9 #include "SkBitmap.h" 9 #include "SkBitmap.h"
10 #include "SkCanvas.h" 10 #include "SkCanvas.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 44
45 protected: 45 protected:
46 const char* onGetName() override { 46 const char* onGetName() override {
47 fName.printf("path_%s_%s_", 47 fName.printf("path_%s_%s_",
48 fFlags & kStroke_Flag ? "stroke" : "fill", 48 fFlags & kStroke_Flag ? "stroke" : "fill",
49 fFlags & kBig_Flag ? "big" : "small"); 49 fFlags & kBig_Flag ? "big" : "small");
50 this->appendName(&fName); 50 this->appendName(&fName);
51 return fName.c_str(); 51 return fName.c_str();
52 } 52 }
53 53
54 void onDraw(const int loops, SkCanvas* canvas) override { 54 void onDraw(int loops, SkCanvas* canvas) override {
55 SkPaint paint(fPaint); 55 SkPaint paint(fPaint);
56 this->setupPaint(&paint); 56 this->setupPaint(&paint);
57 57
58 SkPath path; 58 SkPath path;
59 this->makePath(&path); 59 this->makePath(&path);
60 if (fFlags & kBig_Flag) { 60 if (fFlags & kBig_Flag) {
61 const SkMatrix m = SkMatrix::MakeScale(SkIntToScalar(10), SkIntToSca lar(10)); 61 const SkMatrix m = SkMatrix::MakeScale(SkIntToScalar(10), SkIntToSca lar(10));
62 path.transform(m); 62 path.transform(m);
63 } 63 }
64 64
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 322
323 protected: 323 protected:
324 const char* onGetName() override { 324 const char* onGetName() override {
325 return "path_create"; 325 return "path_create";
326 } 326 }
327 327
328 void onDelayedSetup() override { 328 void onDelayedSetup() override {
329 this->createData(10, 100); 329 this->createData(10, 100);
330 } 330 }
331 331
332 void onDraw(const int loops, SkCanvas*) override { 332 void onDraw(int loops, SkCanvas*) override {
333 for (int i = 0; i < loops; ++i) { 333 for (int i = 0; i < loops; ++i) {
334 if (i % 1000 == 0) { 334 if (i % 1000 == 0) {
335 fPath.reset(); // PathRef memory can grow without bound otherwi se. 335 fPath.reset(); // PathRef memory can grow without bound otherwi se.
336 } 336 }
337 this->makePath(&fPath); 337 this->makePath(&fPath);
338 } 338 }
339 this->restartMakingPaths(); 339 this->restartMakingPaths();
340 } 340 }
341 341
342 private: 342 private:
(...skipping 13 matching lines...) Expand all
356 } 356 }
357 void onDelayedSetup() override { 357 void onDelayedSetup() override {
358 this->createData(10, 100); 358 this->createData(10, 100);
359 fPaths.reset(kPathCnt); 359 fPaths.reset(kPathCnt);
360 fCopies.reset(kPathCnt); 360 fCopies.reset(kPathCnt);
361 for (int i = 0; i < kPathCnt; ++i) { 361 for (int i = 0; i < kPathCnt; ++i) {
362 this->makePath(&fPaths[i]); 362 this->makePath(&fPaths[i]);
363 } 363 }
364 this->finishedMakingPaths(); 364 this->finishedMakingPaths();
365 } 365 }
366 void onDraw(const int loops, SkCanvas*) override { 366 void onDraw(int loops, SkCanvas*) override {
367 for (int i = 0; i < loops; ++i) { 367 for (int i = 0; i < loops; ++i) {
368 int idx = i & (kPathCnt - 1); 368 int idx = i & (kPathCnt - 1);
369 fCopies[idx] = fPaths[idx]; 369 fCopies[idx] = fPaths[idx];
370 } 370 }
371 } 371 }
372 372
373 private: 373 private:
374 enum { 374 enum {
375 // must be a pow 2 375 // must be a pow 2
376 kPathCnt = 1 << 5, 376 kPathCnt = 1 << 5,
(...skipping 19 matching lines...) Expand all
396 fPaths.reset(kPathCnt); 396 fPaths.reset(kPathCnt);
397 for (int i = 0; i < kPathCnt; ++i) { 397 for (int i = 0; i < kPathCnt; ++i) {
398 this->makePath(&fPaths[i]); 398 this->makePath(&fPaths[i]);
399 } 399 }
400 this->finishedMakingPaths(); 400 this->finishedMakingPaths();
401 if (!fInPlace) { 401 if (!fInPlace) {
402 fTransformed.reset(kPathCnt); 402 fTransformed.reset(kPathCnt);
403 } 403 }
404 } 404 }
405 405
406 void onDraw(const int loops, SkCanvas*) override { 406 void onDraw(int loops, SkCanvas*) override {
407 if (fInPlace) { 407 if (fInPlace) {
408 for (int i = 0; i < loops; ++i) { 408 for (int i = 0; i < loops; ++i) {
409 fPaths[i & (kPathCnt - 1)].transform(fMatrix); 409 fPaths[i & (kPathCnt - 1)].transform(fMatrix);
410 } 410 }
411 } else { 411 } else {
412 for (int i = 0; i < loops; ++i) { 412 for (int i = 0; i < loops; ++i) {
413 int idx = i & (kPathCnt - 1); 413 int idx = i & (kPathCnt - 1);
414 fPaths[idx].transform(fMatrix, &fTransformed[idx]); 414 fPaths[idx].transform(fMatrix, &fTransformed[idx]);
415 } 415 }
416 } 416 }
(...skipping 26 matching lines...) Expand all
443 this->createData(10, 100); 443 this->createData(10, 100);
444 fPaths.reset(kPathCnt); 444 fPaths.reset(kPathCnt);
445 fCopies.reset(kPathCnt); 445 fCopies.reset(kPathCnt);
446 for (int i = 0; i < kPathCnt; ++i) { 446 for (int i = 0; i < kPathCnt; ++i) {
447 this->makePath(&fPaths[i]); 447 this->makePath(&fPaths[i]);
448 fCopies[i] = fPaths[i]; 448 fCopies[i] = fPaths[i];
449 } 449 }
450 this->finishedMakingPaths(); 450 this->finishedMakingPaths();
451 } 451 }
452 452
453 void onDraw(const int loops, SkCanvas*) override { 453 void onDraw(int loops, SkCanvas*) override {
454 for (int i = 0; i < loops; ++i) { 454 for (int i = 0; i < loops; ++i) {
455 int idx = i & (kPathCnt - 1); 455 int idx = i & (kPathCnt - 1);
456 fParity ^= (fPaths[idx] == fCopies[idx & ~0x1]); 456 fParity ^= (fPaths[idx] == fCopies[idx & ~0x1]);
457 } 457 }
458 } 458 }
459 459
460 private: 460 private:
461 bool fParity; // attempt to keep compiler from optimizing out the == 461 bool fParity; // attempt to keep compiler from optimizing out the ==
462 enum { 462 enum {
463 // must be a pow 2 463 // must be a pow 2
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 this->createData(10, 100, allowMoves); 507 this->createData(10, 100, allowMoves);
508 fPaths0.reset(kPathCnt); 508 fPaths0.reset(kPathCnt);
509 fPaths1.reset(kPathCnt); 509 fPaths1.reset(kPathCnt);
510 for (int i = 0; i < kPathCnt; ++i) { 510 for (int i = 0; i < kPathCnt; ++i) {
511 this->makePath(&fPaths0[i]); 511 this->makePath(&fPaths0[i]);
512 this->makePath(&fPaths1[i]); 512 this->makePath(&fPaths1[i]);
513 } 513 }
514 this->finishedMakingPaths(); 514 this->finishedMakingPaths();
515 } 515 }
516 516
517 void onDraw(const int loops, SkCanvas*) override { 517 void onDraw(int loops, SkCanvas*) override {
518 switch (fType) { 518 switch (fType) {
519 case kAdd_AddType: 519 case kAdd_AddType:
520 for (int i = 0; i < loops; ++i) { 520 for (int i = 0; i < loops; ++i) {
521 int idx = i & (kPathCnt - 1); 521 int idx = i & (kPathCnt - 1);
522 SkPath result = fPaths0[idx]; 522 SkPath result = fPaths0[idx];
523 result.addPath(fPaths1[idx]); 523 result.addPath(fPaths1[idx]);
524 } 524 }
525 break; 525 break;
526 case kAddTrans_AddType: 526 case kAddTrans_AddType:
527 for (int i = 0; i < loops; ++i) { 527 for (int i = 0; i < loops; ++i) {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 public: 575 public:
576 CirclesBench(Flags flags) : fFlags(flags) { 576 CirclesBench(Flags flags) : fFlags(flags) {
577 fName.printf("circles_%s", fFlags & kStroke_Flag ? "stroke" : "fill"); 577 fName.printf("circles_%s", fFlags & kStroke_Flag ? "stroke" : "fill");
578 } 578 }
579 579
580 protected: 580 protected:
581 const char* onGetName() override { 581 const char* onGetName() override {
582 return fName.c_str(); 582 return fName.c_str();
583 } 583 }
584 584
585 void onDraw(const int loops, SkCanvas* canvas) override { 585 void onDraw(int loops, SkCanvas* canvas) override {
586 SkPaint paint; 586 SkPaint paint;
587 587
588 paint.setColor(SK_ColorBLACK); 588 paint.setColor(SK_ColorBLACK);
589 paint.setAntiAlias(true); 589 paint.setAntiAlias(true);
590 if (fFlags & kStroke_Flag) { 590 if (fFlags & kStroke_Flag) {
591 paint.setStyle(SkPaint::kStroke_Style); 591 paint.setStyle(SkPaint::kStroke_Style);
592 } 592 }
593 593
594 SkRandom rand; 594 SkRandom rand;
595 595
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
681 // we are lazy here and use the same x & y for each corner 681 // we are lazy here and use the same x & y for each corner
682 add_corner_arc(path, r, xCorner, yCorner, 270); 682 add_corner_arc(path, r, xCorner, yCorner, 270);
683 add_corner_arc(path, r, xCorner, yCorner, 0); 683 add_corner_arc(path, r, xCorner, yCorner, 0);
684 add_corner_arc(path, r, xCorner, yCorner, 90); 684 add_corner_arc(path, r, xCorner, yCorner, 90);
685 add_corner_arc(path, r, xCorner, yCorner, 180); 685 add_corner_arc(path, r, xCorner, yCorner, 180);
686 path->close(); 686 path->close();
687 687
688 SkASSERT(path->isConvex()); 688 SkASSERT(path->isConvex());
689 } 689 }
690 690
691 void onDraw(const int loops, SkCanvas* canvas) override { 691 void onDraw(int loops, SkCanvas* canvas) override {
692 SkRandom rand; 692 SkRandom rand;
693 SkRect r; 693 SkRect r;
694 694
695 for (int i = 0; i < loops; ++i) { 695 for (int i = 0; i < loops; ++i) {
696 SkPaint paint; 696 SkPaint paint;
697 paint.setColor(0xff000000 | rand.nextU()); 697 paint.setColor(0xff000000 | rand.nextU());
698 paint.setAntiAlias(true); 698 paint.setAntiAlias(true);
699 699
700 SkScalar size = rand.nextUScalar1() * 30; 700 SkScalar size = rand.nextUScalar1() * 30;
701 if (size < SK_Scalar1) { 701 if (size < SK_Scalar1) {
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
755 755
756 bool isSuitableFor(Backend backend) override { 756 bool isSuitableFor(Backend backend) override {
757 return backend == kNonRendering_Backend; 757 return backend == kNonRendering_Backend;
758 } 758 }
759 759
760 private: 760 private:
761 const char* onGetName() override { 761 const char* onGetName() override {
762 return fName.c_str(); 762 return fName.c_str();
763 } 763 }
764 764
765 void onDraw(const int loops, SkCanvas*) override { 765 void onDraw(int loops, SkCanvas*) override {
766 for (int i = 0; i < loops; ++i) { 766 for (int i = 0; i < loops; ++i) {
767 const SkRect& rect = fQueryRects[i % kQueryRectCnt]; 767 const SkRect& rect = fQueryRects[i % kQueryRectCnt];
768 fParity = fParity != fPath.conservativelyContainsRect(rect); 768 fParity = fParity != fPath.conservativelyContainsRect(rect);
769 } 769 }
770 } 770 }
771 771
772 void onDelayedSetup() override { 772 void onDelayedSetup() override {
773 fQueryRects.setCount(kQueryRectCnt); 773 fQueryRects.setCount(kQueryRectCnt);
774 774
775 SkRandom rand; 775 SkRandom rand;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
818 fRQ.fW = SkScalarCos(SK_ScalarPI/4); 818 fRQ.fW = SkScalarCos(SK_ScalarPI/4);
819 } 819 }
820 820
821 bool isSuitableFor(Backend backend) override { 821 bool isSuitableFor(Backend backend) override {
822 return backend == kNonRendering_Backend; 822 return backend == kNonRendering_Backend;
823 } 823 }
824 824
825 private: 825 private:
826 const char* onGetName() override { return fName.c_str(); } 826 const char* onGetName() override { return fName.c_str(); }
827 827
828 void onDraw(const int loops, SkCanvas*) override { 828 void onDraw(int loops, SkCanvas*) override {
829 for (int i = 0; i < loops; ++i) { 829 for (int i = 0; i < loops; ++i) {
830 fRQ.chop(fDst); 830 fRQ.chop(fDst);
831 } 831 }
832 } 832 }
833 833
834 typedef Benchmark INHERITED; 834 typedef Benchmark INHERITED;
835 }; 835 };
836 DEF_BENCH( return new ConicBench_Chop; ) 836 DEF_BENCH( return new ConicBench_Chop; )
837 837
838 class ConicBench_EvalPos : public ConicBench_Chop { 838 class ConicBench_EvalPos : public ConicBench_Chop {
839 const bool fUseV2; 839 const bool fUseV2;
840 public: 840 public:
841 ConicBench_EvalPos(bool useV2) : fUseV2(useV2) { 841 ConicBench_EvalPos(bool useV2) : fUseV2(useV2) {
842 fName.printf("conic-eval-pos%d", useV2); 842 fName.printf("conic-eval-pos%d", useV2);
843 } 843 }
844 void onDraw(const int loops, SkCanvas*) override { 844 void onDraw(int loops, SkCanvas*) override {
845 if (fUseV2) { 845 if (fUseV2) {
846 for (int i = 0; i < loops; ++i) { 846 for (int i = 0; i < loops; ++i) {
847 for (int j = 0; j < 1000; ++j) { 847 for (int j = 0; j < 1000; ++j) {
848 fDst[0].fPts[0] = fRQ.evalAt(0.4f); 848 fDst[0].fPts[0] = fRQ.evalAt(0.4f);
849 } 849 }
850 } 850 }
851 } else { 851 } else {
852 for (int i = 0; i < loops; ++i) { 852 for (int i = 0; i < loops; ++i) {
853 for (int j = 0; j < 1000; ++j) { 853 for (int j = 0; j < 1000; ++j) {
854 fRQ.evalAt(0.4f, &fDst[0].fPts[0], nullptr); 854 fRQ.evalAt(0.4f, &fDst[0].fPts[0], nullptr);
855 } 855 }
856 } 856 }
857 } 857 }
858 } 858 }
859 }; 859 };
860 DEF_BENCH( return new ConicBench_EvalPos(false); ) 860 DEF_BENCH( return new ConicBench_EvalPos(false); )
861 DEF_BENCH( return new ConicBench_EvalPos(true); ) 861 DEF_BENCH( return new ConicBench_EvalPos(true); )
862 862
863 class ConicBench_EvalTan : public ConicBench_Chop { 863 class ConicBench_EvalTan : public ConicBench_Chop {
864 const bool fUseV2; 864 const bool fUseV2;
865 public: 865 public:
866 ConicBench_EvalTan(bool useV2) : fUseV2(useV2) { 866 ConicBench_EvalTan(bool useV2) : fUseV2(useV2) {
867 fName.printf("conic-eval-tan%d", useV2); 867 fName.printf("conic-eval-tan%d", useV2);
868 } 868 }
869 void onDraw(const int loops, SkCanvas*) override { 869 void onDraw(int loops, SkCanvas*) override {
870 if (fUseV2) { 870 if (fUseV2) {
871 for (int i = 0; i < loops; ++i) { 871 for (int i = 0; i < loops; ++i) {
872 for (int j = 0; j < 1000; ++j) { 872 for (int j = 0; j < 1000; ++j) {
873 fDst[0].fPts[0] = fRQ.evalTangentAt(0.4f); 873 fDst[0].fPts[0] = fRQ.evalTangentAt(0.4f);
874 } 874 }
875 } 875 }
876 } else { 876 } else {
877 for (int i = 0; i < loops; ++i) { 877 for (int i = 0; i < loops; ++i) {
878 for (int j = 0; j < 1000; ++j) { 878 for (int j = 0; j < 1000; ++j) {
879 fRQ.evalAt(0.4f, nullptr, &fDst[0].fPts[0]); 879 fRQ.evalAt(0.4f, nullptr, &fDst[0].fPts[0]);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
923 923
924 class ConicBench_ComputeError : public ConicBench { 924 class ConicBench_ComputeError : public ConicBench {
925 public: 925 public:
926 ConicBench_ComputeError() {} 926 ConicBench_ComputeError() {}
927 927
928 protected: 928 protected:
929 const char* onGetName() override { 929 const char* onGetName() override {
930 return "conic-compute-error"; 930 return "conic-compute-error";
931 } 931 }
932 932
933 void onDraw(const int loops, SkCanvas*) override { 933 void onDraw(int loops, SkCanvas*) override {
934 SkVector err; 934 SkVector err;
935 for (int i = 0; i < loops; ++i) { 935 for (int i = 0; i < loops; ++i) {
936 for (int j = 0; j < CONICS; ++j) { 936 for (int j = 0; j < CONICS; ++j) {
937 fConics[j].computeAsQuadError(&err); 937 fConics[j].computeAsQuadError(&err);
938 } 938 }
939 } 939 }
940 } 940 }
941 941
942 private: 942 private:
943 typedef ConicBench INHERITED; 943 typedef ConicBench INHERITED;
944 }; 944 };
945 945
946 class ConicBench_asQuadTol : public ConicBench { 946 class ConicBench_asQuadTol : public ConicBench {
947 public: 947 public:
948 ConicBench_asQuadTol() {} 948 ConicBench_asQuadTol() {}
949 949
950 protected: 950 protected:
951 const char* onGetName() override { 951 const char* onGetName() override {
952 return "conic-asQuadTol"; 952 return "conic-asQuadTol";
953 } 953 }
954 954
955 void onDraw(const int loops, SkCanvas*) override { 955 void onDraw(int loops, SkCanvas*) override {
956 for (int i = 0; i < loops; ++i) { 956 for (int i = 0; i < loops; ++i) {
957 for (int j = 0; j < CONICS; ++j) { 957 for (int j = 0; j < CONICS; ++j) {
958 fConics[j].asQuadTol(SK_ScalarHalf); 958 fConics[j].asQuadTol(SK_ScalarHalf);
959 } 959 }
960 } 960 }
961 } 961 }
962 962
963 private: 963 private:
964 typedef ConicBench INHERITED; 964 typedef ConicBench INHERITED;
965 }; 965 };
966 966
967 class ConicBench_quadPow2 : public ConicBench { 967 class ConicBench_quadPow2 : public ConicBench {
968 public: 968 public:
969 ConicBench_quadPow2() {} 969 ConicBench_quadPow2() {}
970 970
971 protected: 971 protected:
972 const char* onGetName() override { 972 const char* onGetName() override {
973 return "conic-quadPow2"; 973 return "conic-quadPow2";
974 } 974 }
975 975
976 void onDraw(const int loops, SkCanvas*) override { 976 void onDraw(int loops, SkCanvas*) override {
977 for (int i = 0; i < loops; ++i) { 977 for (int i = 0; i < loops; ++i) {
978 for (int j = 0; j < CONICS; ++j) { 978 for (int j = 0; j < CONICS; ++j) {
979 fConics[j].computeQuadPOW2(SK_ScalarHalf); 979 fConics[j].computeQuadPOW2(SK_ScalarHalf);
980 } 980 }
981 } 981 }
982 } 982 }
983 983
984 private: 984 private:
985 typedef ConicBench INHERITED; 985 typedef ConicBench INHERITED;
986 }; 986 };
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1042 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::k Oval_Type); ) 1042 DEF_BENCH( return new ConservativelyContainsBench(ConservativelyContainsBench::k Oval_Type); )
1043 1043
1044 1044
1045 // These seem to be optimized away, which is troublesome for timing. 1045 // These seem to be optimized away, which is troublesome for timing.
1046 /* 1046 /*
1047 DEF_BENCH( return new ConicBench_Chop5() ) 1047 DEF_BENCH( return new ConicBench_Chop5() )
1048 DEF_BENCH( return new ConicBench_ComputeError() ) 1048 DEF_BENCH( return new ConicBench_ComputeError() )
1049 DEF_BENCH( return new ConicBench_asQuadTol() ) 1049 DEF_BENCH( return new ConicBench_asQuadTol() )
1050 DEF_BENCH( return new ConicBench_quadPow2() ) 1050 DEF_BENCH( return new ConicBench_quadPow2() )
1051 */ 1051 */
OLDNEW
« no previous file with comments | « bench/PatchGridBench.cpp ('k') | bench/PathIterBench.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698