From c146aa6fd45dffe29b4f565aafd4ec3a16d9f73b Mon Sep 17 00:00:00 2001 From: mtklein Date: Fri, 8 Jan 2016 14:20:36 -0800 Subject: Add --zero_init to simulate zero-initialized memory in CodecBench BUG=skia:4767 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1572673004 Review URL: https://codereview.chromium.org/1572673004 --- bench/CodecBench.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'bench/CodecBench.cpp') diff --git a/bench/CodecBench.cpp b/bench/CodecBench.cpp index 66831fb24c..fc52edfb07 100644 --- a/bench/CodecBench.cpp +++ b/bench/CodecBench.cpp @@ -9,8 +9,12 @@ #include "CodecBenchPriv.h" #include "SkBitmap.h" #include "SkCodec.h" +#include "SkCommandLineFlags.h" #include "SkOSFile.h" +// Actually zeroing the memory would throw off timing, so we just lie. +DEFINE_bool(zero_init, false, "Pretend our destination is zero-intialized, simulating Android?"); + CodecBench::CodecBench(SkString baseName, SkData* encoded, SkColorType colorType, SkAlphaType alphaType) : fColorType(colorType) @@ -47,6 +51,10 @@ void CodecBench::onDraw(int n, SkCanvas* canvas) { SkAutoTDelete codec; SkPMColor colorTable[256]; int colorCount; + SkCodec::Options options; + if (FLAGS_zero_init) { + options.fZeroInitialized = SkCodec::kYes_ZeroInitialized; + } for (int i = 0; i < n; i++) { colorCount = 256; codec.reset(SkCodec::NewFromData(fData)); @@ -54,7 +62,7 @@ void CodecBench::onDraw(int n, SkCanvas* canvas) { const SkCodec::Result result = #endif codec->getPixels(fInfo, fPixelStorage.get(), fInfo.minRowBytes(), - nullptr, colorTable, &colorCount); + &options, colorTable, &colorCount); SkASSERT(result == SkCodec::kSuccess || result == SkCodec::kIncompleteInput); } -- cgit v1.2.3