diff --git a/include/gpu/GrBackendSurface.h b/include/gpu/GrBackendSurface.h
index 1e361a8..fa5141a 100644
--- a/include/gpu/GrBackendSurface.h
+++ b/include/gpu/GrBackendSurface.h
@@ -428,12 +428,6 @@
 #endif
 
 #ifdef SK_VULKAN
-    /** Deprecated, use version that does not take stencil bits. */
-    GrBackendRenderTarget(int width,
-                          int height,
-                          int sampleCnt,
-                          int stencilBits,
-                          const GrVkImageInfo& vkInfo);
     GrBackendRenderTarget(int width, int height, int sampleCnt, const GrVkImageInfo& vkInfo);
 #endif
 
diff --git a/src/gpu/GrBackendSurface.cpp b/src/gpu/GrBackendSurface.cpp
index c83030e..28bcdd8 100644
--- a/src/gpu/GrBackendSurface.cpp
+++ b/src/gpu/GrBackendSurface.cpp
@@ -855,21 +855,6 @@
 GrBackendRenderTarget::GrBackendRenderTarget(int width,
                                              int height,
                                              int sampleCnt,
-                                             int stencilBits,
-                                             const GrVkImageInfo& vkInfo)
-        : GrBackendRenderTarget(width, height, sampleCnt, vkInfo) {
-    // TODO: Do we want to set fFramebufferOnly here based on vkInfo usage flags? Some thing like
-    // this:
-    //  fFramebufferOnly =
-    //      ((VK_IMAGE_USAGE_TRANSFER_SRC_BIT|VK_IMAGE_USAGE_SAMPLED_BIT) & vkInfo.fImageUsageFlags)
-    //      ? false : true;
-    // This is a deprecated constructor that takes a bogus stencil bits.
-    SkASSERT(0 == stencilBits);
-}
-
-GrBackendRenderTarget::GrBackendRenderTarget(int width,
-                                             int height,
-                                             int sampleCnt,
                                              const GrVkImageInfo& vkInfo)
         : GrBackendRenderTarget(width, height, sampleCnt, vkInfo,
                                 sk_sp<GrBackendSurfaceMutableStateImpl>(
diff --git a/src/gpu/vk/GrVkGpu.cpp b/src/gpu/vk/GrVkGpu.cpp
index 307210ca..642acad 100644
--- a/src/gpu/vk/GrVkGpu.cpp
+++ b/src/gpu/vk/GrVkGpu.cpp
@@ -2024,7 +2024,7 @@
       return {};
     }
 
-    return GrBackendRenderTarget(w, h, 1, 0, info);
+    return GrBackendRenderTarget(w, h, 1, info);
 }
 
 void GrVkGpu::deleteTestingOnlyBackendRenderTarget(const GrBackendRenderTarget& rt) {
diff --git a/tests/VkWrapTests.cpp b/tests/VkWrapTests.cpp
index 5ca3249..98353ef 100644
--- a/tests/VkWrapTests.cpp
+++ b/tests/VkWrapTests.cpp
@@ -95,7 +95,7 @@
     GrVkImageInfo imageInfo;
     SkAssertResult(origBackendTex.getVkImageInfo(&imageInfo));
 
-    GrBackendRenderTarget origBackendRT(kW, kH, 1, 0, imageInfo);
+    GrBackendRenderTarget origBackendRT(kW, kH, 1, imageInfo);
 
     sk_sp<GrRenderTarget> rt = gpu->wrapBackendRenderTarget(origBackendRT);
     REPORTER_ASSERT(reporter, rt);
@@ -104,7 +104,7 @@
     {
         GrVkImageInfo backendCopy = imageInfo;
         backendCopy.fImage = VK_NULL_HANDLE;
-        GrBackendRenderTarget backendRT(kW, kH, 1, 0, backendCopy);
+        GrBackendRenderTarget backendRT(kW, kH, 1, backendCopy);
         rt = gpu->wrapBackendRenderTarget(backendRT);
         REPORTER_ASSERT(reporter, !rt);
     }
@@ -114,7 +114,7 @@
         GrVkImageInfo backendCopy = imageInfo;
         backendCopy.fAlloc = GrVkAlloc();
         // can wrap null alloc
-        GrBackendRenderTarget backendRT(kW, kH, 1, 0, backendCopy);
+        GrBackendRenderTarget backendRT(kW, kH, 1, backendCopy);
         rt = gpu->wrapBackendRenderTarget(backendRT);
         REPORTER_ASSERT(reporter, rt);
     }
