convert over to 2d-mode

 [√] convert all stages to use SkJumper_MemoryCtx / be 2d-compatible
 [√] convert compile to 2d also, remove 1d run/compile
 [√] convert all call sites
 [√] no diffs

Change-Id: I3b806eb8fe0c3ec043359616409f7cd1211a1e43
Reviewed-on: https://skia-review.googlesource.com/24263
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
diff --git a/tests/F16StagesTest.cpp b/tests/F16StagesTest.cpp
index 51cb861..d07f6ba 100644
--- a/tests/F16StagesTest.cpp
+++ b/tests/F16StagesTest.cpp
@@ -7,6 +7,7 @@
 
 #include "SkRasterPipeline.h"
 #include "Test.h"
+#include "../src/jumper/SkJumper.h"
 
 DEF_TEST(F16Stages, r) {
     // Make sure SkRasterPipeline::load_f16 and store_f16 can handle a range of
@@ -18,36 +19,36 @@
     };
     uint16_t halfs[16] = {0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0};
 
-    float*    f32 = floats;
-    uint16_t* f16 = halfs;
+    SkJumper_MemoryCtx f32 = { floats, 0 },
+                       f16 = { halfs,  0 };
 
     {
         SkRasterPipeline_<256> p;
         p.append(SkRasterPipeline:: load_f32, &f32);
         p.append(SkRasterPipeline::store_f16, &f16);
-        p.run(0,0,16/4);
+        p.run(0,0,16/4,1);
     }
-    REPORTER_ASSERT(r, f16[0] == 0x0000);
-    REPORTER_ASSERT(r, f16[1] == 0x3400);
-    REPORTER_ASSERT(r, f16[2] == 0x3800);
-    REPORTER_ASSERT(r, f16[3] == 0x3c00);
-    REPORTER_ASSERT(r, f16[4] == 0xbd00);
-    REPORTER_ASSERT(r, f16[5] == 0xb800);
-    REPORTER_ASSERT(r, f16[6] == 0x3d00);
-    REPORTER_ASSERT(r, f16[7] == 0x4000);
+    REPORTER_ASSERT(r, halfs[0] == 0x0000);
+    REPORTER_ASSERT(r, halfs[1] == 0x3400);
+    REPORTER_ASSERT(r, halfs[2] == 0x3800);
+    REPORTER_ASSERT(r, halfs[3] == 0x3c00);
+    REPORTER_ASSERT(r, halfs[4] == 0xbd00);
+    REPORTER_ASSERT(r, halfs[5] == 0xb800);
+    REPORTER_ASSERT(r, halfs[6] == 0x3d00);
+    REPORTER_ASSERT(r, halfs[7] == 0x4000);
 
     {
         SkRasterPipeline_<256> p;
         p.append(SkRasterPipeline:: load_f16, &f16);
         p.append(SkRasterPipeline::store_f32, &f32);
-        p.run(0,0,16/4);
+        p.run(0,0,16/4,1);
     }
-    REPORTER_ASSERT(r, f32[0] ==  0.00f);
-    REPORTER_ASSERT(r, f32[1] ==  0.25f);
-    REPORTER_ASSERT(r, f32[2] ==  0.50f);
-    REPORTER_ASSERT(r, f32[3] ==  1.00f);
-    REPORTER_ASSERT(r, f32[4] == -1.25f);
-    REPORTER_ASSERT(r, f32[5] == -0.50f);
-    REPORTER_ASSERT(r, f32[6] ==  1.25f);
-    REPORTER_ASSERT(r, f32[7] ==  2.00f);
+    REPORTER_ASSERT(r, floats[0] ==  0.00f);
+    REPORTER_ASSERT(r, floats[1] ==  0.25f);
+    REPORTER_ASSERT(r, floats[2] ==  0.50f);
+    REPORTER_ASSERT(r, floats[3] ==  1.00f);
+    REPORTER_ASSERT(r, floats[4] == -1.25f);
+    REPORTER_ASSERT(r, floats[5] == -0.50f);
+    REPORTER_ASSERT(r, floats[6] ==  1.25f);
+    REPORTER_ASSERT(r, floats[7] ==  2.00f);
 }
diff --git a/tests/ParametricStageTest.cpp b/tests/ParametricStageTest.cpp
index 5b34e16..6d98ac4 100644
--- a/tests/ParametricStageTest.cpp
+++ b/tests/ParametricStageTest.cpp
@@ -8,6 +8,7 @@
 #include "SkColorSpace.h"
 #include "SkRasterPipeline.h"
 #include "Test.h"
+#include "../src/jumper/SkJumper.h"
 
 static void check_error(skiatest::Reporter* r, float limit, SkColorSpaceTransferFn fn) {
     float in[256], out[256];
@@ -16,8 +17,8 @@
         out[i] = 0.0f;  // Not likely important.  Just being tidy.
     }
 
