Fix validity check in SkSurface::MakeFromBackendTextureAsRenderTarget

Swaped the order of validate_backend_texture() and
SkSurface_Gpu::Valid() so that the pixel config computed by
validate_backend_texture() get used by SkSurface_Gpu::Valid().
This makes the behavior of this method consistent with the behavior
of sister method MakeFromBackendTexture()

BUG=788439

Change-Id: I132ea8da23430ea99bbeabce79b08edb6b4cae03
Reviewed-on: https://skia-review.googlesource.com/141837
Commit-Queue: Justin Novosad <junov@chromium.org>
Reviewed-by: Justin Novosad <junov@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Auto-Submit: Justin Novosad <junov@chromium.org>
diff --git a/src/image/SkSurface_Gpu.cpp b/src/image/SkSurface_Gpu.cpp
index 2e55ffd..57894c2 100644
--- a/src/image/SkSurface_Gpu.cpp
+++ b/src/image/SkSurface_Gpu.cpp
@@ -536,10 +536,7 @@
     if (!context) {
         return nullptr;
     }
-    if (!tex.isValid() ||
-        !SkSurface_Gpu::Valid(context->contextPriv().caps(), tex.config(), colorSpace.get())) {
-        return nullptr;
-    }
+
     sampleCnt = SkTMax(1, sampleCnt);
     GrBackendTexture texCopy = tex;
     if (!validate_backend_texture(context, texCopy, &texCopy.fConfig,
@@ -547,6 +544,10 @@
         return nullptr;
     }
 
+    if (!SkSurface_Gpu::Valid(context->contextPriv().caps(), texCopy.config(), colorSpace.get())) {
+        return nullptr;
+    }
+
     sk_sp<GrRenderTargetContext> rtc(
         context->contextPriv().makeBackendTextureAsRenderTargetRenderTargetContext(
             texCopy,