Add mipmap generation for Metal

Bug: skia:8243
Change-Id: Id71073dffe6e2b42d099f0c92059b53c48b46c4f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/206717
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
diff --git a/tests/GrMipMappedTest.cpp b/tests/GrMipMappedTest.cpp
index d26aec1..7e26a44 100644
--- a/tests/GrMipMappedTest.cpp
+++ b/tests/GrMipMappedTest.cpp
@@ -204,6 +204,22 @@
                     ERRORF(reporter, "Failed to get GrVkImageInfo");
                 }
 #endif
+#ifdef SK_METAL
+            } else if (GrBackendApi::kMetal == genBackendTex.backend()) {
+                GrMtlTextureInfo genImageInfo;
+                GrMtlTextureInfo origImageInfo;
+                if (genBackendTex.getMtlTextureInfo(&genImageInfo) &&
+                    backendTex.getMtlTextureInfo(&origImageInfo)) {
+                    if (willUseMips && GrMipMapped::kNo == mipMapped) {
+                        // We did a copy so the texture IDs should be different
+                        REPORTER_ASSERT(reporter, origImageInfo.fTexture != genImageInfo.fTexture);
+                    } else {
+                        REPORTER_ASSERT(reporter, origImageInfo.fTexture == genImageInfo.fTexture);
+                    }
+                } else {
+                    ERRORF(reporter, "Failed to get GrMtlTextureInfo");
+                }
+#endif
             } else {
                 REPORTER_ASSERT(reporter, false);
             }