re-land of new SkSL precisions

Bug: skia:
Change-Id: Ic1deb3db2cbda6ca45f93dee99832971a36a2119
Reviewed-on: https://skia-review.googlesource.com/47841
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
diff --git a/src/gpu/glsl/GrGLSL.cpp b/src/gpu/glsl/GrGLSL.cpp
index 6fe1e26..db8b7d6 100644
--- a/src/gpu/glsl/GrGLSL.cpp
+++ b/src/gpu/glsl/GrGLSL.cpp
@@ -30,33 +30,47 @@
     switch (t) {
         case kVoid_GrSLType:
             return "void";
-        case kFloat_GrSLType:
-            return "float";
-        case kVec2f_GrSLType:
-            return "float2";
-        case kVec3f_GrSLType:
-            return "float3";
-        case kVec4f_GrSLType:
-            return "float4";
-        case kVec2us_GrSLType:
+        case kHalf_GrSLType:
+            return "half";
+        case kHalf2_GrSLType:
+            return "half2";
+        case kHalf3_GrSLType:
+            return "half3";
+        case kHalf4_GrSLType:
+            return "half4";
+        case kHighFloat_GrSLType:
+            return "highfloat";
+        case kHighFloat2_GrSLType:
+            return "highfloat2";
+        case kHighFloat3_GrSLType:
+            return "highfloat3";
+        case kHighFloat4_GrSLType:
+            return "highfloat4";
+        case kUint2_GrSLType:
             if (shaderCaps->integerSupport()) {
                 return "uint2";
             } else {
                 // uint2 (aka uvec2) isn't supported in GLSL ES 1.00/GLSL 1.20
-                return "float2";
+                return "highfloat2";
             }
-        case kVec2i_GrSLType:
+        case kInt2_GrSLType:
             return "int2";
-        case kVec3i_GrSLType:
+        case kInt3_GrSLType:
             return "int3";
-        case kVec4i_GrSLType:
+        case kInt4_GrSLType:
             return "int4";
-        case kMat22f_GrSLType:
-            return "float2x2";
-        case kMat33f_GrSLType:
-            return "float3x3";
-        case kMat44f_GrSLType:
-            return "float4x4";
+        case kHighFloat2x2_GrSLType:
+            return "highfloat2x2";
+        case kHighFloat3x3_GrSLType:
+            return "highfloat3x3";
+        case kHighFloat4x4_GrSLType:
+            return "highfloat4x4";
+        case kHalf2x2_GrSLType:
+            return "half2x2";
+        case kHalf3x3_GrSLType:
+            return "half3x3";
+        case kHalf4x4_GrSLType:
+            return "half4x4";
         case kTexture2DSampler_GrSLType:
             return "sampler2D";
         case kITexture2DSampler_GrSLType:
@@ -73,6 +87,10 @@
             return "int";
         case kUint_GrSLType:
             return "uint";
+        case kShort_GrSLType:
+            return "short";
+        case kUShort_GrSLType:
+            return "ushort";
         case kTexture2D_GrSLType:
             return "texture2D";
         case kSampler_GrSLType: