explicitly set opt level for mac-release
authorreed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Mon, 10 Oct 2011 14:19:40 +0000 (14:19 +0000)
committerreed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Mon, 10 Oct 2011 14:19:40 +0000 (14:19 +0000)
delete obsolete FPS bench

git-svn-id: http://skia.googlecode.com/svn/trunk@2442 2bbb7eff-a529-9590-31e7-b0007b416f81

bench/FPSBench.cpp [deleted file]
bench/MathBench.cpp
gyp/bench.gypi
gyp/common_conditions.gypi

diff --git a/bench/FPSBench.cpp b/bench/FPSBench.cpp
deleted file mode 100644 (file)
index f29fe04..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-
-/*
- * Copyright 2011 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-#include "SkBenchmark.h"
-#include "SkCanvas.h"
-#include "SkPaint.h"
-#include "SkRandom.h"
-#include "SkString.h"
-
-class FPSBench : public SkBenchmark {
-    int32_t fWidth;
-    int32_t fHeight;
-public:
-    FPSBench(void* p) : INHERITED(p) {
-        fWidth = 640;
-        (void)this->findDefine32("width", &fWidth);
-        fHeight = 480;
-        (void)this->findDefine32("height", &fHeight);
-    }
-
-    int width() const { return fWidth; }
-    int height() const { return fHeight; }
-
-protected:
-    virtual SkIPoint onGetSize() { return SkIPoint::Make(fWidth, fHeight); }
-
-private:
-    typedef SkBenchmark INHERITED;
-};
-
-///////////////////////////////////////////////////////////////////////////////
-
-class Color_FPSBench : public FPSBench {
-public:
-    Color_FPSBench(void* p, SkColor c, const char name[]) : INHERITED(p) {
-        fColor = c;
-        fName = name;
-    }
-    
-protected:
-    virtual const char* onGetName() { return fName; }
-    virtual void onDraw(SkCanvas* canvas) {
-        canvas->drawColor(fColor);
-    }
-    
-private:
-    const char* fName;
-    SkColor     fColor;
-    
-    typedef FPSBench INHERITED;
-};
-
-class Bitmap_FPSBench : public FPSBench {
-public:
-    Bitmap_FPSBench(void* p, SkBitmap::Config config, bool doOpaque, bool doScale) : INHERITED(p) {
-        fBitmap.setConfig(config, this->width(), this->height());
-        fBitmap.allocPixels();
-        fBitmap.eraseColor(0xFFFF0000);
-        if (doOpaque) {
-            fBitmap.setIsOpaque(true);
-        }
-
-        const char* configStr = "565";
-        if (config == SkBitmap::kARGB_8888_Config) {
-            if (doOpaque) {
-                configStr = "X888";
-            } else {
-                configStr = "8888";
-            }
-        }
-        fName.printf("fps_bitmap_%s_%s", configStr,
-                     doScale ? "scale" : "noscale");
-
-        fMatrix.reset();
-        if (doScale) {
-            fMatrix.setScale(SkIntToScalar(3)/2, SkIntToScalar(3)/2);
-        }
-
-    }
-    
-protected:
-    virtual const char* onGetName() { return fName.c_str(); }
-    virtual void onDraw(SkCanvas* canvas) {
-        this->setupPaint(&fPaint);
-        canvas->drawBitmapMatrix(fBitmap, fMatrix, &fPaint);
-    }
-    
-private:
-    SkBitmap    fBitmap;
-    SkMatrix    fMatrix;
-    SkPaint     fPaint;
-    SkString    fName;
-    
-    typedef FPSBench INHERITED;
-};
-
-static SkBenchmark* FillFactory(void* p) { return SkNEW_ARGS(Color_FPSBench, (p, 0xFFFF0000, "fps_fill")); }
-static SkBenchmark* BlendFactory(void* p) { return SkNEW_ARGS(Color_FPSBench, (p, 0x80FF0000, "fps_blend")); }
-static SkBenchmark* BMFactory0(void* p) { return SkNEW_ARGS(Bitmap_FPSBench, (p, SkBitmap::kARGB_8888_Config, false, false)); }
-static SkBenchmark* BMFactory1(void* p) { return SkNEW_ARGS(Bitmap_FPSBench, (p, SkBitmap::kARGB_8888_Config, false, true)); }
-static SkBenchmark* BMFactory2(void* p) { return SkNEW_ARGS(Bitmap_FPSBench, (p, SkBitmap::kARGB_8888_Config, true, false)); }
-static SkBenchmark* BMFactory3(void* p) { return SkNEW_ARGS(Bitmap_FPSBench, (p, SkBitmap::kARGB_8888_Config, true, true)); }
-static SkBenchmark* BMFactory4(void* p) { return SkNEW_ARGS(Bitmap_FPSBench, (p, SkBitmap::kRGB_565_Config, false, false)); }
-static SkBenchmark* BMFactory5(void* p) { return SkNEW_ARGS(Bitmap_FPSBench, (p, SkBitmap::kRGB_565_Config, false, true)); }
-
-static BenchRegistry gFillReg(FillFactory);
-static BenchRegistry gBlendReg(BlendFactory);
-static BenchRegistry gBMReg0(BMFactory0);
-static BenchRegistry gBMReg1(BMFactory1);
-static BenchRegistry gBMReg2(BMFactory2);
-static BenchRegistry gBMReg3(BMFactory3);
-static BenchRegistry gBMReg4(BMFactory4);
-static BenchRegistry gBMReg5(BMFactory5);
-
index a8eb43eb4c33a8cf35a7e035bbc26b25e42d5433..5726f38ede7a441d762b6e7df1f6b904482eb4a6 100644 (file)
@@ -1,4 +1,5 @@
 #include "SkBenchmark.h"
+#include "SkColorPriv.h"
 #include "SkMatrix.h"
 #include "SkRandom.h"
 #include "SkString.h"
@@ -40,14 +41,24 @@ private:
     typedef SkBenchmark INHERITED;
 };
 
-int gMathBench_NonStaticGlobal;
+class MathBenchU32 : public MathBench {
+public:
+    MathBenchU32(void* param, const char name[]) : INHERITED(param, name) {}
+
+protected:
+    virtual void performITest(uint32_t* dst, const uint32_t* src, int count) = 0;
+    
+    virtual void performTest(float* SK_RESTRICT dst, const float* SK_RESTRICT src,
+                             int count) SK_OVERRIDE {
+        uint32_t* d = SkTCast<uint32_t*>(dst);
+        const uint32_t* s = SkTCast<const uint32_t*>(src);
+        this->performITest(d, s, count);
+    }
+private:
+    typedef MathBench INHERITED;
+};
 
-#define always_do(pred)                     \
-    do {                                    \
-        if (pred) {                         \
-            ++gMathBench_NonStaticGlobal; \
-        }                                   \
-    } while (0)
+///////////////////////////////////////////////////////////////////////////////
 
 class NoOpMathBench : public MathBench {
 public:
@@ -98,12 +109,56 @@ private:
     typedef MathBench INHERITED;
 };
 
+static inline uint32_t QMul64(uint32_t value, U8CPU alpha) {
+    SkASSERT((uint8_t)alpha == alpha);
+    const uint32_t mask = 0xFF00FF;
+
+    uint64_t tmp = value;
+    tmp = (tmp & mask) | ((tmp & ~mask) << 24);
+    tmp *= alpha;
+    return ((tmp >> 8) & mask) | ((tmp >> 32) & ~mask);
+}
+
+class QMul64Bench : public MathBenchU32 {
+public:
+    QMul64Bench(void* param) : INHERITED(param, "qmul64") {}
+protected:
+    virtual void performITest(uint32_t* SK_RESTRICT dst,
+                              const uint32_t* SK_RESTRICT src,
+                              int count) SK_OVERRIDE {
+        for (int i = 0; i < count; ++i) {
+            dst[i] = QMul64(src[i], (uint8_t)i);
+        }
+    }
+private:
+    typedef MathBenchU32 INHERITED;
+};
+
+class QMul32Bench : public MathBenchU32 {
+public:
+    QMul32Bench(void* param) : INHERITED(param, "qmul32") {}
+protected:
+    virtual void performITest(uint32_t* SK_RESTRICT dst,
+                              const uint32_t* SK_RESTRICT src,
+                              int count) SK_OVERRIDE {
+        for (int i = 0; i < count; ++i) {
+            dst[i] = SkAlphaMulQ(src[i], (uint8_t)i);
+        }
+    }
+private:
+    typedef MathBenchU32 INHERITED;
+};
+
 ///////////////////////////////////////////////////////////////////////////////
 
 static SkBenchmark* M0(void* p) { return new NoOpMathBench(p); }
 static SkBenchmark* M1(void* p) { return new SlowISqrtMathBench(p); }
 static SkBenchmark* M2(void* p) { return new FastISqrtMathBench(p); }
+static SkBenchmark* M3(void* p) { return new QMul64Bench(p); }
+static SkBenchmark* M4(void* p) { return new QMul32Bench(p); }
 
 static BenchRegistry gReg0(M0);
 static BenchRegistry gReg1(M1);
 static BenchRegistry gReg2(M2);
+static BenchRegistry gReg3(M3);
+static BenchRegistry gReg4(M4);
index e84b6baa2ad62faf8b4a902703949b3b2fa19ef3..3b79380eec8764b81c8348b3aef461d9055cad8b 100644 (file)
@@ -22,7 +22,6 @@
     '../bench/BitmapBench.cpp',
     '../bench/BlurBench.cpp',
     '../bench/DecodeBench.cpp',
-    '../bench/FPSBench.cpp',
     '../bench/GradientBench.cpp',
     '../bench/MathBench.cpp',
     '../bench/MatrixBench.cpp',
index 40649f1e941ab8a8d4a772727dc4b638e87dd630..19fad9e3b43087d99665aec30cad437985164325 100644 (file)
               'GCC_OPTIMIZATION_LEVEL': '0',
             },
           },
+          'Release': {
+            'xcode_settings': {
+              'GCC_OPTIMIZATION_LEVEL': '3',
+            },
+          },
         },
         'xcode_settings': {
           'SYMROOT': '<(DEPTH)/xcodebuild',