-    const float* ip = in;
-    float*       op = out;
+    SkJumper_MemoryCtx ip = { in, 0},
+                       op = {out, 0};
 
     SkRasterPipeline_<256> p;
     p.append(SkRasterPipeline::load_f32, &ip);
@@ -27,7 +28,7 @@
     p.append(SkRasterPipeline::parametric_a, &fn);
     p.append(SkRasterPipeline::store_f32, &op);
 
-    p.run(0,0, 256/4);
+    p.run(0,0, 256/4,1);
 
 
     for (int i = 0; i < 256; i++) {
diff --git a/tests/SRGBTest.cpp b/tests/SRGBTest.cpp
index fc02f7d..1db9eb3 100644
--- a/tests/SRGBTest.cpp
+++ b/tests/SRGBTest.cpp
@@ -11,6 +11,7 @@
 #include "SkTypes.h"
 #include "Test.h"
 #include <math.h>
+#include "../src/jumper/SkJumper.h"
 
 static uint8_t linear_to_srgb(float l) {
     return (uint8_t)sk_linear_to_srgb(Sk4f{l})[0];
@@ -46,7 +47,7 @@
         reds[i] = i;
     }
 
-    auto ptr = (void*)reds;
+    SkJumper_MemoryCtx ptr = { reds, 0 };
 
     SkRasterPipeline_<256> p;
     p.append(SkRasterPipeline::load_8888,  &ptr);
@@ -54,7 +55,7 @@
     p.append(SkRasterPipeline::to_srgb);
     p.append(SkRasterPipeline::store_8888, &ptr);
 
-    p.run(0,0,256);
+    p.run(0,0,256,1);
 
     for (int i = 0; i < 256; i++) {
         if (reds[i] != (uint32_t)i) {
@@ -67,13 +68,14 @@
     // We need to run at least 4 pixels to make sure we hit all specializations.
     SkPM4f colors[4] = { {{0,1,1,1}}, {{0,0,0,0}}, {{0,0,0,0}}, {{0,0,0,0}} };
     auto& color = colors[0];
-    void* dst = &color;
+
+    SkJumper_MemoryCtx dst = { &color, 0 };
 
     SkRasterPipeline_<256> p;
     p.append(SkRasterPipeline::uniform_color, &color);
     p.append(SkRasterPipeline::to_srgb);
     p.append(SkRasterPipeline::store_f32, &dst);
-    p.run(0,0,4);
+    p.run(0,0,4,1);
 
     if (color.r() != 0.0f) {
         ERRORF(r, "expected to_srgb() to map 0.0f to 0.0f, got %f", color.r());
diff --git a/tests/SkRasterPipelineTest.cpp b/tests/SkRasterPipelineTest.cpp
index 8edff7e..bab3d5b 100644
--- a/tests/SkRasterPipelineTest.cpp
+++ b/tests/SkRasterPipelineTest.cpp
@@ -17,16 +17,16 @@
              blue = 0x3800380000000000ull,
              result;
 
-    void* load_s_ctx = &blue;
-    void* load_d_ctx = &red;
-    void* store_ctx  = &result;
+    SkJumper_MemoryCtx load_s_ctx = { &blue, 0 },
+                       load_d_ctx = { &red, 0 },
+                       store_ctx  = { &result, 0 };
 
     SkRasterPipeline_<256> p;
     p.append(SkRasterPipeline::load_f16,     &load_s_ctx);
     p.append(SkRasterPipeline::load_f16_dst, &load_d_ctx);
     p.append(SkRasterPipeline::srcover);
     p.append(SkRasterPipeline::store_f16, &store_ctx);
-    p.run(0,0,1);
+    p.run(0,0,1,1);
 
     // We should see half-intensity magenta.
     REPORTER_ASSERT(r, ((result >>  0) & 0xffff) == 0x3800);
@@ -38,7 +38,7 @@
 DEF_TEST(SkRasterPipeline_empty, r) {
     // No asserts... just a test that this is safe to run.
     SkRasterPipeline_<256> p;
-    p.run(0,0,20);
+    p.run(0,0,20,1);
 }
 
 DEF_TEST(SkRasterPipeline_nonsense, r) {
@@ -46,7 +46,7 @@
     // srcover() calls st->next(); this makes sure we've always got something there to call.
     SkRasterPipeline_<256> p;
     p.append(SkRasterPipeline::srcover);
-    p.run(0,0,20);
+    p.run(0,0,20,1);
 }
 
 DEF_TEST(SkRasterPipeline_JIT, r) {
@@ -61,20 +61,20 @@
          0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     };
 
-    const uint32_t* src = buf +  0;
-    uint32_t*       dst = buf + 36;
+    SkJumper_MemoryCtx src = { buf +  0, 0 },
+                       dst = { buf + 36, 0 };
 
     // Copy buf[x] to buf[x+36] for x in [15,35).
     SkRasterPipeline_<256> p;
     p.append(SkRasterPipeline:: load_8888, &src);
     p.append(SkRasterPipeline::store_8888, &dst);
-    p.run(15,0, 20);
+    p.run(15,0, 20,1);
 
     for (int i = 0; i < 36; i++) {
         if (i < 15 || i == 35) {
-            REPORTER_ASSERT(r, dst[i] == 0);
+            REPORTER_ASSERT(r, buf[i+36] == 0);
         } else {
-            REPORTER_ASSERT(r, dst[i] == (uint32_t)(i - 11));
+            REPORTER_ASSERT(r, buf[i+36] == (uint32_t)(i - 11));
         }
     }
 }
@@ -111,15 +111,16 @@
         };
 
         float buffer[4][4];
-        float* src = &data[0][0];
-        float* dst = &buffer[0][0];
+
+        SkJumper_MemoryCtx src = { &data[0][0], 0 },
+                           dst = { &buffer[0][0], 0 };
 
         for (unsigned i = 1; i <= 4; i++) {
             memset(buffer, 0xff, sizeof(buffer));
             SkRasterPipeline_<256> p;
             p.append(SkRasterPipeline::load_f32, &src);
             p.append(SkRasterPipeline::store_f32, &dst);
-            p.run(0,0, i);
+            p.run(0,0, i,1);
             for (unsigned j = 0; j < i; j++) {
                 for (unsigned k = 0; k < 4; k++) {
                     if (buffer[j][k] != data[j][k]) {
@@ -143,15 +144,15 @@
             {h(30), h(31), h(32), h(33)},
         };
         uint16_t buffer[4][4];
-        uint16_t* src = &data[0][0];
-        uint16_t* dst = &buffer[0][0];
+        SkJumper_MemoryCtx src = { &data[0][0], 0 },
+                           dst = { &buffer[0][0], 0 };
 
         for (unsigned i = 1; i <= 4; i++) {
             memset(buffer, 0xff, sizeof(buffer));
             SkRasterPipeline_<256> p;
             p.append(SkRasterPipeline::load_f16, &src);
             p.append(SkRasterPipeline::store_f16, &dst);
-            p.run(0,0, i);
+            p.run(0,0, i,1);
             for (unsigned j = 0; j < i; j++) {
                 REPORTER_ASSERT(r,
                                 !memcmp(&data[j][0], &buffer[j][0], sizeof(buffer[j])));
@@ -180,15 +181,15 @@
         };
 
         float buffer[4][4];
-        uint16_t* src = &data[0][0];
-        float* dst = &buffer[0][0];
+        SkJumper_MemoryCtx src = { &data[0][0], 0 },
+                           dst = { &buffer[0][0], 0 };
 
         for (unsigned i = 1; i <= 4; i++) {
             memset(buffer, 0xff, sizeof(buffer));
             SkRasterPipeline_<256> p;
             p.append(SkRasterPipeline::load_rgb_u16_be, &src);
             p.append(SkRasterPipeline::store_f32, &dst);
-            p.run(0,0, i);
+            p.run(0,0, i,1);
             for (unsigned j = 0; j < i; j++) {
                 for (unsigned k = 0; k < 4; k++) {
                     if (buffer[j][k] != answer[j][k]) {
@@ -214,12 +215,12 @@
                 | (4*i+3) << 24;
     }
 
-    void* ptr = rgba;
+    SkJumper_MemoryCtx ptr = { rgba, 0 };
 
     SkRasterPipeline_<256> p;
     p.append(SkRasterPipeline::load_bgra,  &ptr);
     p.append(SkRasterPipeline::store_8888, &ptr);
-    p.run(0,0,64);
+    p.run(0,0,64,1);
 
     for (int i = 0; i < 64; i++) {
         uint32_t want = (4*i+0) << 16
@@ -247,9 +248,9 @@
 
     // Write out to rgba, with row stride = 2 pixels.
     SkJumper_MemoryCtx ctx = { rgba, 2 };
-    p.append(SkRasterPipeline::store_8888_2d, &ctx);
+    p.append(SkRasterPipeline::store_8888, &ctx);
 
-    p.run_2d(0,0, 2,2);
+    p.run(0,0, 2,2);
 
     REPORTER_ASSERT(r, ((rgba[0] >> 0) & 0xff) ==   0);
     REPORTER_ASSERT(r, ((rgba[1] >> 0) & 0xff) == 128);