Reland "Reland "Have a GrBackendFormat be stored on gpu proxies.""

This is a reland of 2f9a5ea639925f38785f4d3a0af237822007cfd6

Original change's description:
> Reland "Have a GrBackendFormat be stored on gpu proxies."
> 
> This reverts commit 919c9e77c3492af766ff5982acda76ee49da3168.
> 
> Reason for revert: Flutter change has landed and fixed memory issue.
> 
> Original change's description:
> > Revert "Have a GrBackendFormat be stored on gpu proxies."
> >
> > This reverts commit 51b1c12bbc2fa3f8d4faa29ad19c6f3cb34837ce.
> >
> > Reason for revert: reverting till flutter gets to 1.1 to fix build issues.
> >
> > Original change's description:
> > > Have a GrBackendFormat be stored on gpu proxies.
> > >
> > > Bug: skia:
> > > Change-Id: Iaf1fb24ab29a61d44e5fa59a5e0867ed02dcda90
> > > Reviewed-on: https://skia-review.googlesource.com/c/168021
> > > Reviewed-by: Brian Osman <brianosman@google.com>
> > > Commit-Queue: Greg Daniel <egdaniel@google.com>
> >
> > TBR=egdaniel@google.com,bsalomon@google.com,brianosman@google.com
> >
> > Change-Id: I574fdc084ef5994596c51fb0d60423b5dc01b885
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: chromium:903701 chromium:903756
> > Reviewed-on: https://skia-review.googlesource.com/c/169835
> > Commit-Queue: Greg Daniel <egdaniel@google.com>
> > Reviewed-by: Greg Daniel <egdaniel@google.com>
> 
> TBR=egdaniel@google.com,bsalomon@google.com,brianosman@google.com
> 
> Change-Id: Ifd9b6b8e194af9fb9258fa626644e76e6ecf090d
> Bug: chromium:903701 chromium:903756
> Reviewed-on: https://skia-review.googlesource.com/c/170104
> Commit-Queue: Greg Daniel <egdaniel@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>

Bug: chromium:903701 chromium:903756
Change-Id: Id1360067d8e928b0a4e1848dae8bc1e7f1994403
Reviewed-on: https://skia-review.googlesource.com/c/171660
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
diff --git a/tests/GrSurfaceTest.cpp b/tests/GrSurfaceTest.cpp
index bdec795..d3cc2f4 100644
--- a/tests/GrSurfaceTest.cpp
+++ b/tests/GrSurfaceTest.cpp
@@ -112,8 +112,13 @@
             REPORTER_ASSERT(reporter, SkToBool(tex) == ict,
                             "config:%d, tex:%d, isConfigTexturable:%d", config, SkToBool(tex), ict);
 
+            GrSRGBEncoded srgbEncoded = GrSRGBEncoded::kNo;
+            GrColorType colorType = GrPixelConfigToColorTypeAndEncoding(config, &srgbEncoded);
+            const GrBackendFormat format =
+                    caps->getBackendFormatFromGrColorType(colorType, srgbEncoded);
+
             sk_sp<GrTextureProxy> proxy =
-                    proxyProvider->createMipMapProxy(desc, origin, SkBudgeted::kNo);
+                    proxyProvider->createMipMapProxy(format, desc, origin, SkBudgeted::kNo);
             REPORTER_ASSERT(reporter, SkToBool(proxy.get()) ==
                             (caps->isConfigTexturable(desc.fConfig) &&
                              caps->mipMapSupport()));
@@ -146,16 +151,17 @@
     std::unique_ptr<uint32_t[]> data(new uint32_t[kSize * kSize]);
 
     GrContext* context = context_info.grContext();
+    const GrCaps* caps = context->contextPriv().caps();
     GrProxyProvider* proxyProvider = context->contextPriv().proxyProvider();
 
     for (int c = 0; c <= kLast_GrPixelConfig; ++c) {
         desc.fConfig = static_cast<GrPixelConfig>(c);
-        if (!context->contextPriv().caps()->isConfigTexturable(desc.fConfig)) {
+        if (!caps->isConfigTexturable(desc.fConfig)) {
             continue;
         }
         desc.fFlags = kPerformInitialClear_GrSurfaceFlag;
         for (bool rt : {false, true}) {
-            if (rt && !context->contextPriv().caps()->isConfigRenderable(desc.fConfig)) {
+            if (rt && !caps->isConfigRenderable(desc.fConfig)) {
                 continue;
             }
             desc.fFlags |= rt ? kRenderTarget_GrSurfaceFlag : kNone_GrSurfaceFlags;
@@ -193,10 +199,16 @@
                     }
                     context->contextPriv().purgeAllUnlockedResources_ForTesting();
 
+                    GrSRGBEncoded srgbEncoded = GrSRGBEncoded::kNo;
+                    GrColorType colorType = GrPixelConfigToColorTypeAndEncoding(desc.fConfig,
+                                                                                &srgbEncoded);
+                    const GrBackendFormat format =
+                            caps->getBackendFormatFromGrColorType(colorType, srgbEncoded);
+
                     // Try creating the texture as a deferred proxy.
                     for (int i = 0; i < 2; ++i) {
                         auto surfCtx = context->contextPriv().makeDeferredSurfaceContext(
-                                desc, origin, GrMipMapped::kNo, fit, SkBudgeted::kYes);
+                                format, desc, origin, GrMipMapped::kNo, fit, SkBudgeted::kYes);
                         if (!surfCtx) {
                             continue;
                         }