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

Side by Side Diff: dm/DM.cpp

Issue 1656543002: NEON for table lookups? (Closed) Base URL: https://skia.googlesource.com/skia.git@index
Patch Set: Use VTBL and OR Created 4 years, 10 months 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
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 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 "CrashHandler.h" 8 #include "CrashHandler.h"
9 #include "DMJsonWriter.h" 9 #include "DMJsonWriter.h"
10 #include "DMSrcSink.h" 10 #include "DMSrcSink.h"
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(encoded)); 307 SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(encoded));
308 if (nullptr == codec.get()) { 308 if (nullptr == codec.get()) {
309 SkDebugf("Couldn't create codec for %s.", path.c_str()); 309 SkDebugf("Couldn't create codec for %s.", path.c_str());
310 return; 310 return;
311 } 311 }
312 312
313 // Native Scales 313 // Native Scales
314 // TODO (msarett): Implement scaling tests for SkImageDecoder in order to co mpare with these 314 // TODO (msarett): Implement scaling tests for SkImageDecoder in order to co mpare with these
315 // tests. SkImageDecoder supports downscales by integer fac tors. 315 // tests. SkImageDecoder supports downscales by integer fac tors.
316 // SkJpegCodec natively supports scaling to: 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875 316 // SkJpegCodec natively supports scaling to: 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875
317 const float nativeScales[] = { 0.125f, 0.25f, 0.375f, 0.5f, 0.625f, 0.750f, 0.875f, 1.0f }; 317 const float nativeScales[] = { /*0.125f, 0.25f, 0.375f, 0.5f, 0.625f, 0.750f , 0.875f,*/ 1.0f };
318 318
319 const CodecSrc::Mode nativeModes[] = { CodecSrc::kCodec_Mode, CodecSrc::kCod ecZeroInit_Mode, 319 const CodecSrc::Mode nativeModes[] = { CodecSrc::kCodec_Mode, /*CodecSrc::kC odecZeroInit_Mode,
320 CodecSrc::kScanline_Mode, CodecSrc::kStripe_Mode, CodecSrc::kSubset_ Mode, 320 CodecSrc::kScanline_Mode, CodecSrc::kStripe_Mode, CodecSrc::kSubset_ Mode,
321 CodecSrc::kGen_Mode }; 321 CodecSrc::kGen_Mode*/ };
322 322
323 CodecSrc::DstColorType colorTypes[3]; 323 CodecSrc::DstColorType colorTypes[3];
324 uint32_t numColorTypes; 324 uint32_t numColorTypes;
325 switch (codec->getInfo().colorType()) { 325 switch (codec->getInfo().colorType()) {
326 case kGray_8_SkColorType: 326 case kGray_8_SkColorType:
327 // FIXME: Is this a long term solution for testing wbmps decodes to kIndex8? 327 // FIXME: Is this a long term solution for testing wbmps decodes to kIndex8?
328 // Further discussion on this topic is at https://bug.skia.org/3683 . 328 // Further discussion on this topic is at https://bug.skia.org/3683 .
329 // This causes us to try to convert grayscale jpegs to kIndex8. We currently 329 // This causes us to try to convert grayscale jpegs to kIndex8. We currently
330 // fail non-fatally in this case. 330 // fail non-fatally in this case.
331 colorTypes[0] = CodecSrc::kGetFromCanvas_DstColorType; 331 colorTypes[0] = CodecSrc::kGetFromCanvas_DstColorType;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 "jpg", "jpeg", "png", "webp", 373 "jpg", "jpeg", "png", "webp",
374 "JPG", "JPEG", "PNG", "WEBP", 374 "JPG", "JPEG", "PNG", "WEBP",
375 }; 375 };
376 for (const char* ext : exts) { 376 for (const char* ext : exts) {
377 if (path.endsWith(ext)) { 377 if (path.endsWith(ext)) {
378 subset = true; 378 subset = true;
379 break; 379 break;
380 } 380 }
381 } 381 }
382 382
383 const int sampleSizes[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; 383 const int sampleSizes[] = { /*1, 2, 3, 4, 5, 6, 7, 8*/ };
384 384
385 for (int sampleSize : sampleSizes) { 385 for (int sampleSize : sampleSizes) {
386 for (uint32_t i = 0; i < numColorTypes; i++) { 386 for (uint32_t i = 0; i < numColorTypes; i++) {
387 push_android_codec_src(path, AndroidCodecSrc::kFullImage_Mode, color Types[i], 387 push_android_codec_src(path, AndroidCodecSrc::kFullImage_Mode, color Types[i],
388 sampleSize); 388 sampleSize);
389 if (subset) { 389 if (subset) {
390 push_android_codec_src(path, AndroidCodecSrc::kDivisor_Mode, col orTypes[i], 390 push_android_codec_src(path, AndroidCodecSrc::kDivisor_Mode, col orTypes[i],
391 sampleSize); 391 sampleSize);
392 } 392 }
393 } 393 }
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 const SkBitmapRegionDecoder::Strategy strategies[] = { 470 const SkBitmapRegionDecoder::Strategy strategies[] = {
471 SkBitmapRegionDecoder::kCanvas_Strategy, 471 SkBitmapRegionDecoder::kCanvas_Strategy,
472 SkBitmapRegionDecoder::kAndroidCodec_Strategy, 472 SkBitmapRegionDecoder::kAndroidCodec_Strategy,
473 }; 473 };
474 474
475 // Test on a variety of sampleSizes, making sure to include: 475 // Test on a variety of sampleSizes, making sure to include:
476 // - 2, 4, and 8, which are natively supported by jpeg 476 // - 2, 4, and 8, which are natively supported by jpeg
477 // - multiples of 2 which are not divisible by 4 (analogous for 4) 477 // - multiples of 2 which are not divisible by 4 (analogous for 4)
478 // - larger powers of two, since BRD clients generally use powers of 2 478 // - larger powers of two, since BRD clients generally use powers of 2
479 // We will only produce output for the larger sizes on large images. 479 // We will only produce output for the larger sizes on large images.
480 const uint32_t sampleSizes[] = { 1, 2, 3, 4, 5, 6, 7, 8, 12, 16, 24, 32, 64 }; 480 const uint32_t sampleSizes[] = { /*1, 2, 3, 4, 5, 6, 7, 8, 12, 16, 24, 32, 6 4*/ };
481 481
482 // We will only test to one backend (8888), but we will test all of the 482 // We will only test to one backend (8888), but we will test all of the
483 // color types that we need to decode to on this backend. 483 // color types that we need to decode to on this backend.
484 const CodecSrc::DstColorType dstColorTypes[] = { 484 const CodecSrc::DstColorType dstColorTypes[] = {
485 CodecSrc::kGetFromCanvas_DstColorType, 485 CodecSrc::kGetFromCanvas_DstColorType,
486 CodecSrc::kIndex8_Always_DstColorType, 486 CodecSrc::kIndex8_Always_DstColorType,
487 CodecSrc::kGrayscale_Always_DstColorType, 487 CodecSrc::kGrayscale_Always_DstColorType,
488 }; 488 };
489 489
490 const BRDSrc::Mode modes[] = { 490 const BRDSrc::Mode modes[] = {
(...skipping 770 matching lines...) Expand 10 before | Expand all | Expand 10 after
1261 Reporter* reporter, 1261 Reporter* reporter,
1262 GrContextFactory* fac tory); 1262 GrContextFactory* fac tory);
1263 } // namespace skiatest 1263 } // namespace skiatest
1264 1264
1265 #if !defined(SK_BUILD_FOR_IOS) 1265 #if !defined(SK_BUILD_FOR_IOS)
1266 int main(int argc, char** argv) { 1266 int main(int argc, char** argv) {
1267 SkCommandLineFlags::Parse(argc, argv); 1267 SkCommandLineFlags::Parse(argc, argv);
1268 return dm_main(); 1268 return dm_main();
1269 } 1269 }
1270 #endif 1270 #endif
OLDNEW
« no previous file with comments | « bench/nanobench.cpp ('k') | src/codec/SkSwizzler.cpp » ('j') | src/codec/SkSwizzler.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698