aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Reed <reed@google.com>2010-02-22 17:02:02 -0500
committerMike Reed <reed@google.com>2010-02-22 17:02:02 -0500
commita2774b5f7e231079a8753828a44efa3bbc5c5d72 (patch)
tree04d0527fd6b503a9dc87bb26d325d32d7023e176
parent32a0e74681142badb9efd90be3558bd9a943755e (diff)
downloadexternal_skia-a2774b5f7e231079a8753828a44efa3bbc5c5d72.zip
external_skia-a2774b5f7e231079a8753828a44efa3bbc5c5d72.tar.gz
external_skia-a2774b5f7e231079a8753828a44efa3bbc5c5d72.tar.bz2
update to report fps and add opaque and per-pixel-alpha variants of 32bit src
-rw-r--r--bench/FPSBench.cpp27
-rw-r--r--bench/benchmain.cpp7
2 files changed, 26 insertions, 8 deletions
diff --git a/bench/FPSBench.cpp b/bench/FPSBench.cpp
index f103dc1..28668fe 100644
--- a/bench/FPSBench.cpp
+++ b/bench/FPSBench.cpp
@@ -49,12 +49,23 @@ private:
class Bitmap_FPSBench : public FPSBench {
public:
- Bitmap_FPSBench(void* p, SkBitmap::Config config, bool doScale) : INHERITED(p) {
+ 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);
+ }
- fName.printf("fps_bitmap_%d_%s", fBitmap.bytesPerPixel(),
+ 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();
@@ -79,10 +90,12 @@ private:
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)); }
-static SkBenchmark* BMFactory1(void* p) { return SkNEW_ARGS(Bitmap_FPSBench, (p, SkBitmap::kARGB_8888_Config, true)); }
-static SkBenchmark* BMFactory2(void* p) { return SkNEW_ARGS(Bitmap_FPSBench, (p, SkBitmap::kRGB_565_Config, false)); }
-static SkBenchmark* BMFactory3(void* p) { return SkNEW_ARGS(Bitmap_FPSBench, (p, SkBitmap::kRGB_565_Config, true)); }
+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);
@@ -90,4 +103,6 @@ static BenchRegistry gBMReg0(BMFactory0);
static BenchRegistry gBMReg1(BMFactory1);
static BenchRegistry gBMReg2(BMFactory2);
static BenchRegistry gBMReg3(BMFactory3);
+static BenchRegistry gBMReg4(BMFactory4);
+static BenchRegistry gBMReg5(BMFactory5);
diff --git a/bench/benchmain.cpp b/bench/benchmain.cpp
index 598eb84..7443604 100644
--- a/bench/benchmain.cpp
+++ b/bench/benchmain.cpp
@@ -172,8 +172,10 @@ static const struct {
} gConfigs[] = {
{ SkBitmap::kARGB_8888_Config, "8888" },
{ SkBitmap::kRGB_565_Config, "565", },
+#if 0
{ SkBitmap::kARGB_4444_Config, "4444", },
{ SkBitmap::kA8_Config, "A8", }
+#endif
};
static int findConfig(const char config[]) {
@@ -370,9 +372,10 @@ int main (int argc, char * const argv[]) {
}
}
if (repeatDraw > 1) {
+ double duration = SkTime::GetMSecs() - now;
SkString str;
- str.printf(" %4s:%7.2f", configName,
- (SkTime::GetMSecs() - now) / (double)repeatDraw);
+ str.printf(" %4s: msecs = %7.2f, fps = %7.2f", configName,
+ duration / repeatDraw, repeatDraw * 1000.0 / duration);
log_progress(str);
}
if (outDir.size() > 0) {