Revert "Add Gray8 pixel config"

This reverts commit f2956459f707de596dcb2c79a7ee1fa62d599c0d.

Reason for revert: GM and image failures on some bots (rendering red, not gray).

Original change's description:
> Add Gray8 pixel config
> 
> This is still just linear (non-sRGB), but adding sRGB will
> be the next step. I've verified that this is really making
> R8 textures when uploading Gray8 bitmaps. Tests pass, and
> the all_bitmap_configs GM still renders correctly (unlike
> when we just mapped Gray8 to Alpha8).
> 
> This adds another pixel config, which could grow our cache
> footprint, but the benefits of not using 4bpp for 1bpp data
> should outweigh that?
> 
> BUG=skia:6110
> 
> Change-Id: I4fc4c2479fc25f1d278e174a9bb5b542a0cb184c
> Reviewed-on: https://skia-review.googlesource.com/6817
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
> 

TBR=bsalomon@google.com,robertphillips@google.com,brianosman@google.com,reviews@skia.org
BUG=skia:6110
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I95a4fc0450a569d5791f6bceb7fae61c7e5eba61
Reviewed-on: https://skia-review.googlesource.com/6838
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/src/gpu/GrCaps.cpp b/src/gpu/GrCaps.cpp
index 2b18fac..0cc3346 100644
--- a/src/gpu/GrCaps.cpp
+++ b/src/gpu/GrCaps.cpp
@@ -170,7 +170,6 @@
     static const char* kConfigNames[] = {
         "Unknown",       // kUnknown_GrPixelConfig
         "Alpha8",        // kAlpha_8_GrPixelConfig,
-        "Gray8",         // kGray_8_GrPixelConfig,
         "Index8",        // kIndex_8_GrPixelConfig,
         "RGB565",        // kRGB_565_GrPixelConfig,
         "RGBA444",       // kRGBA_4444_GrPixelConfig,
@@ -189,22 +188,21 @@
     };
     GR_STATIC_ASSERT(0  == kUnknown_GrPixelConfig);
     GR_STATIC_ASSERT(1  == kAlpha_8_GrPixelConfig);
