Revert "dither copies when decreasing precision"
authorMike Klein <mtklein@google.com>
Sat, 20 May 2017 17:27:19 +0000 (17:27 +0000)
committerSkia Commit-Bot <skia-commit-bot@chromium.org>
Sat, 20 May 2017 17:27:26 +0000 (17:27 +0000)
This reverts commit 766f9cd5553ab091b85d287a79f47cbb91ad7989.

Reason for revert: unit test failures, I think on bots running portable code path

Original change's description:
> dither copies when decreasing precision
>
> Still seeing the same 4444 diffs on copyTo4444 and all_bitmap_configs,
> and now also 565 in all_bitmap_configs.
>
> BUG=chromium:720105
>
> Change-Id: I19406f57aa6d2b2f98d98c093da302b004c7cd8b
> Reviewed-on: https://skia-review.googlesource.com/17419
> Commit-Queue: Mike Klein <mtklein@chromium.org>
> Reviewed-by: Matt Sarett <msarett@google.com>
>

TBR=mtklein@chromium.org,msarett@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:720105

Change-Id: Ia9ece7dccef325233b870102ab38fbed2336b95d
Reviewed-on: https://skia-review.googlesource.com/17442
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>

src/core/SkConvertPixels.cpp

index cfe5649c0114640668d39a365b91c09d0a6d0e75..99564e72227e8209934ff56d018a92a80038b9be 100644 (file)
@@ -16,7 +16,6 @@
 #include "SkRasterPipeline.h"
 #include "SkUnPreMultiply.h"
 #include "SkUnPreMultiplyPriv.h"
-#include "../jumper/SkJumper.h"
 
 // Fast Path 1: The memcpy() case.
 static inline bool can_memcpy(const SkImageInfo& dstInfo, const SkImageInfo& srcInfo) {
@@ -358,22 +357,6 @@ static void convert_with_pipeline(const SkImageInfo& dstInfo, void* dstRow, size
     // opaque to another alpha type, there's no need to worry about multiplication.
     SkASSERT(premulState == dat || kOpaque_SkAlphaType == srcInfo.alphaType());
 
-    // We'll dither if we're decreasing precision.
-    int y;
-    SkJumper_DitherCtx dither = {&y, 0.0f};
-    if (srcInfo.bytesPerPixel() > dstInfo.bytesPerPixel()) {
-        switch (dstInfo.colorType()) {
-            case kRGBA_8888_SkColorType:
-            case kBGRA_8888_SkColorType: dither.rate = 1/255.0f; break;
-            case   kRGB_565_SkColorType: dither.rate = 1/ 63.0f; break;
-            case kARGB_4444_SkColorType: dither.rate = 1/ 15.0f; break;
-            default:                     dither.rate =     0.0f; break;
-        }
-    }
-    if (dither.rate > 0) {
-        pipeline.append(SkRasterPipeline::dither, &dither);
-    }
-
     switch (dstInfo.colorType()) {
         case kRGBA_8888_SkColorType:
             pipeline.append(SkRasterPipeline::store_8888, &dstRow);
@@ -396,8 +379,7 @@ static void convert_with_pipeline(const SkImageInfo& dstInfo, void* dstRow, size
             break;
     }
 
-    // This y is declared above when handling dither (which needs to know y).
-    for (y = 0; y < srcInfo.height(); ++y) {
+    for (int y = 0; y < srcInfo.height(); ++y) {
         pipeline.run(0,srcInfo.width());
         // The pipeline has pointers to srcRow and dstRow, so we just need to update them in the
         // loop to move between rows of src/dst.