diff options
author | djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-07-18 19:11:30 +0000 |
---|---|---|
committer | djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-07-18 19:11:30 +0000 |
commit | 25a11e48e54b0d3895a69228090f1455131db987 (patch) | |
tree | 06c0bf040087d1d044924c17c408a0a52f15f0f8 /bench/MathBench.cpp | |
parent | 114cfbd10ec2d91aa60fcc60a795c45d5b8345ae (diff) |
Add bench to test float to fixed conversion
R=reed@google.com
Review URL: https://codereview.chromium.org/19773006
git-svn-id: http://skia.googlecode.com/svn/trunk@10155 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'bench/MathBench.cpp')
-rw-r--r-- | bench/MathBench.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/bench/MathBench.cpp b/bench/MathBench.cpp index 1fc5705be8..32a89d64ef 100644 --- a/bench/MathBench.cpp +++ b/bench/MathBench.cpp @@ -480,6 +480,48 @@ private: /////////////////////////////////////////////////////////////////////////////// +class FixedMathBench : public SkBenchmark { + enum { + N = SkBENCHLOOP(1000), + NN = SkBENCHLOOP(1000), + }; + float fData[N]; + SkFixed fResult[N]; +public: + + FixedMathBench(void* param) : INHERITED(param) { + SkRandom rand; + for (int i = 0; i < N; ++i) { + fData[i] = rand.nextSScalar1(); + } + + fIsRendering = false; + } + +protected: + virtual void onDraw(SkCanvas*) { + for (int j = 0; j < NN; ++j) { + for (int i = 0; i < N - 4; ++i) { + fResult[i] = SkFloatToFixed(fData[i]); + } + } + + SkPaint paint; + if (paint.getAlpha() == 0) { + SkDebugf("%d\n", fResult[0]); + } + } + + virtual const char* onGetName() { + return "float_to_fixed"; + } + +private: + typedef SkBenchmark INHERITED; +}; + +/////////////////////////////////////////////////////////////////////////////// + DEF_BENCH( return new NoOpMathBench(p); ) DEF_BENCH( return new SlowISqrtMathBench(p); ) DEF_BENCH( return new FastISqrtMathBench(p); ) @@ -501,3 +543,5 @@ DEF_BENCH( return new CLZBench(p, false); ) DEF_BENCH( return new CLZBench(p, true); ) DEF_BENCH( return new NormalizeBench(p); ) + +DEF_BENCH( return new FixedMathBench(p); ) |