-    GR_STATIC_ASSERT(2  == kGray_8_GrPixelConfig);
-    GR_STATIC_ASSERT(3  == kIndex_8_GrPixelConfig);
-    GR_STATIC_ASSERT(4  == kRGB_565_GrPixelConfig);
-    GR_STATIC_ASSERT(5  == kRGBA_4444_GrPixelConfig);
-    GR_STATIC_ASSERT(6  == kRGBA_8888_GrPixelConfig);
-    GR_STATIC_ASSERT(7  == kBGRA_8888_GrPixelConfig);
-    GR_STATIC_ASSERT(8  == kSRGBA_8888_GrPixelConfig);
-    GR_STATIC_ASSERT(9  == kSBGRA_8888_GrPixelConfig);
-    GR_STATIC_ASSERT(10 == kRGBA_8888_sint_GrPixelConfig);
-    GR_STATIC_ASSERT(11 == kETC1_GrPixelConfig);
-    GR_STATIC_ASSERT(12 == kLATC_GrPixelConfig);
-    GR_STATIC_ASSERT(13 == kR11_EAC_GrPixelConfig);
-    GR_STATIC_ASSERT(14 == kASTC_12x12_GrPixelConfig);
-    GR_STATIC_ASSERT(15 == kRGBA_float_GrPixelConfig);
-    GR_STATIC_ASSERT(16 == kAlpha_half_GrPixelConfig);
-    GR_STATIC_ASSERT(17 == kRGBA_half_GrPixelConfig);
+    GR_STATIC_ASSERT(2  == kIndex_8_GrPixelConfig);
+    GR_STATIC_ASSERT(3  == kRGB_565_GrPixelConfig);
+    GR_STATIC_ASSERT(4  == kRGBA_4444_GrPixelConfig);
+    GR_STATIC_ASSERT(5  == kRGBA_8888_GrPixelConfig);
+    GR_STATIC_ASSERT(6  == kBGRA_8888_GrPixelConfig);
+    GR_STATIC_ASSERT(7  == kSRGBA_8888_GrPixelConfig);
+    GR_STATIC_ASSERT(8  == kSBGRA_8888_GrPixelConfig);
+    GR_STATIC_ASSERT(9  == kRGBA_8888_sint_GrPixelConfig);
+    GR_STATIC_ASSERT(10 == kETC1_GrPixelConfig);
+    GR_STATIC_ASSERT(11 == kLATC_GrPixelConfig);
+    GR_STATIC_ASSERT(12 == kR11_EAC_GrPixelConfig);
+    GR_STATIC_ASSERT(13 == kASTC_12x12_GrPixelConfig);
+    GR_STATIC_ASSERT(14 == kRGBA_float_GrPixelConfig);
+    GR_STATIC_ASSERT(15 == kAlpha_half_GrPixelConfig);
+    GR_STATIC_ASSERT(16 == kRGBA_half_GrPixelConfig);
     GR_STATIC_ASSERT(SK_ARRAY_COUNT(kConfigNames) == kGrPixelConfigCnt);
 
     SkASSERT(!this->isConfigRenderable(kUnknown_GrPixelConfig, false));
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
index fd8aba0..30f596f 100644
--- a/src/gpu/GrContext.cpp
+++ b/src/gpu/GrContext.cpp
@@ -680,7 +680,6 @@
     static const GrPixelConfig kFallback[] = {
         kUnknown_GrPixelConfig,        // kUnknown_GrPixelConfig
         kRGBA_8888_GrPixelConfig,      // kAlpha_8_GrPixelConfig
-        kUnknown_GrPixelConfig,        // kGray_8_GrPixelConfig
         kUnknown_GrPixelConfig,        // kIndex_8_GrPixelConfig
         kRGBA_8888_GrPixelConfig,      // kRGB_565_GrPixelConfig
         kRGBA_8888_GrPixelConfig,      // kRGBA_4444_GrPixelConfig
@@ -701,22 +700,21 @@
 
     GR_STATIC_ASSERT(0  == kUnknown_GrPixelConfig);
     GR_STATIC_ASSERT(1  == kAlpha_8_GrPixelConfig);
-    GR_STATIC_ASSERT(2  == kGray_8_GrPixelConfig);
-    GR_STATIC_ASSERT(3  == kIndex_8_GrPixelConfig);
-    GR_STATIC_ASSERT(4  == kRGB_565_GrPixelConfig);
-    GR_STATIC_ASSERT(5  == kRGBA_4444_GrPixelConfig);
-    GR_STATIC_ASSERT(6  == kRGBA_8888_GrPixelConfig);
-    GR_STATIC_ASSERT(7  == kBGRA_8888_GrPixelConfig);
-    GR_STATIC_ASSERT(8  == kSRGBA_8888_GrPixelConfig);
-    GR_STATIC_ASSERT(9  == kSBGRA_8888_GrPixelConfig);
-    GR_STATIC_ASSERT(10 == kRGBA_8888_sint_GrPixelConfig);
-    GR_STATIC_ASSERT(11 == kETC1_GrPixelConfig);
-    GR_STATIC_ASSERT(12 == kLATC_GrPixelConfig);
-    GR_STATIC_ASSERT(13 == kR11_EAC_GrPixelConfig);
-    GR_STATIC_ASSERT(14 == kASTC_12x12_GrPixelConfig);
-    GR_STATIC_ASSERT(15 == kRGBA_float_GrPixelConfig);
-    GR_STATIC_ASSERT(16 == kAlpha_half_GrPixelConfig);
-    GR_STATIC_ASSERT(17 == kRGBA_half_GrPixelConfig);
+    GR_STATIC_ASSERT(2  == kIndex_8_GrPixelConfig);
+    GR_STATIC_ASSERT(3  == kRGB_565_GrPixelConfig);
+    GR_STATIC_ASSERT(4  == kRGBA_4444_GrPixelConfig);
+    GR_STATIC_ASSERT(5  == kRGBA_8888_GrPixelConfig);
+    GR_STATIC_ASSERT(6  == kBGRA_8888_GrPixelConfig);
+    GR_STATIC_ASSERT(7  == kSRGBA_8888_GrPixelConfig);
+    GR_STATIC_ASSERT(8  == kSBGRA_8888_GrPixelConfig);
+    GR_STATIC_ASSERT(9  == kRGBA_8888_sint_GrPixelConfig);
+    GR_STATIC_ASSERT(10 == kETC1_GrPixelConfig);
+    GR_STATIC_ASSERT(11 == kLATC_GrPixelConfig);
+    GR_STATIC_ASSERT(12 == kR11_EAC_GrPixelConfig);
+    GR_STATIC_ASSERT(13 == kASTC_12x12_GrPixelConfig);
+    GR_STATIC_ASSERT(14 == kRGBA_float_GrPixelConfig);
+    GR_STATIC_ASSERT(15 == kAlpha_half_GrPixelConfig);
+    GR_STATIC_ASSERT(16 == kRGBA_half_GrPixelConfig);
     GR_STATIC_ASSERT(SK_ARRAY_COUNT(kFallback) == kGrPixelConfigCnt);
 }
 
