Reland "Remove setting/use of GrPixelConfig in GrBackendTex/RT ctors."

This reverts commit 34aa059c1502d67c9a5f4db449667a8709b69fb9.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Revert "Remove setting/use of GrPixelConfig in GrBackendTex/RT ctors."
> 
> This reverts commit ff2181e62e79ffd2ce628fc8c05b5457d4f54163.
> 
> Reason for revert: suspect it's behind Chrome roll failure
> 
> Original change's description:
> > Remove setting/use of GrPixelConfig in GrBackendTex/RT ctors.
> > 
> > Bug: skia:
> > Change-Id: I1466668e3502cd1e6e1f6aed4105e0f626d293dd
> > Reviewed-on: https://skia-review.googlesource.com/138987
> > Commit-Queue: Greg Daniel <egdaniel@google.com>
> > Reviewed-by: Robert Phillips <robertphillips@google.com>
> 
> TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com
> 
> Change-Id: I4cba44858aafffbadc45e18349b93c741d7cfc66
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:
> Reviewed-on: https://skia-review.googlesource.com/139220
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>

Bug: skia:
Change-Id: Ib1fd10c126862824f3e31c420c697ac749c637f5
Reviewed-on: https://skia-review.googlesource.com/139221
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
diff --git a/include/gpu/GrBackendSurface.h b/include/gpu/GrBackendSurface.h
index 7f05bb5..dc13795 100644
--- a/include/gpu/GrBackendSurface.h
+++ b/include/gpu/GrBackendSurface.h
@@ -128,23 +128,6 @@
     // Creates an invalid backend texture.
     GrBackendTexture() : fIsValid(false) {}
 
