Roll skia/third_party/skcms f1e2b45d18fa..b2fffd2ecf2e (1 commits)

https://skia.googlesource.com/skcms.git/+log/f1e2b45d18fa..b2fffd2ecf2e

2018-08-16 brianosman@google.com Actually support profiles with 1D and 2D CLUTs


The AutoRoll server is located here: https://skcms-skia-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.



CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
TBR=kjlubick@google.com

Change-Id: I1f1d967b7a856a79dd82ffc2fb51ff23c3e3bab8
Reviewed-on: https://skia-review.googlesource.com/147400
Reviewed-by: skcms-skia-autoroll <skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: skcms-skia-autoroll <skcms-skia-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
diff --git a/third_party/skcms/skcms.cc b/third_party/skcms/skcms.cc
index 6fb4af9..f6f7158 100644
--- a/third_party/skcms/skcms.cc
+++ b/third_party/skcms/skcms.cc
@@ -1782,6 +1782,10 @@
     Op_table_16_b,
     Op_table_16_a,
 
+    Op_clut_1D_8,
+    Op_clut_1D_16,
+    Op_clut_2D_8,
+    Op_clut_2D_16,
     Op_clut_3D_8,
     Op_clut_3D_16,
     Op_clut_4D_8,
@@ -2133,6 +2137,8 @@
                     }
                 }
                 switch (srcProfile->A2B.input_channels) {
+                    case 1: *ops++ = srcProfile->A2B.grid_8 ? Op_clut_1D_8 : Op_clut_1D_16; break;
+                    case 2: *ops++ = srcProfile->A2B.grid_8 ? Op_clut_2D_8 : Op_clut_2D_16; break;
                     case 3: *ops++ = srcProfile->A2B.grid_8 ? Op_clut_3D_8 : Op_clut_3D_16; break;
                     case 4: *ops++ = srcProfile->A2B.grid_8 ? Op_clut_4D_8 : Op_clut_4D_16; break;
                     default: return false;
diff --git a/third_party/skcms/src/Transform_inl.h b/third_party/skcms/src/Transform_inl.h
index 2ddfc48..bdf7b5f 100644
--- a/third_party/skcms/src/Transform_inl.h
+++ b/third_party/skcms/src/Transform_inl.h
@@ -869,6 +869,26 @@
             case Op_table_16_b:{ b = table_16((const skcms_Curve*)*args++, b); } break;
             case Op_table_16_a:{ a = table_16((const skcms_Curve*)*args++, a); } break;
 
+            case Op_clut_1D_8:{
+                const skcms_A2B* a2b = (const skcms_A2B*) *args++;
+                clut_1_8(a2b, cast<I32>(F0),cast<I32>(F1), &r,&g,&b,a);
+            } break;
+
+            case Op_clut_1D_16:{
+                const skcms_A2B* a2b = (const skcms_A2B*) *args++;
+                clut_1_16(a2b, cast<I32>(F0),cast<I32>(F1), &r,&g,&b,a);
+            } break;
+
+            case Op_clut_2D_8:{
+                const skcms_A2B* a2b = (const skcms_A2B*) *args++;
+                clut_2_8(a2b, cast<I32>(F0),cast<I32>(F1), &r,&g,&b,a);
+            } break;
+
+            case Op_clut_2D_16:{
+                const skcms_A2B* a2b = (const skcms_A2B*) *args++;
+                clut_2_16(a2b, cast<I32>(F0),cast<I32>(F1), &r,&g,&b,a);
+            } break;
+
             case Op_clut_3D_8:{
                 const skcms_A2B* a2b = (const skcms_A2B*) *args++;
                 clut_3_8(a2b, cast<I32>(F0),cast<I32>(F1), &r,&g,&b,a);
diff --git a/third_party/skcms/version.sha1 b/third_party/skcms/version.sha1
index 803fc5c..f856616 100755
--- a/third_party/skcms/version.sha1
+++ b/third_party/skcms/version.sha1
@@ -1 +1 @@
-f1e2b45d18facbae2dece3aca673fe1603077846
\ No newline at end of file
+b2fffd2ecf2e47ec2faf811865f9eb934be1c0e1
\ No newline at end of file