diff options
author | Mike Reed <reed@google.com> | 2010-02-22 17:02:02 -0500 |
---|---|---|
committer | Mike Reed <reed@google.com> | 2010-02-22 17:02:02 -0500 |
commit | a2774b5f7e231079a8753828a44efa3bbc5c5d72 (patch) | |
tree | 04d0527fd6b503a9dc87bb26d325d32d7023e176 | |
parent | 32a0e74681142badb9efd90be3558bd9a943755e (diff) | |
download | external_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.cpp | 27 | ||||
-rw-r--r-- | bench/benchmain.cpp | 7 |
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) { |