diff --git a/src/gpu/GrShaderCaps.cpp b/src/gpu/GrShaderCaps.cpp
index 90df176..3e6323f 100644
--- a/src/gpu/GrShaderCaps.cpp
+++ b/src/gpu/GrShaderCaps.cpp
@@ -202,7 +202,6 @@
         uint8_t* table = fSamplerPrecisions[visibility];
         table[kUnknown_GrPixelConfig]        = kDefault_GrSLPrecision;
         table[kAlpha_8_GrPixelConfig]        = lowp;
-        table[kGray_8_GrPixelConfig]         = lowp;
         table[kIndex_8_GrPixelConfig]        = lowp;
         table[kRGB_565_GrPixelConfig]        = lowp;
         table[kRGBA_4444_GrPixelConfig]      = lowp;
@@ -219,7 +218,7 @@
         table[kAlpha_half_GrPixelConfig]     = mediump;
         table[kRGBA_half_GrPixelConfig]      = mediump;
 
-        GR_STATIC_ASSERT(18 == kGrPixelConfigCnt);
+        GR_STATIC_ASSERT(17 == kGrPixelConfigCnt);
     }
 }
 
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp
index 9d6072c..4147855 100644
--- a/src/gpu/SkGr.cpp
+++ b/src/gpu/SkGr.cpp
@@ -253,6 +253,25 @@
         pmap = &tmpPixmap;
         // must rebuild desc, since we've forced the info to be N32
         desc = GrImageInfoToSurfaceDesc(pmap->info(), *caps);
