diff options
author | scroggo <scroggo@google.com> | 2015-10-15 07:51:28 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-10-15 07:51:28 -0700 |
commit | 860e8a67190e024b7375e52e270e6bd0a17af86e (patch) | |
tree | ba0cf7bf5b39a24ac426940c085e15c7822cef44 /bench | |
parent | c603c143bb39e8a8dd1b35ad792c4dccb7de3a3a (diff) |
Renable image benchmarking
- Remove --images '' to renable image benchmarking
- Add a flag to disable testing JPEG's buildTileIndex, since it also leaks memory
- Do not run images on GPU
- Do not run large interlaced images on 32 bit bots
- When buildTileIndex is not being used in the subset benches, do not use it for BRD
BUG=skia:3418
BUG=skia:4469
BUG=skia:4471
BUG=skia:4360
Review URL: https://codereview.chromium.org/1396113002
Diffstat (limited to 'bench')
-rw-r--r-- | bench/nanobench.cpp | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/bench/nanobench.cpp b/bench/nanobench.cpp index a48e963a9e..38f554dea4 100644 --- a/bench/nanobench.cpp +++ b/bench/nanobench.cpp @@ -112,6 +112,7 @@ DEFINE_int32(flushEvery, 10, "Flush --outResultsFile every Nth run."); DEFINE_bool(resetGpuContext, true, "Reset the GrContext before running each test."); DEFINE_bool(gpuStats, false, "Print GPU stats after each gpu benchmark?"); DEFINE_bool(pngBuildTileIndex, false, "If supported, use png buildTileIndex/decodeSubset."); +DEFINE_bool(jpgBuildTileIndex, false, "If supported, use jpg buildTileIndex/decodeSubset."); static SkString humanize(double ms) { if (FLAGS_verbose) return SkStringPrintf("%llu", (uint64_t)(ms*1e6)); @@ -513,9 +514,11 @@ static bool run_subset_bench(const SkString& path, bool useCodec) { "JPG", "JPEG", }; - for (uint32_t i = 0; i < SK_ARRAY_COUNT(exts); i++) { - if (path.endsWith(exts[i])) { - return true; + if (useCodec || FLAGS_jpgBuildTileIndex) { + for (uint32_t i = 0; i < SK_ARRAY_COUNT(exts); i++) { + if (path.endsWith(exts[i])) { + return true; + } } } @@ -983,12 +986,34 @@ public: while (fCurrentBRDStrategy < (int) SK_ARRAY_COUNT(strategies)) { fSourceType = "image"; fBenchType = strategies[fCurrentBRDStrategy].fName; + + const SkString& path = fImages[fCurrentBRDImage]; + const SkBitmapRegionDecoderInterface::Strategy strategy = + strategies[fCurrentBRDStrategy].fStrategy; + + if (SkBitmapRegionDecoderInterface::kOriginal_Strategy == strategy) { + // Disable png and jpeg for SkImageDecoder: + if (!FLAGS_jpgBuildTileIndex) { + if (path.endsWith("JPEG") || path.endsWith("JPG") || + path.endsWith("jpeg") || path.endsWith("jpg")) + { + fCurrentBRDStrategy++; + continue; + } + } + if (!FLAGS_pngBuildTileIndex) { + if (path.endsWith("PNG") || path.endsWith("png")) { + fCurrentBRDStrategy++; + continue; + } + } + } + while (fCurrentColorType < fColorTypes.count()) { while (fCurrentBRDSampleSize < (int) SK_ARRAY_COUNT(sampleSizes)) { while (fCurrentSubsetType <= kLastSingle_SubsetType) { - const SkString& path = fImages[fCurrentBRDImage]; - const SkBitmapRegionDecoderInterface::Strategy strategy = - strategies[fCurrentBRDStrategy].fStrategy; + + SkAutoTUnref<SkData> encoded(SkData::NewFromFileName(path.c_str())); const SkColorType colorType = fColorTypes[fCurrentColorType]; uint32_t sampleSize = sampleSizes[fCurrentBRDSampleSize]; |