From 25a11e48e54b0d3895a69228090f1455131db987 Mon Sep 17 00:00:00 2001 From: "djsollen@google.com" Date: Thu, 18 Jul 2013 19:11:30 +0000 Subject: 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 --- bench/MathBench.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'bench/MathBench.cpp') 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); ) -- cgit v1.2.3