Update SkSurface_Gpu::Valid to take a backend format

This is pulled out of:

https://skia-review.googlesource.com/c/skia/+/222781 (Add bridge between GrContext::createBackendTexture and SkSurface::MakeFromBackendTexture)

Change-Id: I0c26bba2592a6e6fe759b49de83f994b05d862a2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/223698
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/gl/GrGLUtil.cpp b/src/gpu/gl/GrGLUtil.cpp
index b1f989c..3d5d171 100644
--- a/src/gpu/gl/GrGLUtil.cpp
+++ b/src/gpu/gl/GrGLUtil.cpp
@@ -646,3 +646,33 @@
     SK_ABORT("Invalid GL format");
     return 0;
 }
+
+bool GrGLFormatIsSupported(GrGLenum format) {
+    switch (format) {
+        case GR_GL_LUMINANCE8:
+        case GR_GL_ALPHA8:
+        case GR_GL_R8:
+        case GR_GL_RGB565:
+        case GR_GL_RGBA4:
+        case GR_GL_RG8:
+        case GR_GL_R16F:
+        case GR_GL_R16:
+        case GR_GL_RGB8:
+        case GR_GL_RGBA8:
+        case GR_GL_SRGB8_ALPHA8:
+        case GR_GL_BGRA8:
+        case GR_GL_RGB10_A2:
+        case GR_GL_RG16:
+        case GR_GL_RGBA16F:
+        case GR_GL_RG32F:
+        case GR_GL_RGBA32F:
+        case GR_GL_COMPRESSED_RGB8_ETC2:
+        case GR_GL_COMPRESSED_ETC1_RGB8:
+        // Experimental (for Y416 and mutant P016/P010)
+        case GR_GL_RG16F:
+        case GR_GL_RGBA16:
+            return true;
+        default:
+            return false;
+    }
+}