diff --git a/src/gpu/GrDrawingManager.cpp b/src/gpu/GrDrawingManager.cpp
index 2b8c262..2156c3c 100644
--- a/src/gpu/GrDrawingManager.cpp
+++ b/src/gpu/GrDrawingManager.cpp
@@ -382,12 +382,16 @@
     if (auto* rt = surface->asRenderTarget()) {
         gpu->resolveRenderTarget(rt);
     }
+#if 0
+    // This is temporarily is disabled. See comment in SkImage_Gpu.cpp,
+    // new_wrapped_texture_common().
     if (auto* tex = surface->asTexture()) {
         if (tex->texturePriv().mipMapped() == GrMipMapped::kYes &&
             tex->texturePriv().mipMapsAreDirty()) {
             gpu->regenerateMipMapLevels(tex);
         }
     }
+#endif
     return result;
 }
 
diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp
index b13abe1..670b41f 100644
--- a/src/image/SkImage_Gpu.cpp
+++ b/src/image/SkImage_Gpu.cpp
@@ -316,7 +316,17 @@
     if (!proxy) {
         return nullptr;
     }
-
+#if 1
+    // Temporary fix for crbug.com/850617 that can be cleanly merged back to older branches. Assume
+    // any MIP levels on the incoming texture are dirty. The proper fix is to make them clean on
+    // export. See #if 0'ed out code in GrDrawingManager::prepareSurfaceForExternalIO().
+    SkASSERT(proxy->priv().isInstantiated());
+    if (auto* tex = proxy->priv().peekTexture()) {
+        if (tex->texturePriv().mipMapped() == GrMipMapped::kYes) {
+            proxy->priv().peekTexture()->texturePriv().markMipMapsDirty();
+        }
+    }
+#endif
     return sk_make_sp<SkImage_Gpu>(sk_ref_sp(ctx), kNeedNewImageUniqueID, at, std::move(proxy),
                                    std::move(colorSpace), SkBudgeted::kNo);
 }
diff --git a/tests/GrMipMappedTest.cpp b/tests/GrMipMappedTest.cpp
index 5c30363..e7c9863 100644
--- a/tests/GrMipMappedTest.cpp
+++ b/tests/GrMipMappedTest.cpp
@@ -87,7 +87,13 @@
                 if (isRT) {
                     REPORTER_ASSERT(reporter, texture->texturePriv().mipMapsAreDirty());
                 } else {
+#if 1
+                    // This is temporarily checks that the new image DOES have dirty MIP levels. See
+                    // comment in SkImage_Gpu.cpp, new_wrapped_texture_common().
+                    REPORTER_ASSERT(reporter, texture->texturePriv().mipMapsAreDirty());
+#else
                     REPORTER_ASSERT(reporter, !texture->texturePriv().mipMapsAreDirty());
+#endif
                 }
             } else {
                 REPORTER_ASSERT(reporter, GrMipMapped::kNo == texture->texturePriv().mipMapped());