+    } else if (kGray_8_SkColorType == pixmap.colorType()) {
+        // We don't have Gray8 support as a pixel config, so expand to 8888
+
+        // We should have converted sRGB Gray8 above (if we have sRGB support):
+        SkASSERT(!caps->srgbSupport() || !pixmap.info().colorSpace() ||
+                 !pixmap.info().colorSpace()->gammaCloseToSRGB());
+
+        SkImageInfo info = SkImageInfo::MakeN32(pixmap.width(), pixmap.height(),
+                                                kOpaque_SkAlphaType);
+        tmpBitmap.allocPixels(info);
+        if (!pixmap.readPixels(info, tmpBitmap.getPixels(), tmpBitmap.rowBytes())) {
+            return nullptr;
+        }
+        if (!tmpBitmap.peekPixels(&tmpPixmap)) {
+            return nullptr;
+        }
+        pmap = &tmpPixmap;
+        // must rebuild desc, since we've forced the info to be N32
+        desc = GrImageInfoToSurfaceDesc(pmap->info(), *caps);
     } else if (kIndex_8_SkColorType == pixmap.colorType()) {
         if (caps->isConfigTexturable(kIndex_8_GrPixelConfig)) {
             size_t imageSize = GrCompressedFormatDataSize(kIndex_8_GrPixelConfig,
@@ -463,7 +482,7 @@
         case kIndex_8_SkColorType:
             return kIndex_8_GrPixelConfig;
         case kGray_8_SkColorType:
-            return kGray_8_GrPixelConfig;
+            return kAlpha_8_GrPixelConfig; // TODO: gray8 support on gpu
         case kRGBA_F16_SkColorType:
             return kRGBA_half_GrPixelConfig;
     }
@@ -477,9 +496,6 @@
         case kAlpha_8_GrPixelConfig:
             ct = kAlpha_8_SkColorType;
             break;
-        case kGray_8_GrPixelConfig:
-            ct = kGray_8_SkColorType;
-            break;
         case kIndex_8_GrPixelConfig:
             ct = kIndex_8_SkColorType;
             break;
diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp
index bd9380c..d3adc28 100644
--- a/src/gpu/gl/GrGLCaps.cpp
+++ b/src/gpu/gl/GrGLCaps.cpp
@@ -1756,39 +1756,6 @@
         fConfigTable[kAlpha_8_GrPixelConfig].fFlags |= ConfigInfo::kCanUseTexStorage_Flag;
     }
 
-    if (this->textureRedSupport()) {
-        fConfigTable[kGray_8_GrPixelConfig].fFormats.fBaseInternalFormat = GR_GL_RED;
-        fConfigTable[kGray_8_GrPixelConfig].fFormats.fSizedInternalFormat = GR_GL_R8;
-        fConfigTable[kGray_8_GrPixelConfig].fFormats.fExternalFormat[kOther_ExternalFormatUsage] =
-            GR_GL_RED;
-        fConfigTable[kGray_8_GrPixelConfig].fSwizzle = GrSwizzle::RRRA();
-        if (texelBufferSupport) {
-            fConfigTable[kGray_8_GrPixelConfig].fFlags |= ConfigInfo::kCanUseWithTexelBuffer_Flag;
-        }
-    } else {
-        fConfigTable[kGray_8_GrPixelConfig].fFormats.fBaseInternalFormat = GR_GL_LUMINANCE;
-        fConfigTable[kGray_8_GrPixelConfig].fFormats.fSizedInternalFormat = GR_GL_LUMINANCE8;
-        fConfigTable[kGray_8_GrPixelConfig].fFormats.fExternalFormat[kOther_ExternalFormatUsage] =
-            GR_GL_LUMINANCE;
-        fConfigTable[kGray_8_GrPixelConfig].fSwizzle = GrSwizzle::RGBA();
-    }
-    fConfigTable[kGray_8_GrPixelConfig].fFormats.fExternalType = GR_GL_UNSIGNED_BYTE;
-    fConfigTable[kGray_8_GrPixelConfig].fFormatType = kNormalizedFixedPoint_FormatType;
-    fConfigTable[kGray_8_GrPixelConfig].fFlags = ConfigInfo::kTextureable_Flag;
-#if 0 // Leaving Gray8 as non-renderable, to keep things simple and match raster
-    if (this->textureRedSupport() ||
-        (kDesktop_ARB_MSFBOType == this->msFBOType() &&
-         ctxInfo.renderer() != kOSMesa_GrGLRenderer)) {
-        // desktop ARB extension/3.0+ supports LUMINANCE8 as renderable.
-        // However, osmesa fails if it used even when GL_ARB_framebuffer_object is present.
-        // Core profile removes LUMINANCE8 support, but we should have chosen R8 in that case.
-        fConfigTable[kGray_8_GrPixelConfig].fFlags |= allRenderFlags;
-    }
-#endif
-    if (texStorageSupported) {
-        fConfigTable[kGray_8_GrPixelConfig].fFlags |= ConfigInfo::kCanUseTexStorage_Flag;
-    }
-
     // Check for [half] floating point texture support
     // NOTE: We disallow floating point textures on ES devices if linear filtering modes are not
     // supported. This is for simplicity, but a more granular approach is possible. Coincidentally,
diff --git a/src/gpu/gl/GrGLDefines.h b/src/gpu/gl/GrGLDefines.h
index 05a594e..18dee28 100644
--- a/src/gpu/gl/GrGLDefines.h
+++ b/src/gpu/gl/GrGLDefines.h
@@ -461,9 +461,6 @@
 #define GR_GL_R32I                           0x8235
 #define GR_GL_R32UI                          0x8236
 
-/* Luminance sized formats */
-#define GR_GL_LUMINANCE8                     0x8040
-
 /* Alpha sized formats */
 #define GR_GL_ALPHA8                         0x803C
 #define GR_GL_ALPHA16                        0x803E
diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp
index 74e5258..577aca8 100644
--- a/src/gpu/gl/GrGLGpu.cpp
+++ b/src/gpu/gl/GrGLGpu.cpp
@@ -927,7 +927,6 @@
     SkASSERT(!GrPixelConfigIsCompressed(config));
     switch (config) {
         case kAlpha_8_GrPixelConfig:
-        case kGray_8_GrPixelConfig:
             return 1;
         case kRGB_565_GrPixelConfig:
         case kRGBA_4444_GrPixelConfig:
diff --git a/src/gpu/vk/GrVkUtil.cpp b/src/gpu/vk/GrVkUtil.cpp
index b92f03e..3071fc8 100644
--- a/src/gpu/vk/GrVkUtil.cpp
+++ b/src/gpu/vk/GrVkUtil.cpp
@@ -48,9 +48,6 @@
         case kAlpha_8_GrPixelConfig:
             *format = VK_FORMAT_R8_UNORM;
             return true;
-        case kGray_8_GrPixelConfig:
-            *format = VK_FORMAT_R8_UNORM;
-            return true;
         case kETC1_GrPixelConfig:
             // converting to ETC2 which is a superset of ETC1
             *format = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK;