aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench
diff options
context:
space:
mode:
authorGravatar scroggo <scroggo@google.com>2015-10-15 07:51:28 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-10-15 07:51:28 -0700
commit860e8a67190e024b7375e52e270e6bd0a17af86e (patch)
treeba0cf7bf5b39a24ac426940c085e15c7822cef44 /bench
parentc603c143bb39e8a8dd1b35ad792c4dccb7de3a3a (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.cpp37
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];