| Index: bench/nanobench.cpp
|
| diff --git a/bench/nanobench.cpp b/bench/nanobench.cpp
|
| index 5ab5e46152471e517060d6a61becf4ad6bb8baf5..14214e869686e10d409df4a5c61b5fb1682ea03c 100644
|
| --- a/bench/nanobench.cpp
|
| +++ b/bench/nanobench.cpp
|
| @@ -119,6 +119,7 @@ DEFINE_bool(gpuStatsDump, false, "Dump GPU states after each benchmark to json")
|
| DEFINE_bool(keepAlive, false, "Print a message every so often so that we don't time out");
|
| DEFINE_string(useThermalManager, "0,1,10,1000", "enabled,threshold,sleepTimeMs,TimeoutMs for "
|
| "thermalManager\n");
|
| +DEFINE_bool(simpleCodec, false, "Only decode images to N32 opaque or premul");
|
|
|
| DEFINE_string(sourceType, "",
|
| "Apply usual --match rules to source type: bench, gm, skp, image, etc.");
|
| @@ -619,13 +620,13 @@ public:
|
| }
|
|
|
| // Choose the candidate color types for image decoding
|
| - const SkColorType colorTypes[] =
|
| - { kN32_SkColorType,
|
| - kRGB_565_SkColorType,
|
| - kAlpha_8_SkColorType,
|
| - kIndex_8_SkColorType,
|
| - kGray_8_SkColorType };
|
| - fColorTypes.reset(colorTypes, SK_ARRAY_COUNT(colorTypes));
|
| + fColorTypes.push_back(kN32_SkColorType);
|
| + if (!FLAGS_simpleCodec) {
|
| + fColorTypes.push_back(kRGB_565_SkColorType);
|
| + fColorTypes.push_back(kAlpha_8_SkColorType);
|
| + fColorTypes.push_back(kIndex_8_SkColorType);
|
| + fColorTypes.push_back(kGray_8_SkColorType);
|
| + }
|
| }
|
|
|
| static sk_sp<SkPicture> ReadPicture(const char* path) {
|
| @@ -763,28 +764,36 @@ public:
|
| const SkColorType colorType = fColorTypes[fCurrentColorType];
|
|
|
| SkAlphaType alphaType = codec->getInfo().alphaType();
|
| - switch (alphaType) {
|
| - case kOpaque_SkAlphaType:
|
| - // We only need to test one alpha type (opaque).
|
| - fCurrentColorType++;
|
| - break;
|
| - case kUnpremul_SkAlphaType:
|
| - case kPremul_SkAlphaType:
|
| - if (0 == fCurrentAlphaType) {
|
| - // Test unpremul first.
|
| - alphaType = kUnpremul_SkAlphaType;
|
| - fCurrentAlphaType++;
|
| - } else {
|
| - // Test premul.
|
| - alphaType = kPremul_SkAlphaType;
|
| - fCurrentAlphaType = 0;
|
| + if (FLAGS_simpleCodec) {
|
| + if (kUnpremul_SkAlphaType == alphaType) {
|
| + alphaType = kPremul_SkAlphaType;
|
| + }
|
| +
|
| + fCurrentColorType++;
|
| + } else {
|
| + switch (alphaType) {
|
| + case kOpaque_SkAlphaType:
|
| + // We only need to test one alpha type (opaque).
|
| fCurrentColorType++;
|
| - }
|
| - break;
|
| - default:
|
| - SkASSERT(false);
|
| - fCurrentColorType++;
|
| - break;
|
| + break;
|
| + case kUnpremul_SkAlphaType:
|
| + case kPremul_SkAlphaType:
|
| + if (0 == fCurrentAlphaType) {
|
| + // Test unpremul first.
|
| + alphaType = kUnpremul_SkAlphaType;
|
| + fCurrentAlphaType++;
|
| + } else {
|
| + // Test premul.
|
| + alphaType = kPremul_SkAlphaType;
|
| + fCurrentAlphaType = 0;
|
| + fCurrentColorType++;
|
| + }
|
| + break;
|
| + default:
|
| + SkASSERT(false);
|
| + fCurrentColorType++;
|
| + break;
|
| + }
|
| }
|
|
|
| // Make sure we can decode to this color type and alpha type.
|
|
|