-#if GR_TEST_UTILS
-    // GrGLTextureInfo::fFormat is ignored
-    // Deprecated: Should use version that does not take a GrPixelConfig instead
-    GrBackendTexture(int width,
-                     int height,
-                     GrPixelConfig config,
-                     const GrGLTextureInfo& glInfo);
-
-    // GrGLTextureInfo::fFormat is ignored
-    // Deprecated: Should use version that does not take a GrPixelConfig instead
-    GrBackendTexture(int width,
-                     int height,
-                     GrPixelConfig config,
-                     GrMipMapped,
-                     const GrGLTextureInfo& glInfo);
-#endif
-
     // The GrGLTextureInfo must have a valid fFormat.
     GrBackendTexture(int width,
                      int height,
@@ -209,7 +192,12 @@
     bool isValid() const { return fIsValid; }
 
 #if GR_TEST_UTILS
-    GrPixelConfig testingOnly_getPixelConfig() const;
+    // We can remove the pixelConfig getter and setter once we remove the GrPixelConfig from the
+    // GrBackendTexture and plumb the GrPixelconfig manually throughout our code (or remove all use
+    // of GrPixelConfig in general).
+    GrPixelConfig pixelConfig() const { return fConfig; }
+    void setPixelConfig(GrPixelConfig config) { fConfig = config; }
+
     static bool TestingOnly_Equals(const GrBackendTexture& , const GrBackendTexture&);
 #endif
 
@@ -218,6 +206,7 @@
     friend class SkImage;
     friend class SkImage_Gpu;
     friend class SkSurface;
+    friend class GrAHardwareBufferImageGenerator;
     friend class GrBackendTextureImageGenerator;
     friend class GrProxyProvider;
     friend class GrGpu;
@@ -266,17 +255,6 @@
     // Creates an invalid backend texture.
     GrBackendRenderTarget() : fIsValid(false) {}
 
-#if GR_TEST_UTILS
-    // GrGLTextureInfo::fFormat is ignored
-    // Deprecated: Should use version that does not take a GrPixelConfig instead
-    GrBackendRenderTarget(int width,
-                          int height,
-                          int sampleCnt,
-                          int stencilBits,
-                          GrPixelConfig config,
-                          const GrGLFramebufferInfo& glInfo);
-#endif
-
     // The GrGLTextureInfo must have a valid fFormat.
     GrBackendRenderTarget(int width,
                           int height,
@@ -348,7 +326,12 @@
 
 
 #if GR_TEST_UTILS
-    GrPixelConfig testingOnly_getPixelConfig() const;
+    // We can remove the pixelConfig getter and setter once we remove the pixel config from the
+    // GrBackendRenderTarget and plumb the pixel config manually throughout our code (or remove all
+    // use of GrPixelConfig in general).
+    GrPixelConfig pixelConfig() const { return fConfig; }
+    void setPixelConfig(GrPixelConfig config) { fConfig = config; }
+
     static bool TestingOnly_Equals(const GrBackendRenderTarget&, const GrBackendRenderTarget&);
 #endif
 
diff --git a/src/gpu/GrAHardwareBufferImageGenerator.cpp b/src/gpu/GrAHardwareBufferImageGenerator.cpp
index e3ae782..40be392 100644
--- a/src/gpu/GrAHardwareBufferImageGenerator.cpp
+++ b/src/gpu/GrAHardwareBufferImageGenerator.cpp
@@ -213,12 +213,14 @@
         return nullptr;
     }
 
-    GrBackendTexture backendTex(getInfo().width(), getInfo().height(), pixelConfig, textureInfo);
+    GrBackendTexture backendTex(getInfo().width(), getInfo().height(), GrMipMapped::kNo,
+                                textureInfo);
     if (backendTex.width() <= 0 || backendTex.height() <= 0) {
         glDeleteTextures(1, &texID);
         eglDestroyImageKHR(display, image);
         return nullptr;
     }
+    backendTex.fConfig = pixelConfig;
     sk_sp<GrTexture> tex = context->contextPriv().resourceProvider()->wrapBackendTexture(
                                                         backendTex, kAdopt_GrWrapOwnership);
     if (!tex) {
diff --git a/src/gpu/GrBackendSurface.cpp b/src/gpu/GrBackendSurface.cpp
index 9977555..7e10cb2 100644
--- a/src/gpu/GrBackendSurface.cpp
+++ b/src/gpu/GrBackendSurface.cpp
@@ -96,7 +96,7 @@
         : fIsValid(true)
         , fWidth(width)
         , fHeight(height)
-        , fConfig(GrVkFormatToPixelConfig(vkInfo.fFormat))
+        , fConfig(kUnknown_GrPixelConfig)
         , fMipMapped(GrMipMapped(vkInfo.fLevelCount > 1))
         , fBackend(kVulkan_GrBackend)
         , fVkInfo(vkInfo, layout.release()) {
@@ -117,28 +117,6 @@
         , fMtlInfo(mtlInfo) {}
 #endif
 
-#if GR_TEST_UTILS
-
-GrBackendTexture::GrBackendTexture(int width,
-                                   int height,
-                                   GrPixelConfig config,
-                                   const GrGLTextureInfo& glInfo)
-        : GrBackendTexture(width, height, config, GrMipMapped::kNo, glInfo) {}
-
-GrBackendTexture::GrBackendTexture(int width,
-                                   int height,
-                                   GrPixelConfig config,
-                                   GrMipMapped mipMapped,
-                                   const GrGLTextureInfo& glInfo)
-        : fIsValid(true)
-        , fWidth(width)
-        , fHeight(height)
-        , fConfig(config)
-        , fMipMapped(mipMapped)
-        , fBackend(kOpenGL_GrBackend)
-        , fGLInfo(glInfo) {}
-#endif
-
 GrBackendTexture::GrBackendTexture(int width,
                                    int height,
                                    GrMipMapped mipMapped,
@@ -146,7 +124,7 @@
         : fIsValid(true)
         , fWidth(width)
         , fHeight(height)
-        , fConfig(GrGLSizedFormatToPixelConfig(glInfo.fFormat))
+        , fConfig(kUnknown_GrPixelConfig)
         , fMipMapped(mipMapped)
         , fBackend(kOpenGL_GrBackend)
         , fGLInfo(glInfo) {}
@@ -334,7 +312,7 @@
         , fHeight(height)
         , fSampleCnt(SkTMax(1, sampleCnt))
         , fStencilBits(0)  // We always create stencil buffers internally for vulkan
-        , fConfig(GrVkFormatToPixelConfig(vkInfo.fFormat))
+        , fConfig(kUnknown_GrPixelConfig)
         , fBackend(kVulkan_GrBackend)
         , fVkInfo(vkInfo, layout.release()) {}
 #endif
@@ -354,24 +332,6 @@
         , fMtlInfo(mtlInfo) {}
 #endif
 
-#if GR_TEST_UTILS
-
-GrBackendRenderTarget::GrBackendRenderTarget(int width,
-                                             int height,
-                                             int sampleCnt,
-                                             int stencilBits,
-                                             GrPixelConfig config,
-                                             const GrGLFramebufferInfo& glInfo)
-        : fIsValid(true)
-        , fWidth(width)
-        , fHeight(height)
-        , fSampleCnt(SkTMax(1, sampleCnt))
-        , fStencilBits(stencilBits)
-        , fConfig(config)
-        , fBackend(kOpenGL_GrBackend)
-        , fGLInfo(glInfo) {}
-#endif
-
 GrBackendRenderTarget::GrBackendRenderTarget(int width,
                                              int height,
                                              int sampleCnt,
@@ -382,7 +342,7 @@
         , fHeight(height)
         , fSampleCnt(SkTMax(1, sampleCnt))
         , fStencilBits(stencilBits)
-        , fConfig(GrGLSizedFormatToPixelConfig(glInfo.fFormat))
+        , fConfig(kUnknown_GrPixelConfig)
         , fBackend(kOpenGL_GrBackend)
         , fGLInfo(glInfo) {}
 
diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp
index d5c3cc3..58aad4d 100644
--- a/src/gpu/gl/GrGLGpu.cpp
+++ b/src/gpu/gl/GrGLGpu.cpp
@@ -3975,7 +3975,11 @@
     // unbind the texture from the texture unit to avoid asserts
     GL_CALL(BindTexture(info.fTarget, 0));
 
-    return GrBackendTexture(w, h, mipMapped, info);
+    GrBackendTexture beTex = GrBackendTexture(w, h, mipMapped, info);
+    // Lots of tests don't go through Skia's public interface which will set the config so for
+    // testing we make sure we set a config here.
+    beTex.setPixelConfig(config);
+    return beTex;
 }
 
 bool GrGLGpu::isTestingOnlyBackendTexture(const GrBackendTexture& tex) const {
@@ -4069,7 +4073,11 @@
         return {};
     }
     auto stencilBits = SkToInt(this->glCaps().stencilFormats()[sFormatIdx].fStencilBits);
-    return {w, h, 1, stencilBits, config, info};
+    GrBackendRenderTarget beRT = GrBackendRenderTarget(w, h, 1, stencilBits, info);
+    // Lots of tests don't go through Skia's public interface which will set the config so for
+    // testing we make sure we set a config here.
+    beRT.setPixelConfig(config);
+    return beRT;
 }
 
 void GrGLGpu::deleteTestingOnlyBackendRenderTarget(const GrBackendRenderTarget& backendRT) {
diff --git a/src/gpu/gl/GrGLUtil.cpp b/src/gpu/gl/GrGLUtil.cpp
index e785c1e..3732b48 100644
--- a/src/gpu/gl/GrGLUtil.cpp
+++ b/src/gpu/gl/GrGLUtil.cpp
@@ -532,40 +532,3 @@
     return gTable[(int)test];
 }
 
-GrPixelConfig GrGLSizedFormatToPixelConfig(GrGLenum sizedFormat) {
-    switch (sizedFormat) {
-        case GR_GL_R8:
-            return kAlpha_8_as_Red_GrPixelConfig;
-        case GR_GL_ALPHA8:
-            return kAlpha_8_as_Alpha_GrPixelConfig;
-        case GR_GL_RGBA8:
-            return kRGBA_8888_GrPixelConfig;
-        case GR_GL_RGB8:
-            return kRGB_888_GrPixelConfig;
-        case GR_GL_BGRA8:
-            return kBGRA_8888_GrPixelConfig;
-        case GR_GL_SRGB8_ALPHA8:
-            return kSRGBA_8888_GrPixelConfig;
-        case GR_GL_RGB565:
-            return kRGB_565_GrPixelConfig;
-        case GR_GL_RGB5:
-            return kRGB_565_GrPixelConfig;
-        case GR_GL_RGBA4:
-            return kRGBA_4444_GrPixelConfig;
-        case GR_GL_RGB10_A2:
-            return kRGBA_1010102_GrPixelConfig;
-        case GR_GL_LUMINANCE8:
-            return kGray_8_GrPixelConfig;
-        case GR_GL_RGBA32F:
-            return kRGBA_float_GrPixelConfig;
-        case GR_GL_RG32F:
-            return kRG_float_GrPixelConfig;
-        case GR_GL_R16F:
-            return kAlpha_half_as_Red_GrPixelConfig;
-        case GR_GL_RGBA16F:
-            return kRGBA_half_GrPixelConfig;
-        default:
-            return kUnknown_GrPixelConfig;
-    }
-}
-
diff --git a/src/gpu/gl/GrGLUtil.h b/src/gpu/gl/GrGLUtil.h
index 039c1ee..909c8fd 100644
--- a/src/gpu/gl/GrGLUtil.h
+++ b/src/gpu/gl/GrGLUtil.h
@@ -256,6 +256,4 @@
 
 GrGLenum GrToGLStencilFunc(GrStencilTest test);
 
-GrPixelConfig GrGLSizedFormatToPixelConfig(GrGLenum sizedFormat);
-
 #endif
diff --git a/src/gpu/vk/GrVkGpu.cpp b/src/gpu/vk/GrVkGpu.cpp
index 881e28d..a98b3b3 100644
--- a/src/gpu/vk/GrVkGpu.cpp
+++ b/src/gpu/vk/GrVkGpu.cpp
@@ -1359,7 +1359,11 @@
                                         &info)) {
         return {};
     }
-    return GrBackendTexture(w, h, info);
+    GrBackendTexture beTex = GrBackendTexture(w, h, info);
+    // Lots of tests don't go through Skia's public interface which will set the config so for
+    // testing we make sure we set a config here.
+    beTex.setPixelConfig(config);
+    return beTex;
 }
 
 bool GrVkGpu::isTestingOnlyBackendTexture(const GrBackendTexture& tex) const {
@@ -1409,7 +1413,11 @@
                                         &info)) {
         return {};
     }
