Chromium Code Reviews| Index: bench/BlurImageFilterBench.cpp |
| diff --git a/bench/BlurImageFilterBench.cpp b/bench/BlurImageFilterBench.cpp |
| index e4476a11edeba78d47bdf148836922a7d36cda01..5d3f0e0b0eb5d91a81a8eedd156a9b5d01e5dcfe 100644 |
| --- a/bench/BlurImageFilterBench.cpp |
| +++ b/bench/BlurImageFilterBench.cpp |
| @@ -7,6 +7,7 @@ |
| #include "Benchmark.h" |
| #include "SkBlurImageFilter.h" |
| +#include "SkOffsetImageFilter.h" |
| #include "SkCanvas.h" |
| #include "SkPaint.h" |
| #include "SkRandom.h" |
| @@ -24,10 +25,15 @@ |
|
robertphillips
2015/10/30 17:09:14
// When 'cropped' is set we apply a cropRect to th
Stephen White
2015/10/30 20:05:46
Done.
|
| class BlurImageFilterBench : public Benchmark { |
| public: |
| - BlurImageFilterBench(SkScalar sigmaX, SkScalar sigmaY, bool small, bool cropped) : |
| - fIsSmall(small), fIsCropped(cropped), fInitialized(false), fSigmaX(sigmaX), fSigmaY(sigmaY) { |
| - fName.printf("blur_image_filter_%s%s_%.2f_%.2f", fIsSmall ? "small" : "large", |
| - fIsCropped ? "_cropped" : "", SkScalarToFloat(sigmaX), SkScalarToFloat(sigmaY)); |
| + BlurImageFilterBench(SkScalar sigmaX, SkScalar sigmaY, bool small, bool cropped, |
| + bool expanded) : |
|
robertphillips
2015/10/30 17:09:14
knock this into the canonical "\n:X\n,Y {" formatt
Stephen White
2015/10/30 20:05:46
Done.
|
| + fIsSmall(small), fIsCropped(cropped), fIsExpanded(expanded), fInitialized(false), |
| + fSigmaX(sigmaX), fSigmaY(sigmaY) { |
| + fName.printf("blur_image_filter_%s%s%s_%.2f_%.2f", |
| + fIsSmall ? "small" : "large", |
| + fIsCropped ? "_cropped" : "", |
| + fIsExpanded ? "_expanded" : "", |
| + SkScalarToFloat(sigmaX), SkScalarToFloat(sigmaY)); |
|
robertphillips
2015/10/30 17:09:14
SkASSERT(!fIsExpanded || fIsCropped); // never wan
Stephen White
2015/10/30 20:05:46
Done.
|
| } |
| protected: |
| @@ -49,11 +55,16 @@ protected: |
| const SkRect bmpRect = SkRect::MakeXYWH(kX, kY, |
| SkIntToScalar(fCheckerboard.width()), |
| SkIntToScalar(fCheckerboard.height())); |
| - const SkImageFilter::CropRect cropRect = |
| - SkImageFilter::CropRect(bmpRect.makeInset(10.f, 10.f)); |
| - const SkImageFilter::CropRect* crop = fIsCropped ? &cropRect : nullptr; |
| + const SkImageFilter::CropRect cropRect(bmpRect.makeInset(10.f, 10.f)); |
| + const SkImageFilter::CropRect cropRectLarge(bmpRect); |
| + SkAutoTUnref<SkImageFilter> noOpCropped(SkOffsetImageFilter::Create(0, 0, nullptr, |
| + &cropRect)); |
| - paint.setImageFilter(SkBlurImageFilter::Create(fSigmaX, fSigmaY, nullptr, crop))->unref(); |
| + SkImageFilter* input = fIsExpanded ? noOpCropped.get() : nullptr; |
| + |
| + const SkImageFilter::CropRect* crop = |
| + fIsExpanded ? &cropRectLarge : fIsCropped ? &cropRect : nullptr; |
| + paint.setImageFilter(SkBlurImageFilter::Create(fSigmaX, fSigmaY, input, crop))->unref(); |
| for (int i = 0; i < loops; i++) { |
| canvas->drawBitmap(fCheckerboard, kX, kY, &paint); |
| @@ -87,34 +98,48 @@ private: |
| SkString fName; |
| bool fIsSmall; |
| bool fIsCropped; |
| + bool fIsExpanded; |
| bool fInitialized; |
| SkBitmap fCheckerboard; |
| SkScalar fSigmaX, fSigmaY; |
| typedef Benchmark INHERITED; |
| }; |
| -DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_LARGE, 0, false, false);) |
| -DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_SMALL, 0, false, false);) |
| -DEF_BENCH(return new BlurImageFilterBench(0, BLUR_SIGMA_LARGE, false, false);) |
| -DEF_BENCH(return new BlurImageFilterBench(0, BLUR_SIGMA_SMALL, false, false);) |
| -DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_MINI, BLUR_SIGMA_MINI, true, false);) |
| -DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_MINI, BLUR_SIGMA_MINI, false, false);) |
| -DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_SMALL, BLUR_SIGMA_SMALL, true, false);) |
| -DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_SMALL, BLUR_SIGMA_SMALL, false, false);) |
| -DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_LARGE, BLUR_SIGMA_LARGE, true, false);) |
| -DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_LARGE, BLUR_SIGMA_LARGE, false, false);) |
| -DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_HUGE, BLUR_SIGMA_HUGE, true, false);) |
| -DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_HUGE, BLUR_SIGMA_HUGE, false, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_LARGE, 0, false, false, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_SMALL, 0, false, false, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(0, BLUR_SIGMA_LARGE, false, false, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(0, BLUR_SIGMA_SMALL, false, false, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_MINI, BLUR_SIGMA_MINI, true, false, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_MINI, BLUR_SIGMA_MINI, false, false, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_SMALL, BLUR_SIGMA_SMALL, true, false, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_SMALL, BLUR_SIGMA_SMALL, false, false, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_LARGE, BLUR_SIGMA_LARGE, true, false, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_LARGE, BLUR_SIGMA_LARGE, false, false, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_HUGE, BLUR_SIGMA_HUGE, true, false, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_HUGE, BLUR_SIGMA_HUGE, false, false, false);) |
| + |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_LARGE, 0, false, true, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_SMALL, 0, false, true, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(0, BLUR_SIGMA_LARGE, false, true, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(0, BLUR_SIGMA_SMALL, false, true, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_MINI, BLUR_SIGMA_MINI, true, true, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_MINI, BLUR_SIGMA_MINI, false, true, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_SMALL, BLUR_SIGMA_SMALL, true, true, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_SMALL, BLUR_SIGMA_SMALL, false, true, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_LARGE, BLUR_SIGMA_LARGE, true, true, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_LARGE, BLUR_SIGMA_LARGE, false, true, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_HUGE, BLUR_SIGMA_HUGE, true, true, false);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_HUGE, BLUR_SIGMA_HUGE, false, true, false);) |
| -DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_LARGE, 0, false, true);) |
| -DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_SMALL, 0, false, true);) |
| -DEF_BENCH(return new BlurImageFilterBench(0, BLUR_SIGMA_LARGE, false, true);) |
| -DEF_BENCH(return new BlurImageFilterBench(0, BLUR_SIGMA_SMALL, false, true);) |
| -DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_MINI, BLUR_SIGMA_MINI, true, true);) |
| -DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_MINI, BLUR_SIGMA_MINI, false, true);) |
| -DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_SMALL, BLUR_SIGMA_SMALL, true, true);) |
| -DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_SMALL, BLUR_SIGMA_SMALL, false, true);) |
| -DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_LARGE, BLUR_SIGMA_LARGE, true, true);) |
| -DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_LARGE, BLUR_SIGMA_LARGE, false, true);) |
| -DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_HUGE, BLUR_SIGMA_HUGE, true, true);) |
| -DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_HUGE, BLUR_SIGMA_HUGE, false, true);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_LARGE, 0, false, true, true);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_SMALL, 0, false, true, true);) |
| +DEF_BENCH(return new BlurImageFilterBench(0, BLUR_SIGMA_LARGE, false, true, true);) |
| +DEF_BENCH(return new BlurImageFilterBench(0, BLUR_SIGMA_SMALL, false, true, true);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_MINI, BLUR_SIGMA_MINI, true, true, true);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_MINI, BLUR_SIGMA_MINI, false, true, true);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_SMALL, BLUR_SIGMA_SMALL, true, true, true);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_SMALL, BLUR_SIGMA_SMALL, false, true, true);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_LARGE, BLUR_SIGMA_LARGE, true, true, true);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_LARGE, BLUR_SIGMA_LARGE, false, true, true);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_HUGE, BLUR_SIGMA_HUGE, true, true, true);) |
| +DEF_BENCH(return new BlurImageFilterBench(BLUR_SIGMA_HUGE, BLUR_SIGMA_HUGE, false, true, true);) |