Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: bench/nanobench.cpp

Issue 1430493005: Delete dead subset benches from nanobench (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Build fix: delete unused fUseCodec Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « bench/BitmapRegionDecoderBench.cpp ('k') | bench/subset/SubsetSingleBench.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2014 Google Inc. 2 * Copyright 2014 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include <ctype.h> 8 #include <ctype.h>
9 9
10 #include "nanobench.h" 10 #include "nanobench.h"
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 DEFINE_string(clip, "0,0,1000,1000", "Clip for SKPs."); 100 DEFINE_string(clip, "0,0,1000,1000", "Clip for SKPs.");
101 DEFINE_string(scales, "1.0", "Space-separated scales for SKPs."); 101 DEFINE_string(scales, "1.0", "Space-separated scales for SKPs.");
102 DEFINE_string(zoom, "1.0,0", "Comma-separated zoomMax,zoomPeriodMs factors for a periodic SKP zoom " 102 DEFINE_string(zoom, "1.0,0", "Comma-separated zoomMax,zoomPeriodMs factors for a periodic SKP zoom "
103 "function that ping-pongs between 1.0 and zoomMax." ); 103 "function that ping-pongs between 1.0 and zoomMax." );
104 DEFINE_bool(bbh, true, "Build a BBH for SKPs?"); 104 DEFINE_bool(bbh, true, "Build a BBH for SKPs?");
105 DEFINE_bool(mpd, true, "Use MultiPictureDraw for the SKPs?"); 105 DEFINE_bool(mpd, true, "Use MultiPictureDraw for the SKPs?");
106 DEFINE_bool(loopSKP, true, "Loop SKPs like we do for micro benches?"); 106 DEFINE_bool(loopSKP, true, "Loop SKPs like we do for micro benches?");
107 DEFINE_int32(flushEvery, 10, "Flush --outResultsFile every Nth run."); 107 DEFINE_int32(flushEvery, 10, "Flush --outResultsFile every Nth run.");
108 DEFINE_bool(resetGpuContext, true, "Reset the GrContext before running each test ."); 108 DEFINE_bool(resetGpuContext, true, "Reset the GrContext before running each test .");
109 DEFINE_bool(gpuStats, false, "Print GPU stats after each gpu benchmark?"); 109 DEFINE_bool(gpuStats, false, "Print GPU stats after each gpu benchmark?");
110 DEFINE_bool(pngBuildTileIndex, false, "If supported, use png buildTileIndex/deco deSubset.");
111 DEFINE_bool(jpgBuildTileIndex, false, "If supported, use jpg buildTileIndex/deco deSubset.");
112 110
113 static double now_ms() { return SkTime::GetNSecs() * 1e-6; } 111 static double now_ms() { return SkTime::GetNSecs() * 1e-6; }
114 112
115 static SkString humanize(double ms) { 113 static SkString humanize(double ms) {
116 if (FLAGS_verbose) return SkStringPrintf("%llu", (uint64_t)(ms*1e6)); 114 if (FLAGS_verbose) return SkStringPrintf("%llu", (uint64_t)(ms*1e6));
117 return HumanizeMs(ms); 115 return HumanizeMs(ms);
118 } 116 }
119 #define HUMANIZE(ms) humanize(ms).c_str() 117 #define HUMANIZE(ms) humanize(ms).c_str()
120 118
121 bool Target::init(SkImageInfo info, Benchmark* bench) { 119 bool Target::init(SkImageInfo info, Benchmark* bench) {
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 490
493 if (!target->init(info, bench)) { 491 if (!target->init(info, bench)) {
494 delete target; 492 delete target;
495 return nullptr; 493 return nullptr;
496 } 494 }
497 return target; 495 return target;
498 } 496 }
499 497
500 /* 498 /*
501 * We only run our subset benches on files that are supported by BitmapRegionDec oder: 499 * We only run our subset benches on files that are supported by BitmapRegionDec oder:
502 * i.e. PNG, JPEG, and WEBP. We do *not* test WEBP when using codec, since we do not 500 * i.e. PNG, JPEG, and WEBP. We do *not* test WEBP, since we do not have a scanl ine
503 * have a scanline decoder for WEBP, which is necessary for running the subset b ench. 501 * decoder for WEBP, which is necessary for running the subset bench. (Another b ench
504 * (Another bench must be used to test WEBP, which decodes subsets natively.) 502 * must be used to test WEBP, which decodes subsets natively.)
505 */ 503 */
506 static bool run_subset_bench(const SkString& path, bool useCodec) { 504 static bool run_subset_bench(const SkString& path) {
507 static const char* const exts[] = { 505 static const char* const exts[] = {
508 "jpg", "jpeg", 506 "jpg", "jpeg", "png",
509 "JPG", "JPEG", 507 "JPG", "JPEG", "PNG",
510 }; 508 };
511 509
512 if (useCodec || FLAGS_jpgBuildTileIndex) { 510 for (uint32_t i = 0; i < SK_ARRAY_COUNT(exts); i++) {
513 for (uint32_t i = 0; i < SK_ARRAY_COUNT(exts); i++) { 511 if (path.endsWith(exts[i])) {
514 if (path.endsWith(exts[i])) { 512 return true;
515 return true;
516 }
517 } 513 }
518 } 514 }
519 515
520 // Test png in SkCodec, and optionally on SkImageDecoder. SkImageDecoder is
521 // disabled by default because it leaks memory.
522 // https://bug.skia.org/4360
523 if ((useCodec || FLAGS_pngBuildTileIndex) && (path.endsWith("png") || path.e ndsWith("PNG"))) {
524 return true;
525 }
526
527 if (!useCodec && (path.endsWith("webp") || path.endsWith("WEBP"))) {
528 return true;
529 }
530
531 return false; 516 return false;
532 } 517 }
533 518
534 /* 519 /*
535 * Returns true if set up for a subset decode succeeds, false otherwise 520 * Returns true if set up for a subset decode succeeds, false otherwise
536 * If the set-up succeeds, the width and height parameters will be set 521 * If the set-up succeeds, the width and height parameters will be set
537 */ 522 */
538 static bool valid_subset_bench(const SkString& path, SkColorType colorType, bool useCodec, 523 static bool valid_subset_bench(const SkString& path, SkColorType colorType,
539 int* width, int* height) { 524 int* width, int* height) {
540 SkAutoTUnref<SkData> encoded(SkData::NewFromFileName(path.c_str())); 525 SkAutoTUnref<SkData> encoded(SkData::NewFromFileName(path.c_str()));
541 SkAutoTDelete<SkMemoryStream> stream(new SkMemoryStream(encoded)); 526 SkAutoTDelete<SkMemoryStream> stream(new SkMemoryStream(encoded));
542 527
543 // Check that we can create a codec or image decoder. 528 // Check that we can create a codec.
544 if (useCodec) { 529 SkAutoTDelete<SkCodec> codec(SkCodec::NewFromStream(stream.detach()));
545 SkAutoTDelete<SkCodec> codec(SkCodec::NewFromStream(stream.detach())); 530 if (nullptr == codec) {
546 if (nullptr == codec) { 531 SkDebugf("Could not create codec for %s. Skipping bench.\n", path.c_str ());
547 SkDebugf("Could not create codec for %s. Skipping bench.\n", path.c _str()); 532 return false;
548 return false; 533 }
549 }
550 534
551 // These will be initialized by SkCodec if the color type is kIndex8 and 535 // These will be initialized by SkCodec if the color type is kIndex8 and
552 // unused otherwise. 536 // unused otherwise.
553 SkPMColor colors[256]; 537 SkPMColor colors[256];
554 int colorCount; 538 int colorCount;
555 const SkImageInfo info = codec->getInfo().makeColorType(colorType); 539 const SkImageInfo info = codec->getInfo().makeColorType(colorType);
556 if (codec->startScanlineDecode(info, nullptr, colors, &colorCount) != Sk Codec::kSuccess) 540 if (codec->startScanlineDecode(info, nullptr, colors, &colorCount) != SkCode c::kSuccess)
557 { 541 {
558 SkDebugf("Could not create scanline decoder for %s with color type % s. " 542 SkDebugf("Could not create scanline decoder for %s with color type %s. "
559 "Skipping bench.\n", path.c_str(), color_type_to_str(colorTy pe)); 543 "Skipping bench.\n", path.c_str(), color_type_to_str(colorType)) ;
560 return false; 544 return false;
561 }
562 *width = info.width();
563 *height = info.height();
564 } else {
565 SkAutoTDelete<SkImageDecoder> decoder(SkImageDecoder::Factory(stream));
566 if (nullptr == decoder) {
567 SkDebugf("Could not create decoder for %s. Skipping bench.\n", path .c_str());
568 return false;
569 }
570 //FIXME: See https://bug.skia.org/3921
571 if (kIndex_8_SkColorType == colorType || kGray_8_SkColorType == colorTyp e) {
572 SkDebugf("Cannot use image subset decoder for %s with color type %s. "
573 "Skipping bench.\n", path.c_str(), color_type_to_str(colorTy pe));
574 return false;
575 }
576 if (!decoder->buildTileIndex(stream.detach(), width, height)) {
577 SkDebugf("Could not build tile index for %s. Skipping bench.\n", pa th.c_str());
578 return false;
579 }
580 } 545 }
546 *width = info.width();
547 *height = info.height();
581 548
582 // Check if the image is large enough for a meaningful subset benchmark. 549 // Check if the image is large enough for a meaningful subset benchmark.
583 if (*width <= 512 && *height <= 512) { 550 if (*width <= 512 && *height <= 512) {
584 // This should not print a message since it is not an error. 551 // This should not print a message since it is not an error.
585 return false; 552 return false;
586 } 553 }
587 554
588 return true; 555 return true;
589 } 556 }
590 557
591 static bool valid_brd_bench(SkData* encoded, SkBitmapRegionDecoder::Strategy str ategy, 558 static bool valid_brd_bench(SkData* encoded, SkBitmapRegionDecoder::Strategy str ategy,
592 SkColorType colorType, uint32_t sampleSize, uint32_t minOutputSize, int* width, 559 SkColorType colorType, uint32_t sampleSize, uint32_t minOutputSize, int* width,
593 int* height) { 560 int* height) {
594 SkAutoTDelete<SkBitmapRegionDecoder> brd( 561 SkAutoTDelete<SkBitmapRegionDecoder> brd(
595 SkBitmapRegionDecoder::Create(encoded, strategy)); 562 SkBitmapRegionDecoder::Create(encoded, strategy));
596 if (nullptr == brd.get()) { 563 if (nullptr == brd.get()) {
597 // This is indicates that subset decoding is not supported for a particu lar image format. 564 // This is indicates that subset decoding is not supported for a particu lar image format.
598 return false; 565 return false;
599 } 566 }
600 567
601 SkBitmap bitmap; 568 SkBitmap bitmap;
602 if (!brd->decodeRegion(&bitmap, nullptr, SkIRect::MakeXYWH(0, 0, brd->width( ), brd->height()), 569 if (!brd->decodeRegion(&bitmap, nullptr, SkIRect::MakeXYWH(0, 0, brd->width( ), brd->height()),
603 1, colorType, false)) { 570 1, colorType, false)) {
604 return false; 571 return false;
605 } 572 }
606 if (colorType != bitmap.colorType()) {
607 // This indicates that conversion to the requested color type is not sup ported for the
608 // particular image.
609 return false;
610 }
611 573
612 if (sampleSize * minOutputSize > (uint32_t) brd->width() || sampleSize * min OutputSize > 574 if (sampleSize * minOutputSize > (uint32_t) brd->width() || sampleSize * min OutputSize >
613 (uint32_t) brd->height()) { 575 (uint32_t) brd->height()) {
614 // This indicates that the image is not large enough to decode a 576 // This indicates that the image is not large enough to decode a
615 // minOutputSize x minOutputSize subset at the given sampleSize. 577 // minOutputSize x minOutputSize subset at the given sampleSize.
616 return false; 578 return false;
617 } 579 }
618 580
619 // Set the image width and height. The calling code will use this to choose subsets to decode. 581 // Set the image width and height. The calling code will use this to choose subsets to decode.
620 *width = brd->width(); 582 *width = brd->width();
(...skipping 20 matching lines...) Expand all
641 , fCurrentRecording(0) 603 , fCurrentRecording(0)
642 , fCurrentScale(0) 604 , fCurrentScale(0)
643 , fCurrentSKP(0) 605 , fCurrentSKP(0)
644 , fCurrentUseMPD(0) 606 , fCurrentUseMPD(0)
645 , fCurrentCodec(0) 607 , fCurrentCodec(0)
646 , fCurrentImage(0) 608 , fCurrentImage(0)
647 , fCurrentSubsetImage(0) 609 , fCurrentSubsetImage(0)
648 , fCurrentBRDImage(0) 610 , fCurrentBRDImage(0)
649 , fCurrentColorType(0) 611 , fCurrentColorType(0)
650 , fCurrentSubsetType(0) 612 , fCurrentSubsetType(0)
651 , fUseCodec(0)
652 , fCurrentBRDStrategy(0) 613 , fCurrentBRDStrategy(0)
653 , fCurrentBRDSampleSize(0) 614 , fCurrentBRDSampleSize(0)
654 , fCurrentAnimSKP(0) { 615 , fCurrentAnimSKP(0) {
655 for (int i = 0; i < FLAGS_skps.count(); i++) { 616 for (int i = 0; i < FLAGS_skps.count(); i++) {
656 if (SkStrEndsWith(FLAGS_skps[i], ".skp")) { 617 if (SkStrEndsWith(FLAGS_skps[i], ".skp")) {
657 fSKPs.push_back() = FLAGS_skps[i]; 618 fSKPs.push_back() = FLAGS_skps[i];
658 } else { 619 } else {
659 SkOSFile::Iter it(FLAGS_skps[i], ".skp"); 620 SkOSFile::Iter it(FLAGS_skps[i], ".skp");
660 SkString path; 621 SkString path;
661 while (it.next(&path)) { 622 while (it.next(&path)) {
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
891 colorType, SkImageDecoder::kDecodePixels_Mode) 852 colorType, SkImageDecoder::kDecodePixels_Mode)
892 && bitmap.colorType() == colorType) { 853 && bitmap.colorType() == colorType) {
893 return new DecodingBench(path, colorType); 854 return new DecodingBench(path, colorType);
894 } 855 }
895 } 856 }
896 fCurrentColorType = 0; 857 fCurrentColorType = 0;
897 fCurrentImage++; 858 fCurrentImage++;
898 } 859 }
899 860
900 // Run the SubsetBenches 861 // Run the SubsetBenches
901 bool useCodecOpts[] = { true, false }; 862 while (fCurrentSubsetImage < fImages.count()) {
902 while (fUseCodec < 2) {
903 bool useCodec = useCodecOpts[fUseCodec];
904 fSourceType = "image"; 863 fSourceType = "image";
905 fBenchType = useCodec ? "skcodec" : "skimagedecoder"; 864 fBenchType = "skcodec";
906 while (fCurrentSubsetImage < fImages.count()) { 865 const SkString& path = fImages[fCurrentSubsetImage];
907 const SkString& path = fImages[fCurrentSubsetImage]; 866 if (!run_subset_bench(path)) {
908 if (!run_subset_bench(path, useCodec)) { 867 fCurrentSubsetImage++;
909 fCurrentSubsetImage++; 868 continue;
910 continue; 869 }
870 while (fCurrentColorType < fColorTypes.count()) {
871 SkColorType colorType = fColorTypes[fCurrentColorType];
872 while (fCurrentSubsetType <= kLast_SubsetType) {
873 int width = 0;
874 int height = 0;
875 int currentSubsetType = fCurrentSubsetType++;
876 if (valid_subset_bench(path, colorType, &width, &height)) {
877 switch (currentSubsetType) {
878 case kTopLeft_SubsetType:
879 return new SubsetSingleBench(path, colorType, wi dth/3,
880 height/3, 0, 0);
881 case kTopRight_SubsetType:
882 return new SubsetSingleBench(path, colorType, wi dth/3,
883 height/3, 2*width/3, 0);
884 case kMiddle_SubsetType:
885 return new SubsetSingleBench(path, colorType, wi dth/3,
886 height/3, width/3, height/3);
887 case kBottomLeft_SubsetType:
888 return new SubsetSingleBench(path, colorType, wi dth/3,
889 height/3, 0, 2*height/3);
890 case kBottomRight_SubsetType:
891 return new SubsetSingleBench(path, colorType, wi dth/3,
892 height/3, 2*width/3, 2*height/3);
893 case kTranslate_SubsetType:
894 return new SubsetTranslateBench(path, colorType, 512, 512);
895 case kZoom_SubsetType:
896 return new SubsetZoomBench(path, colorType, 512, 512);
897 }
898 } else {
899 break;
900 }
911 } 901 }
912 while (fCurrentColorType < fColorTypes.count()) { 902 fCurrentSubsetType = 0;
913 SkColorType colorType = fColorTypes[fCurrentColorType]; 903 fCurrentColorType++;
914 while (fCurrentSubsetType <= kLast_SubsetType) {
915 int width = 0;
916 int height = 0;
917 int currentSubsetType = fCurrentSubsetType++;
918 if (valid_subset_bench(path, colorType, useCodec, &width , &height)) {
919 switch (currentSubsetType) {
920 case kTopLeft_SubsetType:
921 return new SubsetSingleBench(path, colorType , width/3,
922 height/3, 0, 0, useCodec);
923 case kTopRight_SubsetType:
924 return new SubsetSingleBench(path, colorType , width/3,
925 height/3, 2*width/3, 0, useCodec);
926 case kMiddle_SubsetType:
927 return new SubsetSingleBench(path, colorType , width/3,
928 height/3, width/3, height/3, useCode c);
929 case kBottomLeft_SubsetType:
930 return new SubsetSingleBench(path, colorType , width/3,
931 height/3, 0, 2*height/3, useCodec);
932 case kBottomRight_SubsetType:
933 return new SubsetSingleBench(path, colorType , width/3,
934 height/3, 2*width/3, 2*height/3, use Codec);
935 case kTranslate_SubsetType:
936 return new SubsetTranslateBench(path, colorT ype, 512, 512,
937 useCodec);
938 case kZoom_SubsetType:
939 return new SubsetZoomBench(path, colorType, 512, 512,
940 useCodec);
941 }
942 } else {
943 break;
944 }
945 }
946 fCurrentSubsetType = 0;
947 fCurrentColorType++;
948 }
949 fCurrentColorType = 0;
950 fCurrentSubsetImage++;
951 } 904 }
952 fCurrentSubsetImage = 0; 905 fCurrentColorType = 0;
953 fUseCodec++; 906 fCurrentSubsetImage++;
954 } 907 }
955 908
956 // Run the BRDBenches 909 // Run the BRDBenches
957 // We will benchmark multiple BRD strategies. 910 // We will benchmark multiple BRD strategies.
958 static const struct { 911 static const struct {
959 SkBitmapRegionDecoder::Strategy fStrategy; 912 SkBitmapRegionDecoder::Strategy fStrategy;
960 const char* fName; 913 const char* fName;
961 } strategies[] = { 914 } strategies[] = {
962 { SkBitmapRegionDecoder::kOriginal_Strategy, "BRD" }, 915 { SkBitmapRegionDecoder::kCanvas_Strategy, "BRD_canvas" },
963 { SkBitmapRegionDecoder::kCanvas_Strategy, "BRD_canvas" },
964 { SkBitmapRegionDecoder::kAndroidCodec_Strategy, "BRD_android_codec" }, 916 { SkBitmapRegionDecoder::kAndroidCodec_Strategy, "BRD_android_codec" },
965 }; 917 };
966 918
967 // We intend to create benchmarks that model the use cases in 919 // We intend to create benchmarks that model the use cases in
968 // android/libraries/social/tiledimage. In this library, an image is de coded in 512x512 920 // android/libraries/social/tiledimage. In this library, an image is de coded in 512x512
969 // tiles. The image can be translated freely, so the location of a tile may be anywhere in 921 // tiles. The image can be translated freely, so the location of a tile may be anywhere in
970 // the image. For that reason, we will benchmark decodes in five repres entative locations 922 // the image. For that reason, we will benchmark decodes in five repres entative locations
971 // in the image. Additionally, this use case utilizes power of two scal ing, so we will 923 // in the image. Additionally, this use case utilizes power of two scal ing, so we will
972 // test on power of two sample sizes. The output tile is always 512x512 , so, when a 924 // test on power of two sample sizes. The output tile is always 512x512 , so, when a
973 // sampleSize is used, the size of the subset that is decoded is always 925 // sampleSize is used, the size of the subset that is decoded is always
974 // (sampleSize*512)x(sampleSize*512). 926 // (sampleSize*512)x(sampleSize*512).
975 // There are a few good reasons to only test on power of two sample size s at this time: 927 // There are a few good reasons to only test on power of two sample size s at this time:
976 // JPEG decodes using kOriginal_Strategy are broken for non-powers o f two. 928 // JPEG decodes using kOriginal_Strategy are broken for non-powers o f two.
977 // https://bug.skia.org/4319 929 // https://bug.skia.org/4319
978 // All use cases we are aware of only scale by powers of two. 930 // All use cases we are aware of only scale by powers of two.
979 // PNG decodes use the indicated sampling strategy regardless of the sample size, so 931 // PNG decodes use the indicated sampling strategy regardless of the sample size, so
980 // these tests are sufficient to provide good coverage of our sc aling options. 932 // these tests are sufficient to provide good coverage of our sc aling options.
981 const uint32_t sampleSizes[] = { 1, 2, 4, 8, 16, 32, 64 }; 933 const uint32_t sampleSizes[] = { 1, 2, 4, 8, 16, 32, 64 };
982 const uint32_t minOutputSize = 512; 934 const uint32_t minOutputSize = 512;
983 while (fCurrentBRDImage < fImages.count()) { 935 while (fCurrentBRDImage < fImages.count()) {
984 while (fCurrentBRDStrategy < (int) SK_ARRAY_COUNT(strategies)) { 936 while (fCurrentBRDStrategy < (int) SK_ARRAY_COUNT(strategies)) {
985 fSourceType = "image"; 937 fSourceType = "image";
986 fBenchType = strategies[fCurrentBRDStrategy].fName; 938 fBenchType = strategies[fCurrentBRDStrategy].fName;
987 939
988 const SkString& path = fImages[fCurrentBRDImage]; 940 const SkString& path = fImages[fCurrentBRDImage];
989 const SkBitmapRegionDecoder::Strategy strategy = 941 const SkBitmapRegionDecoder::Strategy strategy =
990 strategies[fCurrentBRDStrategy].fStrategy; 942 strategies[fCurrentBRDStrategy].fStrategy;
991 943
992 if (SkBitmapRegionDecoder::kOriginal_Strategy == strategy) {
993 // Disable png and jpeg for SkImageDecoder:
994 if (!FLAGS_jpgBuildTileIndex) {
995 if (path.endsWith("JPEG") || path.endsWith("JPG") ||
996 path.endsWith("jpeg") || path.endsWith("jpg"))
997 {
998 fCurrentBRDStrategy++;
999 continue;
1000 }
1001 }
1002 if (!FLAGS_pngBuildTileIndex) {
1003 if (path.endsWith("PNG") || path.endsWith("png")) {
1004 fCurrentBRDStrategy++;
1005 continue;
1006 }
1007 }
1008 }
1009
1010 while (fCurrentColorType < fColorTypes.count()) { 944 while (fCurrentColorType < fColorTypes.count()) {
1011 while (fCurrentBRDSampleSize < (int) SK_ARRAY_COUNT(sampleSi zes)) { 945 while (fCurrentBRDSampleSize < (int) SK_ARRAY_COUNT(sampleSi zes)) {
1012 while (fCurrentSubsetType <= kLastSingle_SubsetType) { 946 while (fCurrentSubsetType <= kLastSingle_SubsetType) {
1013 947
1014 948
1015 SkAutoTUnref<SkData> encoded(SkData::NewFromFileName (path.c_str())); 949 SkAutoTUnref<SkData> encoded(SkData::NewFromFileName (path.c_str()));
1016 const SkColorType colorType = fColorTypes[fCurrentCo lorType]; 950 const SkColorType colorType = fColorTypes[fCurrentCo lorType];
1017 uint32_t sampleSize = sampleSizes[fCurrentBRDSampleS ize]; 951 uint32_t sampleSize = sampleSizes[fCurrentBRDSampleS ize];
1018 int currentSubsetType = fCurrentSubsetType++; 952 int currentSubsetType = fCurrentSubsetType++;
1019 953
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
1126 int fCurrentRecording; 1060 int fCurrentRecording;
1127 int fCurrentScale; 1061 int fCurrentScale;
1128 int fCurrentSKP; 1062 int fCurrentSKP;
1129 int fCurrentUseMPD; 1063 int fCurrentUseMPD;
1130 int fCurrentCodec; 1064 int fCurrentCodec;
1131 int fCurrentImage; 1065 int fCurrentImage;
1132 int fCurrentSubsetImage; 1066 int fCurrentSubsetImage;
1133 int fCurrentBRDImage; 1067 int fCurrentBRDImage;
1134 int fCurrentColorType; 1068 int fCurrentColorType;
1135 int fCurrentSubsetType; 1069 int fCurrentSubsetType;
1136 int fUseCodec;
1137 int fCurrentBRDStrategy; 1070 int fCurrentBRDStrategy;
1138 int fCurrentBRDSampleSize; 1071 int fCurrentBRDSampleSize;
1139 int fCurrentAnimSKP; 1072 int fCurrentAnimSKP;
1140 }; 1073 };
1141 1074
1142 int nanobench_main(); 1075 int nanobench_main();
1143 int nanobench_main() { 1076 int nanobench_main() {
1144 SetupCrashHandler(); 1077 SetupCrashHandler();
1145 SkAutoGraphics ag; 1078 SkAutoGraphics ag;
1146 SkTaskGroup::Enabler enabled(FLAGS_threads); 1079 SkTaskGroup::Enabler enabled(FLAGS_threads);
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
1337 1270
1338 return 0; 1271 return 0;
1339 } 1272 }
1340 1273
1341 #if !defined SK_BUILD_FOR_IOS 1274 #if !defined SK_BUILD_FOR_IOS
1342 int main(int argc, char** argv) { 1275 int main(int argc, char** argv) {
1343 SkCommandLineFlags::Parse(argc, argv); 1276 SkCommandLineFlags::Parse(argc, argv);
1344 return nanobench_main(); 1277 return nanobench_main();
1345 } 1278 }
1346 #endif 1279 #endif
OLDNEW
« no previous file with comments | « bench/BitmapRegionDecoderBench.cpp ('k') | bench/subset/SubsetSingleBench.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698