-    return {w, h, 1, 0, info};
+    GrBackendRenderTarget beRT = GrBackendRenderTarget(w, h, 1, 0, info);
+    // Lots of tests don't go through Skia's public interface which will set the config so for
+    // testing we make sure we set a config here.
+    beRT.setPixelConfig(config);
+    return beRT;
 }
 
 void GrVkGpu::deleteTestingOnlyBackendRenderTarget(const GrBackendRenderTarget& rt) {
diff --git a/src/gpu/vk/GrVkUtil.cpp b/src/gpu/vk/GrVkUtil.cpp
index 2b0bba7..b0aa3d4 100644
--- a/src/gpu/vk/GrVkUtil.cpp
+++ b/src/gpu/vk/GrVkUtil.cpp
@@ -75,40 +75,6 @@
     return false;
 }
 
-GrPixelConfig GrVkFormatToPixelConfig(VkFormat format) {
-    switch (format) {
-        case VK_FORMAT_R8G8B8A8_UNORM:
-            return kRGBA_8888_GrPixelConfig;
-        case VK_FORMAT_B8G8R8A8_UNORM:
-            return kBGRA_8888_GrPixelConfig;
-        case VK_FORMAT_R8G8B8A8_SRGB:
-            return kSRGBA_8888_GrPixelConfig;
-        case VK_FORMAT_B8G8R8A8_SRGB:
-            return kSBGRA_8888_GrPixelConfig;
-        case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
-            return kRGBA_1010102_GrPixelConfig;
-        case VK_FORMAT_R5G6B5_UNORM_PACK16:
-            return kRGB_565_GrPixelConfig;
-            break;
-        case VK_FORMAT_B4G4R4A4_UNORM_PACK16:
-            // R4G4B4A4 is not required to be supported so we actually
-            // store RGBA_4444 data as B4G4R4A4.
-            return kRGBA_4444_GrPixelConfig;
-        case VK_FORMAT_R8_UNORM:
-            return kAlpha_8_GrPixelConfig;
-        case VK_FORMAT_R32G32B32A32_SFLOAT:
-            return kRGBA_float_GrPixelConfig;
-        case VK_FORMAT_R32G32_SFLOAT:
-            return kRG_float_GrPixelConfig;
-        case VK_FORMAT_R16G16B16A16_SFLOAT:
-            return kRGBA_half_GrPixelConfig;
-        case VK_FORMAT_R16_SFLOAT:
-            return kAlpha_half_GrPixelConfig;
-        default:
-            return kUnknown_GrPixelConfig;
-    }
-}
-
 bool GrVkFormatPixelConfigPairIsValid(VkFormat format, GrPixelConfig config) {
     switch (format) {
         case VK_FORMAT_R8G8B8A8_UNORM:
diff --git a/src/gpu/vk/GrVkUtil.h b/src/gpu/vk/GrVkUtil.h
index 71cc5d4..7c56c69 100644
--- a/src/gpu/vk/GrVkUtil.h
+++ b/src/gpu/vk/GrVkUtil.h
@@ -33,11 +33,6 @@
  */
 bool GrPixelConfigToVkFormat(GrPixelConfig config, VkFormat* format);
 
-/**
-* Returns the GrPixelConfig for the given vulkan texture format
-*/
-GrPixelConfig GrVkFormatToPixelConfig(VkFormat format);
-
 bool GrVkFormatIsSupported(VkFormat);
 
 /**
diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp
index 1a89ba4..7b24858 100644
--- a/src/image/SkImage_Gpu.cpp
+++ b/src/image/SkImage_Gpu.cpp
@@ -370,6 +370,10 @@
     bool nv12 = (yuvaIndices[1].fIndex == yuvaIndices[2].fIndex);
     auto ct = nv12 ? kRGBA_8888_SkColorType : kAlpha_8_SkColorType;
 
+    // We need to make a copy of the input backend textures because we need to preserve the result
+    // of validate_backend_texture.
+    GrBackendTexture yuvaTexturesCopy[4];
+
     for (int i = 0; i < 4; ++i) {
         // Validate that the yuvaIndices refer to valid backend textures.
         SkYUVAIndex& yuvaIndex = yuvaIndices[i];
@@ -382,12 +386,14 @@
             // at most 4 images sources being passed in, could not have a index more than 3.
             return nullptr;
         }
-        auto texture = yuvaTextures[yuvaIndex.fIndex];
-        // TODO: Instead of using assumption about whether it is NV12 format to guess colorType,
-        // actually use channel information here.
-        if (!validate_backend_texture(ctx, texture, &texture.fConfig, ct, kPremul_SkAlphaType,
-                                      nullptr)) {
-            return nullptr;
+        if (!yuvaTexturesCopy[yuvaIndex.fIndex].isValid()) {
+            yuvaTexturesCopy[yuvaIndex.fIndex] = yuvaTextures[yuvaIndex.fIndex];
+            // TODO: Instead of using assumption about whether it is NV12 format to guess colorType,
+            // actually use channel information here.
+            if (!validate_backend_texture(ctx, yuvaTexturesCopy[i], &yuvaTexturesCopy[i].fConfig,
+                                          ct, kPremul_SkAlphaType, nullptr)) {
+                return nullptr;
+            }
         }
 
         // TODO: Check that for each plane, the channel actually exist in the image source we are
@@ -406,8 +412,9 @@
         }
 
         if (!tempTextureProxies[textureIndex]) {
+            SkASSERT(yuvaTexturesCopy[textureIndex].isValid());
             tempTextureProxies[textureIndex] =
-                    proxyProvider->wrapBackendTexture(yuvaTextures[textureIndex], origin);
+                    proxyProvider->wrapBackendTexture(yuvaTexturesCopy[textureIndex], origin);
         }
     }
     sk_sp<GrTextureProxy> yProxy = tempTextureProxies[yuvaIndices[0].fIndex];
diff --git a/tests/EGLImageTest.cpp b/tests/EGLImageTest.cpp
index 94cbaf9..51da718 100644
--- a/tests/EGLImageTest.cpp
+++ b/tests/EGLImageTest.cpp
@@ -153,7 +153,8 @@
     }
 
     // Wrap this texture ID in a GrTexture
-    GrBackendTexture backendTex(kSize, kSize, kRGBA_8888_GrPixelConfig, externalTexture);
+    GrBackendTexture backendTex(kSize, kSize, GrMipMapped::kNo, externalTexture);
+    backendTex.setPixelConfig(kRGBA_8888_GrPixelConfig);
 
     // TODO: If I make this TopLeft origin to match resolve_origin calls for kDefault, this test
     // fails on the Nexus5. Why?
diff --git a/tests/ImageTest.cpp b/tests/ImageTest.cpp
index 2edf8b5..14df879 100644
--- a/tests/ImageTest.cpp
+++ b/tests/ImageTest.cpp
@@ -854,6 +854,7 @@
 
     GrSurfaceOrigin readBackOrigin;
     GrBackendTexture readBackBackendTex = refImg->getBackendTexture(false, &readBackOrigin);
+    readBackBackendTex.setPixelConfig(kRGBA_8888_GrPixelConfig);
     if (!GrBackendTexture::TestingOnly_Equals(readBackBackendTex, backendTex)) {
         ERRORF(reporter, "backend mismatch\n");
     }
diff --git a/tests/ProxyTest.cpp b/tests/ProxyTest.cpp
index a1f8b8b..406d1d1 100644
--- a/tests/ProxyTest.cpp
+++ b/tests/ProxyTest.cpp
@@ -214,7 +214,7 @@
                 sk_sp<GrSurfaceProxy> sProxy(
                         proxyProvider->wrapBackendRenderTarget(backendRT, origin));
                 check_surface(reporter, sProxy.get(), origin, kWidthHeight, kWidthHeight,
-                              backendRT.testingOnly_getPixelConfig(), SkBudgeted::kNo);
+                              backendRT.pixelConfig(), SkBudgeted::kNo);
                 static constexpr int kExpectedNumSamples = 1;
                 check_rendertarget(reporter, caps, resourceProvider, sProxy->asRenderTargetProxy(),
                                    kExpectedNumSamples, SkBackingFit::kExact,
@@ -238,12 +238,13 @@
                     fboInfo.fFBOID = 0;
                     static constexpr int kStencilBits = 8;
                     GrBackendRenderTarget backendRT(kWidthHeight, kWidthHeight, numSamples,
-                                                    kStencilBits, config, fboInfo);
+                                                    kStencilBits, fboInfo);
+                    backendRT.setPixelConfig(config);
                     sk_sp<GrSurfaceProxy> sProxy(
                             proxyProvider->wrapBackendRenderTarget(backendRT, origin));
                     check_surface(reporter, sProxy.get(), origin,
                                   kWidthHeight, kWidthHeight,
-                                  backendRT.testingOnly_getPixelConfig(), SkBudgeted::kNo);
+                                  backendRT.pixelConfig(), SkBudgeted::kNo);
                     check_rendertarget(reporter, caps, resourceProvider,
                                        sProxy->asRenderTargetProxy(),
                                        supportedNumSamples, SkBackingFit::kExact, 0);
@@ -264,7 +265,7 @@
 
                     check_surface(reporter, sProxy.get(), origin,
                                   kWidthHeight, kWidthHeight,
-                                  backendTex.testingOnly_getPixelConfig(), SkBudgeted::kNo);
+                                  backendTex.pixelConfig(), SkBudgeted::kNo);
                     check_rendertarget(reporter, caps, resourceProvider,
                                        sProxy->asRenderTargetProxy(),
                                        supportedNumSamples, SkBackingFit::kExact,
@@ -289,7 +290,7 @@
 
                     check_surface(reporter, sProxy.get(), origin,
                                   kWidthHeight, kWidthHeight,
-                                  backendTex.testingOnly_getPixelConfig(), SkBudgeted::kNo);
+                                  backendTex.pixelConfig(), SkBudgeted::kNo);
                     check_rendertarget(reporter, caps, resourceProvider,
                                        sProxy->asRenderTargetProxy(),
                                        supportedNumSamples, SkBackingFit::kExact,
@@ -315,7 +316,7 @@
 
                     check_surface(reporter, sProxy.get(), origin,
                                   kWidthHeight, kWidthHeight,
-                                  backendTex.testingOnly_getPixelConfig(), SkBudgeted::kNo);
+                                  backendTex.pixelConfig(), SkBudgeted::kNo);
                     check_texture(reporter, resourceProvider, sProxy->asTextureProxy(),
                                   SkBackingFit::kExact);
 
diff --git a/tests/RectangleTextureTest.cpp b/tests/RectangleTextureTest.cpp
index e473ed8..b3846a1 100644
--- a/tests/RectangleTextureTest.cpp
+++ b/tests/RectangleTextureTest.cpp
@@ -119,7 +119,8 @@
         rectangleInfo.fID = rectTexID;
         rectangleInfo.fTarget = GR_GL_TEXTURE_RECTANGLE;
 
-        GrBackendTexture rectangleTex(kWidth, kHeight, kRGBA_8888_GrPixelConfig, rectangleInfo);
+        GrBackendTexture rectangleTex(kWidth, kHeight, GrMipMapped::kNo, rectangleInfo);
+        rectangleTex.setPixelConfig(kRGBA_8888_GrPixelConfig);
 
         GrColor refPixels[kWidth * kHeight];
         for (int y = 0; y < kHeight; ++y) {
diff --git a/tests/TextureProxyTest.cpp b/tests/TextureProxyTest.cpp
index 0225f14..15e3ef6 100644
--- a/tests/TextureProxyTest.cpp
+++ b/tests/TextureProxyTest.cpp
@@ -106,6 +106,7 @@
     }
 
     GrBackendTexture backendTex = (*backingSurface)->getBackendTexture();
+    backendTex.setPixelConfig(desc.fConfig);
 
     return proxyProvider->wrapBackendTexture(backendTex, kBottomLeft_GrSurfaceOrigin);
 }
diff --git a/tests/VkWrapTests.cpp b/tests/VkWrapTests.cpp
index 2bfcd4a..312cc01 100644
--- a/tests/VkWrapTests.cpp
+++ b/tests/VkWrapTests.cpp
@@ -47,6 +47,7 @@
         GrVkImageInfo backendCopy = imageInfo;
         backendCopy.fImage = VK_NULL_HANDLE;
         GrBackendTexture backendTex = GrBackendTexture(kW, kH, backendCopy);
+        backendTex.setPixelConfig(kPixelConfig);
         tex = gpu->wrapBackendTexture(backendTex, kBorrow_GrWrapOwnership);
         REPORTER_ASSERT(reporter, !tex);
         tex = gpu->wrapBackendTexture(backendTex, kAdopt_GrWrapOwnership);
@@ -58,6 +59,7 @@
         GrVkImageInfo backendCopy = imageInfo;
         backendCopy.fAlloc = GrVkAlloc();
         GrBackendTexture backendTex = GrBackendTexture(kW, kH, backendCopy);
+        backendTex.setPixelConfig(kPixelConfig);
         tex = gpu->wrapBackendTexture(backendTex, kBorrow_GrWrapOwnership);
         REPORTER_ASSERT(reporter, !tex);
         tex = gpu->wrapBackendTexture(backendTex, kAdopt_GrWrapOwnership);
@@ -68,6 +70,7 @@
     {
         GrVkImageInfo backendCopy = imageInfo;
         GrBackendTexture backendTex = GrBackendTexture(kW, kH, backendCopy);
+        backendTex.setPixelConfig(kPixelConfig);
         tex = gpu->wrapBackendTexture(backendTex, kAdopt_GrWrapOwnership);
 
         REPORTER_ASSERT(reporter, tex);
@@ -80,10 +83,12 @@
     GrBackendTexture origBackendTex = gpu->createTestingOnlyBackendTexture(nullptr, kW, kH,
                                                                            kPixelConfig, true,
                                                                            GrMipMapped::kNo);
+
     GrVkImageInfo imageInfo;
     SkAssertResult(origBackendTex.getVkImageInfo(&imageInfo));
 
     GrBackendRenderTarget origBackendRT(kW, kH, 1, 0, imageInfo);
+    origBackendRT.setPixelConfig(kPixelConfig);
 
     sk_sp<GrRenderTarget> rt = gpu->wrapBackendRenderTarget(origBackendRT);
     REPORTER_ASSERT(reporter, rt);
@@ -93,6 +98,7 @@
         GrVkImageInfo backendCopy = imageInfo;
         backendCopy.fImage = VK_NULL_HANDLE;
         GrBackendRenderTarget backendRT(kW, kH, 1, 0, backendCopy);
+        backendRT.setPixelConfig(kPixelConfig);
         rt = gpu->wrapBackendRenderTarget(backendRT);
         REPORTER_ASSERT(reporter, !rt);
     }
@@ -103,6 +109,7 @@
         backendCopy.fAlloc = GrVkAlloc();
         // can wrap null alloc
         GrBackendRenderTarget backendRT(kW, kH, 1, 0, backendCopy);
+        backendRT.setPixelConfig(kPixelConfig);
         rt = gpu->wrapBackendRenderTarget(backendRT);
         REPORTER_ASSERT(reporter, rt);
     }
@@ -130,6 +137,7 @@
         GrVkImageInfo backendCopy = imageInfo;
         backendCopy.fImage = VK_NULL_HANDLE;
         GrBackendTexture backendTex = GrBackendTexture(kW, kH, backendCopy);
+        backendTex.setPixelConfig(kPixelConfig);
         tex = gpu->wrapRenderableBackendTexture(backendTex, 1, kBorrow_GrWrapOwnership);
         REPORTER_ASSERT(reporter, !tex);
         tex = gpu->wrapRenderableBackendTexture(backendTex, 1, kAdopt_GrWrapOwnership);
@@ -141,6 +149,7 @@
         GrVkImageInfo backendCopy = imageInfo;
         backendCopy.fAlloc = GrVkAlloc();
         GrBackendTexture backendTex = GrBackendTexture(kW, kH, backendCopy);
+        backendTex.setPixelConfig(kPixelConfig);
         tex = gpu->wrapRenderableBackendTexture(backendTex, 1, kBorrow_GrWrapOwnership);
         REPORTER_ASSERT(reporter, !tex);
         tex = gpu->wrapRenderableBackendTexture(backendTex, 1, kAdopt_GrWrapOwnership);
@@ -151,6 +160,7 @@
     {
         GrVkImageInfo backendCopy = imageInfo;
         GrBackendTexture backendTex = GrBackendTexture(kW, kH, backendCopy);
+        backendTex.setPixelConfig(kPixelConfig);
         tex = gpu->wrapRenderableBackendTexture(backendTex, 1, kAdopt_GrWrapOwnership);
         REPORTER_ASSERT(reporter, tex);
     }
diff --git a/tools/gpu/GrTest.cpp b/tools/gpu/GrTest.cpp
index 7ec66bb..890d26a 100644
--- a/tools/gpu/GrTest.cpp
+++ b/tools/gpu/GrTest.cpp
@@ -294,17 +294,6 @@
 
 //////////////////////////////////////////////////////////////////////////////
 
-GrPixelConfig GrBackendTexture::testingOnly_getPixelConfig() const {
-    return fConfig;
-}
-
-GrPixelConfig GrBackendRenderTarget::testingOnly_getPixelConfig() const {
-    return fConfig;
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-
 void GrCoverageCountingPathRenderer::testingOnly_drawPathDirectly(const DrawPathArgs& args) {
     // Call onDrawPath() directly: We want to test paths that might fail onCanDrawPath() simply for
     // performance reasons, and GrPathRenderer::drawPath() assert that this call returns true.