| Index: bench/nanobench.cpp
|
| diff --git a/bench/nanobench.cpp b/bench/nanobench.cpp
|
| index a48e963a9ec65d69a2f668ce573dc10c581150d6..38f554dea447103975dc01ee32fededd0f3ef1fa 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];
|
|
|