GrRenderTargetContext->GrSurfaceDrawContext

Just the class/files. variable names and additional comments to follow.

Change-Id: Ic03d07fd5009eaf3d706c2536486a117328963fc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/342617
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
diff --git a/bench/BulkRectBench.cpp b/bench/BulkRectBench.cpp
index a5b10db..12d2fb0 100644
--- a/bench/BulkRectBench.cpp
+++ b/bench/BulkRectBench.cpp
@@ -12,7 +12,7 @@
 #include "include/gpu/GrDirectContext.h"
 #include "include/utils/SkRandom.h"
 
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/SkGr.h"
 
 // Benchmarks that exercise the bulk image and solid color quad APIs, under a variety of patterns:
@@ -49,7 +49,7 @@
 
     bool isSuitableFor(Backend backend) override {
         if (kDrawMode == DrawMode::kBatch && kImageMode == ImageMode::kNone) {
-            // Currently the bulk color quad API is only available on GrRenderTargetContext
+            // Currently the bulk color quad API is only available on GrSurfaceDrawContext
             return backend == kGPU_Backend;
         } else {
             return this->INHERITED::isSuitableFor(backend);
@@ -132,7 +132,7 @@
         auto context = canvas->recordingContext();
         SkASSERT(context);
 
-        GrRenderTargetContext::QuadSetEntry batch[kRectCount];
+        GrSurfaceDrawContext::QuadSetEntry batch[kRectCount];
         for (int i = 0; i < kRectCount; ++i) {
             batch[i].fRect = fRects[i];
             batch[i].fColor = fColors[i].premul();
@@ -144,7 +144,7 @@
         paint.setColor(SK_ColorWHITE);
         paint.setAntiAlias(true);
 
-        GrRenderTargetContext* rtc = canvas->internal_private_accessTopLayerRenderTargetContext();
+        GrSurfaceDrawContext* rtc = canvas->internal_private_accessTopLayerRenderTargetContext();
         SkMatrix view = canvas->getLocalToDeviceAs3x3();
         SkSimpleMatrixProvider matrixProvider(view);
         GrPaint grPaint;
diff --git a/bench/ClearBench.cpp b/bench/ClearBench.cpp
index 5b548c2..8638190 100644
--- a/bench/ClearBench.cpp
+++ b/bench/ClearBench.cpp
@@ -18,7 +18,7 @@
 #include "include/core/SkRect.h"
 #include "include/effects/SkGradientShader.h"
 
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 
 static sk_sp<SkShader> make_shader() {
     static const SkPoint kPts[] = {{0, 0}, {10, 10}};
@@ -62,9 +62,9 @@
         SkPaint interruptPaint;
         interruptPaint.setShader(make_shader());
 
-        GrRenderTargetContext* rtc = canvas->internal_private_accessTopLayerRenderTargetContext();
+        GrSurfaceDrawContext* rtc = canvas->internal_private_accessTopLayerRenderTargetContext();
         if (rtc) {
-            // Tell the GrRenderTargetContext to not reset its draw op list on a fullscreen clear.
+            // Tell the GrSurfaceDrawContext to not reset its draw op list on a fullscreen clear.
             // If we don't do this, fullscreen clear ops would be created and constantly discard the
             // previous iteration's op so execution would only invoke one actual clear on the GPU
             // (not what we want to measure).
diff --git a/bench/GlyphQuadFillBench.cpp b/bench/GlyphQuadFillBench.cpp
index b54dd5f..1a251b9 100644
--- a/bench/GlyphQuadFillBench.cpp
+++ b/bench/GlyphQuadFillBench.cpp
@@ -12,7 +12,7 @@
 #include "include/gpu/GrRecordingContext.h"
 #include "src/core/SkUtils.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/SkGr.h"
 #include "src/gpu/text/GrTextBlob.h"
 #include "src/utils/SkUTF.h"
diff --git a/bench/VertexColorSpaceBench.cpp b/bench/VertexColorSpaceBench.cpp
index 6904c94..6294ac4 100644
--- a/bench/VertexColorSpaceBench.cpp
+++ b/bench/VertexColorSpaceBench.cpp
@@ -15,7 +15,7 @@
 #include "src/gpu/GrGeometryProcessor.h"
 #include "src/gpu/GrMemoryPool.h"
 #include "src/gpu/GrProgramInfo.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/SkGr.h"
 #include "src/gpu/glsl/GrGLSLColorSpaceXformHelper.h"
 #include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
@@ -308,7 +308,7 @@
         const int kDrawsPerLoop = 32;
 
         for (int i = 0; i < loops; ++i) {
-            auto rtc = GrRenderTargetContext::Make(
+            auto rtc = GrSurfaceDrawContext::Make(
                     context, GrColorType::kRGBA_8888, p3, SkBackingFit::kApprox, {100, 100});
             SkASSERT(rtc);
 
diff --git a/gm/beziereffects.cpp b/gm/beziereffects.cpp
index aaebbb6..11ca05e 100644
--- a/gm/beziereffects.cpp
+++ b/gm/beziereffects.cpp
@@ -38,7 +38,7 @@
 #include "src/gpu/GrProcessorSet.h"
 #include "src/gpu/GrProgramInfo.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrUserStencilSettings.h"
 #include "src/gpu/effects/GrBezierEffect.h"
 #include "src/gpu/effects/GrPorterDuffXferProcessor.h"
@@ -226,7 +226,7 @@
         return SkISize::Make(kCellWidth, kNumConics*kCellHeight);
     }
 
-    void onDraw(GrRecordingContext* context, GrRenderTargetContext* renderTargetContext,
+    void onDraw(GrRecordingContext* context, GrSurfaceDrawContext* renderTargetContext,
                 SkCanvas* canvas) override {
 
         const SkScalar w = kCellWidth, h = kCellHeight;
@@ -426,7 +426,7 @@
         return SkISize::Make(kCellWidth, kNumQuads*kCellHeight);
     }
 
-    void onDraw(GrRecordingContext* context, GrRenderTargetContext* renderTargetContext,
+    void onDraw(GrRecordingContext* context, GrSurfaceDrawContext* renderTargetContext,
                 SkCanvas* canvas) override {
 
         const SkScalar w = kCellWidth, h = kCellHeight;
diff --git a/gm/bigrrectaaeffect.cpp b/gm/bigrrectaaeffect.cpp
index f5ed089..134dbe1 100644
--- a/gm/bigrrectaaeffect.cpp
+++ b/gm/bigrrectaaeffect.cpp
@@ -22,7 +22,7 @@
 #include "src/gpu/GrCaps.h"
 #include "src/gpu/GrFragmentProcessor.h"
 #include "src/gpu/GrPaint.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/effects/GrPorterDuffXferProcessor.h"
 #include "src/gpu/effects/GrRRectEffect.h"
 #include "src/gpu/ops/GrDrawOp.h"
@@ -65,7 +65,7 @@
 
     SkISize onISize() override { return SkISize::Make(fWidth, fHeight); }
 
-    void onDraw(GrRecordingContext* context, GrRenderTargetContext* renderTargetContext,
+    void onDraw(GrRecordingContext* context, GrSurfaceDrawContext* renderTargetContext,
                 SkCanvas* canvas) override {
         SkPaint paint;
 
diff --git a/gm/bitmaptiled.cpp b/gm/bitmaptiled.cpp
index 0d8d849..1dd6ab6 100644
--- a/gm/bitmaptiled.cpp
+++ b/gm/bitmaptiled.cpp
@@ -14,7 +14,7 @@
 #include "include/gpu/GrDirectContext.h"
 #include "include/gpu/GrRecordingContext.h"
 
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 
 // This test exercises Ganesh's drawing of tiled bitmaps. In particular, that the offsets and the
 // extents of the tiles don't causes gaps between tiles.
diff --git a/gm/clear_swizzle.cpp b/gm/clear_swizzle.cpp
index efaf236..268a53a4 100644
--- a/gm/clear_swizzle.cpp
+++ b/gm/clear_swizzle.cpp
@@ -9,7 +9,7 @@
 #include "include/core/SkPoint.h"
 #include "include/core/SkRect.h"
 #include "include/private/SkColorData.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrSwizzle.h"
 
 // Size of each clear
@@ -23,19 +23,19 @@
     auto make_offscreen = [&](const SkISize dimensions) {
         GrSwizzle readSwizzle  = GrSwizzle::Concat(rtCtx->readSwizzle(), GrSwizzle{"bgra"});
         GrSwizzle writeSwizzle = GrSwizzle::Concat(rtCtx->readSwizzle(), GrSwizzle{"bgra"});
-        return GrRenderTargetContext::Make(ctx,
-                                           rtCtx->colorInfo().refColorSpace(),
-                                           SkBackingFit::kExact,
-                                           dimensions,
-                                           rtCtx->asSurfaceProxy()->backendFormat(),
-                                           /* sample count*/ 1,
-                                           GrMipmapped::kNo,
-                                           rtCtx->asSurfaceProxy()->isProtected(),
-                                           readSwizzle,
-                                           writeSwizzle,
-                                           kTopLeft_GrSurfaceOrigin,
-                                           SkBudgeted::kYes,
-                                           /* surface props */ nullptr);
+        return GrSurfaceDrawContext::Make(ctx,
+                                          rtCtx->colorInfo().refColorSpace(),
+                                          SkBackingFit::kExact,
+                                          dimensions,
+                                          rtCtx->asSurfaceProxy()->backendFormat(),
+                                          /* sample count*/ 1,
+                                          GrMipmapped::kNo,
+                                          rtCtx->asSurfaceProxy()->isProtected(),
+                                          readSwizzle,
+                                          writeSwizzle,
+                                          kTopLeft_GrSurfaceOrigin,
+                                          SkBudgeted::kYes,
+                                          /* surface props */ nullptr);
     };
 
     struct {
diff --git a/gm/clockwise.cpp b/gm/clockwise.cpp
index 35d398d..9289f86 100644
--- a/gm/clockwise.cpp
+++ b/gm/clockwise.cpp
@@ -35,11 +35,11 @@
 #include "src/gpu/GrProcessorSet.h"
 #include "src/gpu/GrProgramInfo.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrResourceProvider.h"
 #include "src/gpu/GrSamplerState.h"
 #include "src/gpu/GrShaderCaps.h"
 #include "src/gpu/GrShaderVar.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrSurfaceProxy.h"
 #include "src/gpu/GrTextureProxy.h"
 #include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
@@ -69,7 +69,7 @@
 class ClockwiseGM : public skiagm::GpuGM {
     SkString onShortName() override { return SkString("clockwise"); }
     SkISize onISize() override { return {300, 200}; }
-    void onDraw(GrRecordingContext*, GrRenderTargetContext*, SkCanvas*) override;
+    void onDraw(GrRecordingContext*, GrSurfaceDrawContext*, SkCanvas*) override;
 };
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -244,7 +244,7 @@
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 // Test.
 
-void ClockwiseGM::onDraw(GrRecordingContext* ctx, GrRenderTargetContext* rtc, SkCanvas* canvas) {
+void ClockwiseGM::onDraw(GrRecordingContext* ctx, GrSurfaceDrawContext* rtc, SkCanvas* canvas) {
     rtc->clear(SK_PMColor4fBLACK);
 
     // Draw the test directly to the frame buffer.
@@ -253,7 +253,7 @@
 
     // Draw the test to an off-screen, top-down render target.
     GrColorType rtcColorType = rtc->colorInfo().colorType();
-    if (auto topLeftRTC = GrRenderTargetContext::Make(
+    if (auto topLeftRTC = GrSurfaceDrawContext::Make(
                 ctx, rtcColorType, nullptr, SkBackingFit::kExact, {100, 200}, 1,
                 GrMipmapped::kNo, GrProtected::kNo, kTopLeft_GrSurfaceOrigin, SkBudgeted::kYes,
                 nullptr)) {
@@ -277,7 +277,7 @@
     }
 
     // Draw the test to an off-screen, bottom-up render target.
-    if (auto topLeftRTC = GrRenderTargetContext::Make(
+    if (auto topLeftRTC = GrSurfaceDrawContext::Make(
                 ctx, rtcColorType, nullptr, SkBackingFit::kExact, {100, 200}, 1,
                 GrMipmapped::kNo, GrProtected::kNo, kBottomLeft_GrSurfaceOrigin, SkBudgeted::kYes,
                 nullptr)) {
diff --git a/gm/compressed_textures.cpp b/gm/compressed_textures.cpp
index c25dd25..42f6751 100644
--- a/gm/compressed_textures.cpp
+++ b/gm/compressed_textures.cpp
@@ -32,7 +32,7 @@
 #include "src/image/SkImage_GpuBase.h"
 #include "third_party/etc1/etc1.h"
 
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 
 static SkPoint gen_pt(float angle, const SkVector& scale) {
     SkScalar s = SkScalarSin(angle);
diff --git a/gm/constcolorprocessor.cpp b/gm/constcolorprocessor.cpp
index 7b652c2..2136bbd 100644
--- a/gm/constcolorprocessor.cpp
+++ b/gm/constcolorprocessor.cpp
@@ -32,7 +32,7 @@
 #include "src/gpu/GrColor.h"
 #include "src/gpu/GrFragmentProcessor.h"
 #include "src/gpu/GrPaint.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/SkGr.h"
 #include "src/gpu/effects/generated/GrConstColorProcessor.h"
 #include "src/gpu/ops/GrDrawOp.h"
@@ -79,7 +79,7 @@
                                                SkTileMode::kClamp);
     }
 
-    void onDraw(GrRecordingContext* context, GrRenderTargetContext* renderTargetContext,
+    void onDraw(GrRecordingContext* context, GrSurfaceDrawContext* renderTargetContext,
                 SkCanvas* canvas) override {
         constexpr GrColor kColors[] = {
             0xFFFFFFFF,
diff --git a/gm/convexpolyeffect.cpp b/gm/convexpolyeffect.cpp
index 5bf5c40..9320234 100644
--- a/gm/convexpolyeffect.cpp
+++ b/gm/convexpolyeffect.cpp
@@ -23,7 +23,7 @@
 #include "src/core/SkTLList.h"
 #include "src/gpu/GrFragmentProcessor.h"
 #include "src/gpu/GrPaint.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/effects/GrConvexPolyEffect.h"
 #include "tools/gpu/TestOps.h"
 
@@ -106,7 +106,7 @@
         fRects.addToTail(SkRect::MakeLTRB(100.f, 50.5f, 5.f, 0.5f));
     }
 
-    void onDraw(GrRecordingContext* context, GrRenderTargetContext* renderTargetContext,
+    void onDraw(GrRecordingContext* context, GrSurfaceDrawContext* renderTargetContext,
                 SkCanvas* canvas) override {
         SkScalar y = 0;
         static constexpr SkScalar kDX = 12.f;
diff --git a/gm/croppedrects.cpp b/gm/croppedrects.cpp
index 428677f..b419b10 100644
--- a/gm/croppedrects.cpp
+++ b/gm/croppedrects.cpp
@@ -25,7 +25,7 @@
 constexpr SkRect kSrcImageClip{75, 75, 275, 275};
 
 /*
- * The purpose of this test is to exercise all three codepaths in GrRenderTargetContext
+ * The purpose of this test is to exercise all three codepaths in GrSurfaceDrawContext
  * (drawFilledRect, fillRectToRect, fillRectWithLocalMatrix) that pre-crop filled rects based on the
  * clip.
  *
@@ -63,7 +63,7 @@
         canvas->clear(SK_ColorWHITE);
 
         {
-            // GrRenderTargetContext::drawFilledRect.
+            // GrSurfaceDrawContext::drawFilledRect.
             SkAutoCanvasRestore acr(canvas, true);
             SkPaint paint;
             paint.setShader(fSrcImageShader);
@@ -72,7 +72,7 @@
         }
 
         {
-            // GrRenderTargetContext::fillRectToRect.
+            // GrSurfaceDrawContext::fillRectToRect.
             SkAutoCanvasRestore acr(canvas, true);
             SkPaint paint;
             SkRect drawRect = SkRect::MakeXYWH(350, 100, 100, 300);
@@ -85,7 +85,7 @@
         }
 
         {
-            // GrRenderTargetContext::fillRectWithLocalMatrix.
+            // GrSurfaceDrawContext::fillRectWithLocalMatrix.
             SkAutoCanvasRestore acr(canvas, true);
             SkPath path = SkPath::Line(
                    {kSrcImageClip.fLeft - kSrcImageClip.width(), kSrcImageClip.centerY()},
diff --git a/gm/crosscontextimage.cpp b/gm/crosscontextimage.cpp
index e6d9f35..e3c60d0 100644
--- a/gm/crosscontextimage.cpp
+++ b/gm/crosscontextimage.cpp
@@ -21,7 +21,7 @@
 #include "include/gpu/GrRecordingContext.h"
 #include "tools/Resources.h"
 
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 
 DEF_SIMPLE_GPU_GM_CAN_FAIL(cross_context_image, context, rtc, canvas, errorMsg,
                            3 * 256 + 40, 256 + 128 + 30) {
diff --git a/gm/discard.cpp b/gm/discard.cpp
index 317947a..c564abe 100644
--- a/gm/discard.cpp
+++ b/gm/discard.cpp
@@ -21,7 +21,7 @@
 #include "include/utils/SkRandom.h"
 #include "tools/ToolUtils.h"
 
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 
 namespace skiagm {
 
@@ -43,7 +43,7 @@
         return SkISize::Make(100, 100);
     }
 
-    DrawResult onDraw(GrRecordingContext* context, GrRenderTargetContext*, SkCanvas* canvas,
+    DrawResult onDraw(GrRecordingContext* context, GrSurfaceDrawContext*, SkCanvas* canvas,
                       SkString* errorMsg) override {
         auto direct = context->asDirectContext();
         if (!direct) {
diff --git a/gm/drawquadset.cpp b/gm/drawquadset.cpp
index 6fdcdf5..44cccfc 100644
--- a/gm/drawquadset.cpp
+++ b/gm/drawquadset.cpp
@@ -26,7 +26,7 @@
 #include "include/private/GrTypesPriv.h"
 #include "src/core/SkMatrixProvider.h"
 #include "src/gpu/GrPaint.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/SkGr.h"
 #include "tools/ToolUtils.h"
 
@@ -48,7 +48,7 @@
     static constexpr SkPoint pts[] = { {0.f, 0.f}, {0.25f * kTileWidth, 0.25f * kTileHeight} };
     static constexpr SkColor colors[] = { SK_ColorBLUE, SK_ColorWHITE };
 
-    GrRenderTargetContext* rtc = canvas->internal_private_accessTopLayerRenderTargetContext();
+    GrSurfaceDrawContext* rtc = canvas->internal_private_accessTopLayerRenderTargetContext();
 
     auto context = canvas->recordingContext();
 
diff --git a/gm/flippity.cpp b/gm/flippity.cpp
index 31c0a54..2f555bb 100644
--- a/gm/flippity.cpp
+++ b/gm/flippity.cpp
@@ -36,7 +36,7 @@
 #include <string.h>
 #include <utility>
 
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 
 static const int kNumMatrices = 6;
 static const int kImageSize = 128;
@@ -268,7 +268,7 @@
         fReferenceImages[0] = fReferenceImages[1] = nullptr;
     }
 
-    void onDraw(GrRecordingContext*, GrRenderTargetContext*, SkCanvas* canvas) override {
+    void onDraw(GrRecordingContext*, GrSurfaceDrawContext*, SkCanvas* canvas) override {
         SkASSERT(fReferenceImages[0] && fReferenceImages[1]);
 
         canvas->save();
diff --git a/gm/fontcache.cpp b/gm/fontcache.cpp
index a2a9291..a26a604 100644
--- a/gm/fontcache.cpp
+++ b/gm/fontcache.cpp
@@ -26,7 +26,7 @@
 #include "src/gpu/GrDirectContextPriv.h"
 #include "tools/ToolUtils.h"
 
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 
 static SkScalar draw_string(SkCanvas* canvas, const SkString& text, SkScalar x,
                            SkScalar y, const SkFont& font) {
@@ -67,7 +67,7 @@
         fTypefaces[5] = ToolUtils::create_portable_typeface("sans-serif", SkFontStyle::Bold());
     }
 
-    void onDraw(GrRecordingContext*, GrRenderTargetContext*, SkCanvas* canvas) override {
+    void onDraw(GrRecordingContext*, GrSurfaceDrawContext*, SkCanvas* canvas) override {
         this->drawText(canvas);
         //  Debugging tool for GPU.
         static const bool kShowAtlas = false;
diff --git a/gm/fontregen.cpp b/gm/fontregen.cpp
index e05e9c3..1071501 100644
--- a/gm/fontregen.cpp
+++ b/gm/fontregen.cpp
@@ -36,7 +36,7 @@
 #include "src/gpu/GrDirectContextPriv.h"
 #include "tools/ToolUtils.h"
 
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 
 static sk_sp<SkTextBlob> make_blob(const SkString& text, const SkFont& font) {
     size_t len = text.size();
@@ -82,7 +82,7 @@
         fBlobs[2] = make_blob(kTexts[2], font);
     }
 
-    void onDraw(GrRecordingContext* context, GrRenderTargetContext*, SkCanvas* canvas) override {
+    void onDraw(GrRecordingContext* context, GrSurfaceDrawContext*, SkCanvas* canvas) override {
         auto direct = context->asDirectContext();
         if (!direct) {
             return;
@@ -143,7 +143,7 @@
         fBlobs[1] = make_blob(kTexts[1], font);
     }
 
-    void onDraw(GrRecordingContext* context, GrRenderTargetContext*, SkCanvas* canvas) override {
+    void onDraw(GrRecordingContext* context, GrSurfaceDrawContext*, SkCanvas* canvas) override {
         SkPaint paint;
         paint.setColor(0xFF111111);
         canvas->drawTextBlob(fBlobs[0], 10, 260, paint);
diff --git a/gm/fpcoordinateoverride.cpp b/gm/fpcoordinateoverride.cpp
index 7a1670b..234d21b 100644
--- a/gm/fpcoordinateoverride.cpp
+++ b/gm/fpcoordinateoverride.cpp
@@ -21,7 +21,7 @@
 #include "src/gpu/GrCaps.h"
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrFragmentProcessor.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/effects/GrRRectEffect.h"
 #include "src/gpu/effects/GrSkSLFP.h"
 #include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
diff --git a/gm/fwidth_squircle.cpp b/gm/fwidth_squircle.cpp
index ce57bc3..951406e 100644
--- a/gm/fwidth_squircle.cpp
+++ b/gm/fwidth_squircle.cpp
@@ -30,10 +30,10 @@
 #include "src/gpu/GrProcessorSet.h"
 #include "src/gpu/GrProgramInfo.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrResourceProvider.h"
 #include "src/gpu/GrShaderCaps.h"
 #include "src/gpu/GrShaderVar.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
 #include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
 #include "src/gpu/glsl/GrGLSLPrimitiveProcessor.h"
diff --git a/gm/gm.cpp b/gm/gm.cpp
index 6b862ba..df7f7ae 100644
--- a/gm/gm.cpp
+++ b/gm/gm.cpp
@@ -25,7 +25,7 @@
 
 #include <stdarg.h>
 
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 
 using namespace skiagm;
 
@@ -142,7 +142,7 @@
 
 SkISize SimpleGpuGM::onISize() { return fSize; }
 SkString SimpleGpuGM::onShortName() { return fName; }
-DrawResult SimpleGpuGM::onDraw(GrRecordingContext* ctx, GrRenderTargetContext* rtc,
+DrawResult SimpleGpuGM::onDraw(GrRecordingContext* ctx, GrSurfaceDrawContext* rtc,
                                SkCanvas* canvas, SkString* errorMsg) {
     return fDrawProc(ctx, rtc, canvas, errorMsg);
 }
@@ -187,19 +187,19 @@
 // need to explicitly declare this, or we get some weird infinite loop llist
 template GMRegistry* GMRegistry::gHead;
 
-DrawResult GpuGM::onDraw(GrRecordingContext* ctx, GrRenderTargetContext* rtc, SkCanvas* canvas,
+DrawResult GpuGM::onDraw(GrRecordingContext* ctx, GrSurfaceDrawContext* rtc, SkCanvas* canvas,
                          SkString* errorMsg) {
     this->onDraw(ctx, rtc, canvas);
     return DrawResult::kOk;
 }
-void GpuGM::onDraw(GrRecordingContext*, GrRenderTargetContext*, SkCanvas*) {
+void GpuGM::onDraw(GrRecordingContext*, GrSurfaceDrawContext*, SkCanvas*) {
     SK_ABORT("Not implemented.");
 }
 
 DrawResult GpuGM::onDraw(SkCanvas* canvas, SkString* errorMsg) {
 
     auto ctx = canvas->recordingContext();
-    GrRenderTargetContext* rtc = canvas->internal_private_accessTopLayerRenderTargetContext();
+    GrSurfaceDrawContext* rtc = canvas->internal_private_accessTopLayerRenderTargetContext();
     if (!ctx || !rtc) {
         *errorMsg = kErrorMsg_DrawSkippedGpuOnly;
         return DrawResult::kSkip;
diff --git a/gm/gm.h b/gm/gm.h
index 76fa92e..1017d4c 100644
--- a/gm/gm.h
+++ b/gm/gm.h
@@ -21,7 +21,7 @@
 
 class GrDirectContext;
 class GrRecordingContext;
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 class SkCanvas;
 class SkMetaData;
 struct GrContextOptions;
@@ -63,7 +63,7 @@
 #define DEF_SIMPLE_GPU_GM(NAME, GR_CONTEXT, RENDER_TARGET_CONTEXT, CANVAS, W, H) \
     DEF_SIMPLE_GPU_GM_BG(NAME, GR_CONTEXT, RENDER_TARGET_CONTEXT, CANVAS, W, H, SK_ColorWHITE)
 #define DEF_SIMPLE_GPU_GM_BG(NAME, GR_CONTEXT, RENDER_TARGET_CONTEXT, CANVAS, W, H, BGCOLOR) \
-    static void SK_MACRO_CONCAT(NAME,_GM_inner)(GrRecordingContext*, GrRenderTargetContext*, \
+    static void SK_MACRO_CONCAT(NAME,_GM_inner)(GrRecordingContext*, GrSurfaceDrawContext*, \
                                                 SkCanvas*); \
     DEF_SIMPLE_GPU_GM_BG_CAN_FAIL(NAME, GR_CONTEXT, RENDER_TARGET_CONTEXT, CANVAS,, W, H, \
                                   BGCOLOR) { \
@@ -71,7 +71,7 @@
         return skiagm::DrawResult::kOk; \
     } \
     void SK_MACRO_CONCAT(NAME,_GM_inner)( \
-            GrRecordingContext* GR_CONTEXT, GrRenderTargetContext* RENDER_TARGET_CONTEXT, \
+            GrRecordingContext* GR_CONTEXT, GrSurfaceDrawContext* RENDER_TARGET_CONTEXT, \
             SkCanvas* CANVAS)
 
 #define DEF_SIMPLE_GPU_GM_CAN_FAIL(NAME, GR_CONTEXT, RENDER_TARGET_CONTEXT, CANVAS, ERR_MSG, W, H) \
@@ -80,11 +80,11 @@
 #define DEF_SIMPLE_GPU_GM_BG_CAN_FAIL(NAME, GR_CONTEXT, RENDER_TARGET_CONTEXT, CANVAS, ERR_MSG, W, \
                                       H, BGCOLOR) \
     static skiagm::DrawResult SK_MACRO_CONCAT(NAME,_GM)( \
-            GrRecordingContext*, GrRenderTargetContext*, SkCanvas*, SkString*); \
+            GrRecordingContext*, GrSurfaceDrawContext*, SkCanvas*, SkString*); \
     DEF_GM(return new skiagm::SimpleGpuGM(BGCOLOR, SkString(#NAME), {W,H}, \
                                           SK_MACRO_CONCAT(NAME,_GM));) \
     skiagm::DrawResult SK_MACRO_CONCAT(NAME,_GM)( \
-            GrRecordingContext* GR_CONTEXT, GrRenderTargetContext* RENDER_TARGET_CONTEXT, \
+            GrRecordingContext* GR_CONTEXT, GrSurfaceDrawContext* RENDER_TARGET_CONTEXT, \
             SkCanvas* CANVAS, SkString* ERR_MSG)
 
 namespace skiagm {
@@ -211,9 +211,9 @@
         using GM::onDraw;
         DrawResult onDraw(SkCanvas*, SkString* errorMsg) final;
 
-        virtual DrawResult onDraw(GrRecordingContext*, GrRenderTargetContext*, SkCanvas*,
+        virtual DrawResult onDraw(GrRecordingContext*, GrSurfaceDrawContext*, SkCanvas*,
                                   SkString* errorMsg);
-        virtual void onDraw(GrRecordingContext*, GrRenderTargetContext*, SkCanvas*);
+        virtual void onDraw(GrRecordingContext*, GrSurfaceDrawContext*, SkCanvas*);
     };
 
     // SimpleGM is intended for basic GMs that can define their entire implementation inside a
@@ -236,15 +236,15 @@
 
     class SimpleGpuGM : public GpuGM {
     public:
-        using DrawProc = DrawResult(*)(GrRecordingContext*, GrRenderTargetContext*,
-                                       SkCanvas*, SkString* errorMsg);
+        using DrawProc = DrawResult (*)(GrRecordingContext*, GrSurfaceDrawContext*,
+                                        SkCanvas*, SkString* errorMsg);
         SimpleGpuGM(SkColor bgColor, const SkString& name, const SkISize& size, DrawProc drawProc)
                 : GpuGM(bgColor), fName(name), fSize(size), fDrawProc(drawProc) {}
 
     private:
         SkISize onISize() override;
         SkString onShortName() override;
-        DrawResult onDraw(GrRecordingContext* ctx, GrRenderTargetContext* rtc, SkCanvas* canvas,
+        DrawResult onDraw(GrRecordingContext* ctx, GrSurfaceDrawContext* rtc, SkCanvas* canvas,
                           SkString* errorMsg) override;
 
         const SkString fName;
diff --git a/gm/gpu_blur_utils.cpp b/gm/gpu_blur_utils.cpp
index 28c44b9..1cb5840 100644
--- a/gm/gpu_blur_utils.cpp
+++ b/gm/gpu_blur_utils.cpp
@@ -32,9 +32,7 @@
     return resultRTC->readSurfaceView();
 };
 
-static void run(GrRecordingContext* rContext, GrRenderTargetContext* rtc,
-                bool subsetSrc, bool ref) {
-
+static void run(GrRecordingContext* rContext, GrSurfaceDrawContext* rtc, bool subsetSrc, bool ref) {
     auto srcII = SkImageInfo::Make(60, 60, kRGBA_8888_SkColorType, kPremul_SkAlphaType);
     auto surf = SkSurface::MakeRenderTarget(rContext, SkBudgeted::kYes, srcII);
     GrSurfaceProxyView src;
@@ -161,14 +159,14 @@
             // If we're in ref mode we will create a temp image that has the original image
             // tiled into it and then do a clamp blur with adjusted params that should produce
             // the same result as the original params.
-            std::unique_ptr<GrRenderTargetContext> refSrc;
+            std::unique_ptr<GrSurfaceDrawContext> refSrc;
             SkIRect refRect;
             if (ref) {
                 // Blow up testArea into a much larger rect so that our clamp blur will not
                 // reach anywhere near the edge of our temp surface.
                 refRect = testArea.makeOutset(testArea.width(), testArea.height());
-                refSrc = GrRenderTargetContext::Make(rContext, GrColorType::kRGBA_8888, nullptr,
-                                                     SkBackingFit::kApprox, refRect.size());
+                refSrc = GrSurfaceDrawContext::Make(rContext, GrColorType::kRGBA_8888, nullptr,
+                                                    SkBackingFit::kApprox, refRect.size());
                 refSrc->clear(SK_PMColor4fWHITE);
                 // Setup an effect to put the original src rect at the correct logical place
                 // in the temp where the temp's origin is at the top left of refRect.
diff --git a/gm/image.cpp b/gm/image.cpp
index 67f40f1..5b33f58 100644
--- a/gm/image.cpp
+++ b/gm/image.cpp
@@ -40,7 +40,7 @@
 #include <functional>
 #include <utility>
 
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 
 static void drawContents(SkSurface* surface, SkColor fillC) {
     SkSize size = SkSize::Make(SkIntToScalar(surface->width()),
diff --git a/gm/imagefromyuvtextures.cpp b/gm/imagefromyuvtextures.cpp
index 9eef57b..2d32491 100644
--- a/gm/imagefromyuvtextures.cpp
+++ b/gm/imagefromyuvtextures.cpp
@@ -32,7 +32,7 @@
 #include "tools/Resources.h"
 #include "tools/gpu/YUVUtils.h"
 
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 
 namespace skiagm {
 class ImageFromYUVTextures : public GpuGM {
@@ -195,7 +195,7 @@
         return fYUVAImages[index].get();
     }
 
-    void onDraw(GrRecordingContext*, GrRenderTargetContext*, SkCanvas* canvas) override {
+    void onDraw(GrRecordingContext*, GrSurfaceDrawContext*, SkCanvas* canvas) override {
         auto draw_image = [canvas](SkImage* image, SkFilterQuality fq) -> SkSize {
             if (!image) {
                 return {0, 0};
diff --git a/gm/preservefillrule.cpp b/gm/preservefillrule.cpp
index d42f5a2..2dbd1a6 100644
--- a/gm/preservefillrule.cpp
+++ b/gm/preservefillrule.cpp
@@ -13,7 +13,7 @@
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrDrawingManager.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/ccpr/GrCCPathCache.h"
 #include "src/gpu/ccpr/GrCoverageCountingPathRenderer.h"
 #include "tools/ToolUtils.h"
@@ -59,7 +59,7 @@
         ctxOptions->fAllowPathMaskCaching = true;
     }
 
-    DrawResult onDraw(GrRecordingContext* rContext, GrRenderTargetContext* rtc, SkCanvas* canvas,
+    DrawResult onDraw(GrRecordingContext* rContext, GrSurfaceDrawContext* rtc, SkCanvas* canvas,
                       SkString* errorMsg) override {
         using CoverageType = GrCCAtlas::CoverageType;
 
diff --git a/gm/rectangletexture.cpp b/gm/rectangletexture.cpp
index a95464f..2fa82a7 100644
--- a/gm/rectangletexture.cpp
+++ b/gm/rectangletexture.cpp
@@ -40,7 +40,7 @@
 #include <cstdint>
 #include <memory>
 
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 
 namespace skiagm {
 class RectangleTexture : public GpuGM {
@@ -147,7 +147,7 @@
         fSmallImg = nullptr;
     }
 
-    DrawResult onDraw(GrRecordingContext*, GrRenderTargetContext*, SkCanvas* canvas,
+    DrawResult onDraw(GrRecordingContext*, GrSurfaceDrawContext*, SkCanvas* canvas,
                       SkString*) override {
         SkASSERT(fGradImgs[0] && fGradImgs[1] && fSmallImg);
 
diff --git a/gm/rrectclipdrawpaint.cpp b/gm/rrectclipdrawpaint.cpp
index cd1d709..c69e037 100644
--- a/gm/rrectclipdrawpaint.cpp
+++ b/gm/rrectclipdrawpaint.cpp
@@ -17,7 +17,7 @@
 #include "include/core/SkTileMode.h"
 #include "include/effects/SkGradientShader.h"
 
-// Exercises code in GrRenderTargetContext that attempts to replace a rrect clip/draw paint with
+// Exercises code in GrSurfaceDrawContext that attempts to replace a rrect clip/draw paint with
 // draw rrect.
 DEF_SIMPLE_GM(rrect_clip_draw_paint, canvas, 256, 256) {
     SkRRect rrect = SkRRect::MakeRectXY(SkRect::MakeXYWH(10.f, 10.f, 236.f, 236.f), 30.f, 40.f);
diff --git a/gm/rrects.cpp b/gm/rrects.cpp
index 54a1a49..261140e 100644
--- a/gm/rrects.cpp
+++ b/gm/rrects.cpp
@@ -22,7 +22,7 @@
 #include "src/gpu/GrCaps.h"
 #include "src/gpu/GrFragmentProcessor.h"
 #include "src/gpu/GrPaint.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/effects/GrPorterDuffXferProcessor.h"
 #include "src/gpu/effects/GrRRectEffect.h"
 #include "src/gpu/ops/GrDrawOp.h"
@@ -78,7 +78,7 @@
     SkISize onISize() override { return SkISize::Make(kImageWidth, kImageHeight); }
 
     DrawResult onDraw(SkCanvas* canvas, SkString* errorMsg) override {
-        GrRenderTargetContext* renderTargetContext =
+        GrSurfaceDrawContext* renderTargetContext =
             canvas->internal_private_accessTopLayerRenderTargetContext();
         auto context = canvas->recordingContext();
         if (kEffect_Type == fType && (!renderTargetContext || !context)) {
diff --git a/gm/samplelocations.cpp b/gm/samplelocations.cpp
index b931319..835f80f 100644
--- a/gm/samplelocations.cpp
+++ b/gm/samplelocations.cpp
@@ -33,10 +33,10 @@
 #include "src/gpu/GrProcessor.h"
 #include "src/gpu/GrProcessorSet.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrSamplerState.h"
 #include "src/gpu/GrShaderCaps.h"
 #include "src/gpu/GrShaderVar.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrSurfaceProxy.h"
 #include "src/gpu/GrTextureProxy.h"
 #include "src/gpu/GrUserStencilSettings.h"
@@ -83,7 +83,7 @@
     }
 
     SkISize onISize() override { return SkISize::Make(200, 200); }
-    DrawResult onDraw(GrRecordingContext*, GrRenderTargetContext*,
+    DrawResult onDraw(GrRecordingContext*, GrSurfaceDrawContext*,
                       SkCanvas*, SkString* errorMsg) override;
 
     const GradType fGradType;
@@ -316,7 +316,7 @@
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 // Test.
 
-DrawResult SampleLocationsGM::onDraw(GrRecordingContext* ctx, GrRenderTargetContext* rtc,
+DrawResult SampleLocationsGM::onDraw(GrRecordingContext* ctx, GrSurfaceDrawContext* rtc,
                                      SkCanvas* canvas, SkString* errorMsg) {
     if (!ctx->priv().caps()->sampleLocationsSupport()) {
         *errorMsg = "Requires support for sample locations.";
@@ -335,7 +335,7 @@
         return DrawResult::kSkip;
     }
 
-    auto offscreenRTC = GrRenderTargetContext::Make(
+    auto offscreenRTC = GrSurfaceDrawContext::Make(
             ctx, rtc->colorInfo().colorType(), nullptr, SkBackingFit::kExact, {200, 200},
             rtc->numSamples(), GrMipmapped::kNo, GrProtected::kNo, fOrigin);
     if (!offscreenRTC) {
diff --git a/gm/swizzle.cpp b/gm/swizzle.cpp
index 4016cb1..de1db5c 100644
--- a/gm/swizzle.cpp
+++ b/gm/swizzle.cpp
@@ -14,7 +14,7 @@
 #include "src/gpu/GrBitmapTextureMaker.h"
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrFragmentProcessor.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/ops/GrFillRectOp.h"
 #include "tools/Resources.h"
 #include "tools/ToolUtils.h"
diff --git a/gm/tessellation.cpp b/gm/tessellation.cpp
index 22f5002..30c318f 100644
--- a/gm/tessellation.cpp
+++ b/gm/tessellation.cpp
@@ -16,9 +16,9 @@
 #include "src/gpu/GrPrimitiveProcessor.h"
 #include "src/gpu/GrProgramInfo.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrShaderCaps.h"
 #include "src/gpu/GrShaderVar.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
 #include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
 #include "src/gpu/glsl/GrGLSLPrimitiveProcessor.h"
@@ -48,7 +48,7 @@
 class TessellationGM : public GpuGM {
     SkString onShortName() override { return SkString("tessellation"); }
     SkISize onISize() override { return {kWidth, kHeight}; }
-    DrawResult onDraw(GrRecordingContext*, GrRenderTargetContext*, SkCanvas*, SkString*) override;
+    DrawResult onDraw(GrRecordingContext*, GrSurfaceDrawContext*, SkCanvas*, SkString*) override;
 };
 
 
@@ -379,7 +379,7 @@
     return outset;
 }
 
-DrawResult TessellationGM::onDraw(GrRecordingContext* ctx, GrRenderTargetContext* rtc,
+DrawResult TessellationGM::onDraw(GrRecordingContext* ctx, GrSurfaceDrawContext* rtc,
                                   SkCanvas* canvas, SkString* errorMsg) {
     if (!ctx->priv().caps()->shaderCaps()->tessellationSupport()) {
         *errorMsg = "Requires GPU tessellation support.";
diff --git a/gm/texelsubset.cpp b/gm/texelsubset.cpp
index 5a30325..b591f86 100644
--- a/gm/texelsubset.cpp
+++ b/gm/texelsubset.cpp
@@ -22,8 +22,8 @@
 #include "src/gpu/GrBitmapTextureMaker.h"
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrProxyProvider.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrSamplerState.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTextureProxy.h"
 #include "src/gpu/effects/generated/GrConstColorProcessor.h"
 #include "tools/Resources.h"
@@ -86,7 +86,7 @@
         SkASSERT(fBitmap.dimensions() == kImageSize);
     }
 
-    DrawResult onDraw(GrRecordingContext* context, GrRenderTargetContext* renderTargetContext,
+    DrawResult onDraw(GrRecordingContext* context, GrSurfaceDrawContext* renderTargetContext,
                       SkCanvas* canvas, SkString* errorMsg) override {
         GrMipmapped mipmapped = (fMipmapMode != MipmapMode::kNone) ? GrMipmapped::kYes
                                                                    : GrMipmapped::kNo;
diff --git a/gm/textblobrandomfont.cpp b/gm/textblobrandomfont.cpp
index 22b6ee4..f1afc91 100644
--- a/gm/textblobrandomfont.cpp
+++ b/gm/textblobrandomfont.cpp
@@ -31,7 +31,7 @@
 #include <string.h>
 #include <utility>
 
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 
 namespace skiagm {
 class TextBlobRandomFont : public GpuGM {
@@ -107,7 +107,8 @@
         return SkISize::Make(kWidth, kHeight);
     }
 
-    DrawResult onDraw(GrRecordingContext* context, GrRenderTargetContext*, SkCanvas* canvas,
+    DrawResult onDraw(GrRecordingContext* context,
+                      GrSurfaceDrawContext*, SkCanvas* canvas,
                       SkString* errorMsg) override {
         // This GM exists to test a specific feature of the GPU backend.
         // This GM uses ToolUtils::makeSurface which doesn't work well with vias.
diff --git a/gm/textblobuseaftergpufree.cpp b/gm/textblobuseaftergpufree.cpp
index b3aab7f..c3745cc 100644
--- a/gm/textblobuseaftergpufree.cpp
+++ b/gm/textblobuseaftergpufree.cpp
@@ -20,7 +20,7 @@
 
 #include <string.h>
 
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 
 // This tests that we correctly regenerate textblobs after freeing all gpu resources crbug/491350
 namespace skiagm {
@@ -37,7 +37,7 @@
         return SkISize::Make(kWidth, kHeight);
     }
 
-    void onDraw(GrRecordingContext* context, GrRenderTargetContext*, SkCanvas* canvas) override {
+    void onDraw(GrRecordingContext* context, GrSurfaceDrawContext*, SkCanvas* canvas) override {
         const char text[] = "Hamburgefons";
 
         SkFont font(ToolUtils::create_portable_typeface(), 20);
diff --git a/gm/trickycubicstrokes.cpp b/gm/trickycubicstrokes.cpp
index f370079..2e905f0 100644
--- a/gm/trickycubicstrokes.cpp
+++ b/gm/trickycubicstrokes.cpp
@@ -180,7 +180,7 @@
                                                         (int)GpuPathRenderers::kTessellation);
     }
 
-    DrawResult onDraw(GrRecordingContext* context, GrRenderTargetContext*, SkCanvas* canvas,
+    DrawResult onDraw(GrRecordingContext* context, GrSurfaceDrawContext*, SkCanvas* canvas,
                       SkString* errorMsg) override {
         if (!context->priv().caps()->shaderCaps()->tessellationSupport() ||
             !GrTessellationPathRenderer::IsSupported(*context->priv().caps())) {
diff --git a/gm/wacky_yuv_formats.cpp b/gm/wacky_yuv_formats.cpp
index 12ec80d..3e37792 100644
--- a/gm/wacky_yuv_formats.cpp
+++ b/gm/wacky_yuv_formats.cpp
@@ -58,7 +58,7 @@
 #include <memory>
 #include <utility>
 
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 
 static const int kTileWidthHeight = 128;
 static const int kLabelWidth = 64;
@@ -1051,7 +1051,7 @@
         fImages[0][0] = fImages[0][1] = fImages[1][0] = fImages[1][1] = nullptr;
     }
 
-    DrawResult onDraw(GrRecordingContext* rContext, GrRenderTargetContext*,
+    DrawResult onDraw(GrRecordingContext* rContext, GrSurfaceDrawContext*,
                       SkCanvas* canvas, SkString* msg) override {
         SkASSERT(fImages[0][0] && fImages[0][1] && fImages[1][0] && fImages[1][1]);
 
diff --git a/gm/widebuttcaps.cpp b/gm/widebuttcaps.cpp
index e0b2c56..8c2cab3 100644
--- a/gm/widebuttcaps.cpp
+++ b/gm/widebuttcaps.cpp
@@ -98,7 +98,8 @@
                                                         (int)GpuPathRenderers::kTessellation);
     }
 
-    DrawResult onDraw(GrRecordingContext* context, GrRenderTargetContext* rtc, SkCanvas* canvas,
+    DrawResult onDraw(GrRecordingContext* context,
+                      GrSurfaceDrawContext* rtc, SkCanvas* canvas,
                       SkString* errorMsg) override {
         if (!context->priv().caps()->shaderCaps()->tessellationSupport() ||
             !GrTessellationPathRenderer::IsSupported(*context->priv().caps())) {
diff --git a/gm/windowrectangles.cpp b/gm/windowrectangles.cpp
index 23f4a68..692be54 100644
--- a/gm/windowrectangles.cpp
+++ b/gm/windowrectangles.cpp
@@ -33,8 +33,8 @@
 #include "src/gpu/GrPaint.h"
 #include "src/gpu/GrRecordingContextPriv.h"
 #include "src/gpu/GrReducedClip.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrStencilClip.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTextureProxy.h"
 #include "src/gpu/GrUserStencilSettings.h"
 #include "src/gpu/effects/generated/GrDeviceSpaceEffect.h"
@@ -150,11 +150,11 @@
     constexpr static int kMaskCheckerSize = 5;
     SkString onShortName() final { return SkString("windowrectangles_mask"); }
     DrawResult onCoverClipStack(const SkClipStack&, SkCanvas*, SkString* errorMsg) final;
-    void visualizeAlphaMask(GrRecordingContext*, GrRenderTargetContext*,
+    void visualizeAlphaMask(GrRecordingContext*, GrSurfaceDrawContext*,
                             const GrReducedClip&, GrPaint&&);
-    void visualizeStencilMask(GrRecordingContext*, GrRenderTargetContext*,
+    void visualizeStencilMask(GrRecordingContext*, GrSurfaceDrawContext*,
                               const GrReducedClip&, GrPaint&&);
-    void stencilCheckerboard(GrRenderTargetContext*, bool flip);
+    void stencilCheckerboard(GrSurfaceDrawContext*, bool flip);
 };
 
 /**
@@ -168,7 +168,7 @@
     SkIRect getConservativeBounds() const final {
         return SkIRect::MakeXYWH(fX, fY, fMask.width(), fMask.height());
     }
-    Effect apply(GrRecordingContext* ctx, GrRenderTargetContext*, GrAAType, bool,
+    Effect apply(GrRecordingContext* ctx, GrSurfaceDrawContext*, GrAAType, bool,
                      GrAppliedClip* out, SkRect* bounds) const override {
         GrSamplerState samplerState(GrSamplerState::WrapMode::kClampToBorder,
                                     GrSamplerState::Filter::kNearest);
@@ -189,14 +189,14 @@
 /**
  * Makes a clip object that enforces the stencil clip bit. Used to visualize the stencil mask.
  */
-static GrStencilClip make_stencil_only_clip(GrRenderTargetContext* rtc) {
+static GrStencilClip make_stencil_only_clip(GrSurfaceDrawContext* rtc) {
     return GrStencilClip(rtc->dimensions(), SkClipStack::kEmptyGenID);
 };
 
 DrawResult WindowRectanglesMaskGM::onCoverClipStack(const SkClipStack& stack, SkCanvas* canvas,
                                                     SkString* errorMsg) {
     auto ctx = canvas->recordingContext();
-    GrRenderTargetContext* rtc = canvas->internal_private_accessTopLayerRenderTargetContext();
+    GrSurfaceDrawContext* rtc = canvas->internal_private_accessTopLayerRenderTargetContext();
     if (!ctx || !rtc) {
         *errorMsg = kErrorMsg_DrawSkippedGpuOnly;
         return DrawResult::kSkip;
@@ -220,11 +220,11 @@
     return DrawResult::kOk;
 }
 
-void WindowRectanglesMaskGM::visualizeAlphaMask(GrRecordingContext* ctx, GrRenderTargetContext* rtc,
+void WindowRectanglesMaskGM::visualizeAlphaMask(GrRecordingContext* ctx, GrSurfaceDrawContext* rtc,
                                                 const GrReducedClip& reducedClip, GrPaint&& paint) {
     const int padRight = (kDeviceRect.right() - kCoverRect.right()) / 2;
     const int padBottom = (kDeviceRect.bottom() - kCoverRect.bottom()) / 2;
-    auto maskRTC = GrRenderTargetContext::MakeWithFallback(
+    auto maskRTC = GrSurfaceDrawContext::MakeWithFallback(
             ctx, GrColorType::kAlpha_8, nullptr, SkBackingFit::kExact,
             {kCoverRect.width() + padRight, kCoverRect.height() + padBottom});
     if (!maskRTC) {
@@ -254,7 +254,7 @@
 }
 
 void WindowRectanglesMaskGM::visualizeStencilMask(GrRecordingContext* ctx,
-                                                  GrRenderTargetContext* rtc,
+                                                  GrSurfaceDrawContext* rtc,
                                                   const GrReducedClip& reducedClip,
                                                   GrPaint&& paint) {
     if (ctx->abandoned()) {
@@ -275,7 +275,7 @@
     rtc->drawPaint(&clip, std::move(paint), SkMatrix::I());
 }
 
-void WindowRectanglesMaskGM::stencilCheckerboard(GrRenderTargetContext* rtc, bool flip) {
+void WindowRectanglesMaskGM::stencilCheckerboard(GrSurfaceDrawContext* rtc, bool flip) {
     constexpr static GrUserStencilSettings kSetClip(
         GrUserStencilSettings::StaticInit<
         0,
diff --git a/gm/ycbcrimage.cpp b/gm/ycbcrimage.cpp
index 7ae5771..0e3354b 100644
--- a/gm/ycbcrimage.cpp
+++ b/gm/ycbcrimage.cpp
@@ -91,7 +91,7 @@
         fYCbCrImage = nullptr;
     }
 
-    DrawResult onDraw(GrRecordingContext*, GrRenderTargetContext*,
+    DrawResult onDraw(GrRecordingContext*, GrSurfaceDrawContext*,
                       SkCanvas* canvas, SkString*) override {
         SkASSERT(fYCbCrImage);
 
diff --git a/gm/yuvtorgbsubset.cpp b/gm/yuvtorgbsubset.cpp
index 2880868..59ef117 100644
--- a/gm/yuvtorgbsubset.cpp
+++ b/gm/yuvtorgbsubset.cpp
@@ -21,8 +21,8 @@
 #include "src/gpu/GrBitmapTextureMaker.h"
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrPaint.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrSamplerState.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTextureProxy.h"
 #include "src/gpu/effects/GrYUVtoRGBEffect.h"
 
@@ -84,7 +84,7 @@
         }
     }
 
-    DrawResult onDraw(GrRecordingContext* context, GrRenderTargetContext* renderTargetContext,
+    DrawResult onDraw(GrRecordingContext* context, GrSurfaceDrawContext* renderTargetContext,
                       SkCanvas* canvas, SkString* errorMsg) override {
         GrSurfaceProxyView views[3];
 
diff --git a/gn/gpu.gni b/gn/gpu.gni
index c581685..79aea21 100644
--- a/gn/gpu.gni
+++ b/gn/gpu.gni
@@ -173,8 +173,6 @@
   "$_src/gpu/GrReducedClip.h",
   "$_src/gpu/GrRenderTarget.cpp",
   "$_src/gpu/GrRenderTarget.h",
-  "$_src/gpu/GrRenderTargetContext.cpp",
-  "$_src/gpu/GrRenderTargetContext.h",
   "$_src/gpu/GrRenderTargetProxy.cpp",
   "$_src/gpu/GrRenderTargetProxy.h",
   "$_src/gpu/GrRenderTask.cpp",
@@ -223,6 +221,8 @@
   "$_src/gpu/GrSurface.h",
   "$_src/gpu/GrSurfaceContext.cpp",
   "$_src/gpu/GrSurfaceContext.h",
+  "$_src/gpu/GrSurfaceDrawContext.cpp",
+  "$_src/gpu/GrSurfaceDrawContext.h",
   "$_src/gpu/GrSurfaceProxy.cpp",
   "$_src/gpu/GrSurfaceProxy.h",
   "$_src/gpu/GrSurfaceProxyPriv.h",
diff --git a/include/core/SkCanvas.h b/include/core/SkCanvas.h
index a25a8d5..31dd475 100644
--- a/include/core/SkCanvas.h
+++ b/include/core/SkCanvas.h
@@ -36,7 +36,7 @@
 #define SK_SUPPORT_LEGACY_GETTOTALMATRIX
 
 class GrRecordingContext;
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 class SkBaseDevice;
 class SkBitmap;
 class SkData;
@@ -2457,7 +2457,7 @@
     ///////////////////////////////////////////////////////////////////////////
 
     // don't call
-    virtual GrRenderTargetContext* internal_private_accessTopLayerRenderTargetContext();
+    virtual GrSurfaceDrawContext* internal_private_accessTopLayerRenderTargetContext();
     SkIRect internal_private_getTopLayerBounds() const { return getTopLayerBounds(); }
 
     // TEMP helpers until we switch virtual over to const& for src-rect
diff --git a/include/gpu/GrDirectContext.h b/include/gpu/GrDirectContext.h
index 5a57ad0..37faac7 100644
--- a/include/gpu/GrDirectContext.h
+++ b/include/gpu/GrDirectContext.h
@@ -29,7 +29,7 @@
 class GrPath;
 class GrResourceCache;
 class GrSmallPathAtlasMgr;
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 class GrResourceProvider;
 class GrStrikeCache;
 class GrSurfaceProxy;
diff --git a/include/private/GrImageContext.h b/include/private/GrImageContext.h
index e050f00..b87ebf7 100644
--- a/include/private/GrImageContext.h
+++ b/include/private/GrImageContext.h
@@ -43,7 +43,7 @@
 
     // In debug builds we guard against improper thread handling
     // This guard is passed to the GrDrawingManager and, from there to all the
-    // GrRenderTargetContexts.  It is also passed to the GrResourceProvider and SkGpuDevice.
+    // GrSurfaceDrawContexts.  It is also passed to the GrResourceProvider and SkGpuDevice.
     mutable GrSingleOwner            fSingleOwner;
 
     using INHERITED = GrContext_Base;
diff --git a/include/utils/SkPaintFilterCanvas.h b/include/utils/SkPaintFilterCanvas.h
index 3b8c421..ef52184 100644
--- a/include/utils/SkPaintFilterCanvas.h
+++ b/include/utils/SkPaintFilterCanvas.h
@@ -32,7 +32,7 @@
     // Forwarded to the wrapped canvas.
     SkISize getBaseLayerSize() const override { return proxy()->getBaseLayerSize(); }
     GrRecordingContext* recordingContext() override { return proxy()->recordingContext(); }
-    GrRenderTargetContext* internal_private_accessTopLayerRenderTargetContext() override {
+    GrSurfaceDrawContext* internal_private_accessTopLayerRenderTargetContext() override {
         return proxy()->internal_private_accessTopLayerRenderTargetContext();
     }
 
diff --git a/samplecode/SampleCCPRGeometry.cpp b/samplecode/SampleCCPRGeometry.cpp
index 6786ce0..89ed0f8 100644
--- a/samplecode/SampleCCPRGeometry.cpp
+++ b/samplecode/SampleCCPRGeometry.cpp
@@ -21,8 +21,8 @@
 #include "src/gpu/GrOnFlushResourceProvider.h"
 #include "src/gpu/GrOpFlushState.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/ccpr/GrCCCoverageProcessor.h"
 #include "src/gpu/ccpr/GrCCFillGeometry.h"
 #include "src/gpu/ccpr/GrGSCoverageProcessor.h"
@@ -193,7 +193,7 @@
 
     if (fDoStroke) {
         caption.appendf(" (stroke_width=%f)", fStrokeWidth);
-    } else if (GrRenderTargetContext* rtc =
+    } else if (GrSurfaceDrawContext* rtc =
             canvas->internal_private_accessTopLayerRenderTargetContext()) {
         // Render coverage count.
         auto ctx = canvas->recordingContext();
@@ -201,7 +201,7 @@
 
         int width = this->width();
         int height = this->height();
-        auto ccbuff = GrRenderTargetContext::Make(
+        auto ccbuff = GrSurfaceDrawContext::Make(
                 ctx, GrColorType::kAlpha_F16, nullptr, SkBackingFit::kApprox, {width, height});
         SkASSERT(ccbuff);
         ccbuff->clear(SK_PMColor4fTRANSPARENT);
diff --git a/samplecode/SampleTessellatedWedge.cpp b/samplecode/SampleTessellatedWedge.cpp
index 0f2bfe9..b669efb 100644
--- a/samplecode/SampleTessellatedWedge.cpp
+++ b/samplecode/SampleTessellatedWedge.cpp
@@ -17,7 +17,7 @@
 #include "src/gpu/GrClip.h"
 #include "src/gpu/GrMemoryPool.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/tessellate/GrPathTessellateOp.h"
 #include "src/gpu/tessellate/GrWangsFormula.h"
 
@@ -63,7 +63,7 @@
     canvas->clear(SK_ColorBLACK);
 
     auto ctx = canvas->recordingContext();
-    GrRenderTargetContext* rtc = canvas->internal_private_accessTopLayerRenderTargetContext();
+    GrSurfaceDrawContext* rtc = canvas->internal_private_accessTopLayerRenderTargetContext();
 
     SkString error;
     if (!rtc || !ctx) {
diff --git a/src/core/SkBlurMF.cpp b/src/core/SkBlurMF.cpp
index d197ca7..d283802 100644
--- a/src/core/SkBlurMF.cpp
+++ b/src/core/SkBlurMF.cpp
@@ -24,10 +24,10 @@
 #include "include/gpu/GrRecordingContext.h"
 #include "src/gpu/GrFragmentProcessor.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrResourceProvider.h"
 #include "src/gpu/GrShaderCaps.h"
 #include "src/gpu/GrStyle.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTextureProxy.h"
 #include "src/gpu/effects/GrTextureEffect.h"
 #include "src/gpu/effects/generated/GrCircleBlurFragmentProcessor.h"
@@ -56,7 +56,7 @@
                           const SkMatrix& ctm,
                           SkIRect* maskRect) const override;
     bool directFilterMaskGPU(GrRecordingContext*,
-                             GrRenderTargetContext* renderTargetContext,
+                             GrSurfaceDrawContext* renderTargetContext,
                              GrPaint&&,
                              const GrClip*,
                              const SkMatrix& viewMatrix,
@@ -572,7 +572,7 @@
 #if SK_SUPPORT_GPU
 
 bool SkBlurMaskFilterImpl::directFilterMaskGPU(GrRecordingContext* context,
-                                               GrRenderTargetContext* renderTargetContext,
+                                               GrSurfaceDrawContext* renderTargetContext,
                                                GrPaint&& paint,
                                                const GrClip* clip,
                                                const SkMatrix& viewMatrix,
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 98dcac3..b1b8370 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -1733,7 +1733,7 @@
     return fMCRec->fMatrix;
 }
 
-GrRenderTargetContext* SkCanvas::internal_private_accessTopLayerRenderTargetContext() {
+GrSurfaceDrawContext* SkCanvas::internal_private_accessTopLayerRenderTargetContext() {
     SkBaseDevice* dev = this->getTopDevice();
     return dev ? dev->accessRenderTargetContext() : nullptr;
 }
diff --git a/src/core/SkDeferredDisplayListRecorder.cpp b/src/core/SkDeferredDisplayListRecorder.cpp
index a389626..43db56f 100644
--- a/src/core/SkDeferredDisplayListRecorder.cpp
+++ b/src/core/SkDeferredDisplayListRecorder.cpp
@@ -55,7 +55,7 @@
 #include "include/gpu/GrYUVABackendTextures.h"
 #include "src/gpu/GrProxyProvider.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTexture.h"
 #include "src/gpu/SkGr.h"
 #include "src/image/SkImage_Gpu.h"
@@ -191,10 +191,10 @@
     GrSurfaceProxyView readView(fTargetProxy, fCharacterization.origin(), readSwizzle);
     GrSurfaceProxyView writeView(fTargetProxy, fCharacterization.origin(), writeSwizzle);
 
-    auto rtc = std::make_unique<GrRenderTargetContext>(fContext.get(), std::move(readView),
-                                                       std::move(writeView), grColorType,
-                                                       fCharacterization.refColorSpace(),
-                                                       &fCharacterization.surfaceProps());
+    auto rtc = std::make_unique<GrSurfaceDrawContext>(fContext.get(), std::move(readView),
+                                                      std::move(writeView), grColorType,
+                                                      fCharacterization.refColorSpace(),
+                                                      &fCharacterization.surfaceProps());
     fSurface = SkSurface_Gpu::MakeWrappedRenderTarget(fContext.get(), std::move(rtc));
     return SkToBool(fSurface.get());
 }
diff --git a/src/core/SkDevice.h b/src/core/SkDevice.h
index 2f3b0c9..026d2b6 100644
--- a/src/core/SkDevice.h
+++ b/src/core/SkDevice.h
@@ -428,7 +428,7 @@
     /**
      * Don't call this!
      */
-    virtual GrRenderTargetContext* accessRenderTargetContext() { return nullptr; }
+    virtual GrSurfaceDrawContext* accessRenderTargetContext() { return nullptr; }
 
     // Configure the device's coordinate spaces, specifying both how its device image maps back to
     // the global space (via 'deviceToGlobal') and the initial CTM of the device (via
diff --git a/src/core/SkGlyphRunPainter.cpp b/src/core/SkGlyphRunPainter.cpp
index c1794ef..e1911d9 100644
--- a/src/core/SkGlyphRunPainter.cpp
+++ b/src/core/SkGlyphRunPainter.cpp
@@ -13,7 +13,7 @@
 #include "src/gpu/GrColorInfo.h"
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/SkGr.h"
 #include "src/gpu/ops/GrAtlasTextOp.h"
 #include "src/gpu/text/GrSDFTOptions.h"
@@ -73,7 +73,7 @@
                                 compute_scaler_context_flags(csi.colorSpace()),
                                 SkStrikeCache::GlobalStrikeCache()) {}
 
-SkGlyphRunListPainter::SkGlyphRunListPainter(const GrRenderTargetContext& rtc)
+SkGlyphRunListPainter::SkGlyphRunListPainter(const GrSurfaceDrawContext& rtc)
         : SkGlyphRunListPainter{rtc.surfaceProps(), rtc.colorInfo()} {}
 
 #endif
diff --git a/src/core/SkGlyphRunPainter.h b/src/core/SkGlyphRunPainter.h
index 9086f2d..cdf0393 100644
--- a/src/core/SkGlyphRunPainter.h
+++ b/src/core/SkGlyphRunPainter.h
@@ -18,7 +18,7 @@
 #if SK_SUPPORT_GPU
 #include "src/gpu/text/GrSDFTOptions.h"
 class GrColorInfo;
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 #endif
 
 class SkGlyphRunPainterInterface;
@@ -62,7 +62,7 @@
     // The following two ctors are used exclusively by the GPU, and will always use the global
     // strike cache.
     SkGlyphRunListPainter(const SkSurfaceProps&, const GrColorInfo&);
-    explicit SkGlyphRunListPainter(const GrRenderTargetContext& renderTargetContext);
+    explicit SkGlyphRunListPainter(const GrSurfaceDrawContext& renderTargetContext);
 #endif  // SK_SUPPORT_GPU
 
     class BitmapDevicePainter {
diff --git a/src/core/SkGpuBlurUtils.cpp b/src/core/SkGpuBlurUtils.cpp
index 7c600bd..10fde65 100644
--- a/src/core/SkGpuBlurUtils.cpp
+++ b/src/core/SkGpuBlurUtils.cpp
@@ -62,7 +62,7 @@
  * Draws 'rtcRect' into 'renderTargetContext' evaluating a 1D Gaussian over 'srcView'. The src rect
  * is 'rtcRect' offset by 'rtcToSrcOffset'. 'mode' and 'bounds' are applied to the src coords.
  */
-static void convolve_gaussian_1d(GrRenderTargetContext* renderTargetContext,
+static void convolve_gaussian_1d(GrSurfaceDrawContext* renderTargetContext,
                                  GrSurfaceProxyView srcView,
                                  const SkIRect srcSubset,
                                  SkIVector rtcToSrcOffset,
@@ -90,22 +90,22 @@
                                         SkRect::Make(rtcRect), SkRect::Make(srcRect));
 }
 
-static std::unique_ptr<GrRenderTargetContext> convolve_gaussian_2d(GrRecordingContext* context,
-                                                                   GrSurfaceProxyView srcView,
-                                                                   GrColorType srcColorType,
-                                                                   const SkIRect& srcBounds,
-                                                                   const SkIRect& dstBounds,
-                                                                   int radiusX,
-                                                                   int radiusY,
-                                                                   SkScalar sigmaX,
-                                                                   SkScalar sigmaY,
-                                                                   SkTileMode mode,
-                                                                   sk_sp<SkColorSpace> finalCS,
-                                                                   SkBackingFit dstFit) {
+static std::unique_ptr<GrSurfaceDrawContext> convolve_gaussian_2d(GrRecordingContext* context,
+                                                                  GrSurfaceProxyView srcView,
+                                                                  GrColorType srcColorType,
+                                                                  const SkIRect& srcBounds,
+                                                                  const SkIRect& dstBounds,
+                                                                  int radiusX,
+                                                                  int radiusY,
+                                                                  SkScalar sigmaX,
+                                                                  SkScalar sigmaY,
+                                                                  SkTileMode mode,
+                                                                  sk_sp<SkColorSpace> finalCS,
+                                                                  SkBackingFit dstFit) {
     SkASSERT(radiusX && radiusY);
     SkASSERT(!SkGpuBlurUtils::IsEffectivelyZeroSigma(sigmaX) &&
              !SkGpuBlurUtils::IsEffectivelyZeroSigma(sigmaY));
-    auto renderTargetContext = GrRenderTargetContext::Make(
+    auto renderTargetContext = GrSurfaceDrawContext::Make(
             context, srcColorType, std::move(finalCS), dstFit, dstBounds.size(), 1,
             GrMipmapped::kNo, srcView.proxy()->isProtected(), srcView.origin());
     if (!renderTargetContext) {
@@ -139,24 +139,24 @@
     return renderTargetContext;
 }
 
-static std::unique_ptr<GrRenderTargetContext> convolve_gaussian(GrRecordingContext* context,
-                                                                GrSurfaceProxyView srcView,
-                                                                GrColorType srcColorType,
-                                                                SkAlphaType srcAlphaType,
-                                                                SkIRect srcBounds,
-                                                                SkIRect dstBounds,
-                                                                Direction direction,
-                                                                int radius,
-                                                                float sigma,
-                                                                SkTileMode mode,
-                                                                sk_sp<SkColorSpace> finalCS,
-                                                                SkBackingFit fit) {
+static std::unique_ptr<GrSurfaceDrawContext> convolve_gaussian(GrRecordingContext* context,
+                                                               GrSurfaceProxyView srcView,
+                                                               GrColorType srcColorType,
+                                                               SkAlphaType srcAlphaType,
+                                                               SkIRect srcBounds,
+                                                               SkIRect dstBounds,
+                                                               Direction direction,
+                                                               int radius,
+                                                               float sigma,
+                                                               SkTileMode mode,
+                                                               sk_sp<SkColorSpace> finalCS,
+                                                               SkBackingFit fit) {
     using namespace SkGpuBlurUtils;
     SkASSERT(radius > 0 && !SkGpuBlurUtils::IsEffectivelyZeroSigma(sigma));
     // Logically we're creating an infinite blur of 'srcBounds' of 'srcView' with 'mode' tiling
     // and then capturing the 'dstBounds' portion in a new RTC where the top left of 'dstBounds' is
     // at {0, 0} in the new RTC.
-    auto dstRenderTargetContext = GrRenderTargetContext::Make(
+    auto dstRenderTargetContext = GrSurfaceDrawContext::Make(
             context, srcColorType, std::move(finalCS), fit, dstBounds.size(), 1, GrMipmapped::kNo,
             srcView.proxy()->isProtected(), srcView.origin());
     if (!dstRenderTargetContext) {
@@ -288,12 +288,12 @@
 // Expand the contents of 'srcRenderTargetContext' to fit in 'dstII'. At this point, we are
 // expanding an intermediate image, so there's no need to account for a proxy offset from the
 // original input.
-static std::unique_ptr<GrRenderTargetContext> reexpand(GrRecordingContext* context,
-                                                       std::unique_ptr<GrRenderTargetContext> src,
-                                                       const SkRect& srcBounds,
-                                                       SkISize dstSize,
-                                                       sk_sp<SkColorSpace> colorSpace,
-                                                       SkBackingFit fit) {
+static std::unique_ptr<GrSurfaceDrawContext> reexpand(GrRecordingContext* context,
+                                                      std::unique_ptr<GrSurfaceDrawContext> src,
+                                                      const SkRect& srcBounds,
+                                                      SkISize dstSize,
+                                                      sk_sp<SkColorSpace> colorSpace,
+                                                      SkBackingFit fit) {
     GrSurfaceProxyView srcView = src->readSurfaceView();
     if (!srcView.asTextureProxy()) {
         return nullptr;
@@ -304,7 +304,7 @@
 
     src.reset(); // no longer needed
 
-    auto dstRenderTargetContext = GrRenderTargetContext::Make(
+    auto dstRenderTargetContext = GrSurfaceDrawContext::Make(
             context, srcColorType, std::move(colorSpace), fit, dstSize, 1, GrMipmapped::kNo,
             srcView.proxy()->isProtected(), srcView.origin());
     if (!dstRenderTargetContext) {
@@ -324,21 +324,21 @@
     return dstRenderTargetContext;
 }
 
-static std::unique_ptr<GrRenderTargetContext> two_pass_gaussian(GrRecordingContext* context,
-                                                                GrSurfaceProxyView srcView,
-                                                                GrColorType srcColorType,
-                                                                SkAlphaType srcAlphaType,
-                                                                sk_sp<SkColorSpace> colorSpace,
-                                                                SkIRect srcBounds,
-                                                                SkIRect dstBounds,
-                                                                float sigmaX,
-                                                                float sigmaY,
-                                                                int radiusX,
-                                                                int radiusY,
-                                                                SkTileMode mode,
-                                                                SkBackingFit fit) {
+static std::unique_ptr<GrSurfaceDrawContext> two_pass_gaussian(GrRecordingContext* context,
+                                                               GrSurfaceProxyView srcView,
+                                                               GrColorType srcColorType,
+                                                               SkAlphaType srcAlphaType,
+                                                               sk_sp<SkColorSpace> colorSpace,
+                                                               SkIRect srcBounds,
+                                                               SkIRect dstBounds,
+                                                               float sigmaX,
+                                                               float sigmaY,
+                                                               int radiusX,
+                                                               int radiusY,
+                                                               SkTileMode mode,
+                                                               SkBackingFit fit) {
     SkASSERT(radiusX || radiusY);
-    std::unique_ptr<GrRenderTargetContext> dstRenderTargetContext;
+    std::unique_ptr<GrSurfaceDrawContext> dstRenderTargetContext;
     if (radiusX > 0) {
         SkBackingFit xFit = radiusY > 0 ? SkBackingFit::kApprox : fit;
         // Expand the dstBounds vertically to produce necessary content for the y-pass. Then we will
@@ -433,17 +433,17 @@
 
 namespace SkGpuBlurUtils {
 
-std::unique_ptr<GrRenderTargetContext> GaussianBlur(GrRecordingContext* context,
-                                                    GrSurfaceProxyView srcView,
-                                                    GrColorType srcColorType,
-                                                    SkAlphaType srcAlphaType,
-                                                    sk_sp<SkColorSpace> colorSpace,
-                                                    SkIRect dstBounds,
-                                                    SkIRect srcBounds,
-                                                    float sigmaX,
-                                                    float sigmaY,
-                                                    SkTileMode mode,
-                                                    SkBackingFit fit) {
+std::unique_ptr<GrSurfaceDrawContext> GaussianBlur(GrRecordingContext* context,
+                                                   GrSurfaceProxyView srcView,
+                                                   GrColorType srcColorType,
+                                                   SkAlphaType srcAlphaType,
+                                                   sk_sp<SkColorSpace> colorSpace,
+                                                   SkIRect dstBounds,
+                                                   SkIRect srcBounds,
+                                                   float sigmaX,
+                                                   float sigmaY,
+                                                   SkTileMode mode,
+                                                   SkBackingFit fit) {
     SkASSERT(context);
     TRACE_EVENT2("skia.gpu", "GaussianBlur", "sigmaX", sigmaX, "sigmaY", sigmaY);
 
@@ -501,7 +501,7 @@
     // If we determined that there is no blurring necessary in either direction then just do a
     // a draw that applies the tile mode.
     if (!radiusX && !radiusY) {
-        auto result = GrRenderTargetContext::Make(context, srcColorType, std::move(colorSpace), fit,
+        auto result = GrSurfaceDrawContext::Make(context, srcColorType, std::move(colorSpace), fit,
                                                   dstBounds.size(), 1, GrMipmapped::kNo,
                                                   srcView.proxy()->isProtected(), srcView.origin());
         GrSamplerState sampler(SkTileModeToWrapMode(mode), GrSamplerState::Filter::kNearest);
diff --git a/src/core/SkGpuBlurUtils.h b/src/core/SkGpuBlurUtils.h
index a58e07a..e9f61da 100644
--- a/src/core/SkGpuBlurUtils.h
+++ b/src/core/SkGpuBlurUtils.h
@@ -11,7 +11,7 @@
 #include "include/core/SkTypes.h"
 
 #if SK_SUPPORT_GPU
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 
 class GrRecordingContext;
 class GrTexture;
@@ -41,17 +41,17 @@
  * @param fit             backing fit for the returned render target context
  * @return                The renderTargetContext containing the blurred result.
  */
-std::unique_ptr<GrRenderTargetContext> GaussianBlur(GrRecordingContext* context,
-                                                    GrSurfaceProxyView srcView,
-                                                    GrColorType srcColorType,
-                                                    SkAlphaType srcAlphaType,
-                                                    sk_sp<SkColorSpace> colorSpace,
-                                                    SkIRect dstBounds,
-                                                    SkIRect srcBounds,
-                                                    float sigmaX,
-                                                    float sigmaY,
-                                                    SkTileMode mode,
-                                                    SkBackingFit fit = SkBackingFit::kApprox);
+std::unique_ptr<GrSurfaceDrawContext> GaussianBlur(GrRecordingContext* context,
+                                                   GrSurfaceProxyView srcView,
+                                                   GrColorType srcColorType,
+                                                   SkAlphaType srcAlphaType,
+                                                   sk_sp<SkColorSpace> colorSpace,
+                                                   SkIRect dstBounds,
+                                                   SkIRect srcBounds,
+                                                   float sigmaX,
+                                                   float sigmaY,
+                                                   SkTileMode mode,
+                                                   SkBackingFit fit = SkBackingFit::kApprox);
 
 static const int kBlurRRectMaxDivisions = 6;
 
diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp
index a01d133..1b90d26 100644
--- a/src/core/SkImageFilter.cpp
+++ b/src/core/SkImageFilter.cpp
@@ -26,7 +26,7 @@
 #include "src/gpu/GrColorSpaceXform.h"
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTextureProxy.h"
 #include "src/gpu/SkGr.h"
 #endif
@@ -595,7 +595,7 @@
     paint.setColorFragmentProcessor(std::move(fp));
     paint.setPorterDuffXPFactory(SkBlendMode::kSrc);
 
-    auto renderTargetContext = GrRenderTargetContext::Make(
+    auto renderTargetContext = GrSurfaceDrawContext::Make(
             context, SkColorTypeToGrColorType(colorType), sk_ref_sp(colorSpace),
             SkBackingFit::kApprox, bounds.size(), 1, GrMipmapped::kNo, isProtected,
             kBottomLeft_GrSurfaceOrigin);
diff --git a/src/core/SkMaskFilter.cpp b/src/core/SkMaskFilter.cpp
index 5cfb842..d4655ec 100644
--- a/src/core/SkMaskFilter.cpp
+++ b/src/core/SkMaskFilter.cpp
@@ -335,7 +335,7 @@
 }
 
 bool SkMaskFilterBase::directFilterMaskGPU(GrRecordingContext*,
-                                           GrRenderTargetContext*,
+                                           GrSurfaceDrawContext*,
                                            GrPaint&&,
                                            const GrClip*,
                                            const SkMatrix& viewMatrix,
diff --git a/src/core/SkMaskFilterBase.h b/src/core/SkMaskFilterBase.h
index 53ded9b..4b895b8 100644
--- a/src/core/SkMaskFilterBase.h
+++ b/src/core/SkMaskFilterBase.h
@@ -26,7 +26,7 @@
 class GrPaint;
 class GrRecordingContext;
 class GrRenderTarget;
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 class GrResourceProvider;
 class GrStyledShape;
 class GrSurfaceProxyView;
@@ -114,7 +114,7 @@
      *  successful. If false is returned then paint is unmodified.
      */
     virtual bool directFilterMaskGPU(GrRecordingContext*,
-                                     GrRenderTargetContext*,
+                                     GrSurfaceDrawContext*,
                                      GrPaint&& paint,
                                      const GrClip*,
                                      const SkMatrix& viewMatrix,
diff --git a/src/core/SkSpecialSurface.cpp b/src/core/SkSpecialSurface.cpp
index de67792..0dd329a 100644
--- a/src/core/SkSpecialSurface.cpp
+++ b/src/core/SkSpecialSurface.cpp
@@ -125,7 +125,7 @@
 class SkSpecialSurface_Gpu : public SkSpecialSurface_Base {
 public:
     SkSpecialSurface_Gpu(GrRecordingContext* context,
-                         std::unique_ptr<GrRenderTargetContext> renderTargetContext,
+                         std::unique_ptr<GrSurfaceDrawContext> renderTargetContext,
                          int width, int height, const SkIRect& subset)
             : INHERITED(subset, &renderTargetContext->surfaceProps())
             , fReadView(renderTargetContext->readSurfaceView()) {
@@ -171,7 +171,7 @@
     if (!context) {
         return nullptr;
     }
-    auto renderTargetContext = GrRenderTargetContext::Make(
+    auto renderTargetContext = GrSurfaceDrawContext::Make(
             context, colorType, std::move(colorSpace), SkBackingFit::kApprox, {width, height}, 1,
             GrMipmapped::kNo, GrProtected::kNo, kBottomLeft_GrSurfaceOrigin, SkBudgeted::kYes,
             props);
diff --git a/src/effects/imagefilters/SkAlphaThresholdFilter.cpp b/src/effects/imagefilters/SkAlphaThresholdFilter.cpp
index d0d3a9c..f781a28 100644
--- a/src/effects/imagefilters/SkAlphaThresholdFilter.cpp
+++ b/src/effects/imagefilters/SkAlphaThresholdFilter.cpp
@@ -20,7 +20,7 @@
 #include "src/gpu/GrCaps.h"
 #include "src/gpu/GrColorSpaceXform.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTextureProxy.h"
 #include "src/gpu/effects/GrTextureEffect.h"
 #include "src/gpu/effects/generated/GrAlphaThresholdFragmentProcessor.h"
@@ -102,7 +102,7 @@
 GrSurfaceProxyView SkAlphaThresholdFilterImpl::createMaskTexture(GrRecordingContext* context,
                                                                  const SkMatrix& inMatrix,
                                                                  const SkIRect& bounds) const {
-    auto rtContext = GrRenderTargetContext::MakeWithFallback(
+    auto rtContext = GrSurfaceDrawContext::MakeWithFallback(
             context, GrColorType::kAlpha_8, nullptr, SkBackingFit::kApprox, bounds.size());
     if (!rtContext) {
         return {};
diff --git a/src/effects/imagefilters/SkArithmeticImageFilter.cpp b/src/effects/imagefilters/SkArithmeticImageFilter.cpp
index 884beee..c84105d 100644
--- a/src/effects/imagefilters/SkArithmeticImageFilter.cpp
+++ b/src/effects/imagefilters/SkArithmeticImageFilter.cpp
@@ -20,7 +20,7 @@
 #include "include/gpu/GrRecordingContext.h"
 #include "src/gpu/GrColorSpaceXform.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTextureProxy.h"
 #include "src/gpu/SkGr.h"
 #include "src/gpu/effects/generated/GrArithmeticProcessor.h"
@@ -369,7 +369,7 @@
 
     paint.setPorterDuffXPFactory(SkBlendMode::kSrc);
 
-    auto renderTargetContext = GrRenderTargetContext::Make(
+    auto renderTargetContext = GrSurfaceDrawContext::Make(
             context, ctx.grColorType(), ctx.refColorSpace(), SkBackingFit::kApprox, bounds.size(),
             1, GrMipmapped::kNo, isProtected, kBottomLeft_GrSurfaceOrigin);
     if (!renderTargetContext) {
diff --git a/src/effects/imagefilters/SkDisplacementMapEffect.cpp b/src/effects/imagefilters/SkDisplacementMapEffect.cpp
index f4b57fe..fbfcf39 100644
--- a/src/effects/imagefilters/SkDisplacementMapEffect.cpp
+++ b/src/effects/imagefilters/SkDisplacementMapEffect.cpp
@@ -19,7 +19,7 @@
 #include "src/gpu/GrCaps.h"
 #include "src/gpu/GrColorSpaceXform.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTexture.h"
 #include "src/gpu/GrTextureProxy.h"
 #include "src/gpu/SkGr.h"
@@ -347,7 +347,7 @@
         SkMatrix matrix;
         matrix.setTranslate(-SkIntToScalar(colorBounds.x()), -SkIntToScalar(colorBounds.y()));
 
-        auto renderTargetContext = GrRenderTargetContext::Make(
+        auto renderTargetContext = GrSurfaceDrawContext::Make(
                 context, ctx.grColorType(), ctx.refColorSpace(), SkBackingFit::kApprox,
                 bounds.size(), 1, GrMipmapped::kNo, isProtected, kBottomLeft_GrSurfaceOrigin);
         if (!renderTargetContext) {
diff --git a/src/effects/imagefilters/SkLightingImageFilter.cpp b/src/effects/imagefilters/SkLightingImageFilter.cpp
index 9935d27..6d9350d 100644
--- a/src/effects/imagefilters/SkLightingImageFilter.cpp
+++ b/src/effects/imagefilters/SkLightingImageFilter.cpp
@@ -23,7 +23,7 @@
 #include "src/gpu/GrFragmentProcessor.h"
 #include "src/gpu/GrPaint.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTexture.h"
 #include "src/gpu/GrTextureProxy.h"
 
@@ -441,7 +441,7 @@
 
 private:
 #if SK_SUPPORT_GPU
-    void drawRect(GrRenderTargetContext*,
+    void drawRect(GrSurfaceDrawContext*,
                   GrSurfaceProxyView srcView,
                   const SkMatrix& matrix,
                   const SkRect& dstRect,
@@ -457,7 +457,7 @@
 };
 
 #if SK_SUPPORT_GPU
-void SkLightingImageFilterInternal::drawRect(GrRenderTargetContext* renderTargetContext,
+void SkLightingImageFilterInternal::drawRect(GrSurfaceDrawContext* renderTargetContext,
                                              GrSurfaceProxyView srcView,
                                              const SkMatrix& matrix,
                                              const SkRect& dstRect,
@@ -486,7 +486,7 @@
     GrSurfaceProxyView inputView = input->view(context);
     SkASSERT(inputView.asTextureProxy());
 
-    auto renderTargetContext = GrRenderTargetContext::Make(
+    auto renderTargetContext = GrSurfaceDrawContext::Make(
             context, ctx.grColorType(), ctx.refColorSpace(), SkBackingFit::kApprox,
             offsetBounds.size(), 1, GrMipmapped::kNo, inputView.proxy()->isProtected(),
             kBottomLeft_GrSurfaceOrigin);
diff --git a/src/effects/imagefilters/SkMorphologyImageFilter.cpp b/src/effects/imagefilters/SkMorphologyImageFilter.cpp
index 15bfab4..e90eead 100644
--- a/src/effects/imagefilters/SkMorphologyImageFilter.cpp
+++ b/src/effects/imagefilters/SkMorphologyImageFilter.cpp
@@ -19,7 +19,7 @@
 #include "include/gpu/GrRecordingContext.h"
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTexture.h"
 #include "src/gpu/GrTextureProxy.h"
 #include "src/gpu/SkGr.h"
@@ -362,7 +362,7 @@
 }
 #endif
 
-static void apply_morphology_rect(GrRenderTargetContext* renderTargetContext,
+static void apply_morphology_rect(GrSurfaceDrawContext* renderTargetContext,
                                   GrSurfaceProxyView view,
                                   SkAlphaType srcAlphaType,
                                   const SkIRect& srcRect,
@@ -381,7 +381,7 @@
                                         SkRect::Make(srcRect));
 }
 
-static void apply_morphology_rect_no_bounds(GrRenderTargetContext* renderTargetContext,
+static void apply_morphology_rect_no_bounds(GrSurfaceDrawContext* renderTargetContext,
                                             GrSurfaceProxyView view,
                                             SkAlphaType srcAlphaType,
                                             const SkIRect& srcRect,
@@ -398,7 +398,7 @@
                                         SkRect::Make(srcRect));
 }
 
-static void apply_morphology_pass(GrRenderTargetContext* renderTargetContext,
+static void apply_morphology_pass(GrSurfaceDrawContext* renderTargetContext,
                                   GrSurfaceProxyView view,
                                   SkAlphaType srcAlphaType,
                                   const SkIRect& srcRect,
@@ -462,7 +462,7 @@
     SkASSERT(radius.width() > 0 || radius.height() > 0);
 
     if (radius.fWidth > 0) {
-        auto dstRTContext = GrRenderTargetContext::Make(
+        auto dstRTContext = GrSurfaceDrawContext::Make(
                 context, colorType, colorSpace, SkBackingFit::kApprox, rect.size(), 1,
                 GrMipmapped::kNo, proxy->isProtected(), kBottomLeft_GrSurfaceOrigin);
         if (!dstRTContext) {
@@ -482,7 +482,7 @@
         srcRect = dstRect;
     }
     if (radius.fHeight > 0) {
-        auto dstRTContext = GrRenderTargetContext::Make(
+        auto dstRTContext = GrSurfaceDrawContext::Make(
                 context, colorType, colorSpace, SkBackingFit::kApprox, rect.size(), 1,
                 GrMipmapped::kNo, srcView.proxy()->isProtected(), kBottomLeft_GrSurfaceOrigin);
         if (!dstRTContext) {
diff --git a/src/effects/imagefilters/SkXfermodeImageFilter.cpp b/src/effects/imagefilters/SkXfermodeImageFilter.cpp
index 9280152..73094ab 100644
--- a/src/effects/imagefilters/SkXfermodeImageFilter.cpp
+++ b/src/effects/imagefilters/SkXfermodeImageFilter.cpp
@@ -19,7 +19,7 @@
 #include "src/gpu/GrCaps.h"
 #include "src/gpu/GrColorSpaceXform.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTextureProxy.h"
 #include "src/gpu/SkGr.h"
 #include "src/gpu/effects/GrTextureEffect.h"
@@ -287,7 +287,7 @@
     paint.setColorFragmentProcessor(std::move(fp));
     paint.setPorterDuffXPFactory(SkBlendMode::kSrc);
 
-    auto renderTargetContext = GrRenderTargetContext::Make(
+    auto renderTargetContext = GrSurfaceDrawContext::Make(
             context, ctx.grColorType(), ctx.refColorSpace(), SkBackingFit::kApprox, bounds.size());
     if (!renderTargetContext) {
         return nullptr;
diff --git a/src/gpu/GrBackendTextureImageGenerator.cpp b/src/gpu/GrBackendTextureImageGenerator.cpp
index 88753e0..0b7df90 100644
--- a/src/gpu/GrBackendTextureImageGenerator.cpp
+++ b/src/gpu/GrBackendTextureImageGenerator.cpp
@@ -13,11 +13,11 @@
 #include "src/gpu/GrGpu.h"
 #include "src/gpu/GrProxyProvider.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrResourceCache.h"
 #include "src/gpu/GrResourceProvider.h"
 #include "src/gpu/GrResourceProviderPriv.h"
 #include "src/gpu/GrSemaphore.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTexture.h"
 #include "src/gpu/GrTextureProxyPriv.h"
 #include "src/gpu/SkGr.h"
diff --git a/src/gpu/GrBackendTextureImageGenerator.h b/src/gpu/GrBackendTextureImageGenerator.h
index 13b89da..cea0f40 100644
--- a/src/gpu/GrBackendTextureImageGenerator.h
+++ b/src/gpu/GrBackendTextureImageGenerator.h
@@ -9,6 +9,7 @@
 
 #include "include/core/SkImageGenerator.h"
 #include "include/gpu/GrBackendSurface.h"
+#include "include/gpu/GrRecordingContext.h"
 #include "include/private/GrResourceKey.h"
 #include "include/private/SkMutex.h"
 #include "src/gpu/GrTexture.h"
diff --git a/src/gpu/GrBlurUtils.cpp b/src/gpu/GrBlurUtils.cpp
index 192d57f..d22b90b 100644
--- a/src/gpu/GrBlurUtils.cpp
+++ b/src/gpu/GrBlurUtils.cpp
@@ -15,9 +15,9 @@
 #include "src/gpu/GrFixedClip.h"
 #include "src/gpu/GrProxyProvider.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrSoftwarePathRenderer.h"
 #include "src/gpu/GrStyle.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTextureProxy.h"
 #include "src/gpu/GrThreadSafeCache.h"
 #include "src/gpu/effects/GrTextureEffect.h"
@@ -39,7 +39,7 @@
 // Draw a mask using the supplied paint. Since the coverage/geometry
 // is already burnt into the mask this boils down to a rect draw.
 // Return true if the mask was successfully drawn.
-static bool draw_mask(GrRenderTargetContext* renderTargetContext,
+static bool draw_mask(GrSurfaceDrawContext* renderTargetContext,
                       const GrClip* clip,
                       const SkMatrix& viewMatrix,
                       const SkIRect& maskRect,
@@ -178,11 +178,11 @@
 }
 
 // Create a mask of 'shape' and return the resulting renderTargetContext
-static std::unique_ptr<GrRenderTargetContext> create_mask_GPU(GrRecordingContext* context,
-                                                              const SkIRect& maskRect,
-                                                              const SkMatrix& origViewMatrix,
-                                                              const GrStyledShape& shape,
-                                                              int sampleCnt) {
+static std::unique_ptr<GrSurfaceDrawContext> create_mask_GPU(GrRecordingContext* context,
+                                                             const SkIRect& maskRect,
+                                                             const SkMatrix& origViewMatrix,
+                                                             const GrStyledShape& shape,
+                                                             int sampleCnt) {
     // Use GrResourceProvider::MakeApprox to implement our own approximate size matching, but demand
     // a "SkBackingFit::kExact" size match on the actual render target. We do this because the
     // filter will reach outside the src bounds, so we need to pre-clear these values to ensure a
@@ -193,7 +193,7 @@
     // the same. We should offset our filter within the render target and expand the size as needed
     // to guarantee at least 1px of padding on all sides.
     auto approxSize = GrResourceProvider::MakeApprox(maskRect.size());
-    auto rtContext = GrRenderTargetContext::MakeWithFallback(
+    auto rtContext = GrSurfaceDrawContext::MakeWithFallback(
             context, GrColorType::kAlpha_8, nullptr, SkBackingFit::kExact, approxSize, sampleCnt,
             GrMipmapped::kNo, GrProtected::kNo, kMaskOrigin);
     if (!rtContext) {
@@ -243,7 +243,7 @@
 
 // Gets the shape bounds, the clip bounds, and the intersection (if any). Returns false if there
 // is no intersection.
-static bool get_shape_and_clip_bounds(GrRenderTargetContext* renderTargetContext,
+static bool get_shape_and_clip_bounds(GrSurfaceDrawContext* renderTargetContext,
                                       const GrClip* clip,
                                       const GrStyledShape& shape,
                                       const SkMatrix& matrix,
@@ -350,7 +350,7 @@
 }
 
 static GrSurfaceProxyView hw_create_filtered_mask(GrDirectContext* dContext,
-                                                  GrRenderTargetContext* renderTargetContext,
+                                                  GrSurfaceDrawContext* renderTargetContext,
                                                   const SkMatrix& viewMatrix,
                                                   const GrStyledShape& shape,
                                                   const SkMaskFilterBase* filter,
@@ -399,7 +399,7 @@
         }
     }
 
-    std::unique_ptr<GrRenderTargetContext> maskRTC(create_mask_GPU(
+    std::unique_ptr<GrSurfaceDrawContext> maskRTC(create_mask_GPU(
                                                             dContext,
                                                             *maskRect,
                                                             viewMatrix,
@@ -445,7 +445,7 @@
 }
 
 static void draw_shape_with_mask_filter(GrRecordingContext* rContext,
-                                        GrRenderTargetContext* renderTargetContext,
+                                        GrSurfaceDrawContext* renderTargetContext,
                                         const GrClip* clip,
                                         GrPaint&& paint,
                                         const SkMatrix& viewMatrix,
@@ -536,7 +536,7 @@
 }
 
 void GrBlurUtils::drawShapeWithMaskFilter(GrRecordingContext* context,
-                                          GrRenderTargetContext* renderTargetContext,
+                                          GrSurfaceDrawContext* renderTargetContext,
                                           const GrClip* clip,
                                           const GrStyledShape& shape,
                                           GrPaint&& paint,
@@ -547,7 +547,7 @@
 }
 
 void GrBlurUtils::drawShapeWithMaskFilter(GrRecordingContext* context,
-                                          GrRenderTargetContext* renderTargetContext,
+                                          GrSurfaceDrawContext* renderTargetContext,
                                           const GrClip* clip,
                                           const SkPaint& paint,
                                           const SkMatrixProvider& matrixProvider,
diff --git a/src/gpu/GrBlurUtils.h b/src/gpu/GrBlurUtils.h
index 4852ef3..4347e24 100644
--- a/src/gpu/GrBlurUtils.h
+++ b/src/gpu/GrBlurUtils.h
@@ -14,7 +14,7 @@
 class GrPaint;
 class GrRecordingContext;
 class GrRenderTarget;
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 class GrStyledShape;
 class GrStyle;
 struct SkIRect;
@@ -34,7 +34,7 @@
      * Draw a shape handling the mask filter if present.
      */
     void drawShapeWithMaskFilter(GrRecordingContext*,
-                                 GrRenderTargetContext*,
+                                 GrSurfaceDrawContext*,
                                  const GrClip*,
                                  const SkPaint&,
                                  const SkMatrixProvider&,
@@ -45,7 +45,7 @@
      * The GrPaint will be modified after return.
      */
     void drawShapeWithMaskFilter(GrRecordingContext*,
-                                 GrRenderTargetContext*,
+                                 GrSurfaceDrawContext*,
                                  const GrClip*,
                                  const GrStyledShape&,
                                  GrPaint&&,
diff --git a/src/gpu/GrClip.h b/src/gpu/GrClip.h
index 110d72f..0d4f193 100644
--- a/src/gpu/GrClip.h
+++ b/src/gpu/GrClip.h
@@ -11,7 +11,7 @@
 #include "include/core/SkRRect.h"
 #include "include/core/SkRect.h"
 #include "src/gpu/GrAppliedClip.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 
 /**
  * GrClip is an abstract base class for applying a clip. It constructs a clip mask if necessary, and
@@ -62,7 +62,7 @@
      * clips). If kNoDraw is returned, 'bounds' and the applied clip are in an undetermined state
      * and should be ignored (and the draw should be skipped).
      */
-    virtual Effect apply(GrRecordingContext*, GrRenderTargetContext*, GrAAType,
+    virtual Effect apply(GrRecordingContext*, GrSurfaceDrawContext*, GrAAType,
                          bool hasUserStencilSettings, GrAppliedClip*, SkRect* bounds) const = 0;
 
     /**
@@ -243,7 +243,7 @@
     virtual Effect apply(GrAppliedHardClip* out, SkIRect* bounds) const = 0;
 
 private:
-    Effect apply(GrRecordingContext*, GrRenderTargetContext* rtc, GrAAType aa,
+    Effect apply(GrRecordingContext*, GrSurfaceDrawContext* rtc, GrAAType aa,
                  bool hasUserStencilSettings, GrAppliedClip* out, SkRect* bounds) const final {
         SkIRect pixelBounds = GetPixelIBounds(*bounds, GrAA(aa != GrAAType::kNone));
         Effect effect = this->apply(&out->hardClip(), &pixelBounds);
diff --git a/src/gpu/GrClipStack.cpp b/src/gpu/GrClipStack.cpp
index 9fbb6e7..4f7ca54 100644
--- a/src/gpu/GrClipStack.cpp
+++ b/src/gpu/GrClipStack.cpp
@@ -375,7 +375,7 @@
     }
 }
 
-static void render_stencil_mask(GrRecordingContext* context, GrRenderTargetContext* rtc,
+static void render_stencil_mask(GrRecordingContext* context, GrSurfaceDrawContext* rtc,
                                 uint32_t genID, const SkIRect& bounds,
                                 const GrClipStack::Element** elements, int count,
                                 GrAppliedClip* out) {
@@ -1255,7 +1255,7 @@
     SkUNREACHABLE;
 }
 
-GrClip::Effect GrClipStack::apply(GrRecordingContext* context, GrRenderTargetContext* rtc,
+GrClip::Effect GrClipStack::apply(GrRecordingContext* context, GrSurfaceDrawContext* rtc,
                                   GrAAType aa, bool hasUserStencilSettings,
                                   GrAppliedClip* out, SkRect* bounds) const {
     // TODO: Once we no longer store SW masks, we don't need to sneak the provider in like this
diff --git a/src/gpu/GrClipStack.h b/src/gpu/GrClipStack.h
index 955de1c..9abb00e 100644
--- a/src/gpu/GrClipStack.h
+++ b/src/gpu/GrClipStack.h
@@ -20,7 +20,7 @@
 class GrAppliedClip;
 class GrProxyProvider;
 class GrRecordingContext;
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 class GrSWMaskHelper;
 
 class GrClipStack final : public GrClip {
@@ -71,7 +71,7 @@
     void replaceClip(const SkIRect& rect);
 
     // GrClip implementation
-    GrClip::Effect apply(GrRecordingContext*, GrRenderTargetContext*, GrAAType aa,
+    GrClip::Effect apply(GrRecordingContext*, GrSurfaceDrawContext*, GrAAType aa,
                          bool hasUserStencilSettings,
                          GrAppliedClip*, SkRect* bounds) const override;
     GrClip::PreClipResult preApply(const SkRect& drawBounds, GrAA aa) const override;
diff --git a/src/gpu/GrClipStackClip.cpp b/src/gpu/GrClipStackClip.cpp
index d670a86..911c2d4 100644
--- a/src/gpu/GrClipStackClip.cpp
+++ b/src/gpu/GrClipStackClip.cpp
@@ -90,7 +90,7 @@
 bool GrClipStackClip::PathNeedsSWRenderer(GrRecordingContext* context,
                                           const SkIRect& scissorRect,
                                           bool hasUserStencilSettings,
-                                          const GrRenderTargetContext* renderTargetContext,
+                                          const GrSurfaceDrawContext* renderTargetContext,
                                           const SkMatrix& viewMatrix,
                                           const Element* element,
                                           bool needsStencil) {
@@ -144,7 +144,7 @@
  */
 bool GrClipStackClip::UseSWOnlyPath(GrRecordingContext* context,
                                     bool hasUserStencilSettings,
-                                    const GrRenderTargetContext* renderTargetContext,
+                                    const GrSurfaceDrawContext* renderTargetContext,
                                     const GrReducedClip& reducedClip) {
     // TODO: right now it appears that GPU clip masks are strictly slower than software. We may
     // want to revisit this assumption once we can test with render target sorting.
@@ -186,7 +186,7 @@
 // sort out what kind of clip mask needs to be created: alpha, stencil,
 // scissor, or entirely software
 GrClip::Effect GrClipStackClip::apply(GrRecordingContext* context,
-                                      GrRenderTargetContext* renderTargetContext,
+                                      GrSurfaceDrawContext* renderTargetContext,
                                       GrAAType aa, bool hasUserStencilSettings,
                                       GrAppliedClip* out, SkRect* bounds) const {
     SkASSERT(renderTargetContext->width() == fDeviceSize.fWidth &&
@@ -258,7 +258,7 @@
 }
 
 bool GrClipStackClip::applyClipMask(GrRecordingContext* context,
-                                    GrRenderTargetContext* renderTargetContext,
+                                    GrSurfaceDrawContext* renderTargetContext,
                                     const GrReducedClip& reducedClip, bool hasUserStencilSettings,
                                     GrAppliedClip* out) const {
 #ifdef SK_DEBUG
@@ -353,7 +353,7 @@
         return cachedView;
     }
 
-    auto rtc = GrRenderTargetContext::MakeWithFallback(
+    auto rtc = GrSurfaceDrawContext::MakeWithFallback(
             context, GrColorType::kAlpha_8, nullptr, SkBackingFit::kApprox,
             {reducedClip.width(), reducedClip.height()}, 1, GrMipmapped::kNo, GrProtected::kNo,
             kMaskOrigin);
@@ -453,7 +453,7 @@
 
 GrSurfaceProxyView GrClipStackClip::createSoftwareClipMask(
         GrRecordingContext* context, const GrReducedClip& reducedClip,
-        GrRenderTargetContext* renderTargetContext) const {
+        GrSurfaceDrawContext* renderTargetContext) const {
     GrUniqueKey key;
     create_clip_mask_key(reducedClip.maskGenID(), reducedClip.scissor(),
                          reducedClip.numAnalyticElements(), &key);
diff --git a/src/gpu/GrClipStackClip.h b/src/gpu/GrClipStackClip.h
index cfbfa6a..ec4f1cc 100644
--- a/src/gpu/GrClipStackClip.h
+++ b/src/gpu/GrClipStackClip.h
@@ -28,7 +28,7 @@
             , fMatrixProvider(matrixProvider) {}
 
     SkIRect getConservativeBounds() const final;
-    Effect apply(GrRecordingContext*, GrRenderTargetContext*, GrAAType aaType,
+    Effect apply(GrRecordingContext*, GrSurfaceDrawContext*, GrAAType aaType,
                      bool hasUserStencilSettings, GrAppliedClip* out, SkRect* bounds) const final;
     PreClipResult preApply(const SkRect& drawBounds, GrAA aa) const final;
 
@@ -39,12 +39,12 @@
     static bool PathNeedsSWRenderer(GrRecordingContext* context,
                                     const SkIRect& scissorRect,
                                     bool hasUserStencilSettings,
-                                    const GrRenderTargetContext*,
+                                    const GrSurfaceDrawContext*,
                                     const SkMatrix& viewMatrix,
                                     const SkClipStack::Element* element,
                                     bool needsStencil);
 
-    bool applyClipMask(GrRecordingContext*, GrRenderTargetContext*, const GrReducedClip&,
+    bool applyClipMask(GrRecordingContext*, GrSurfaceDrawContext*, const GrReducedClip&,
                        bool hasUserStencilSettings, GrAppliedClip*) const;
 
     // Creates an alpha mask of the clip. The mask is a rasterization of elements through the
@@ -53,11 +53,11 @@
 
     // Similar to createAlphaClipMask but it rasterizes in SW and uploads to the result texture.
     GrSurfaceProxyView createSoftwareClipMask(GrRecordingContext*, const GrReducedClip&,
-                                              GrRenderTargetContext*) const;
+                                              GrSurfaceDrawContext*) const;
 
     static bool UseSWOnlyPath(GrRecordingContext*,
                               bool hasUserStencilSettings,
-                              const GrRenderTargetContext*,
+                              const GrSurfaceDrawContext*,
                               const GrReducedClip&);
 
     // SkClipStack does not track device bounds explicitly, but it will refine these device bounds
diff --git a/src/gpu/GrDirectContextPriv.cpp b/src/gpu/GrDirectContextPriv.cpp
index 652f858..f0d15c7 100644
--- a/src/gpu/GrDirectContextPriv.cpp
+++ b/src/gpu/GrDirectContextPriv.cpp
@@ -14,8 +14,8 @@
 #include "src/gpu/GrDrawingManager.h"
 #include "src/gpu/GrGpu.h"
 #include "src/gpu/GrMemoryPool.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrSurfaceContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTexture.h"
 #include "src/gpu/SkGr.h"
 #include "src/gpu/effects/GrSkSLFP.h"
diff --git a/src/gpu/GrDrawOpTest.h b/src/gpu/GrDrawOpTest.h
index 39040e9..23f744e 100644
--- a/src/gpu/GrDrawOpTest.h
+++ b/src/gpu/GrDrawOpTest.h
@@ -17,12 +17,12 @@
 class GrDrawOp;
 class GrPaint;
 class GrRecordingContext;
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 struct GrUserStencilSettings;
 class SkRandom;
 
 /**  This function draws a randomly configured GrDrawOp for testing purposes. */
-void GrDrawRandomOp(SkRandom*, GrRenderTargetContext*, GrPaint&&);
+void GrDrawRandomOp(SkRandom*, GrSurfaceDrawContext*, GrPaint&&);
 
 /** GrDrawOp subclasses should define test factory functions using this macro. */
 #define GR_DRAW_OP_TEST_DEFINE(Op)                                                              \
diff --git a/src/gpu/GrDrawingManager.cpp b/src/gpu/GrDrawingManager.cpp
index def3dbd..4902026 100644
--- a/src/gpu/GrDrawingManager.cpp
+++ b/src/gpu/GrDrawingManager.cpp
@@ -24,13 +24,13 @@
 #include "src/gpu/GrMemoryPool.h"
 #include "src/gpu/GrOnFlushResourceProvider.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrRenderTargetProxy.h"
 #include "src/gpu/GrRenderTask.h"
 #include "src/gpu/GrResourceAllocator.h"
 #include "src/gpu/GrResourceProvider.h"
 #include "src/gpu/GrSoftwarePathRenderer.h"
 #include "src/gpu/GrSurfaceContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrSurfaceProxyPriv.h"
 #include "src/gpu/GrTTopoSort.h"
 #include "src/gpu/GrTexture.h"
diff --git a/src/gpu/GrDrawingManager.h b/src/gpu/GrDrawingManager.h
index da5040b..a4cfd9d 100644
--- a/src/gpu/GrDrawingManager.h
+++ b/src/gpu/GrDrawingManager.h
@@ -29,7 +29,7 @@
 class GrOpFlushState;
 class GrOpsTask;
 class GrRecordingContext;
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 class GrRenderTargetProxy;
 class GrRenderTask;
 class GrSemaphore;
diff --git a/src/gpu/GrDynamicAtlas.cpp b/src/gpu/GrDynamicAtlas.cpp
index 6521271..f171e1b 100644
--- a/src/gpu/GrDynamicAtlas.cpp
+++ b/src/gpu/GrDynamicAtlas.cpp
@@ -13,7 +13,7 @@
 #include "src/gpu/GrRectanizerPow2.h"
 #include "src/gpu/GrRectanizerSkyline.h"
 #include "src/gpu/GrRenderTarget.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 
 // Each Node covers a sub-rectangle of the final atlas. When a GrDynamicAtlas runs out of room, we
 // create a new Node the same size as all combined nodes in the atlas as-is, and then place the new
@@ -166,7 +166,7 @@
     return true;
 }
 
-std::unique_ptr<GrRenderTargetContext> GrDynamicAtlas::instantiate(
+std::unique_ptr<GrSurfaceDrawContext> GrDynamicAtlas::instantiate(
         GrOnFlushResourceProvider* onFlushRP, sk_sp<GrTexture> backingTexture) {
     SkASSERT(!this->isInstantiated());  // This method should only be called once.
     // Caller should have cropped any paths to the destination render target instead of asking for
diff --git a/src/gpu/GrDynamicAtlas.h b/src/gpu/GrDynamicAtlas.h
index f312651..6191648 100644
--- a/src/gpu/GrDynamicAtlas.h
+++ b/src/gpu/GrDynamicAtlas.h
@@ -12,7 +12,7 @@
 #include "src/gpu/GrTextureProxy.h"
 
 class GrOnFlushResourceProvider;
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 class GrResourceProvider;
 struct SkIPoint16;
 struct SkIRect;
@@ -65,14 +65,14 @@
     bool addRect(int width, int height, SkIPoint16* location);
     const SkISize& drawBounds() { return fDrawBounds; }
 
-    // Instantiates our texture proxy for the atlas and returns a pre-cleared GrRenderTargetContext
+    // Instantiates our texture proxy for the atlas and returns a pre-cleared GrSurfaceDrawContext
     // that the caller may use to render the content. After this call, it is no longer valid to call
     // addRect(), setUserBatchID(), or this method again.
     //
     // 'backingTexture', if provided, is a renderable texture with which to instantiate our proxy.
     // If null then we will create a texture using the resource provider. The purpose of this param
     // is to provide a guaranteed way to recycle a stashed atlas texture from a previous flush.
-    std::unique_ptr<GrRenderTargetContext> instantiate(
+    std::unique_ptr<GrSurfaceDrawContext> instantiate(
             GrOnFlushResourceProvider*, sk_sp<GrTexture> backingTexture = nullptr);
 
 private:
diff --git a/src/gpu/GrFixedClip.cpp b/src/gpu/GrFixedClip.cpp
index 544ac39..156686e 100644
--- a/src/gpu/GrFixedClip.cpp
+++ b/src/gpu/GrFixedClip.cpp
@@ -8,7 +8,7 @@
 #include "src/gpu/GrFixedClip.h"
 
 #include "src/gpu/GrAppliedClip.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 
 SkIRect GrFixedClip::getConservativeBounds() const {
     return fScissorState.rect();
diff --git a/src/gpu/GrOnFlushResourceProvider.cpp b/src/gpu/GrOnFlushResourceProvider.cpp
index dff56a3..42c8ba8 100644
--- a/src/gpu/GrOnFlushResourceProvider.cpp
+++ b/src/gpu/GrOnFlushResourceProvider.cpp
@@ -13,11 +13,11 @@
 #include "src/gpu/GrDrawingManager.h"
 #include "src/gpu/GrProxyProvider.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrSurfaceProxy.h"
 #include "src/gpu/GrTextureResolveRenderTask.h"
 
-std::unique_ptr<GrRenderTargetContext> GrOnFlushResourceProvider::makeRenderTargetContext(
+std::unique_ptr<GrSurfaceDrawContext> GrOnFlushResourceProvider::makeRenderTargetContext(
         sk_sp<GrSurfaceProxy> proxy, GrSurfaceOrigin origin, GrColorType colorType,
         sk_sp<SkColorSpace> colorSpace, const SkSurfaceProps* props) {
     // Since this is at flush time and these won't be allocated for us by the GrResourceAllocator
@@ -32,7 +32,7 @@
         return nullptr;
     }
 
-    auto renderTargetContext = GrRenderTargetContext::Make(
+    auto renderTargetContext = GrSurfaceDrawContext::Make(
             context, colorType, std::move(colorSpace), std::move(proxy),
             origin, props, true);
 
diff --git a/src/gpu/GrOnFlushResourceProvider.h b/src/gpu/GrOnFlushResourceProvider.h
index 9308d36..a89113f 100644
--- a/src/gpu/GrOnFlushResourceProvider.h
+++ b/src/gpu/GrOnFlushResourceProvider.h
@@ -17,7 +17,7 @@
 
 class GrDrawingManager;
 class GrOnFlushResourceProvider;
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 class GrSurfaceProxy;
 class SkColorSpace;
 class SkSurfaceProps;
@@ -62,7 +62,7 @@
 
     explicit GrOnFlushResourceProvider(GrDrawingManager* drawingMgr) : fDrawingMgr(drawingMgr) {}
 
-    std::unique_ptr<GrRenderTargetContext> makeRenderTargetContext(sk_sp<GrSurfaceProxy>,
+    std::unique_ptr<GrSurfaceDrawContext> makeRenderTargetContext(sk_sp<GrSurfaceProxy>,
                                                                    GrSurfaceOrigin, GrColorType,
                                                                    sk_sp<SkColorSpace>,
                                                                    const SkSurfaceProps*);
diff --git a/src/gpu/GrOpsTask.cpp b/src/gpu/GrOpsTask.cpp
index 6316a14..e89d3aa 100644
--- a/src/gpu/GrOpsTask.cpp
+++ b/src/gpu/GrOpsTask.cpp
@@ -19,8 +19,8 @@
 #include "src/gpu/GrOpsRenderPass.h"
 #include "src/gpu/GrRecordingContextPriv.h"
 #include "src/gpu/GrRenderTarget.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrResourceAllocator.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTexture.h"
 #include "src/gpu/geometry/GrRect.h"
 #include "src/gpu/ops/GrClearOp.h"
diff --git a/src/gpu/GrOpsTask.h b/src/gpu/GrOpsTask.h
index 39cfaa4..2fe6fe1 100644
--- a/src/gpu/GrOpsTask.h
+++ b/src/gpu/GrOpsTask.h
@@ -240,7 +240,7 @@
     // clearing can be done natively, in which case the op list's load ops are sufficient. In other
     // cases, draw ops must be used, which makes the RTC the best place for those decisions. This,
     // however, requires that the RTC be able to coordinate with the op list to achieve similar ends
-    friend class GrRenderTargetContext;
+    friend class GrSurfaceDrawContext;
 
     // This is a backpointer to the Arenas that holds the memory for this GrOpsTask's ops. In the
     // DDL case, the Arenas must have been detached from the original recording context and moved
diff --git a/src/gpu/GrPathRenderer.cpp b/src/gpu/GrPathRenderer.cpp
index 879a831..0dbbca8 100644
--- a/src/gpu/GrPathRenderer.cpp
+++ b/src/gpu/GrPathRenderer.cpp
@@ -11,7 +11,7 @@
 #include "src/gpu/GrPaint.h"
 #include "src/gpu/GrPathRenderer.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrUserStencilSettings.h"
 #include "src/gpu/geometry/GrStyledShape.h"
 
diff --git a/src/gpu/GrPathRenderer.h b/src/gpu/GrPathRenderer.h
index b1ad18f..18f0519 100644
--- a/src/gpu/GrPathRenderer.h
+++ b/src/gpu/GrPathRenderer.h
@@ -17,7 +17,7 @@
 class GrHardClip;
 class GrPaint;
 class GrRecordingContext;
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 class GrRenderTargetProxy;
 class GrStyledShape;
 class GrStyle;
@@ -114,7 +114,7 @@
         GrRecordingContext*          fContext;
         GrPaint&&                    fPaint;
         const GrUserStencilSettings* fUserStencilSettings;
-        GrRenderTargetContext*       fRenderTargetContext;
+        GrSurfaceDrawContext*        fRenderTargetContext;
         const GrClip*                fClip;
         const SkIRect*               fClipConservativeBounds;
         const SkMatrix*              fViewMatrix;
@@ -145,7 +145,7 @@
         SkDEBUGCODE(StencilPathArgs() { memset(this, 0, sizeof(*this)); }) // For validation.
 
         GrRecordingContext*    fContext;
-        GrRenderTargetContext* fRenderTargetContext;
+        GrSurfaceDrawContext*  fRenderTargetContext;
         const GrHardClip*      fClip;
         const SkIRect*         fClipConservativeBounds;
         const SkMatrix*        fViewMatrix;
diff --git a/src/gpu/GrPipeline.cpp b/src/gpu/GrPipeline.cpp
index 39e3f06..ec6bc8c 100644
--- a/src/gpu/GrPipeline.cpp
+++ b/src/gpu/GrPipeline.cpp
@@ -10,7 +10,7 @@
 #include "src/gpu/GrAppliedClip.h"
 #include "src/gpu/GrCaps.h"
 #include "src/gpu/GrGpu.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrXferProcessor.h"
 
 #include "src/gpu/ops/GrOp.h"
diff --git a/src/gpu/GrPipeline.h b/src/gpu/GrPipeline.h
index fcc35d2..7f7235f 100644
--- a/src/gpu/GrPipeline.h
+++ b/src/gpu/GrPipeline.h
@@ -26,7 +26,7 @@
 class GrAppliedClip;
 class GrAppliedHardClip;
 class GrOp;
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 
 /**
  * This immutable object contains information needed to set build a shader program and set API
diff --git a/src/gpu/GrProcessorUnitTest.h b/src/gpu/GrProcessorUnitTest.h
index 7c2cbde..a6e1ed2 100644
--- a/src/gpu/GrProcessorUnitTest.h
+++ b/src/gpu/GrProcessorUnitTest.h
@@ -22,7 +22,7 @@
 class SkMatrix;
 class GrCaps;
 class GrProxyProvider;
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 class GrProcessorTestData;
 class GrTexture;
 class GrXPFactory;
diff --git a/src/gpu/GrProxyProvider.cpp b/src/gpu/GrProxyProvider.cpp
index 3ff6728..d1a57ce 100644
--- a/src/gpu/GrProxyProvider.cpp
+++ b/src/gpu/GrProxyProvider.cpp
@@ -23,8 +23,8 @@
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrImageContextPriv.h"
 #include "src/gpu/GrRenderTarget.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrSurfaceProxy.h"
 #include "src/gpu/GrSurfaceProxyPriv.h"
 #include "src/gpu/GrTexture.h"
@@ -246,7 +246,7 @@
     if (proxy->asRenderTargetProxy()) {
         GrBackendFormat expectedFormat;
         std::tie(ct, expectedFormat) =
-                GrRenderTargetContext::GetFallbackColorTypeAndFormat(fImageContext, ct, sampleCnt);
+                GrSurfaceDrawContext::GetFallbackColorTypeAndFormat(fImageContext, ct, sampleCnt);
         SkASSERT(expectedFormat == proxy->backendFormat());
     }
     GrSwizzle swizzle = fImageContext->priv().caps()->getReadSwizzle(proxy->backendFormat(), ct);
diff --git a/src/gpu/GrProxyProvider.h b/src/gpu/GrProxyProvider.h
index 336a3d8..415305a 100644
--- a/src/gpu/GrProxyProvider.h
+++ b/src/gpu/GrProxyProvider.h
@@ -62,7 +62,7 @@
     /**
      * A helper that uses findOrCreateProxyByUniqueKey() to find a proxy and if found creates a view
      * a view for the found proxy using the passed in origin and color type. It is assumed that if
-     * the proxy is renderable then it was created by GrRenderTargetContext::MakeWithFallback and
+     * the proxy is renderable then it was created by GrSurfaceDrawContext::MakeWithFallback and
      * the fallback color type will be used to create the view.
      */
     GrSurfaceProxyView findCachedProxyWithColorTypeFallback(const GrUniqueKey&,
diff --git a/src/gpu/GrRecordingContext.cpp b/src/gpu/GrRecordingContext.cpp
index bf025c7..bd21b49 100644
--- a/src/gpu/GrRecordingContext.cpp
+++ b/src/gpu/GrRecordingContext.cpp
@@ -17,8 +17,8 @@
 #include "src/gpu/GrProgramDesc.h"
 #include "src/gpu/GrProxyProvider.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrSurfaceContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/SkGr.h"
 #include "src/gpu/effects/GrSkSLFP.h"
 #include "src/gpu/text/GrTextBlobCache.h"
diff --git a/src/gpu/GrReducedClip.cpp b/src/gpu/GrReducedClip.cpp
index acfa065..b97cc77 100644
--- a/src/gpu/GrReducedClip.cpp
+++ b/src/gpu/GrReducedClip.cpp
@@ -14,11 +14,11 @@
 #include "src/gpu/GrPathRenderer.h"
 #include "src/gpu/GrRecordingContextPriv.h"
 #include "src/gpu/GrReducedClip.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrStencilClip.h"
 #include "src/gpu/GrStencilMaskHelper.h"
 #include "src/gpu/GrStencilSettings.h"
 #include "src/gpu/GrStyle.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrUserStencilSettings.h"
 #include "src/gpu/ccpr/GrCoverageCountingPathRenderer.h"
 #include "src/gpu/effects/GrConvexPolyEffect.h"
@@ -724,7 +724,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 // Create a 8-bit clip mask in alpha
 
-static bool stencil_element(GrRenderTargetContext* rtc,
+static bool stencil_element(GrSurfaceDrawContext* rtc,
                             const GrFixedClip& clip,
                             const GrUserStencilSettings* ss,
                             const SkMatrix& viewMatrix,
@@ -757,7 +757,7 @@
     return false;
 }
 
-static void draw_element(GrRenderTargetContext* rtc,
+static void draw_element(GrSurfaceDrawContext* rtc,
                          const GrClip& clip,  // TODO: can this just always be WideOpen?
                          GrPaint&& paint,
                          GrAA aa,
@@ -784,7 +784,7 @@
     }
 }
 
-bool GrReducedClip::drawAlphaClipMask(GrRenderTargetContext* rtc) const {
+bool GrReducedClip::drawAlphaClipMask(GrSurfaceDrawContext* rtc) const {
     // The texture may be larger than necessary, this rect represents the part of the texture
     // we populate with a rasterization of the clip.
     GrFixedClip clip(rtc->dimensions(), SkIRect::MakeWH(fScissor.width(), fScissor.height()));
@@ -865,7 +865,7 @@
 // Create a 1-bit clip mask in the stencil buffer.
 
 bool GrReducedClip::drawStencilClipMask(GrRecordingContext* context,
-                                        GrRenderTargetContext* renderTargetContext) const {
+                                        GrSurfaceDrawContext* renderTargetContext) const {
     GrStencilMaskHelper helper(context, renderTargetContext);
     if (!helper.init(fScissor, this->maskGenID(), fWindowRects, this->numAnalyticElements())) {
         // The stencil mask doesn't need updating
diff --git a/src/gpu/GrReducedClip.h b/src/gpu/GrReducedClip.h
index 35c3014..e11e0ed 100644
--- a/src/gpu/GrReducedClip.h
+++ b/src/gpu/GrReducedClip.h
@@ -15,7 +15,7 @@
 
 class GrCoverageCountingPathRenderer;
 class GrRecordingContext;
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 
 /**
  * This class takes a clip stack and produces a reduced set of elements that are equivalent to
@@ -90,8 +90,8 @@
      */
     bool maskRequiresAA() const { SkASSERT(!fMaskElements.isEmpty()); return fMaskRequiresAA; }
 
-    bool drawAlphaClipMask(GrRenderTargetContext*) const;
-    bool drawStencilClipMask(GrRecordingContext*, GrRenderTargetContext*) const;
+    bool drawAlphaClipMask(GrSurfaceDrawContext*) const;
+    bool drawStencilClipMask(GrRecordingContext*, GrSurfaceDrawContext*) const;
 
     int numAnalyticElements() const;
 
diff --git a/src/gpu/GrRenderTarget.cpp b/src/gpu/GrRenderTarget.cpp
index 8d0a23c..47a3a9f 100644
--- a/src/gpu/GrRenderTarget.cpp
+++ b/src/gpu/GrRenderTarget.cpp
@@ -12,9 +12,9 @@
 #include "src/gpu/GrAttachment.h"
 #include "src/gpu/GrBackendUtils.h"
 #include "src/gpu/GrGpu.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrSamplePatternDictionary.h"
 #include "src/gpu/GrStencilSettings.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 
 GrRenderTarget::GrRenderTarget(GrGpu* gpu,
                                const SkISize& dimensions,
diff --git a/src/gpu/GrSoftwarePathRenderer.cpp b/src/gpu/GrSoftwarePathRenderer.cpp
index 836d789..c757db4 100644
--- a/src/gpu/GrSoftwarePathRenderer.cpp
+++ b/src/gpu/GrSoftwarePathRenderer.cpp
@@ -66,7 +66,7 @@
 
 // Gets the shape bounds, the clip bounds, and the intersection (if any). Returns false if there
 // is no intersection.
-bool GrSoftwarePathRenderer::GetShapeAndClipBounds(GrRenderTargetContext* renderTargetContext,
+bool GrSoftwarePathRenderer::GetShapeAndClipBounds(GrSurfaceDrawContext* renderTargetContext,
                                                    const GrClip* clip,
                                                    const GrStyledShape& shape,
                                                    const SkMatrix& matrix,
@@ -92,7 +92,7 @@
 
 ////////////////////////////////////////////////////////////////////////////////
 
-void GrSoftwarePathRenderer::DrawNonAARect(GrRenderTargetContext* renderTargetContext,
+void GrSoftwarePathRenderer::DrawNonAARect(GrSurfaceDrawContext* renderTargetContext,
                                            GrPaint&& paint,
                                            const GrUserStencilSettings& userStencilSettings,
                                            const GrClip* clip,
@@ -103,7 +103,7 @@
                                      viewMatrix, rect, &localMatrix);
 }
 
-void GrSoftwarePathRenderer::DrawAroundInvPath(GrRenderTargetContext* renderTargetContext,
+void GrSoftwarePathRenderer::DrawAroundInvPath(GrSurfaceDrawContext* renderTargetContext,
                                                GrPaint&& paint,
                                                const GrUserStencilSettings& userStencilSettings,
                                                const GrClip* clip,
@@ -144,7 +144,7 @@
 
 void GrSoftwarePathRenderer::DrawToTargetWithShapeMask(
         GrSurfaceProxyView view,
-        GrRenderTargetContext* renderTargetContext,
+        GrSurfaceDrawContext* renderTargetContext,
         GrPaint&& paint,
         const GrUserStencilSettings& userStencilSettings,
         const GrClip* clip,
diff --git a/src/gpu/GrSoftwarePathRenderer.h b/src/gpu/GrSoftwarePathRenderer.h
index 6248c8f..ad4b2b5 100644
--- a/src/gpu/GrSoftwarePathRenderer.h
+++ b/src/gpu/GrSoftwarePathRenderer.h
@@ -26,7 +26,7 @@
             , fAllowCaching(allowCaching) {
     }
 
-    static bool GetShapeAndClipBounds(GrRenderTargetContext*,
+    static bool GetShapeAndClipBounds(GrSurfaceDrawContext*,
                                       const GrClip* clip,
                                       const GrStyledShape& shape,
                                       const SkMatrix& matrix,
@@ -35,14 +35,14 @@
                                       SkIRect* devClipBounds);
 
 private:
-    static void DrawNonAARect(GrRenderTargetContext* renderTargetContext,
+    static void DrawNonAARect(GrSurfaceDrawContext* renderTargetContext,
                               GrPaint&& paint,
                               const GrUserStencilSettings& userStencilSettings,
                               const GrClip* clip,
                               const SkMatrix& viewMatrix,
                               const SkRect& rect,
                               const SkMatrix& localMatrix);
-    static void DrawAroundInvPath(GrRenderTargetContext* renderTargetContext,
+    static void DrawAroundInvPath(GrSurfaceDrawContext* renderTargetContext,
                                   GrPaint&& paint,
                                   const GrUserStencilSettings& userStencilSettings,
                                   const GrClip* clip,
@@ -54,7 +54,7 @@
     // space. The 'viewMatrix' will be used to ensure the correct local coords are provided to
     // any fragment processors in the paint.
     static void DrawToTargetWithShapeMask(GrSurfaceProxyView,
-                                          GrRenderTargetContext* renderTargetContext,
+                                          GrSurfaceDrawContext* renderTargetContext,
                                           GrPaint&& paint,
                                           const GrUserStencilSettings& userStencilSettings,
                                           const GrClip* clip,
diff --git a/src/gpu/GrStencilMaskHelper.cpp b/src/gpu/GrStencilMaskHelper.cpp
index 9e99e0fe..b3e23cc 100644
--- a/src/gpu/GrStencilMaskHelper.cpp
+++ b/src/gpu/GrStencilMaskHelper.cpp
@@ -272,7 +272,7 @@
     return gUserToClipTable[fillInverted][op];
 }
 
-static void draw_stencil_rect(GrRenderTargetContext* rtc, const GrHardClip& clip,
+static void draw_stencil_rect(GrSurfaceDrawContext* rtc, const GrHardClip& clip,
                               const GrUserStencilSettings* ss, const SkMatrix& matrix,
                               const SkRect& rect, GrAA aa) {
     GrPaint paint;
@@ -280,7 +280,8 @@
     rtc->stencilRect(&clip, ss, std::move(paint), aa, matrix, rect);
 }
 
-static void draw_path(GrRecordingContext* context, GrRenderTargetContext* rtc,
+static void draw_path(GrRecordingContext* context,
+                      GrSurfaceDrawContext* rtc,
                       GrPathRenderer* pr, const GrHardClip& clip, const SkIRect& bounds,
                       const GrUserStencilSettings* ss,  const SkMatrix& matrix,
                       const GrStyledShape& shape, GrAA aa) {
@@ -304,7 +305,8 @@
     pr->drawPath(args);
 }
 
-static void stencil_path(GrRecordingContext* context, GrRenderTargetContext* rtc,
+static void stencil_path(GrRecordingContext* context,
+                         GrSurfaceDrawContext* rtc,
                          GrPathRenderer* pr, const GrFixedClip& clip, const SkMatrix& matrix,
                          const GrStyledShape& shape, GrAA aa) {
     GrPathRenderer::StencilPathArgs args;
@@ -319,7 +321,7 @@
     pr->stencilPath(args);
 }
 
-static GrAA supported_aa(GrRenderTargetContext* rtc, GrAA aa) {
+static GrAA supported_aa(GrSurfaceDrawContext* rtc, GrAA aa) {
     // MIXED SAMPLES TODO: We can use stencil with mixed samples as well.
     if (rtc->numSamples() > 1) {
         if (rtc->caps()->multisampleDisableSupport()) {
diff --git a/src/gpu/GrStencilMaskHelper.h b/src/gpu/GrStencilMaskHelper.h
index 9ffbe68..8c03a58 100644
--- a/src/gpu/GrStencilMaskHelper.h
+++ b/src/gpu/GrStencilMaskHelper.h
@@ -15,7 +15,7 @@
 
 class GrShape;
 class GrRecordingContext;
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 class SkMatrix;
 class SkRRect;
 
@@ -37,7 +37,7 @@
     // Configure the helper to update the stencil mask within the given rectangle, respecting the
     // set window rectangles. It will use the provided context and render target to draw into, both
     // of which must outlive the helper.
-    GrStencilMaskHelper(GrRecordingContext* context, GrRenderTargetContext* rtc)
+    GrStencilMaskHelper(GrRecordingContext* context, GrSurfaceDrawContext* rtc)
             : fContext(context)
             , fRTC(rtc)
             , fClip(rtc->dimensions()) {}
@@ -63,7 +63,7 @@
 
 private:
     GrRecordingContext*    fContext;
-    GrRenderTargetContext* fRTC;
+    GrSurfaceDrawContext* fRTC;
     GrStencilClip          fClip;
     int                    fNumFPs;
 
diff --git a/src/gpu/GrSurfaceContext.cpp b/src/gpu/GrSurfaceContext.cpp
index b633ff3..1eb5186 100644
--- a/src/gpu/GrSurfaceContext.cpp
+++ b/src/gpu/GrSurfaceContext.cpp
@@ -21,7 +21,7 @@
 #include "src/gpu/GrImageInfo.h"
 #include "src/gpu/GrProxyProvider.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/SkGr.h"
 #include "src/gpu/effects/GrBicubicEffect.h"
 #include "src/gpu/effects/generated/GrColorMatrixFragmentProcessor.h"
@@ -54,12 +54,12 @@
                                                                    info.colorType());
         }
         GrSurfaceProxyView writeView(readView.refProxy(), readView.origin(), writeSwizzle);
-        surfaceContext = std::make_unique<GrRenderTargetContext>(context,
-                                                                 std::move(readView),
-                                                                 std::move(writeView),
-                                                                 info.colorType(),
-                                                                 info.refColorSpace(),
-                                                                 /*surface props*/ nullptr);
+        surfaceContext = std::make_unique<GrSurfaceDrawContext>(context,
+                                                                std::move(readView),
+                                                                std::move(writeView),
+                                                                info.colorType(),
+                                                                info.refColorSpace(),
+                                                                /*surface props*/ nullptr);
     } else {
         surfaceContext = std::make_unique<GrSurfaceContext>(context, std::move(readView), info);
     }
@@ -236,7 +236,7 @@
             GrColorType colorType = (canvas2DFastPath || srcIsCompressed)
                                             ? GrColorType::kRGBA_8888
                                             : this->colorInfo().colorType();
-            tempCtx = GrRenderTargetContext::Make(
+            tempCtx = GrSurfaceDrawContext::Make(
                     dContext, colorType, this->colorInfo().refColorSpace(), SkBackingFit::kApprox,
                     dstInfo.dimensions(), 1, GrMipMapped::kNo, GrProtected::kNo,
                     kTopLeft_GrSurfaceOrigin);
@@ -578,7 +578,7 @@
         return;
     }
 
-    std::unique_ptr<GrRenderTargetContext> tempRTC;
+    std::unique_ptr<GrSurfaceDrawContext> tempRTC;
     int x = srcRect.fLeft;
     int y = srcRect.fTop;
     if (needsRescale) {
@@ -612,10 +612,10 @@
                 SkASSERT(texProxyView.asTextureProxy());
                 srcRectToDraw = SkRect::MakeWH(srcRect.width(), srcRect.height());
             }
-            tempRTC = GrRenderTargetContext::Make(dContext, this->colorInfo().colorType(),
-                                                  info.refColorSpace(), SkBackingFit::kApprox,
-                                                  srcRect.size(), 1, GrMipmapped::kNo,
-                                                  GrProtected::kNo, kTopLeft_GrSurfaceOrigin);
+            tempRTC = GrSurfaceDrawContext::Make(dContext, this->colorInfo().colorType(),
+                                                 info.refColorSpace(), SkBackingFit::kApprox,
+                                                 srcRect.size(), 1, GrMipmapped::kNo,
+                                                 GrProtected::kNo, kTopLeft_GrSurfaceOrigin);
             if (!tempRTC) {
                 callback(callbackContext, nullptr);
                 return;
@@ -848,7 +848,7 @@
                 kPremul_SkAlphaType);
         if (xform) {
             SkRect srcRectToDraw = SkRect::MakeXYWH(x, y, srcRect.width(), srcRect.height());
-            auto tempRTC = GrRenderTargetContext::Make(
+            auto tempRTC = GrSurfaceDrawContext::Make(
                     dContext, this->colorInfo().colorType(), dstColorSpace, SkBackingFit::kApprox,
                     dstSize, 1, GrMipmapped::kNo, GrProtected::kNo, kTopLeft_GrSurfaceOrigin);
             if (!tempRTC) {
@@ -875,15 +875,15 @@
         }
     }
 
-    auto yRTC = GrRenderTargetContext::MakeWithFallback(
+    auto yRTC = GrSurfaceDrawContext::MakeWithFallback(
             dContext, GrColorType::kAlpha_8, dstColorSpace, SkBackingFit::kApprox, dstSize, 1,
             GrMipmapped::kNo, GrProtected::kNo, kTopLeft_GrSurfaceOrigin);
     int halfW = dstSize.width() /2;
     int halfH = dstSize.height()/2;
-    auto uRTC = GrRenderTargetContext::MakeWithFallback(
+    auto uRTC = GrSurfaceDrawContext::MakeWithFallback(
             dContext, GrColorType::kAlpha_8, dstColorSpace, SkBackingFit::kApprox, {halfW, halfH},
             1, GrMipmapped::kNo, GrProtected::kNo, kTopLeft_GrSurfaceOrigin);
-    auto vRTC = GrRenderTargetContext::MakeWithFallback(
+    auto vRTC = GrSurfaceDrawContext::MakeWithFallback(
             dContext, GrColorType::kAlpha_8, dstColorSpace, SkBackingFit::kApprox, {halfW, halfH},
             1, GrMipmapped::kNo, GrProtected::kNo, kTopLeft_GrSurfaceOrigin);
     if (!yRTC || !uRTC || !vRTC) {
@@ -1074,11 +1074,11 @@
             this->readSurfaceView(), dstPoint);
 }
 
-std::unique_ptr<GrRenderTargetContext> GrSurfaceContext::rescale(const GrImageInfo& info,
-                                                                 GrSurfaceOrigin origin,
-                                                                 SkIRect srcRect,
-                                                                 RescaleGamma rescaleGamma,
-                                                                 SkFilterQuality rescaleQuality) {
+std::unique_ptr<GrSurfaceDrawContext> GrSurfaceContext::rescale(const GrImageInfo& info,
+                                                                GrSurfaceOrigin origin,
+                                                                SkIRect srcRect,
+                                                                RescaleGamma rescaleGamma,
+                                                                SkFilterQuality rescaleQuality) {
     auto rtProxy = this->asRenderTargetProxy();
     if (rtProxy && rtProxy->wrapsVkSecondaryCB()) {
         return nullptr;
@@ -1107,8 +1107,8 @@
 
     // Within a rescaling pass A is the input (if not null) and B is the output. At the end of the
     // pass B is moved to A. If 'this' is the input on the first pass then tempA is null.
-    std::unique_ptr<GrRenderTargetContext> tempA;
-    std::unique_ptr<GrRenderTargetContext> tempB;
+    std::unique_ptr<GrSurfaceDrawContext> tempA;
+    std::unique_ptr<GrSurfaceDrawContext> tempB;
 
     // Assume we should ignore the rescale linear request if the surface has no color space since
     // it's unclear how we'd linearize from an unknown color space.
@@ -1118,7 +1118,7 @@
         auto xform = GrColorSpaceXform::Make(this->colorInfo().colorSpace(), srcAlphaType, cs.get(),
                                              kPremul_SkAlphaType);
         // We'll fall back to kRGBA_8888 if half float not supported.
-        auto linearRTC = GrRenderTargetContext::MakeWithFallback(
+        auto linearRTC = GrSurfaceDrawContext::MakeWithFallback(
                 fContext, GrColorType::kRGBA_F16, cs, SkBackingFit::kApprox, srcRect.size(), 1,
                 GrMipmapped::kNo, GrProtected::kNo, origin);
         if (!linearRTC) {
@@ -1171,9 +1171,9 @@
                                             input->colorInfo().alphaType(), cs.get(),
                                             info.alphaType());
         }
-        tempB = GrRenderTargetContext::MakeWithFallback(fContext, colorType, std::move(cs),
-                                                        SkBackingFit::kApprox, nextDims, 1,
-                                                        GrMipmapped::kNo, GrProtected::kNo, origin);
+        tempB = GrSurfaceDrawContext::MakeWithFallback(fContext, colorType, std::move(cs),
+                                                       SkBackingFit::kApprox, nextDims, 1,
+                                                       GrMipmapped::kNo, GrProtected::kNo, origin);
         if (!tempB) {
             return nullptr;
         }
diff --git a/src/gpu/GrSurfaceContext.h b/src/gpu/GrSurfaceContext.h
index 7abfbf8..b25d849 100644
--- a/src/gpu/GrSurfaceContext.h
+++ b/src/gpu/GrSurfaceContext.h
@@ -23,7 +23,7 @@
 class GrAuditTrail;
 class GrDrawingManager;
 class GrRecordingContext;
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 class GrRenderTargetProxy;
 class GrSingleOwner;
 class GrSurface;
@@ -37,13 +37,13 @@
  */
 class GrSurfaceContext {
 public:
-    // If the passed in GrSurfaceProxy is renderable this will return a GrRenderTargetContext,
+    // If the passed in GrSurfaceProxy is renderable this will return a GrSurfaceDrawContext,
     // otherwise it will return a GrSurfaceContext.
     static std::unique_ptr<GrSurfaceContext> Make(GrRecordingContext*,
                                                   GrSurfaceProxyView readView,
                                                   const GrColorInfo&);
 
-    // Makes either a GrSurfaceContext or a GrRenderTargetContext, depending on GrRenderable.
+    // Makes either a GrSurfaceContext or a GrSurfaceDrawContext, depending on GrRenderable.
     static std::unique_ptr<GrSurfaceContext> Make(GrRecordingContext*,
                                                   const GrImageInfo&,
                                                   const GrBackendFormat&,
@@ -158,7 +158,7 @@
         return fReadView.asRenderTargetProxyRef();
     }
 
-    virtual GrRenderTargetContext* asRenderTargetContext() { return nullptr; }
+    virtual GrSurfaceDrawContext* asRenderTargetContext() { return nullptr; }
 
     /**
      * Rescales the contents of srcRect. The gamma in which the rescaling occurs is controlled by
@@ -167,11 +167,11 @@
      * different size than srcRect. Though, it could be relaxed to allow non-scaling color
      * conversions.
      */
-    std::unique_ptr<GrRenderTargetContext> rescale(const GrImageInfo& info,
-                                                   GrSurfaceOrigin,
-                                                   SkIRect srcRect,
-                                                   SkImage::RescaleGamma,
-                                                   SkFilterQuality);
+    std::unique_ptr<GrSurfaceDrawContext> rescale(const GrImageInfo& info,
+                                                  GrSurfaceOrigin,
+                                                  SkIRect srcRect,
+                                                  SkImage::RescaleGamma,
+                                                  SkFilterQuality);
 
     GrAuditTrail* auditTrail();
 
diff --git a/src/gpu/GrRenderTargetContext.cpp b/src/gpu/GrSurfaceDrawContext.cpp
similarity index 83%
rename from src/gpu/GrRenderTargetContext.cpp
rename to src/gpu/GrSurfaceDrawContext.cpp
index bfa24f7..96ba62a 100644
--- a/src/gpu/GrRenderTargetContext.cpp
+++ b/src/gpu/GrSurfaceDrawContext.cpp
@@ -5,7 +5,7 @@
  * found in the LICENSE file.
  */
 
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 
 #include "include/core/SkDrawable.h"
 #include "include/core/SkVertices.h"
@@ -88,14 +88,13 @@
     GrDrawingManager* fDrawingManager;
 };
 
-std::unique_ptr<GrRenderTargetContext> GrRenderTargetContext::Make(
-        GrRecordingContext* context,
-        GrColorType colorType,
-        sk_sp<SkColorSpace> colorSpace,
-        sk_sp<GrSurfaceProxy> proxy,
-        GrSurfaceOrigin origin,
-        const SkSurfaceProps* surfaceProps,
-        bool flushTimeOpsTask) {
+std::unique_ptr<GrSurfaceDrawContext> GrSurfaceDrawContext::Make(GrRecordingContext* context,
+                                                                 GrColorType colorType,
+                                                                 sk_sp<SkColorSpace> colorSpace,
+                                                                 sk_sp<GrSurfaceProxy> proxy,
+                                                                 GrSurfaceOrigin origin,
+                                                                 const SkSurfaceProps* surfaceProps,
+                                                                 bool flushTimeOpsTask) {
     if (!proxy) {
         return nullptr;
     }
@@ -110,16 +109,16 @@
     GrSurfaceProxyView readView (           proxy, origin,  readSwizzle);
     GrSurfaceProxyView writeView(std::move(proxy), origin, writeSwizzle);
 
-    return std::make_unique<GrRenderTargetContext>(context,
-                                                   std::move(readView),
-                                                   std::move(writeView),
-                                                   colorType,
-                                                   std::move(colorSpace),
-                                                   surfaceProps,
-                                                   flushTimeOpsTask);
+    return std::make_unique<GrSurfaceDrawContext>(context,
+                                                  std::move(readView),
+                                                  std::move(writeView),
+                                                  colorType,
+                                                  std::move(colorSpace),
+                                                  surfaceProps,
+                                                  flushTimeOpsTask);
 }
 
-std::unique_ptr<GrRenderTargetContext> GrRenderTargetContext::Make(
+std::unique_ptr<GrSurfaceDrawContext> GrSurfaceDrawContext::Make(
         GrRecordingContext* context,
         sk_sp<SkColorSpace> colorSpace,
         SkBackingFit fit,
@@ -134,7 +133,7 @@
         SkBudgeted budgeted,
         const SkSurfaceProps* surfaceProps) {
     // It is probably not necessary to check if the context is abandoned here since uses of the
-    // GrRenderTargetContext which need the context will mostly likely fail later on without an
+    // GrSurfaceDrawContext which need the context will mostly likely fail later on without an
     // issue. However having this hear adds some reassurance in case there is a path doesn't handle
     // an abandoned context correctly. It also lets us early out of some extra work.
     if (context->abandoned()) {
@@ -157,17 +156,17 @@
     GrSurfaceProxyView readView (           proxy, origin,  readSwizzle);
     GrSurfaceProxyView writeView(std::move(proxy), origin, writeSwizzle);
 
-    auto rtc = std::make_unique<GrRenderTargetContext>(context,
-                                                       std::move(readView),
-                                                       std::move(writeView),
-                                                       GrColorType::kUnknown,
-                                                       std::move(colorSpace),
-                                                       surfaceProps);
+    auto rtc = std::make_unique<GrSurfaceDrawContext>(context,
+                                                      std::move(readView),
+                                                      std::move(writeView),
+                                                      GrColorType::kUnknown,
+                                                      std::move(colorSpace),
+                                                      surfaceProps);
     rtc->discard();
     return rtc;
 }
 
-std::unique_ptr<GrRenderTargetContext> GrRenderTargetContext::Make(
+std::unique_ptr<GrSurfaceDrawContext> GrSurfaceDrawContext::Make(
         GrRecordingContext* context,
         GrColorType colorType,
         sk_sp<SkColorSpace> colorSpace,
@@ -183,25 +182,24 @@
     if (!format.isValid()) {
         return nullptr;
     }
-    sk_sp<GrTextureProxy> proxy = context->priv().proxyProvider()->createProxy(
-            format,
-            dimensions,
-            GrRenderable::kYes,
-            sampleCnt,
-            mipMapped,
-            fit,
-            budgeted,
-            isProtected);
+    sk_sp<GrTextureProxy> proxy = context->priv().proxyProvider()->createProxy(format,
+                                                                               dimensions,
+                                                                               GrRenderable::kYes,
+                                                                               sampleCnt,
+                                                                               mipMapped,
+                                                                               fit,
+                                                                               budgeted,
+                                                                               isProtected);
     if (!proxy) {
         return nullptr;
     }
 
-    return GrRenderTargetContext::Make(context,
-                                       colorType,
-                                       std::move(colorSpace),
-                                       std::move(proxy),
-                                       origin,
-                                       surfaceProps);
+    return GrSurfaceDrawContext::Make(context,
+                                      colorType,
+                                      std::move(colorSpace),
+                                      std::move(proxy),
+                                      origin,
+                                      surfaceProps);
 }
 
 static inline GrColorType color_type_fallback(GrColorType ct) {
@@ -226,7 +224,7 @@
     }
 }
 
-std::tuple<GrColorType, GrBackendFormat> GrRenderTargetContext::GetFallbackColorTypeAndFormat(
+std::tuple<GrColorType, GrBackendFormat> GrSurfaceDrawContext::GetFallbackColorTypeAndFormat(
         GrImageContext* context, GrColorType colorType, int sampleCnt) {
     auto caps = context->priv().caps();
     do {
@@ -241,7 +239,7 @@
     return {GrColorType::kUnknown, {}};
 }
 
-std::unique_ptr<GrRenderTargetContext> GrRenderTargetContext::MakeWithFallback(
+std::unique_ptr<GrSurfaceDrawContext> GrSurfaceDrawContext::MakeWithFallback(
         GrRecordingContext* context,
         GrColorType colorType,
         sk_sp<SkColorSpace> colorSpace,
@@ -257,11 +255,11 @@
     if (ct == GrColorType::kUnknown) {
         return nullptr;
     }
-    return GrRenderTargetContext::Make(context, ct, colorSpace, fit, dimensions, sampleCnt,
-                                       mipMapped, isProtected, origin, budgeted, surfaceProps);
+    return GrSurfaceDrawContext::Make(context, ct, colorSpace, fit, dimensions, sampleCnt,
+                                      mipMapped, isProtected, origin, budgeted, surfaceProps);
 }
 
-std::unique_ptr<GrRenderTargetContext> GrRenderTargetContext::MakeFromBackendTexture(
+std::unique_ptr<GrSurfaceDrawContext> GrSurfaceDrawContext::MakeFromBackendTexture(
         GrRecordingContext* context,
         GrColorType colorType,
         sk_sp<SkColorSpace> colorSpace,
@@ -278,11 +276,11 @@
         return nullptr;
     }
 
-    return GrRenderTargetContext::Make(context, colorType, std::move(colorSpace), std::move(proxy),
-                                       origin, surfaceProps);
+    return GrSurfaceDrawContext::Make(context, colorType, std::move(colorSpace), std::move(proxy),
+                                      origin, surfaceProps);
 }
 
-std::unique_ptr<GrRenderTargetContext> GrRenderTargetContext::MakeFromBackendRenderTarget(
+std::unique_ptr<GrSurfaceDrawContext> GrSurfaceDrawContext::MakeFromBackendRenderTarget(
         GrRecordingContext* context,
         GrColorType colorType,
         sk_sp<SkColorSpace> colorSpace,
@@ -296,11 +294,11 @@
         return nullptr;
     }
 
-    return GrRenderTargetContext::Make(context, colorType, std::move(colorSpace), std::move(proxy),
-                                       origin, surfaceProps);
+    return GrSurfaceDrawContext::Make(context, colorType, std::move(colorSpace), std::move(proxy),
+                                      origin, surfaceProps);
 }
 
-std::unique_ptr<GrRenderTargetContext> GrRenderTargetContext::MakeFromVulkanSecondaryCB(
+std::unique_ptr<GrSurfaceDrawContext> GrSurfaceDrawContext::MakeFromVulkanSecondaryCB(
         GrRecordingContext* context,
         const SkImageInfo& imageInfo,
         const GrVkDrawableInfo& vkInfo,
@@ -312,22 +310,22 @@
         return nullptr;
     }
 
-    return GrRenderTargetContext::Make(context, SkColorTypeToGrColorType(imageInfo.colorType()),
-                                       imageInfo.refColorSpace(), std::move(proxy),
-                                       kTopLeft_GrSurfaceOrigin, props);
+    return GrSurfaceDrawContext::Make(context, SkColorTypeToGrColorType(imageInfo.colorType()),
+                                      imageInfo.refColorSpace(), std::move(proxy),
+                                      kTopLeft_GrSurfaceOrigin, props);
 }
 
 // In MDB mode the reffing of the 'getLastOpsTask' call's result allows in-progress
 // GrOpsTask to be picked up and added to by renderTargetContexts lower in the call
 // stack. When this occurs with a closed GrOpsTask, a new one will be allocated
 // when the renderTargetContext attempts to use it (via getOpsTask).
-GrRenderTargetContext::GrRenderTargetContext(GrRecordingContext* context,
-                                             GrSurfaceProxyView readView,
-                                             GrSurfaceProxyView writeView,
-                                             GrColorType colorType,
-                                             sk_sp<SkColorSpace> colorSpace,
-                                             const SkSurfaceProps* surfaceProps,
-                                             bool flushTimeOpsTask)
+GrSurfaceDrawContext::GrSurfaceDrawContext(GrRecordingContext* context,
+                                           GrSurfaceProxyView readView,
+                                           GrSurfaceProxyView writeView,
+                                           GrColorType colorType,
+                                           sk_sp<SkColorSpace> colorSpace,
+                                           const SkSurfaceProps* surfaceProps,
+                                           bool flushTimeOpsTask)
         : GrSurfaceContext(context,
                            std::move(readView),
                            {colorType, kPremul_SkAlphaType, std::move(colorSpace)})
@@ -343,18 +341,18 @@
 }
 
 #ifdef SK_DEBUG
-void GrRenderTargetContext::onValidate() const {
+void GrSurfaceDrawContext::onValidate() const {
     if (fOpsTask && !fOpsTask->isClosed()) {
         SkASSERT(this->drawingManager()->getLastRenderTask(fWriteView.proxy()) == fOpsTask.get());
     }
 }
 #endif
 
-GrRenderTargetContext::~GrRenderTargetContext() {
+GrSurfaceDrawContext::~GrSurfaceDrawContext() {
     ASSERT_SINGLE_OWNER
 }
 
-inline GrAAType GrRenderTargetContext::chooseAAType(GrAA aa) {
+inline GrAAType GrSurfaceDrawContext::chooseAAType(GrAA aa) {
     if (GrAA::kNo == aa) {
         // On some devices we cannot disable MSAA if it is enabled so we make the AA type reflect
         // that.
@@ -366,14 +364,14 @@
     return (this->numSamples() > 1) ? GrAAType::kMSAA : GrAAType::kCoverage;
 }
 
-GrMipmapped GrRenderTargetContext::mipmapped() const {
+GrMipmapped GrSurfaceDrawContext::mipmapped() const {
     if (const GrTextureProxy* proxy = this->asTextureProxy()) {
         return proxy->mipmapped();
     }
     return GrMipmapped::kNo;
 }
 
-GrOpsTask* GrRenderTargetContext::getOpsTask() {
+GrOpsTask* GrSurfaceDrawContext::getOpsTask() {
     ASSERT_SINGLE_OWNER
     SkDEBUGCODE(this->validate();)
 
@@ -419,13 +417,13 @@
     return canonicalColor;
 }
 
-void GrRenderTargetContext::drawGlyphRunList(const GrClip* clip,
-                                             const SkMatrixProvider& viewMatrix,
-                                             const SkGlyphRunList& glyphRunList) {
+void GrSurfaceDrawContext::drawGlyphRunList(const GrClip* clip,
+                                            const SkMatrixProvider& viewMatrix,
+                                            const SkGlyphRunList& glyphRunList) {
     ASSERT_SINGLE_OWNER
     RETURN_IF_ABANDONED
     SkDEBUGCODE(this->validate();)
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "drawGlyphRunList", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "drawGlyphRunList", fContext);
 
     // Drawing text can cause us to do inline uploads. This is not supported for wrapped vulkan
     // secondary command buffers because it would require stopping and starting a render pass which
@@ -518,11 +516,11 @@
     }
 }
 
-void GrRenderTargetContext::discard() {
+void GrSurfaceDrawContext::discard() {
     ASSERT_SINGLE_OWNER
     RETURN_IF_ABANDONED
     SkDEBUGCODE(this->validate();)
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "discard", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "discard", fContext);
 
     AutoCheckFlush acf(this->drawingManager());
 
@@ -544,13 +542,13 @@
 // NOTE: We currently pass the premul color unmodified to the gpu, since we assume the GrRTC has a
 // premul alpha type. If we ever support different alpha type render targets, this function should
 // transform the color as appropriate.
-void GrRenderTargetContext::internalClear(const SkIRect* scissor,
-                                          const SkPMColor4f& color,
-                                          bool upgradePartialToFull) {
+void GrSurfaceDrawContext::internalClear(const SkIRect* scissor,
+                                         const SkPMColor4f& color,
+                                         bool upgradePartialToFull) {
     ASSERT_SINGLE_OWNER
     RETURN_IF_ABANDONED
     SkDEBUGCODE(this->validate();)
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "clear", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "clear", fContext);
 
     // There are three ways clears are handled: load ops, native clears, and draws. Load ops are
     // only for fullscreen clears; native clears can be fullscreen or with scissors if the backend
@@ -611,9 +609,9 @@
     }
 }
 
-void GrRenderTargetContext::drawPaint(const GrClip* clip,
-                                      GrPaint&& paint,
-                                      const SkMatrix& viewMatrix) {
+void GrSurfaceDrawContext::drawPaint(const GrClip* clip,
+                                     GrPaint&& paint,
+                                     const SkMatrix& viewMatrix) {
     // Start with the render target, since that is the maximum content we could possibly fill.
     // drawFilledQuad() will automatically restrict it to clip bounds for us if possible.
     SkRect r = this->asSurfaceProxy()->getBoundsRect();
@@ -632,7 +630,7 @@
     }
 }
 
-enum class GrRenderTargetContext::QuadOptimization {
+enum class GrSurfaceDrawContext::QuadOptimization {
     // The rect to draw doesn't intersect clip or render target, so no draw op should be added
     kDiscarded,
     // The rect to draw was converted to some other op and appended to the oplist, so no additional
@@ -647,7 +645,7 @@
     kCropped
 };
 
-GrRenderTargetContext::QuadOptimization GrRenderTargetContext::attemptQuadOptimization(
+GrSurfaceDrawContext::QuadOptimization GrSurfaceDrawContext::attemptQuadOptimization(
         const GrClip* clip, const SkPMColor4f* constColor,
         const GrUserStencilSettings* stencilSettings, GrAA* aa, DrawQuad* quad) {
     // Optimization requirements:
@@ -774,15 +772,15 @@
     return QuadOptimization::kCropped;
 }
 
-void GrRenderTargetContext::drawFilledQuad(const GrClip* clip,
-                                           GrPaint&& paint,
-                                           GrAA aa,
-                                           DrawQuad* quad,
-                                           const GrUserStencilSettings* ss) {
+void GrSurfaceDrawContext::drawFilledQuad(const GrClip* clip,
+                                          GrPaint&& paint,
+                                          GrAA aa,
+                                          DrawQuad* quad,
+                                          const GrUserStencilSettings* ss) {
     ASSERT_SINGLE_OWNER
     RETURN_IF_ABANDONED
     SkDEBUGCODE(this->validate();)
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "drawFilledQuad", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "drawFilledQuad", fContext);
 
     AutoCheckFlush acf(this->drawingManager());
 
@@ -805,22 +803,22 @@
     // All other optimization levels were completely handled inside attempt(), so no extra op needed
 }
 
-void GrRenderTargetContext::drawTexturedQuad(const GrClip* clip,
-                                             GrSurfaceProxyView proxyView,
-                                             SkAlphaType srcAlphaType,
-                                             sk_sp<GrColorSpaceXform> textureXform,
-                                             GrSamplerState::Filter filter,
-                                             GrSamplerState::MipmapMode mm,
-                                             const SkPMColor4f& color,
-                                             SkBlendMode blendMode,
-                                             GrAA aa,
-                                             DrawQuad* quad,
-                                             const SkRect* subset) {
+void GrSurfaceDrawContext::drawTexturedQuad(const GrClip* clip,
+                                            GrSurfaceProxyView proxyView,
+                                            SkAlphaType srcAlphaType,
+                                            sk_sp<GrColorSpaceXform> textureXform,
+                                            GrSamplerState::Filter filter,
+                                            GrSamplerState::MipmapMode mm,
+                                            const SkPMColor4f& color,
+                                            SkBlendMode blendMode,
+                                            GrAA aa,
+                                            DrawQuad* quad,
+                                            const SkRect* subset) {
     ASSERT_SINGLE_OWNER
     RETURN_IF_ABANDONED
     SkDEBUGCODE(this->validate();)
     SkASSERT(proxyView.asTextureProxy());
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "drawTexturedQuad", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "drawTexturedQuad", fContext);
 
     AutoCheckFlush acf(this->drawingManager());
 
@@ -845,19 +843,19 @@
     }
 }
 
-void GrRenderTargetContext::drawRect(const GrClip* clip,
-                                     GrPaint&& paint,
-                                     GrAA aa,
-                                     const SkMatrix& viewMatrix,
-                                     const SkRect& rect,
-                                     const GrStyle* style) {
+void GrSurfaceDrawContext::drawRect(const GrClip* clip,
+                                    GrPaint&& paint,
+                                    GrAA aa,
+                                    const SkMatrix& viewMatrix,
+                                    const SkRect& rect,
+                                    const GrStyle* style) {
     if (!style) {
         style = &GrStyle::SimpleFill();
     }
     ASSERT_SINGLE_OWNER
     RETURN_IF_ABANDONED
     SkDEBUGCODE(this->validate();)
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "drawRect", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "drawRect", fContext);
 
     // Path effects should've been devolved to a path in SkGpuDevice
     SkASSERT(!style->pathEffect());
@@ -889,20 +887,23 @@
                                      GrStyledShape(rect, *style));
 }
 
-void GrRenderTargetContext::drawQuadSet(const GrClip* clip, GrPaint&& paint, GrAA aa,
-                                        const SkMatrix& viewMatrix, const QuadSetEntry quads[],
-                                        int cnt) {
+void GrSurfaceDrawContext::drawQuadSet(const GrClip* clip,
+                                       GrPaint&& paint,
+                                       GrAA aa,
+                                       const SkMatrix& viewMatrix,
+                                       const QuadSetEntry quads[],
+                                       int cnt) {
     GrAAType aaType = this->chooseAAType(aa);
 
     GrFillRectOp::AddFillRectOps(this, clip, fContext, std::move(paint), aaType, viewMatrix,
                                  quads, cnt);
 }
 
-int GrRenderTargetContext::maxWindowRectangles() const {
+int GrSurfaceDrawContext::maxWindowRectangles() const {
     return this->asRenderTargetProxy()->maxWindowRectangles(*this->caps());
 }
 
-GrOpsTask::CanDiscardPreviousOps GrRenderTargetContext::canDiscardPreviousOpsOnFullClear() const {
+GrOpsTask::CanDiscardPreviousOps GrSurfaceDrawContext::canDiscardPreviousOpsOnFullClear() const {
 #if GR_TEST_UTILS
     if (fPreserveOpsOnFullClear_TestingOnly) {
         return GrOpsTask::CanDiscardPreviousOps::kNo;
@@ -917,7 +918,7 @@
     return GrOpsTask::CanDiscardPreviousOps(!fNumStencilSamples);
 }
 
-void GrRenderTargetContext::setNeedsStencil(bool useMixedSamplesIfNotMSAA) {
+void GrSurfaceDrawContext::setNeedsStencil(bool useMixedSamplesIfNotMSAA) {
     // Don't clear stencil until after we've changed fNumStencilSamples. This ensures we don't loop
     // forever in the event that there are driver bugs and we need to clear as a draw.
     bool hasInitializedStencil = fNumStencilSamples > 0;
@@ -947,7 +948,7 @@
     }
 }
 
-void GrRenderTargetContext::internalStencilClear(const SkIRect* scissor, bool insideStencilMask) {
+void GrSurfaceDrawContext::internalStencilClear(const SkIRect* scissor, bool insideStencilMask) {
     this->setNeedsStencil(/* useMixedSamplesIfNotMSAA = */ false);
 
     GrScissorState scissorState(this->asSurfaceProxy()->backingStoreDimensions());
@@ -972,14 +973,14 @@
     }
 }
 
-void GrRenderTargetContext::stencilPath(const GrHardClip* clip,
-                                        GrAA doStencilMSAA,
-                                        const SkMatrix& viewMatrix,
-                                        sk_sp<const GrPath> path) {
+void GrSurfaceDrawContext::stencilPath(const GrHardClip* clip,
+                                       GrAA doStencilMSAA,
+                                       const SkMatrix& viewMatrix,
+                                       sk_sp<const GrPath> path) {
     ASSERT_SINGLE_OWNER
     RETURN_IF_ABANDONED
     SkDEBUGCODE(this->validate();)
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "stencilPath", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "stencilPath", fContext);
 
     // TODO: extract portions of checkDraw that are relevant to path stenciling.
     SkASSERT(path);
@@ -1017,21 +1018,21 @@
     this->addOp(std::move(op));
 }
 
-void GrRenderTargetContext::drawTextureSet(const GrClip* clip,
-                                           TextureSetEntry set[],
-                                           int cnt,
-                                           int proxyRunCnt,
-                                           GrSamplerState::Filter filter,
-                                           GrSamplerState::MipmapMode mm,
-                                           SkBlendMode mode,
-                                           GrAA aa,
-                                           SkCanvas::SrcRectConstraint constraint,
-                                           const SkMatrix& viewMatrix,
-                                           sk_sp<GrColorSpaceXform> texXform) {
+void GrSurfaceDrawContext::drawTextureSet(const GrClip* clip,
+                                          TextureSetEntry set[],
+                                          int cnt,
+                                          int proxyRunCnt,
+                                          GrSamplerState::Filter filter,
+                                          GrSamplerState::MipmapMode mm,
+                                          SkBlendMode mode,
+                                          GrAA aa,
+                                          SkCanvas::SrcRectConstraint constraint,
+                                          const SkMatrix& viewMatrix,
+                                          sk_sp<GrColorSpaceXform> texXform) {
     ASSERT_SINGLE_OWNER
     RETURN_IF_ABANDONED
     SkDEBUGCODE(this->validate();)
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "drawTextureSet", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "drawTextureSet", fContext);
 
     // Create the minimum number of GrTextureOps needed to draw this set. Individual
     // GrTextureOps can rebind the texture between draws thus avoiding GrPaint (re)creation.
@@ -1044,16 +1045,16 @@
                                   mode, aaType, constraint, viewMatrix, std::move(texXform));
 }
 
-void GrRenderTargetContext::drawVertices(const GrClip* clip,
-                                         GrPaint&& paint,
-                                         const SkMatrixProvider& matrixProvider,
-                                         sk_sp<SkVertices> vertices,
-                                         GrPrimitiveType* overridePrimType,
-                                         const SkRuntimeEffect* effect) {
+void GrSurfaceDrawContext::drawVertices(const GrClip* clip,
+                                        GrPaint&& paint,
+                                        const SkMatrixProvider& matrixProvider,
+                                        sk_sp<SkVertices> vertices,
+                                        GrPrimitiveType* overridePrimType,
+                                        const SkRuntimeEffect* effect) {
     ASSERT_SINGLE_OWNER
     RETURN_IF_ABANDONED
     SkDEBUGCODE(this->validate();)
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "drawVertices", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "drawVertices", fContext);
 
     AutoCheckFlush acf(this->drawingManager());
 
@@ -1068,17 +1069,17 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-void GrRenderTargetContext::drawAtlas(const GrClip* clip,
-                                      GrPaint&& paint,
-                                      const SkMatrix& viewMatrix,
-                                      int spriteCount,
-                                      const SkRSXform xform[],
-                                      const SkRect texRect[],
-                                      const SkColor colors[]) {
+void GrSurfaceDrawContext::drawAtlas(const GrClip* clip,
+                                     GrPaint&& paint,
+                                     const SkMatrix& viewMatrix,
+                                     int spriteCount,
+                                     const SkRSXform xform[],
+                                     const SkRect texRect[],
+                                     const SkColor colors[]) {
     ASSERT_SINGLE_OWNER
     RETURN_IF_ABANDONED
     SkDEBUGCODE(this->validate();)
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "drawAtlas", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "drawAtlas", fContext);
 
     AutoCheckFlush acf(this->drawingManager());
 
@@ -1090,16 +1091,16 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-void GrRenderTargetContext::drawRRect(const GrClip* origClip,
-                                      GrPaint&& paint,
-                                      GrAA aa,
-                                      const SkMatrix& viewMatrix,
-                                      const SkRRect& rrect,
-                                      const GrStyle& style) {
+void GrSurfaceDrawContext::drawRRect(const GrClip* origClip,
+                                     GrPaint&& paint,
+                                     GrAA aa,
+                                     const SkMatrix& viewMatrix,
+                                     const SkRRect& rrect,
+                                     const GrStyle& style) {
     ASSERT_SINGLE_OWNER
     RETURN_IF_ABANDONED
     SkDEBUGCODE(this->validate();)
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "drawRRect", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "drawRRect", fContext);
 
     SkASSERT(!style.pathEffect()); // this should've been devolved to a path in SkGpuDevice
 
@@ -1189,16 +1190,16 @@
     return result;
 }
 
-bool GrRenderTargetContext::drawFastShadow(const GrClip* clip,
-                                           const SkMatrix& viewMatrix,
-                                           const SkPath& path,
-                                           const SkDrawShadowRec& rec) {
+bool GrSurfaceDrawContext::drawFastShadow(const GrClip* clip,
+                                          const SkMatrix& viewMatrix,
+                                          const SkPath& path,
+                                          const SkDrawShadowRec& rec) {
     ASSERT_SINGLE_OWNER
     if (fContext->abandoned()) {
         return true;
     }
     SkDEBUGCODE(this->validate();)
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "drawFastShadow", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "drawFastShadow", fContext);
 
     // check z plane
     bool tiltZPlane = SkToBool(!SkScalarNearlyZero(rec.fZPlaneParams.fX) ||
@@ -1372,7 +1373,7 @@
                                                spotColor,
                                                viewMatrix,
                                                spotShadowRRect,
-                                                 2.0f * devSpaceSpotBlur,
+                                               2.0f * devSpaceSpotBlur,
                                                insetWidth);
         if (op) {
             this->addDrawOp(clip, std::move(op));
@@ -1384,12 +1385,12 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-bool GrRenderTargetContext::drawFilledDRRect(const GrClip* clip,
-                                             GrPaint&& paint,
-                                             GrAA aa,
-                                             const SkMatrix& viewMatrix,
-                                             const SkRRect& origOuter,
-                                             const SkRRect& origInner) {
+bool GrSurfaceDrawContext::drawFilledDRRect(const GrClip* clip,
+                                            GrPaint&& paint,
+                                            GrAA aa,
+                                            const SkMatrix& viewMatrix,
+                                            const SkRRect& origOuter,
+                                            const SkRRect& origInner) {
     SkASSERT(!origInner.isEmpty());
     SkASSERT(!origOuter.isEmpty());
 
@@ -1472,16 +1473,16 @@
     return true;
 }
 
-void GrRenderTargetContext::drawDRRect(const GrClip* clip,
-                                       GrPaint&& paint,
-                                       GrAA aa,
-                                       const SkMatrix& viewMatrix,
-                                       const SkRRect& outer,
-                                       const SkRRect& inner) {
+void GrSurfaceDrawContext::drawDRRect(const GrClip* clip,
+                                      GrPaint&& paint,
+                                      GrAA aa,
+                                      const SkMatrix& viewMatrix,
+                                      const SkRRect& outer,
+                                      const SkRRect& inner) {
     ASSERT_SINGLE_OWNER
     RETURN_IF_ABANDONED
     SkDEBUGCODE(this->validate();)
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "drawDRRect", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "drawDRRect", fContext);
 
     SkASSERT(!outer.isEmpty());
     SkASSERT(!inner.isEmpty());
@@ -1503,17 +1504,17 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-void GrRenderTargetContext::drawRegion(const GrClip* clip,
-                                       GrPaint&& paint,
-                                       GrAA aa,
-                                       const SkMatrix& viewMatrix,
-                                       const SkRegion& region,
-                                       const GrStyle& style,
-                                       const GrUserStencilSettings* ss) {
+void GrSurfaceDrawContext::drawRegion(const GrClip* clip,
+                                      GrPaint&& paint,
+                                      GrAA aa,
+                                      const SkMatrix& viewMatrix,
+                                      const SkRegion& region,
+                                      const GrStyle& style,
+                                      const GrUserStencilSettings* ss) {
     ASSERT_SINGLE_OWNER
     RETURN_IF_ABANDONED
     SkDEBUGCODE(this->validate();)
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "drawRegion", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "drawRegion", fContext);
 
     if (GrAA::kYes == aa) {
         // GrRegionOp performs no antialiasing but is much faster, so here we check the matrix
@@ -1539,16 +1540,16 @@
     this->addDrawOp(clip, std::move(op));
 }
 
-void GrRenderTargetContext::drawOval(const GrClip* clip,
-                                     GrPaint&& paint,
-                                     GrAA aa,
-                                     const SkMatrix& viewMatrix,
-                                     const SkRect& oval,
-                                     const GrStyle& style) {
+void GrSurfaceDrawContext::drawOval(const GrClip* clip,
+                                    GrPaint&& paint,
+                                    GrAA aa,
+                                    const SkMatrix& viewMatrix,
+                                    const SkRect& oval,
+                                    const GrStyle& style) {
     ASSERT_SINGLE_OWNER
     RETURN_IF_ABANDONED
     SkDEBUGCODE(this->validate();)
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "drawOval", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "drawOval", fContext);
 
     const SkStrokeRec& stroke = style.strokeRec();
 
@@ -1600,19 +1601,19 @@
             GrStyledShape(SkRRect::MakeOval(oval), SkPathDirection::kCW, 2, false, style));
 }
 
-void GrRenderTargetContext::drawArc(const GrClip* clip,
-                                    GrPaint&& paint,
-                                    GrAA aa,
-                                    const SkMatrix& viewMatrix,
-                                    const SkRect& oval,
-                                    SkScalar startAngle,
-                                    SkScalar sweepAngle,
-                                    bool useCenter,
-                                    const GrStyle& style) {
+void GrSurfaceDrawContext::drawArc(const GrClip* clip,
+                                   GrPaint&& paint,
+                                   GrAA aa,
+                                   const SkMatrix& viewMatrix,
+                                   const SkRect& oval,
+                                   SkScalar startAngle,
+                                   SkScalar sweepAngle,
+                                   bool useCenter,
+                                   const GrStyle& style) {
     ASSERT_SINGLE_OWNER
     RETURN_IF_ABANDONED
     SkDEBUGCODE(this->validate();)
-            GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "drawArc", fContext);
+            GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "drawArc", fContext);
 
     AutoCheckFlush acf(this->drawingManager());
 
@@ -1639,19 +1640,19 @@
             GrStyledShape::MakeArc(oval, startAngle, sweepAngle, useCenter, style));
 }
 
-void GrRenderTargetContext::drawImageLattice(const GrClip* clip,
-                                             GrPaint&& paint,
-                                             const SkMatrix& viewMatrix,
-                                             GrSurfaceProxyView view,
-                                             SkAlphaType alphaType,
-                                             sk_sp<GrColorSpaceXform> csxf,
-                                             GrSamplerState::Filter filter,
-                                             std::unique_ptr<SkLatticeIter> iter,
-                                             const SkRect& dst) {
+void GrSurfaceDrawContext::drawImageLattice(const GrClip* clip,
+                                            GrPaint&& paint,
+                                            const SkMatrix& viewMatrix,
+                                            GrSurfaceProxyView view,
+                                            SkAlphaType alphaType,
+                                            sk_sp<GrColorSpaceXform> csxf,
+                                            GrSamplerState::Filter filter,
+                                            std::unique_ptr<SkLatticeIter> iter,
+                                            const SkRect& dst) {
     ASSERT_SINGLE_OWNER
     RETURN_IF_ABANDONED
     SkDEBUGCODE(this->validate();)
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "drawImageLattice", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "drawImageLattice", fContext);
 
     AutoCheckFlush acf(this->drawingManager());
 
@@ -1661,20 +1662,20 @@
     this->addDrawOp(clip, std::move(op));
 }
 
-void GrRenderTargetContext::drawDrawable(std::unique_ptr<SkDrawable::GpuDrawHandler> drawable,
+void GrSurfaceDrawContext::drawDrawable(std::unique_ptr<SkDrawable::GpuDrawHandler> drawable,
                                          const SkRect& bounds) {
     GrOp::Owner op(GrDrawableOp::Make(fContext, std::move(drawable), bounds));
     SkASSERT(op);
     this->addOp(std::move(op));
 }
 
-bool GrRenderTargetContext::waitOnSemaphores(int numSemaphores,
-                                             const GrBackendSemaphore waitSemaphores[],
-                                             bool deleteSemaphoresAfterWait) {
+bool GrSurfaceDrawContext::waitOnSemaphores(int numSemaphores,
+                                            const GrBackendSemaphore waitSemaphores[],
+                                            bool deleteSemaphoresAfterWait) {
     ASSERT_SINGLE_OWNER
     RETURN_FALSE_IF_ABANDONED
     SkDEBUGCODE(this->validate();)
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "waitOnSemaphores", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "waitOnSemaphores", fContext);
 
     AutoCheckFlush acf(this->drawingManager());
 
@@ -1703,31 +1704,31 @@
     return true;
 }
 
-void GrRenderTargetContext::drawPath(const GrClip* clip,
-                                     GrPaint&& paint,
-                                     GrAA aa,
-                                     const SkMatrix& viewMatrix,
-                                     const SkPath& path,
-                                     const GrStyle& style) {
+void GrSurfaceDrawContext::drawPath(const GrClip* clip,
+                                    GrPaint&& paint,
+                                    GrAA aa,
+                                    const SkMatrix& viewMatrix,
+                                    const SkPath& path,
+                                    const GrStyle& style) {
     ASSERT_SINGLE_OWNER
     RETURN_IF_ABANDONED
     SkDEBUGCODE(this->validate();)
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "drawPath", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "drawPath", fContext);
 
     GrStyledShape shape(path, style);
 
     this->drawShape(clip, std::move(paint), aa, viewMatrix, shape);
 }
 
-void GrRenderTargetContext::drawShape(const GrClip* clip,
-                                      GrPaint&& paint,
-                                      GrAA aa,
-                                      const SkMatrix& viewMatrix,
-                                      const GrStyledShape& shape) {
+void GrSurfaceDrawContext::drawShape(const GrClip* clip,
+                                     GrPaint&& paint,
+                                     GrAA aa,
+                                     const SkMatrix& viewMatrix,
+                                     const GrStyledShape& shape) {
     ASSERT_SINGLE_OWNER
     RETURN_IF_ABANDONED
     SkDEBUGCODE(this->validate();)
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "drawShape", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "drawShape", fContext);
 
     if (shape.isEmpty()) {
         if (shape.inverseFilled()) {
@@ -1777,21 +1778,21 @@
                                      /* attempt fallback */ false);
 }
 
-static SkIRect get_clip_bounds(const GrRenderTargetContext* rtc, const GrClip* clip) {
+static SkIRect get_clip_bounds(const GrSurfaceDrawContext* rtc, const GrClip* clip) {
     return clip ? clip->getConservativeBounds() : SkIRect::MakeWH(rtc->width(), rtc->height());
 }
 
-bool GrRenderTargetContext::drawAndStencilPath(const GrHardClip* clip,
-                                               const GrUserStencilSettings* ss,
-                                               SkRegion::Op op,
-                                               bool invert,
-                                               GrAA aa,
-                                               const SkMatrix& viewMatrix,
-                                               const SkPath& path) {
+bool GrSurfaceDrawContext::drawAndStencilPath(const GrHardClip* clip,
+                                              const GrUserStencilSettings* ss,
+                                              SkRegion::Op op,
+                                              bool invert,
+                                              GrAA aa,
+                                              const SkMatrix& viewMatrix,
+                                              const SkPath& path) {
     ASSERT_SINGLE_OWNER
     RETURN_FALSE_IF_ABANDONED
     SkDEBUGCODE(this->validate();)
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "drawAndStencilPath", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "drawAndStencilPath", fContext);
 
     if (path.isEmpty() && path.isInverseFillType()) {
         GrPaint paint;
@@ -1849,7 +1850,7 @@
     return true;
 }
 
-SkBudgeted GrRenderTargetContext::isBudgeted() const {
+SkBudgeted GrSurfaceDrawContext::isBudgeted() const {
     ASSERT_SINGLE_OWNER
 
     if (fContext->abandoned()) {
@@ -1861,15 +1862,15 @@
     return this->asSurfaceProxy()->isBudgeted();
 }
 
-void GrRenderTargetContext::drawShapeUsingPathRenderer(const GrClip* clip,
-                                                       GrPaint&& paint,
-                                                       GrAA aa,
-                                                       const SkMatrix& viewMatrix,
-                                                       const GrStyledShape& originalShape,
-                                                       bool attemptShapeFallback) {
+void GrSurfaceDrawContext::drawShapeUsingPathRenderer(const GrClip* clip,
+                                                      GrPaint&& paint,
+                                                      GrAA aa,
+                                                      const SkMatrix& viewMatrix,
+                                                      const GrStyledShape& originalShape,
+                                                      bool attemptShapeFallback) {
     ASSERT_SINGLE_OWNER
     RETURN_IF_ABANDONED
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "internalDrawPath", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "internalDrawPath", fContext);
 
     if (!viewMatrix.isFinite() || !originalShape.bounds().isFinite()) {
         return;
@@ -1983,14 +1984,15 @@
     }
 }
 
-void GrRenderTargetContext::addOp(GrOp::Owner op) {
+void GrSurfaceDrawContext::addOp(GrOp::Owner op) {
     GrDrawingManager* drawingMgr = this->drawingManager();
     this->getOpsTask()->addOp(drawingMgr,
             std::move(op), GrTextureResolveManager(drawingMgr), *this->caps());
 }
 
-void GrRenderTargetContext::addDrawOp(const GrClip* clip, GrOp::Owner op,
-                                      const std::function<WillAddOpFn>& willAddFn) {
+void GrSurfaceDrawContext::addDrawOp(const GrClip* clip,
+                                     GrOp::Owner op,
+                                     const std::function<WillAddOpFn>& willAddFn) {
     ASSERT_SINGLE_OWNER
     if (fContext->abandoned()) {
         return;
@@ -1998,7 +2000,7 @@
     GrDrawOp* drawOp = (GrDrawOp*)op.get();
     SkDEBUGCODE(this->validate();)
     SkDEBUGCODE(drawOp->fAddDrawOpCalled = true;)
-    GR_CREATE_TRACE_MARKER_CONTEXT("GrRenderTargetContext", "addDrawOp", fContext);
+    GR_CREATE_TRACE_MARKER_CONTEXT("GrSurfaceDrawContext", "addDrawOp", fContext);
 
     // Setup clip
     SkRect bounds;
@@ -2063,8 +2065,8 @@
                        *this->caps());
 }
 
-bool GrRenderTargetContext::setupDstProxyView(const GrOp& op,
-                                              GrXferProcessor::DstProxyView* dstProxyView) {
+bool GrSurfaceDrawContext::setupDstProxyView(const GrOp& op,
+                                             GrXferProcessor::DstProxyView* dstProxyView) {
     // If we are wrapping a vulkan secondary command buffer, we can't make a dst copy because we
     // don't actually have a VkImage to make a copy of. Additionally we don't have the power to
     // start and stop the render pass in order to make the copy.
@@ -2124,8 +2126,9 @@
     return true;
 }
 
-bool GrRenderTargetContext::blitTexture(GrSurfaceProxyView view, const SkIRect& srcRect,
-                                        const SkIPoint& dstPoint) {
+bool GrSurfaceDrawContext::blitTexture(GrSurfaceProxyView view,
+                                       const SkIRect& srcRect,
+                                       const SkIPoint& dstPoint) {
     SkASSERT(view.asTextureProxy());
     SkIRect clippedSrcRect;
     SkIPoint clippedDstPoint;
diff --git a/src/gpu/GrRenderTargetContext.h b/src/gpu/GrSurfaceDrawContext.h
similarity index 90%
rename from src/gpu/GrRenderTargetContext.h
rename to src/gpu/GrSurfaceDrawContext.h
index fd9d647..87638d2 100644
--- a/src/gpu/GrRenderTargetContext.h
+++ b/src/gpu/GrSurfaceDrawContext.h
@@ -5,8 +5,8 @@
  * found in the LICENSE file.
  */
 
-#ifndef GrRenderTargetContext_DEFINED
-#define GrRenderTargetContext_DEFINED
+#ifndef GrSurfaceDrawContext_DEFINED
+#define GrSurfaceDrawContext_DEFINED
 
 #include "include/core/SkCanvas.h"
 #include "include/core/SkDrawable.h"
@@ -58,47 +58,46 @@
 /**
  * A helper object to orchestrate commands (draws, etc...) for GrSurfaces that are GrRenderTargets.
  */
-class GrRenderTargetContext : public GrSurfaceContext {
+class GrSurfaceDrawContext : public GrSurfaceContext {
 public:
-    static std::unique_ptr<GrRenderTargetContext> Make(GrRecordingContext*,
-                                                       GrColorType,
-                                                       sk_sp<SkColorSpace>,
-                                                       sk_sp<GrSurfaceProxy>,
-                                                       GrSurfaceOrigin,
-                                                       const SkSurfaceProps*,
-                                                       bool flushTimeOpsTask = false);
+    static std::unique_ptr<GrSurfaceDrawContext> Make(GrRecordingContext*,
+                                                      GrColorType,
+                                                      sk_sp<SkColorSpace>,
+                                                      sk_sp<GrSurfaceProxy>,
+                                                      GrSurfaceOrigin,
+                                                      const SkSurfaceProps*,
+                                                      bool flushTimeOpsTask = false);
 
     /* Uses the default texture format for the color type */
-    static std::unique_ptr<GrRenderTargetContext> Make(
-            GrRecordingContext*,
-            GrColorType,
-            sk_sp<SkColorSpace>,
-            SkBackingFit,
-            SkISize dimensions,
-            int sampleCnt = 1,
-            GrMipmapped = GrMipmapped::kNo,
-            GrProtected = GrProtected::kNo,
-            GrSurfaceOrigin = kBottomLeft_GrSurfaceOrigin,
-            SkBudgeted = SkBudgeted::kYes,
-            const SkSurfaceProps* = nullptr);
+    static std::unique_ptr<GrSurfaceDrawContext> Make(GrRecordingContext*,
+                                                      GrColorType,
+                                                      sk_sp<SkColorSpace>,
+                                                      SkBackingFit,
+                                                      SkISize dimensions,
+                                                      int sampleCnt = 1,
+                                                      GrMipmapped = GrMipmapped::kNo,
+                                                      GrProtected = GrProtected::kNo,
+                                                      GrSurfaceOrigin = kBottomLeft_GrSurfaceOrigin,
+                                                      SkBudgeted = SkBudgeted::kYes,
+                                                      const SkSurfaceProps* = nullptr);
 
     /**
      * Takes custom swizzles rather than determining swizzles from color type and format.
      * It will have color type kUnknown.
      */
-    static std::unique_ptr<GrRenderTargetContext> Make(GrRecordingContext*,
-                                                       sk_sp<SkColorSpace>,
-                                                       SkBackingFit,
-                                                       SkISize dimensions,
-                                                       const GrBackendFormat&,
-                                                       int sampleCnt,
-                                                       GrMipmapped,
-                                                       GrProtected,
-                                                       GrSwizzle readSwizzle,
-                                                       GrSwizzle writeSwizzle,
-                                                       GrSurfaceOrigin,
-                                                       SkBudgeted,
-                                                       const SkSurfaceProps*);
+    static std::unique_ptr<GrSurfaceDrawContext> Make(GrRecordingContext*,
+                                                      sk_sp<SkColorSpace>,
+                                                      SkBackingFit,
+                                                      SkISize dimensions,
+                                                      const GrBackendFormat&,
+                                                      int sampleCnt,
+                                                      GrMipmapped,
+                                                      GrProtected,
+                                                      GrSwizzle readSwizzle,
+                                                      GrSwizzle writeSwizzle,
+                                                      GrSurfaceOrigin,
+                                                      SkBudgeted,
+                                                      const SkSurfaceProps*);
 
     static std::tuple<GrColorType, GrBackendFormat> GetFallbackColorTypeAndFormat(GrImageContext*,
                                                                                   GrColorType,
@@ -108,7 +107,7 @@
     // fails. The fallback GrColorType will have at least the number of channels and precision per
     // channel as the passed in GrColorType. It may also swizzle the changes (e.g., BGRA -> RGBA).
     // SRGB-ness will be preserved.
-    static std::unique_ptr<GrRenderTargetContext> MakeWithFallback(
+    static std::unique_ptr<GrSurfaceDrawContext> MakeWithFallback(
             GrRecordingContext*,
             GrColorType,
             sk_sp<SkColorSpace>,
@@ -125,13 +124,13 @@
     typedef void* ReleaseContext;
     typedef void (*ReleaseProc)(ReleaseContext);
 
-    // Creates a GrRenderTargetContext that wraps the passed in GrBackendTexture.
-    static std::unique_ptr<GrRenderTargetContext> MakeFromBackendTexture(
+    // Creates a GrSurfaceDrawContext that wraps the passed in GrBackendTexture.
+    static std::unique_ptr<GrSurfaceDrawContext> MakeFromBackendTexture(
             GrRecordingContext*, GrColorType, sk_sp<SkColorSpace>, const GrBackendTexture&,
             int sampleCnt, GrSurfaceOrigin, const SkSurfaceProps*,
             sk_sp<GrRefCntedCallback> releaseHelper);
 
-    static std::unique_ptr<GrRenderTargetContext> MakeFromBackendRenderTarget(
+    static std::unique_ptr<GrSurfaceDrawContext> MakeFromBackendRenderTarget(
             GrRecordingContext*,
             GrColorType,
             sk_sp<SkColorSpace>,
@@ -140,15 +139,19 @@
             const SkSurfaceProps*,
             sk_sp<GrRefCntedCallback> releaseHelper);
 
-    static std::unique_ptr<GrRenderTargetContext> MakeFromVulkanSecondaryCB(
+    static std::unique_ptr<GrSurfaceDrawContext> MakeFromVulkanSecondaryCB(
             GrRecordingContext*, const SkImageInfo&, const GrVkDrawableInfo&,
             const SkSurfaceProps*);
 
-    GrRenderTargetContext(GrRecordingContext*, GrSurfaceProxyView readView,
-                          GrSurfaceProxyView writeView, GrColorType, sk_sp<SkColorSpace>,
-                          const SkSurfaceProps*, bool flushTimeOpsTask = false);
+    GrSurfaceDrawContext(GrRecordingContext*,
+                         GrSurfaceProxyView readView,
+                         GrSurfaceProxyView writeView,
+                         GrColorType,
+                         sk_sp<SkColorSpace>,
+                         const SkSurfaceProps*,
+                         bool flushTimeOpsTask = false);
 
-    ~GrRenderTargetContext() override;
+    ~GrSurfaceDrawContext() override;
 
     /**
      * Provides a perfomance hint that the render target's contents are allowed
@@ -667,7 +670,7 @@
     bool refsWrappedObjects() const { return this->asRenderTargetProxy()->refsWrappedObjects(); }
 
     /**
-     *  The next time this GrRenderTargetContext is flushed, the gpu will wait on the passed in
+     *  The next time this GrSurfaceDrawContext is flushed, the gpu will wait on the passed in
      *  semaphores before executing any commands.
      */
     bool waitOnSemaphores(int numSemaphores, const GrBackendSemaphore waitSemaphores[],
@@ -686,7 +689,7 @@
     // instantiated.
     GrRenderTarget* accessRenderTarget() { return this->asSurfaceProxy()->peekRenderTarget(); }
 
-    GrRenderTargetContext* asRenderTargetContext() override { return this; }
+    GrSurfaceDrawContext* asRenderTargetContext() override { return this; }
 
 #if GR_TEST_UTILS
     void testingOnly_SetPreserveOpsOnFullClear() { fPreserveOpsOnFullClear_TestingOnly = true; }
diff --git a/src/gpu/GrSurfaceProxy.cpp b/src/gpu/GrSurfaceProxy.cpp
index 78e5ac8..a588da3 100644
--- a/src/gpu/GrSurfaceProxy.cpp
+++ b/src/gpu/GrSurfaceProxy.cpp
@@ -18,8 +18,8 @@
 #include "src/gpu/GrOpsTask.h"
 #include "src/gpu/GrProxyProvider.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrSurface.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTexture.h"
 #include "src/gpu/GrTextureRenderTargetProxy.h"
 
@@ -291,19 +291,19 @@
         }
     }
     if (src->asTextureProxy()) {
-        auto dstContext = GrRenderTargetContext::Make(context,
-                                                      nullptr,
-                                                      fit,
-                                                      {width, height},
-                                                      format,
-                                                      /* sample count*/ 1,
-                                                      mipMapped,
-                                                      src->isProtected(),
-                                                      GrSwizzle::RGBA(),
-                                                      GrSwizzle::RGBA(),
-                                                      origin,
-                                                      budgeted,
-                                                      /*surface props*/ nullptr);
+        auto dstContext = GrSurfaceDrawContext::Make(context,
+                                                     nullptr,
+                                                     fit,
+                                                     {width, height},
+                                                     format,
+                                                     /* sample count*/ 1,
+                                                     mipMapped,
+                                                     src->isProtected(),
+                                                     GrSwizzle::RGBA(),
+                                                     GrSwizzle::RGBA(),
+                                                     origin,
+                                                     budgeted,
+                                                     /*surface props*/ nullptr);
         GrSurfaceProxyView view(sk_ref_sp(src), origin, GrSwizzle::RGBA());
         if (dstContext && dstContext->blitTexture(std::move(view), srcRect, dstPoint)) {
             return dstContext->asSurfaceProxyRef();
diff --git a/src/gpu/GrTextureProducer.cpp b/src/gpu/GrTextureProducer.cpp
index ecce150..6de4efd 100644
--- a/src/gpu/GrTextureProducer.cpp
+++ b/src/gpu/GrTextureProducer.cpp
@@ -14,7 +14,7 @@
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrProxyProvider.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTextureProxy.h"
 #include "src/gpu/SkGr.h"
 #include "src/gpu/effects/GrBicubicEffect.h"
diff --git a/src/gpu/GrThreadSafeCache.cpp b/src/gpu/GrThreadSafeCache.cpp
index c3b01e1..61749a5 100644
--- a/src/gpu/GrThreadSafeCache.cpp
+++ b/src/gpu/GrThreadSafeCache.cpp
@@ -10,8 +10,8 @@
 #include "include/gpu/GrDirectContext.h"
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrProxyProvider.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrResourceCache.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 
 GrThreadSafeCache::VertexData::~VertexData () {
     this->reset();
@@ -325,7 +325,8 @@
     GrProxyProvider* proxyProvider = dContext->priv().proxyProvider();
 
     constexpr int kSampleCnt = 1;
-    auto [newCT, format] = GrRenderTargetContext::GetFallbackColorTypeAndFormat(
+    auto [newCT, format] =
+            GrSurfaceDrawContext::GetFallbackColorTypeAndFormat(
             dContext, origCT, kSampleCnt);
 
     if (newCT == GrColorType::kUnknown) {
@@ -362,7 +363,7 @@
             GrSurfaceProxy::UseAllocator::kYes);
 
     // TODO: It seems like this 'newCT' usage should be 'origCT' but this is
-    // what GrRenderTargetContext::MakeWithFallback does
+    // what GrSurfaceDrawContext::MakeWithFallback does
     GrSwizzle swizzle = dContext->priv().caps()->getReadSwizzle(format, newCT);
 
     return {{std::move(proxy), origin, swizzle}, std::move(trampoline)};
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
index c228410..c7ee305 100644
--- a/src/gpu/SkGpuDevice.cpp
+++ b/src/gpu/SkGpuDevice.cpp
@@ -76,7 +76,7 @@
 }
 
 sk_sp<SkGpuDevice> SkGpuDevice::Make(GrRecordingContext* context,
-                                     std::unique_ptr<GrRenderTargetContext> renderTargetContext,
+                                     std::unique_ptr<GrSurfaceDrawContext> renderTargetContext,
                                      InitContents init) {
     if (!renderTargetContext || context->abandoned()) {
         return nullptr;
@@ -111,7 +111,7 @@
     return sk_sp<SkGpuDevice>(new SkGpuDevice(context, std::move(renderTargetContext), flags));
 }
 
-static SkImageInfo make_info(GrRenderTargetContext* context, bool opaque) {
+static SkImageInfo make_info(GrSurfaceDrawContext* context, bool opaque) {
     SkColorType colorType = GrColorTypeToSkColorType(context->colorInfo().colorType());
     return SkImageInfo::Make(context->width(), context->height(), colorType,
                              opaque ? kOpaque_SkAlphaType : kPremul_SkAlphaType,
@@ -119,7 +119,7 @@
 }
 
 SkGpuDevice::SkGpuDevice(GrRecordingContext* context,
-                         std::unique_ptr<GrRenderTargetContext> renderTargetContext,
+                         std::unique_ptr<GrSurfaceDrawContext> renderTargetContext,
                          unsigned flags)
         : INHERITED(make_info(renderTargetContext.get(), SkToBool(flags & kIsOpaque_Flag)),
                     renderTargetContext->surfaceProps())
@@ -139,7 +139,7 @@
     }
 }
 
-std::unique_ptr<GrRenderTargetContext> SkGpuDevice::MakeRenderTargetContext(
+std::unique_ptr<GrSurfaceDrawContext> SkGpuDevice::MakeRenderTargetContext(
         GrRecordingContext* context,
         SkBudgeted budgeted,
         const SkImageInfo& origInfo,
@@ -153,7 +153,7 @@
 
     // This method is used to create SkGpuDevice's for SkSurface_Gpus. In this case
     // they need to be exact.
-    return GrRenderTargetContext::Make(
+    return GrSurfaceDrawContext::Make(
             context, SkColorTypeToGrColorType(origInfo.colorType()), origInfo.refColorSpace(),
             SkBackingFit::kExact, origInfo.dimensions(), sampleCount, mipMapped, GrProtected::kNo,
             origin, budgeted, surfaceProps);
@@ -191,7 +191,7 @@
     return false;
 }
 
-GrRenderTargetContext* SkGpuDevice::accessRenderTargetContext() {
+GrSurfaceDrawContext* SkGpuDevice::accessRenderTargetContext() {
     ASSERT_SINGLE_OWNER
     return fRenderTargetContext.get();
 }
@@ -204,7 +204,7 @@
     fRenderTargetContext->clearAtLeast(rect, SK_PMColor4fTRANSPARENT);
 }
 
-void SkGpuDevice::replaceRenderTargetContext(std::unique_ptr<GrRenderTargetContext> rtc,
+void SkGpuDevice::replaceRenderTargetContext(std::unique_ptr<GrSurfaceDrawContext> rtc,
                                              SkSurface::ContentChangeMode mode) {
     SkASSERT(rtc->width() == this->width());
     SkASSERT(rtc->height() == this->height());
@@ -606,7 +606,7 @@
     ASSERT_SINGLE_OWNER
     GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "drawStrokedLine", fContext.get());
     // Adding support for round capping would require a
-    // GrRenderTargetContext::fillRRectWithLocalMatrix entry point
+    // GrSurfaceDrawContext::fillRRectWithLocalMatrix entry point
     SkASSERT(SkPaint::kRound_Cap != origPaint.getStrokeCap());
     SkASSERT(SkPaint::kStroke_Style == origPaint.getStyle());
     SkASSERT(!origPaint.getPathEffect());
@@ -742,7 +742,7 @@
 }
 
 sk_sp<SkSpecialImage> SkGpuDevice::snapSpecial(const SkIRect& subset, bool forceCopy) {
-    GrRenderTargetContext* rtc = this->accessRenderTargetContext();
+    GrSurfaceDrawContext* rtc = this->accessRenderTargetContext();
 
     // If we are wrapping a vulkan secondary command buffer, then we can't snap off a special image
     // since it would require us to make a copy of the underlying VkImage which we don't have access
@@ -1050,7 +1050,7 @@
 
     SkASSERT(cinfo.fInfo.colorType() != kRGBA_1010102_SkColorType);
 
-    auto rtc = GrRenderTargetContext::MakeWithFallback(
+    auto rtc = GrSurfaceDrawContext::MakeWithFallback(
             fContext.get(), SkColorTypeToGrColorType(cinfo.fInfo.colorType()),
             fRenderTargetContext->colorInfo().refColorSpace(), fit, cinfo.fInfo.dimensions(),
             fRenderTargetContext->numSamples(), GrMipmapped::kNo,
@@ -1090,7 +1090,7 @@
     if (clipRegion.isEmpty()) {
         return false;
     }
-    GrRenderTargetContext* rtc = this->accessRenderTargetContext();
+    GrSurfaceDrawContext* rtc = this->accessRenderTargetContext();
     if (!rtc) {
         return false;
     }
diff --git a/src/gpu/SkGpuDevice.h b/src/gpu/SkGpuDevice.h
index 3da9ae9..e3f2a73 100644
--- a/src/gpu/SkGpuDevice.h
+++ b/src/gpu/SkGpuDevice.h
@@ -13,7 +13,7 @@
 #include "include/core/SkRegion.h"
 #include "include/core/SkSurface.h"
 #include "include/gpu/GrTypes.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/SkGr.h"
 
 class GrAccelData;
@@ -59,11 +59,11 @@
     };
 
     /**
-     * Creates an SkGpuDevice from a GrRenderTargetContext whose backing width/height is
+     * Creates an SkGpuDevice from a GrSurfaceDrawContext whose backing width/height is
      * different than its actual width/height (e.g., approx-match scratch texture).
      */
     static sk_sp<SkGpuDevice> Make(GrRecordingContext*,
-                                   std::unique_ptr<GrRenderTargetContext>,
+                                   std::unique_ptr<GrSurfaceDrawContext>,
                                    InitContents);
 
     /**
@@ -86,10 +86,10 @@
     void clearAll();
 
     void replaceRenderTargetContext(SkSurface::ContentChangeMode mode);
-    void replaceRenderTargetContext(std::unique_ptr<GrRenderTargetContext>,
+    void replaceRenderTargetContext(std::unique_ptr<GrSurfaceDrawContext>,
                                     SkSurface::ContentChangeMode mode);
 
-    GrRenderTargetContext* accessRenderTargetContext() override;
+    GrSurfaceDrawContext* accessRenderTargetContext() override;
 
     void drawPaint(const SkPaint& paint) override;
     void drawPoints(SkCanvas::PointMode mode, size_t count, const SkPoint[],
@@ -179,7 +179,7 @@
 private:
     // We want these unreffed in RenderTargetContext, GrContext order.
     sk_sp<GrRecordingContext> fContext;
-    std::unique_ptr<GrRenderTargetContext> fRenderTargetContext;
+    std::unique_ptr<GrSurfaceDrawContext> fRenderTargetContext;
 
     GR_CLIP_STACK   fClip;
 
@@ -191,7 +191,7 @@
     static bool CheckAlphaTypeAndGetFlags(const SkImageInfo* info, InitContents init,
                                           unsigned* flags);
 
-    SkGpuDevice(GrRecordingContext*, std::unique_ptr<GrRenderTargetContext>, unsigned flags);
+    SkGpuDevice(GrRecordingContext*, std::unique_ptr<GrSurfaceDrawContext>, unsigned flags);
 
     SkBaseDevice* onCreateDevice(const CreateInfo&, const SkPaint*) override;
 
@@ -216,13 +216,13 @@
 
     void drawStrokedLine(const SkPoint pts[2], const SkPaint&);
 
-    static std::unique_ptr<GrRenderTargetContext> MakeRenderTargetContext(GrRecordingContext*,
-                                                                          SkBudgeted,
-                                                                          const SkImageInfo&,
-                                                                          int sampleCount,
-                                                                          GrSurfaceOrigin,
-                                                                          const SkSurfaceProps*,
-                                                                          GrMipmapped);
+    static std::unique_ptr<GrSurfaceDrawContext> MakeRenderTargetContext(GrRecordingContext*,
+                                                                         SkBudgeted,
+                                                                         const SkImageInfo&,
+                                                                         int sampleCount,
+                                                                         GrSurfaceOrigin,
+                                                                         const SkSurfaceProps*,
+                                                                         GrMipmapped);
 
     friend class GrAtlasTextContext;
     friend class SkSurface_Gpu;      // for access to surfaceProps
diff --git a/src/gpu/SkGpuDevice_drawTexture.cpp b/src/gpu/SkGpuDevice_drawTexture.cpp
index 2c3afe0..00ae902 100644
--- a/src/gpu/SkGpuDevice_drawTexture.cpp
+++ b/src/gpu/SkGpuDevice_drawTexture.cpp
@@ -20,8 +20,8 @@
 #include "src/gpu/GrColorSpaceXform.h"
 #include "src/gpu/GrImageTextureMaker.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrStyle.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTextureAdjuster.h"
 #include "src/gpu/GrTextureMaker.h"
 #include "src/gpu/SkGr.h"
@@ -248,7 +248,7 @@
 }
 
 //////////////////////////////////////////////////////////////////////////////
-//  Helper functions for drawing an image with GrRenderTargetContext
+//  Helper functions for drawing an image with GrSurfaceDrawContext
 
 enum class ImageDrawMode {
     // Src and dst have been restricted to the image content. May need to clamp, no need to decal.
@@ -318,7 +318,7 @@
 }
 
 /**
- * Checks whether the paint is compatible with using GrRenderTargetContext::drawTexture. It is more
+ * Checks whether the paint is compatible with using GrSurfaceDrawContext::drawTexture. It is more
  * efficient than the GrTextureProducer general case.
  */
 static bool can_use_draw_texture(const SkPaint& paint) {
@@ -338,7 +338,7 @@
 }
 
 // Assumes srcRect and dstRect have already been optimized to fit the proxy
-static void draw_texture(GrRenderTargetContext* rtc,
+static void draw_texture(GrSurfaceDrawContext* rtc,
                          const GrClip* clip,
                          const SkMatrix& ctm,
                          const SkPaint& paint,
@@ -422,7 +422,7 @@
 
 // Assumes srcRect and dstRect have already been optimized to fit the proxy.
 static void draw_texture_producer(GrRecordingContext* context,
-                                  GrRenderTargetContext* rtc,
+                                  GrSurfaceDrawContext* rtc,
                                   const GrClip* clip,
                                   const SkMatrixProvider& matrixProvider,
                                   const SkPaint& paint,
@@ -553,7 +553,7 @@
 }
 
 void draw_tiled_bitmap(GrRecordingContext* context,
-                       GrRenderTargetContext* rtc,
+                       GrSurfaceDrawContext* rtc,
                        const GrClip* clip,
                        const SkBitmap& bitmap,
                        int tileSize,
@@ -833,7 +833,7 @@
                                             : GrSamplerState::Filter::kLinear;
     SkBlendMode mode = paint.getBlendMode();
 
-    SkAutoTArray<GrRenderTargetContext::TextureSetEntry> textures(count);
+    SkAutoTArray<GrSurfaceDrawContext::TextureSetEntry> textures(count);
     // We accumulate compatible proxies until we find an an incompatible one or reach the end and
     // issue the accumulated 'n' draws starting at 'base'. 'p' represents the number of proxy
     // switches that occur within the 'n' entries.
diff --git a/src/gpu/ccpr/GrCCPerFlushResources.cpp b/src/gpu/ccpr/GrCCPerFlushResources.cpp
index 2a96187..12e40a9 100644
--- a/src/gpu/ccpr/GrCCPerFlushResources.cpp
+++ b/src/gpu/ccpr/GrCCPerFlushResources.cpp
@@ -11,12 +11,13 @@
 #include "src/gpu/GrMemoryPool.h"
 #include "src/gpu/GrOnFlushResourceProvider.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/ccpr/GrCCPathCache.h"
 #include "src/gpu/ccpr/GrGSCoverageProcessor.h"
 #include "src/gpu/ccpr/GrSampleMaskProcessor.h"
 #include "src/gpu/ccpr/GrVSCoverageProcessor.h"
 #include "src/gpu/geometry/GrStyledShape.h"
+
 #include <algorithm>
 
 using CoverageType = GrCCAtlas::CoverageType;
diff --git a/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp b/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp
index 64b5ad8..55c80c0 100644
--- a/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp
+++ b/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp
@@ -10,7 +10,7 @@
 #include "include/pathops/SkPathOps.h"
 #include "src/gpu/GrCaps.h"
 #include "src/gpu/GrProxyProvider.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/ccpr/GrCCClipProcessor.h"
 #include "src/gpu/ccpr/GrCCDrawPathsOp.h"
 #include "src/gpu/ccpr/GrCCPathCache.h"
diff --git a/src/gpu/dawn/GrDawnOpsRenderPass.cpp b/src/gpu/dawn/GrDawnOpsRenderPass.cpp
index 956be08..0eace12 100644
--- a/src/gpu/dawn/GrDawnOpsRenderPass.cpp
+++ b/src/gpu/dawn/GrDawnOpsRenderPass.cpp
@@ -150,7 +150,7 @@
 }
 
 void GrDawnOpsRenderPass::onSetScissorRect(const SkIRect& scissor) {
-    // Higher-level GrRenderTargetContext and clips should have already ensured draw bounds are
+    // Higher-level GrSurfaceDrawContext and clips should have already ensured draw bounds are
     // restricted to the render target.
     SkASSERT(SkIRect::MakeSize(fRenderTarget->dimensions()).contains(scissor));
     auto nativeScissorRect =
diff --git a/src/gpu/effects/GrConfigConversionEffect.fp b/src/gpu/effects/GrConfigConversionEffect.fp
index 32dc6a6..87dd6e4 100644
--- a/src/gpu/effects/GrConfigConversionEffect.fp
+++ b/src/gpu/effects/GrConfigConversionEffect.fp
@@ -12,7 +12,7 @@
     #include "src/gpu/GrBitmapTextureMaker.h"
     #include "src/gpu/GrDirectContextPriv.h"
     #include "src/gpu/GrImageInfo.h"
-    #include "src/gpu/GrRenderTargetContext.h"
+    #include "src/gpu/GrSurfaceDrawContext.h"
 }
 
 @class {
@@ -46,9 +46,9 @@
         const SkImageInfo ii = SkImageInfo::Make(kSize, kSize,
                                                  kRGBA_8888_SkColorType, kPremul_SkAlphaType);
 
-        auto readRTC = GrRenderTargetContext::Make(
+        auto readRTC = GrSurfaceDrawContext::Make(
                 dContext, kColorType, nullptr, SkBackingFit::kExact, {kSize, kSize});
-        auto tempRTC = GrRenderTargetContext::Make(
+        auto tempRTC = GrSurfaceDrawContext::Make(
                 dContext, kColorType, nullptr, SkBackingFit::kExact, {kSize, kSize});
         if (!readRTC || !readRTC->asTextureProxy() || !tempRTC) {
             return false;
diff --git a/src/gpu/effects/GrCoverageSetOpXP.cpp b/src/gpu/effects/GrCoverageSetOpXP.cpp
index fc9fa7b..4d91546 100644
--- a/src/gpu/effects/GrCoverageSetOpXP.cpp
+++ b/src/gpu/effects/GrCoverageSetOpXP.cpp
@@ -9,7 +9,7 @@
 #include "src/gpu/GrColor.h"
 #include "src/gpu/GrPipeline.h"
 #include "src/gpu/GrProcessor.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/effects/GrCoverageSetOpXP.h"
 #include "src/gpu/glsl/GrGLSLBlend.h"
 #include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
diff --git a/src/gpu/effects/GrRRectBlurEffect.fp b/src/gpu/effects/GrRRectBlurEffect.fp
index cf2be6b..063c74f 100644
--- a/src/gpu/effects/GrRRectBlurEffect.fp
+++ b/src/gpu/effects/GrRRectBlurEffect.fp
@@ -45,8 +45,8 @@
     #include "src/gpu/GrPaint.h"
     #include "src/gpu/GrProxyProvider.h"
     #include "src/gpu/GrRecordingContextPriv.h"
-    #include "src/gpu/GrRenderTargetContext.h"
     #include "src/gpu/GrStyle.h"
+    #include "src/gpu/GrSurfaceDrawContext.h"
     #include "src/gpu/GrThreadSafeCache.h"
     #include "src/gpu/effects/GrTextureEffect.h"
 
@@ -81,7 +81,7 @@
                             const SkISize& dimensions,
                             float xformedSigma) {
         SkASSERT(!SkGpuBlurUtils::IsEffectivelyZeroSigma(xformedSigma));
-        std::unique_ptr<GrRenderTargetContext> rtc = GrRenderTargetContext::MakeWithFallback(
+        std::unique_ptr<GrSurfaceDrawContext> rtc = GrSurfaceDrawContext::MakeWithFallback(
                 dContext, GrColorType::kAlpha_8, nullptr, SkBackingFit::kExact, dimensions, 1,
                 GrMipmapped::kNo, GrProtected::kNo, kBlurredRRectMaskOrigin);
         if (!rtc) {
diff --git a/src/gpu/effects/generated/GrConfigConversionEffect.cpp b/src/gpu/effects/generated/GrConfigConversionEffect.cpp
index 8c01854..283e5d1 100644
--- a/src/gpu/effects/generated/GrConfigConversionEffect.cpp
+++ b/src/gpu/effects/generated/GrConfigConversionEffect.cpp
@@ -113,10 +113,10 @@
     const SkImageInfo ii =
             SkImageInfo::Make(kSize, kSize, kRGBA_8888_SkColorType, kPremul_SkAlphaType);
 
-    auto readRTC = GrRenderTargetContext::Make(dContext, kColorType, nullptr, SkBackingFit::kExact,
-                                               {kSize, kSize});
-    auto tempRTC = GrRenderTargetContext::Make(dContext, kColorType, nullptr, SkBackingFit::kExact,
-                                               {kSize, kSize});
+    auto readRTC = GrSurfaceDrawContext::Make(dContext, kColorType, nullptr, SkBackingFit::kExact,
+                                              {kSize, kSize});
+    auto tempRTC = GrSurfaceDrawContext::Make(dContext, kColorType, nullptr, SkBackingFit::kExact,
+                                              {kSize, kSize});
     if (!readRTC || !readRTC->asTextureProxy() || !tempRTC) {
         return false;
     }
diff --git a/src/gpu/effects/generated/GrConfigConversionEffect.h b/src/gpu/effects/generated/GrConfigConversionEffect.h
index e73348f..205fcbd 100644
--- a/src/gpu/effects/generated/GrConfigConversionEffect.h
+++ b/src/gpu/effects/generated/GrConfigConversionEffect.h
@@ -18,7 +18,7 @@
 #include "src/gpu/GrBitmapTextureMaker.h"
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrImageInfo.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 
 #include "src/gpu/GrFragmentProcessor.h"
 
diff --git a/src/gpu/effects/generated/GrRRectBlurEffect.cpp b/src/gpu/effects/generated/GrRRectBlurEffect.cpp
index 3b5e384..e7a5a44 100644
--- a/src/gpu/effects/generated/GrRRectBlurEffect.cpp
+++ b/src/gpu/effects/generated/GrRRectBlurEffect.cpp
@@ -21,8 +21,8 @@
 #include "src/gpu/GrPaint.h"
 #include "src/gpu/GrProxyProvider.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrStyle.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrThreadSafeCache.h"
 #include "src/gpu/effects/GrTextureEffect.h"
 
@@ -55,7 +55,7 @@
                                const SkISize& dimensions,
                                float xformedSigma) {
     SkASSERT(!SkGpuBlurUtils::IsEffectivelyZeroSigma(xformedSigma));
-    std::unique_ptr<GrRenderTargetContext> rtc = GrRenderTargetContext::MakeWithFallback(
+    std::unique_ptr<GrSurfaceDrawContext> rtc = GrSurfaceDrawContext::MakeWithFallback(
             dContext, GrColorType::kAlpha_8, nullptr, SkBackingFit::kExact, dimensions, 1,
             GrMipmapped::kNo, GrProtected::kNo, kBlurredRRectMaskOrigin);
     if (!rtc) {
diff --git a/src/gpu/ops/GrAAConvexPathRenderer.cpp b/src/gpu/ops/GrAAConvexPathRenderer.cpp
index 192c6b2..3a893cc 100644
--- a/src/gpu/ops/GrAAConvexPathRenderer.cpp
+++ b/src/gpu/ops/GrAAConvexPathRenderer.cpp
@@ -17,7 +17,7 @@
 #include "src/gpu/GrGeometryProcessor.h"
 #include "src/gpu/GrProcessor.h"
 #include "src/gpu/GrProgramInfo.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrVertexWriter.h"
 #include "src/gpu/geometry/GrPathUtils.h"
 #include "src/gpu/geometry/GrStyledShape.h"
diff --git a/src/gpu/ops/GrAAHairLinePathRenderer.cpp b/src/gpu/ops/GrAAHairLinePathRenderer.cpp
index c896428..e471e9e 100644
--- a/src/gpu/ops/GrAAHairLinePathRenderer.cpp
+++ b/src/gpu/ops/GrAAHairLinePathRenderer.cpp
@@ -20,9 +20,9 @@
 #include "src/gpu/GrOpFlushState.h"
 #include "src/gpu/GrProcessor.h"
 #include "src/gpu/GrProgramInfo.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrResourceProvider.h"
 #include "src/gpu/GrStyle.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/effects/GrBezierEffect.h"
 #include "src/gpu/geometry/GrPathUtils.h"
 #include "src/gpu/geometry/GrStyledShape.h"
diff --git a/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp b/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp
index f6731a7..adef79e 100644
--- a/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp
+++ b/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp
@@ -17,8 +17,8 @@
 #include "src/gpu/GrOpFlushState.h"
 #include "src/gpu/GrProcessor.h"
 #include "src/gpu/GrProgramInfo.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrStyle.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrVertexWriter.h"
 #include "src/gpu/geometry/GrPathUtils.h"
 #include "src/gpu/geometry/GrStyledShape.h"
diff --git a/src/gpu/ops/GrAtlasTextOp.cpp b/src/gpu/ops/GrAtlasTextOp.cpp
index 467ff3c..4ed4993 100644
--- a/src/gpu/ops/GrAtlasTextOp.cpp
+++ b/src/gpu/ops/GrAtlasTextOp.cpp
@@ -18,8 +18,8 @@
 #include "src/gpu/GrMemoryPool.h"
 #include "src/gpu/GrOpFlushState.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/SkGr.h"
 #include "src/gpu/effects/GrBitmapTextGeoProc.h"
 #include "src/gpu/effects/GrDistanceFieldGeoProc.h"
@@ -435,7 +435,7 @@
 
 #if GR_TEST_UTILS
 
-GrOp::Owner GrAtlasTextOp::CreateOpTestingOnly(GrRenderTargetContext* rtc,
+GrOp::Owner GrAtlasTextOp::CreateOpTestingOnly(GrSurfaceDrawContext* rtc,
                                                const SkPaint& skPaint,
                                                const SkFont& font,
                                                const SkMatrixProvider& mtxProvider,
@@ -479,8 +479,8 @@
 }
 
 GR_DRAW_OP_TEST_DEFINE(GrAtlasTextOp) {
-    // Setup dummy SkPaint / GrPaint / GrRenderTargetContext
-    auto rtc = GrRenderTargetContext::Make(
+    // Setup dummy SkPaint / GrPaint / GrSurfaceDrawContext
+    auto rtc = GrSurfaceDrawContext::Make(
             context, GrColorType::kRGBA_8888, nullptr, SkBackingFit::kApprox, {1024, 1024});
 
     SkSimpleMatrixProvider matrixProvider(GrTest::TestMatrixInvertible(random));
diff --git a/src/gpu/ops/GrAtlasTextOp.h b/src/gpu/ops/GrAtlasTextOp.h
index d0c31ac9..a0ac0a3 100644
--- a/src/gpu/ops/GrAtlasTextOp.h
+++ b/src/gpu/ops/GrAtlasTextOp.h
@@ -66,7 +66,7 @@
     static constexpr int kMaskTypeCount = static_cast<int>(MaskType::kLast) + 1;
 
 #if GR_TEST_UTILS
-    static GrOp::Owner CreateOpTestingOnly(GrRenderTargetContext* rtc,
+    static GrOp::Owner CreateOpTestingOnly(GrSurfaceDrawContext* rtc,
                                            const SkPaint& skPaint,
                                            const SkFont& font,
                                            const SkMatrixProvider& mtxProvider,
diff --git a/src/gpu/ops/GrDashLinePathRenderer.cpp b/src/gpu/ops/GrDashLinePathRenderer.cpp
index 0b079cc..417bc84 100644
--- a/src/gpu/ops/GrDashLinePathRenderer.cpp
+++ b/src/gpu/ops/GrDashLinePathRenderer.cpp
@@ -7,7 +7,7 @@
 
 #include "src/gpu/GrAuditTrail.h"
 #include "src/gpu/GrGpu.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/geometry/GrStyledShape.h"
 #include "src/gpu/ops/GrDashLinePathRenderer.h"
 #include "src/gpu/ops/GrDashOp.h"
diff --git a/src/gpu/ops/GrDefaultPathRenderer.cpp b/src/gpu/ops/GrDefaultPathRenderer.cpp
index 4d1fdce..b61b015 100644
--- a/src/gpu/ops/GrDefaultPathRenderer.cpp
+++ b/src/gpu/ops/GrDefaultPathRenderer.cpp
@@ -533,7 +533,7 @@
 
 }  // anonymous namespace
 
-bool GrDefaultPathRenderer::internalDrawPath(GrRenderTargetContext* renderTargetContext,
+bool GrDefaultPathRenderer::internalDrawPath(GrSurfaceDrawContext* renderTargetContext,
                                              GrPaint&& paint,
                                              GrAAType aaType,
                                              const GrUserStencilSettings& userStencilSettings,
diff --git a/src/gpu/ops/GrDefaultPathRenderer.h b/src/gpu/ops/GrDefaultPathRenderer.h
index 38c734a..e7274d6 100644
--- a/src/gpu/ops/GrDefaultPathRenderer.h
+++ b/src/gpu/ops/GrDefaultPathRenderer.h
@@ -31,7 +31,7 @@
 
     void onStencilPath(const StencilPathArgs&) override;
 
-    bool internalDrawPath(GrRenderTargetContext*,
+    bool internalDrawPath(GrSurfaceDrawContext*,
                           GrPaint&&,
                           GrAAType,
                           const GrUserStencilSettings&,
diff --git a/src/gpu/ops/GrDrawPathOp.cpp b/src/gpu/ops/GrDrawPathOp.cpp
index 625659d..b3924ff 100644
--- a/src/gpu/ops/GrDrawPathOp.cpp
+++ b/src/gpu/ops/GrDrawPathOp.cpp
@@ -15,7 +15,7 @@
 #include "src/gpu/GrProgramInfo.h"
 #include "src/gpu/GrRecordingContextPriv.h"
 #include "src/gpu/GrRenderTarget.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h"
 
 static constexpr GrUserStencilSettings kCoverPass{
diff --git a/src/gpu/ops/GrFillRectOp.cpp b/src/gpu/ops/GrFillRectOp.cpp
index 1ab5bca..cee66c8 100644
--- a/src/gpu/ops/GrFillRectOp.cpp
+++ b/src/gpu/ops/GrFillRectOp.cpp
@@ -482,7 +482,7 @@
                                  GrPaint&& paint,
                                  GrAAType aaType,
                                  const SkMatrix& viewMatrix,
-                                 const GrRenderTargetContext::QuadSetEntry quads[],
+                                 const GrSurfaceDrawContext::QuadSetEntry quads[],
                                  int cnt,
                                  const GrUserStencilSettings* stencilSettings,
                                  int* numConsumed) {
@@ -518,13 +518,13 @@
     return op;
 }
 
-void GrFillRectOp::AddFillRectOps(GrRenderTargetContext* rtc,
+void GrFillRectOp::AddFillRectOps(GrSurfaceDrawContext* rtc,
                                   const GrClip* clip,
                                   GrRecordingContext* context,
                                   GrPaint&& paint,
                                   GrAAType aaType,
                                   const SkMatrix& viewMatrix,
-                                  const GrRenderTargetContext::QuadSetEntry quads[],
+                                  const GrSurfaceDrawContext::QuadSetEntry quads[],
                                   int cnt,
                                   const GrUserStencilSettings* stencilSettings) {
 
diff --git a/src/gpu/ops/GrFillRectOp.h b/src/gpu/ops/GrFillRectOp.h
index 8710861..1a99c53 100644
--- a/src/gpu/ops/GrFillRectOp.h
+++ b/src/gpu/ops/GrFillRectOp.h
@@ -9,7 +9,7 @@
 #define GrFillRectOp_DEFINED
 
 #include "include/private/GrTypesPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/ops/GrSimpleMeshDrawOpHelper.h"
 
 class GrDrawOp;
@@ -48,13 +48,13 @@
 
     // Bulk API for drawing quads with a single op
     // TODO(michaelludwig) - remove if the bulk API is not useful for SkiaRenderer
-    static void AddFillRectOps(GrRenderTargetContext*,
+    static void AddFillRectOps(GrSurfaceDrawContext*,
                                const GrClip* clip,
                                GrRecordingContext*,
                                GrPaint&&,
                                GrAAType,
                                const SkMatrix& viewMatrix,
-                               const GrRenderTargetContext::QuadSetEntry quads[],
+                               const GrSurfaceDrawContext::QuadSetEntry quads[],
                                int quadCount,
                                const GrUserStencilSettings* = nullptr);
 
@@ -69,7 +69,7 @@
                               GrPaint&&,
                               GrAAType,
                               const SkMatrix& viewMatrix,
-                              const GrRenderTargetContext::QuadSetEntry quads[],
+                              const GrSurfaceDrawContext::QuadSetEntry quads[],
                               int quadCount,
                               const GrUserStencilSettings*,
                               int* numConsumed);
diff --git a/src/gpu/ops/GrSmallPathRenderer.cpp b/src/gpu/ops/GrSmallPathRenderer.cpp
index 507ad39..642a9c7 100644
--- a/src/gpu/ops/GrSmallPathRenderer.cpp
+++ b/src/gpu/ops/GrSmallPathRenderer.cpp
@@ -20,8 +20,8 @@
 #include "src/gpu/GrCaps.h"
 #include "src/gpu/GrDistanceFieldGenFromVector.h"
 #include "src/gpu/GrDrawOpTest.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrVertexWriter.h"
 #include "src/gpu/effects/GrBitmapTextGeoProc.h"
 #include "src/gpu/effects/GrDistanceFieldGeoProc.h"
diff --git a/src/gpu/ops/GrTextureOp.cpp b/src/gpu/ops/GrTextureOp.cpp
index ca85bfd..1274cf1 100644
--- a/src/gpu/ops/GrTextureOp.cpp
+++ b/src/gpu/ops/GrTextureOp.cpp
@@ -177,7 +177,7 @@
 // Count the number of proxy runs in the entry set. This usually is already computed by
 // SkGpuDevice, but when the BatchLengthLimiter chops the set up it must determine a new proxy count
 // for each split.
-static int proxy_run_count(const GrRenderTargetContext::TextureSetEntry set[], int count) {
+static int proxy_run_count(const GrSurfaceDrawContext::TextureSetEntry set[], int count) {
     int actualProxyRunCount = 0;
     const GrSurfaceProxy* lastProxy = nullptr;
     for (int i = 0; i < count; ++i) {
@@ -237,7 +237,7 @@
     }
 
     static GrOp::Owner Make(GrRecordingContext* context,
-                            GrRenderTargetContext::TextureSetEntry set[],
+                            GrSurfaceDrawContext::TextureSetEntry set[],
                             int cnt,
                             int proxyRunCnt,
                             GrSamplerState::Filter filter,
@@ -473,7 +473,7 @@
         fViewCountPairs[0] = {proxyView.detachProxy(), quadCount};
     }
 
-    TextureOp(GrRenderTargetContext::TextureSetEntry set[],
+    TextureOp(GrSurfaceDrawContext::TextureSetEntry set[],
               int cnt,
               int proxyRunCnt,
               GrSamplerState::Filter filter,
@@ -1178,7 +1178,7 @@
 // A helper class that assists in breaking up bulk API quad draws into manageable chunks.
 class GrTextureOp::BatchSizeLimiter {
 public:
-    BatchSizeLimiter(GrRenderTargetContext* rtc,
+    BatchSizeLimiter(GrSurfaceDrawContext* rtc,
                      const GrClip* clip,
                      GrRecordingContext* context,
                      int numEntries,
@@ -1199,7 +1199,7 @@
             , fTextureColorSpaceXform(textureColorSpaceXform)
             , fNumLeft(numEntries) {}
 
-    void createOp(GrRenderTargetContext::TextureSetEntry set[],
+    void createOp(GrSurfaceDrawContext::TextureSetEntry set[],
                   int clumpSize,
                   GrAAType aaType) {
         int clumpProxyCount = proxy_run_count(&set[fNumClumped], clumpSize);
@@ -1224,7 +1224,7 @@
     int baseIndex() const { return fNumClumped; }
 
 private:
-    GrRenderTargetContext*      fRTC;
+    GrSurfaceDrawContext*       fRTC;
     const GrClip*               fClip;
     GrRecordingContext*         fContext;
     GrSamplerState::Filter      fFilter;
@@ -1239,10 +1239,10 @@
 };
 
 // Greedily clump quad draws together until the index buffer limit is exceeded.
-void GrTextureOp::AddTextureSetOps(GrRenderTargetContext* rtc,
+void GrTextureOp::AddTextureSetOps(GrSurfaceDrawContext* rtc,
                                    const GrClip* clip,
                                    GrRecordingContext* context,
-                                   GrRenderTargetContext::TextureSetEntry set[],
+                                   GrSurfaceDrawContext::TextureSetEntry set[],
                                    int cnt,
                                    int proxyRunCnt,
                                    GrSamplerState::Filter filter,
diff --git a/src/gpu/ops/GrTextureOp.h b/src/gpu/ops/GrTextureOp.h
index aee32b0..61bcfc8 100644
--- a/src/gpu/ops/GrTextureOp.h
+++ b/src/gpu/ops/GrTextureOp.h
@@ -11,8 +11,8 @@
 #include "include/core/SkRefCnt.h"
 #include "include/private/GrTypesPriv.h"
 #include "src/gpu/GrColor.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrSamplerState.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 
 class GrColorSpaceXform;
 class GrDrawOp;
@@ -56,10 +56,10 @@
     // Automatically falls back to using one GrFillRectOp per entry if dynamic states are not
     // supported, or if the blend mode is not src-over. 'cnt' is the size of the entry array.
     // 'proxyCnt' <= 'cnt' and represents the number of proxy switches within the array.
-    static void AddTextureSetOps(GrRenderTargetContext*,
+    static void AddTextureSetOps(GrSurfaceDrawContext*,
                                  const GrClip* clip,
                                  GrRecordingContext*,
-                                 GrRenderTargetContext::TextureSetEntry[],
+                                 GrSurfaceDrawContext::TextureSetEntry[],
                                  int cnt,
                                  int proxyRunCnt,
                                  GrSamplerState::Filter,
diff --git a/src/gpu/ops/GrTriangulatingPathRenderer.cpp b/src/gpu/ops/GrTriangulatingPathRenderer.cpp
index df585d9..ffaf5d0 100644
--- a/src/gpu/ops/GrTriangulatingPathRenderer.cpp
+++ b/src/gpu/ops/GrTriangulatingPathRenderer.cpp
@@ -17,11 +17,11 @@
 #include "src/gpu/GrOpFlushState.h"
 #include "src/gpu/GrProgramInfo.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrResourceCache.h"
 #include "src/gpu/GrResourceProvider.h"
 #include "src/gpu/GrSimpleMesh.h"
 #include "src/gpu/GrStyle.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrThreadSafeCache.h"
 #include "src/gpu/GrTriangulator.h"
 #include "src/gpu/geometry/GrPathUtils.h"
diff --git a/src/gpu/tessellate/GrTessellationPathRenderer.cpp b/src/gpu/tessellate/GrTessellationPathRenderer.cpp
index 292b430..d1f9dc7 100644
--- a/src/gpu/tessellate/GrTessellationPathRenderer.cpp
+++ b/src/gpu/tessellate/GrTessellationPathRenderer.cpp
@@ -13,7 +13,7 @@
 #include "src/gpu/GrClip.h"
 #include "src/gpu/GrMemoryPool.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/geometry/GrStyledShape.h"
 #include "src/gpu/ops/GrFillRectOp.h"
 #include "src/gpu/tessellate/GrDrawAtlasPathOp.h"
@@ -177,7 +177,7 @@
 }
 
 bool GrTessellationPathRenderer::onDrawPath(const DrawPathArgs& args) {
-    GrRenderTargetContext* renderTargetContext = args.fRenderTargetContext;
+    GrSurfaceDrawContext* renderTargetContext = args.fRenderTargetContext;
     const GrShaderCaps& shaderCaps = *args.fContext->priv().caps()->shaderCaps();
 
     SkPath path;
diff --git a/src/gpu/text/GrTextBlob.cpp b/src/gpu/text/GrTextBlob.cpp
index 5106d7c..a155240 100644
--- a/src/gpu/text/GrTextBlob.cpp
+++ b/src/gpu/text/GrTextBlob.cpp
@@ -17,8 +17,8 @@
 #include "src/gpu/GrClip.h"
 #include "src/gpu/GrMemoryPool.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrStyle.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/SkGr.h"
 #include "src/gpu/effects/GrDistanceFieldGeoProc.h"
 #include "src/gpu/geometry/GrStyledShape.h"
@@ -73,7 +73,7 @@
     SkUNREACHABLE;
 }
 
-SkPMColor4f calculate_colors(GrRenderTargetContext* rtc,
+SkPMColor4f calculate_colors(GrSurfaceDrawContext* rtc,
                              const SkPaint& paint,
                              const SkMatrixProvider& matrix,
                              GrMaskFormat grMaskFormat,
@@ -177,7 +177,7 @@
     void draw(const GrClip* clip,
               const SkMatrixProvider& viewMatrix,
               const SkGlyphRunList& glyphRunList,
-              GrRenderTargetContext* rtc) const override;
+              GrSurfaceDrawContext* rtc) const override;
 
     bool canReuse(const SkPaint& paint, const SkMatrix& drawMatrix) override;
 
@@ -214,7 +214,7 @@
 void PathSubRun::draw(const GrClip* clip,
                       const SkMatrixProvider& viewMatrix,
                       const SkGlyphRunList& glyphRunList,
-                      GrRenderTargetContext* rtc) const {
+                      GrSurfaceDrawContext* rtc) const {
     SkASSERT(!fPaths.empty());
     SkPoint drawOrigin = glyphRunList.origin();
     const SkPaint& drawPaint = glyphRunList.paint();
@@ -463,7 +463,7 @@
     void draw(const GrClip* clip,
               const SkMatrixProvider& viewMatrix,
               const SkGlyphRunList& glyphRunList,
-              GrRenderTargetContext* rtc) const override;
+              GrSurfaceDrawContext* rtc) const override;
 
     bool canReuse(const SkPaint& paint, const SkMatrix& drawMatrix) override;
 
@@ -477,7 +477,7 @@
     makeAtlasTextOp(const GrClip* clip,
                     const SkMatrixProvider& viewMatrix,
                     const SkGlyphRunList& glyphRunList,
-                    GrRenderTargetContext* rtc) const override;
+                    GrSurfaceDrawContext* rtc) const override;
 
     void testingOnly_packedGlyphIDToGrGlyph(GrStrikeCache *cache) override;
 
@@ -565,7 +565,8 @@
 }
 
 void DirectMaskSubRun::draw(const GrClip* clip, const SkMatrixProvider& viewMatrix,
-                            const SkGlyphRunList& glyphRunList, GrRenderTargetContext* rtc) const{
+                            const SkGlyphRunList& glyphRunList,
+                            GrSurfaceDrawContext* rtc) const{
     auto[drawingClip, op] = this->makeAtlasTextOp(clip, viewMatrix, glyphRunList, rtc);
     if (op != nullptr) {
         rtc->addDrawOp(drawingClip, std::move(op));
@@ -604,7 +605,7 @@
 std::tuple<const GrClip*, GrOp::Owner>
 DirectMaskSubRun::makeAtlasTextOp(const GrClip* clip, const SkMatrixProvider& viewMatrix,
                                   const SkGlyphRunList& glyphRunList,
-                                  GrRenderTargetContext* rtc) const {
+        GrSurfaceDrawContext* rtc) const {
     SkASSERT(this->glyphCount() != 0);
 
     const SkMatrix& drawMatrix = viewMatrix.localToDevice();
@@ -829,7 +830,7 @@
     void draw(const GrClip* clip,
               const SkMatrixProvider& viewMatrix,
               const SkGlyphRunList& glyphRunList,
-              GrRenderTargetContext* rtc) const override;
+              GrSurfaceDrawContext* rtc) const override;
 
     bool canReuse(const SkPaint& paint, const SkMatrix& drawMatrix) override;
 
@@ -839,7 +840,7 @@
     makeAtlasTextOp(const GrClip* clip,
                     const SkMatrixProvider& viewMatrix,
                     const SkGlyphRunList& glyphRunList,
-                    GrRenderTargetContext* rtc) const override;
+                    GrSurfaceDrawContext* rtc) const override;
 
     void testingOnly_packedGlyphIDToGrGlyph(GrStrikeCache *cache) override;
 
@@ -914,7 +915,7 @@
 void TransformedMaskSubRun::draw(const GrClip* clip,
                                  const SkMatrixProvider& viewMatrix,
                                  const SkGlyphRunList& glyphRunList,
-                                 GrRenderTargetContext* rtc) const {
+                                 GrSurfaceDrawContext* rtc) const {
     auto[drawingClip, op] = this->makeAtlasTextOp(clip, viewMatrix, glyphRunList, rtc);
     if (op != nullptr) {
         rtc->addDrawOp(drawingClip, std::move(op));
@@ -934,7 +935,7 @@
 TransformedMaskSubRun::makeAtlasTextOp(const GrClip* clip,
                                        const SkMatrixProvider& viewMatrix,
                                        const SkGlyphRunList& glyphRunList,
-                                       GrRenderTargetContext* rtc) const {
+                                       GrSurfaceDrawContext* rtc) const {
     SkASSERT(this->glyphCount() != 0);
 
     SkPoint drawOrigin = glyphRunList.origin();
@@ -1083,7 +1084,7 @@
     void draw(const GrClip* clip,
               const SkMatrixProvider& viewMatrix,
               const SkGlyphRunList& glyphRunList,
-              GrRenderTargetContext* rtc) const override;
+              GrSurfaceDrawContext* rtc) const override;
 
     bool canReuse(const SkPaint& paint, const SkMatrix& drawMatrix) override;
 
@@ -1093,7 +1094,7 @@
     makeAtlasTextOp(const GrClip* clip,
                     const SkMatrixProvider& viewMatrix,
                     const SkGlyphRunList& glyphRunList,
-                    GrRenderTargetContext* rtc) const override;
+                    GrSurfaceDrawContext* rtc) const override;
 
     void testingOnly_packedGlyphIDToGrGlyph(GrStrikeCache *cache) override;
 
@@ -1187,7 +1188,7 @@
 SDFTSubRun::makeAtlasTextOp(const GrClip* clip,
                             const SkMatrixProvider& viewMatrix,
                             const SkGlyphRunList& glyphRunList,
-                            GrRenderTargetContext* rtc) const {
+                            GrSurfaceDrawContext* rtc) const {
     SkASSERT(this->glyphCount() != 0);
     SkASSERT(!viewMatrix.localToDevice().hasPerspective());
 
@@ -1247,7 +1248,7 @@
 void SDFTSubRun::draw(const GrClip* clip,
                       const SkMatrixProvider& viewMatrix,
                       const SkGlyphRunList& glyphRunList,
-                      GrRenderTargetContext* rtc) const {
+                      GrSurfaceDrawContext* rtc) const {
     auto[drawingClip, op] = this->makeAtlasTextOp(clip, viewMatrix, glyphRunList, rtc);
     if (op != nullptr) {
         rtc->addDrawOp(drawingClip, std::move(op));
diff --git a/src/gpu/text/GrTextBlob.h b/src/gpu/text/GrTextBlob.h
index b34dd81..3807101 100644
--- a/src/gpu/text/GrTextBlob.h
+++ b/src/gpu/text/GrTextBlob.h
@@ -181,7 +181,7 @@
     makeAtlasTextOp(const GrClip* clip,
                     const SkMatrixProvider& viewMatrix,
                     const SkGlyphRunList& glyphRunList,
-                    GrRenderTargetContext* rtc) const = 0;
+                    GrSurfaceDrawContext* rtc) const = 0;
     virtual void fillVertexData(
             void* vertexDst, int offset, int count,
             GrColor color, const SkMatrix& positionMatrix,
@@ -212,7 +212,7 @@
     virtual void draw(const GrClip* clip,
                       const SkMatrixProvider& viewMatrix,
                       const SkGlyphRunList& glyphRunList,
-                      GrRenderTargetContext* rtc) const = 0;
+                      GrSurfaceDrawContext* rtc) const = 0;
 
     // Given an already cached subRun, can this subRun handle this combination paint, matrix, and
     // position.
diff --git a/src/gpu/vk/GrVkGpu.cpp b/src/gpu/vk/GrVkGpu.cpp
index eb64977..447eecd 100644
--- a/src/gpu/vk/GrVkGpu.cpp
+++ b/src/gpu/vk/GrVkGpu.cpp
@@ -23,7 +23,7 @@
 #include "src/gpu/GrNativeRect.h"
 #include "src/gpu/GrPipeline.h"
 #include "src/gpu/GrRenderTarget.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTexture.h"
 #include "src/gpu/SkGpuDevice.h"
 #include "src/gpu/SkGr.h"
diff --git a/src/gpu/vk/GrVkSecondaryCBDrawContext.cpp b/src/gpu/vk/GrVkSecondaryCBDrawContext.cpp
index 897b18c..bc4cc43 100644
--- a/src/gpu/vk/GrVkSecondaryCBDrawContext.cpp
+++ b/src/gpu/vk/GrVkSecondaryCBDrawContext.cpp
@@ -16,7 +16,7 @@
 #include "src/core/SkSurfacePriv.h"
 #include "src/gpu/GrContextThreadSafeProxyPriv.h"
 #include "src/gpu/GrDirectContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/SkGpuDevice.h"
 
 sk_sp<GrVkSecondaryCBDrawContext> GrVkSecondaryCBDrawContext::Make(GrRecordingContext* ctx,
@@ -31,7 +31,7 @@
         return nullptr;
     }
 
-    auto rtc = GrRenderTargetContext::MakeFromVulkanSecondaryCB(ctx, imageInfo, vkInfo, props);
+    auto rtc = GrSurfaceDrawContext::MakeFromVulkanSecondaryCB(ctx, imageInfo, vkInfo, props);
     SkASSERT(rtc->asSurfaceProxy()->isInstantiated());
 
     sk_sp<SkGpuDevice> device(
@@ -82,7 +82,7 @@
 }
 
 bool GrVkSecondaryCBDrawContext::characterize(SkSurfaceCharacterization* characterization) const {
-    GrRenderTargetContext* rtc = fDevice->accessRenderTargetContext();
+    GrSurfaceDrawContext* rtc = fDevice->accessRenderTargetContext();
 
     auto direct = fDevice->recordingContext()->asDirectContext();
     if (!direct) {
@@ -119,7 +119,7 @@
 
 bool GrVkSecondaryCBDrawContext::isCompatible(
         const SkSurfaceCharacterization& characterization) const {
-    GrRenderTargetContext* rtc = fDevice->accessRenderTargetContext();
+    GrSurfaceDrawContext* rtc = fDevice->accessRenderTargetContext();
 
     auto direct = fDevice->recordingContext()->asDirectContext();
     if (!direct) {
@@ -179,7 +179,7 @@
         return false;
     }
 
-    GrRenderTargetContext* rtc = fDevice->accessRenderTargetContext();
+    GrSurfaceDrawContext* rtc = fDevice->accessRenderTargetContext();
 
     auto direct = fDevice->recordingContext()->asDirectContext();
     if (!direct) {
diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp
index 92c95db..04f4453 100644
--- a/src/image/SkImage_Gpu.cpp
+++ b/src/image/SkImage_Gpu.cpp
@@ -33,8 +33,8 @@
 #include "src/gpu/GrImageTextureMaker.h"
 #include "src/gpu/GrProxyProvider.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrSemaphore.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTexture.h"
 #include "src/gpu/GrTextureAdjuster.h"
 #include "src/gpu/GrTextureProxy.h"
@@ -88,7 +88,7 @@
         return nullptr;
     }
 
-    auto renderTargetContext = GrRenderTargetContext::MakeWithFallback(
+    auto renderTargetContext = GrSurfaceDrawContext::MakeWithFallback(
             direct, SkColorTypeToGrColorType(targetCT), nullptr, SkBackingFit::kExact,
             this->dimensions());
     if (!renderTargetContext) {
diff --git a/src/image/SkImage_GpuBase.cpp b/src/image/SkImage_GpuBase.cpp
index e3da3b5..b451ed4 100644
--- a/src/image/SkImage_GpuBase.cpp
+++ b/src/image/SkImage_GpuBase.cpp
@@ -18,7 +18,7 @@
 #include "src/gpu/GrImageInfo.h"
 #include "src/gpu/GrProxyProvider.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTexture.h"
 #include "src/gpu/GrTextureAdjuster.h"
 #include "src/gpu/effects/GrYUVtoRGBEffect.h"
diff --git a/src/image/SkImage_GpuBase.h b/src/image/SkImage_GpuBase.h
index e1402f3..63d34f2 100644
--- a/src/image/SkImage_GpuBase.h
+++ b/src/image/SkImage_GpuBase.h
@@ -17,7 +17,7 @@
 class GrColorSpaceXform;
 class GrDirectContext;
 class GrImageContext;
-class GrRenderTargetContext;
+class GrSurfaceDrawContext;
 class SkColorSpace;
 
 class SkImage_GpuBase : public SkImage_Base {
diff --git a/src/image/SkImage_GpuYUVA.cpp b/src/image/SkImage_GpuYUVA.cpp
index 1a376dd..80fd65b 100644
--- a/src/image/SkImage_GpuYUVA.cpp
+++ b/src/image/SkImage_GpuYUVA.cpp
@@ -24,7 +24,7 @@
 #include "src/gpu/GrImageContextPriv.h"
 #include "src/gpu/GrProxyProvider.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTexture.h"
 #include "src/gpu/GrTextureProducer.h"
 #include "src/gpu/SkGr.h"
@@ -205,7 +205,7 @@
     }
 
     // Needs to create a render target in order to draw to it for the yuv->rgb conversion.
-    auto renderTargetContext = GrRenderTargetContext::Make(
+    auto renderTargetContext = GrSurfaceDrawContext::Make(
             context, GrColorType::kRGBA_8888, this->refColorSpace(), SkBackingFit::kExact,
             this->dimensions(), 1, GrMipmapped::kNo, GrProtected::kNo);
     if (!renderTargetContext) {
diff --git a/src/image/SkImage_Lazy.cpp b/src/image/SkImage_Lazy.cpp
index 701e290..3105809 100644
--- a/src/image/SkImage_Lazy.cpp
+++ b/src/image/SkImage_Lazy.cpp
@@ -30,8 +30,8 @@
 #include "src/gpu/GrPaint.h"
 #include "src/gpu/GrProxyProvider.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrSamplerState.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/SkGr.h"
 #include "src/gpu/effects/GrYUVtoRGBEffect.h"
 #endif
@@ -306,7 +306,7 @@
 
     // TODO: investigate preallocating mip maps here
     GrColorType ct = SkColorTypeToGrColorType(this->colorType());
-    auto renderTargetContext = GrRenderTargetContext::Make(
+    auto renderTargetContext = GrSurfaceDrawContext::Make(
             ctx, ct, nullptr, SkBackingFit::kExact, this->dimensions(), 1, GrMipmapped::kNo,
             GrProtected::kNo, kTopLeft_GrSurfaceOrigin, budgeted);
     if (!renderTargetContext) {
diff --git a/src/image/SkSurface_Gpu.cpp b/src/image/SkSurface_Gpu.cpp
index e51ee04..73c4f76 100644
--- a/src/image/SkSurface_Gpu.cpp
+++ b/src/image/SkSurface_Gpu.cpp
@@ -58,7 +58,7 @@
             break;
     }
 
-    GrRenderTargetContext* rtc = surface->getDevice()->accessRenderTargetContext();
+    GrSurfaceDrawContext* rtc = surface->getDevice()->accessRenderTargetContext();
     dContext->priv().flushSurface(rtc->asSurfaceProxy());
 
     // Grab the render target *after* firing notifications, as it may get switched if CoW kicks in.
@@ -99,7 +99,7 @@
 }
 
 sk_sp<SkImage> SkSurface_Gpu::onNewImageSnapshot(const SkIRect* subset) {
-    GrRenderTargetContext* rtc = fDevice->accessRenderTargetContext();
+    GrSurfaceDrawContext* rtc = fDevice->accessRenderTargetContext();
     if (!rtc) {
         return nullptr;
     }
@@ -184,7 +184,7 @@
 // render target into it. Note that this flushes the SkGpuDevice but
 // doesn't force an OpenGL flush.
 void SkSurface_Gpu::onCopyOnWrite(ContentChangeMode mode) {
-    GrRenderTargetContext* rtc = fDevice->accessRenderTargetContext();
+    GrSurfaceDrawContext* rtc = fDevice->accessRenderTargetContext();
 
     // are we sharing our backing proxy with the image? Note this call should never create a new
     // image because onCopyOnWrite is only called when there is a cached image.
@@ -213,7 +213,7 @@
         return GrSemaphoresSubmitted::kNo;
     }
 
-    GrRenderTargetContext* rtc = fDevice->accessRenderTargetContext();
+    GrSurfaceDrawContext* rtc = fDevice->accessRenderTargetContext();
 
     return dContext->priv().flushSurface(rtc->asSurfaceProxy(), access, info, newState);
 }
@@ -224,7 +224,7 @@
 }
 
 bool SkSurface_Gpu::onCharacterize(SkSurfaceCharacterization* characterization) const {
-    GrRenderTargetContext* rtc = fDevice->accessRenderTargetContext();
+    GrSurfaceDrawContext* rtc = fDevice->accessRenderTargetContext();
 
     auto direct = fDevice->recordingContext()->asDirectContext();
     if (!direct) {
@@ -278,7 +278,7 @@
         if (canvasContext->priv().contextID() != surfaceContext->priv().contextID()) {
             return false;
         }
-        GrRenderTargetContext* rtc = fDevice->accessRenderTargetContext();
+        GrSurfaceDrawContext* rtc = fDevice->accessRenderTargetContext();
         if (!rtc) {
             return false;
         }
@@ -303,7 +303,7 @@
 }
 
 bool SkSurface_Gpu::onIsCompatible(const SkSurfaceCharacterization& characterization) const {
-    GrRenderTargetContext* rtc = fDevice->accessRenderTargetContext();
+    GrSurfaceDrawContext* rtc = fDevice->accessRenderTargetContext();
 
     auto direct = fDevice->recordingContext()->asDirectContext();
     if (!direct) {
@@ -374,7 +374,7 @@
         return false;
     }
 
-    GrRenderTargetContext* rtc = fDevice->accessRenderTargetContext();
+    GrSurfaceDrawContext* rtc = fDevice->accessRenderTargetContext();
 
     auto direct = fDevice->recordingContext()->asDirectContext();
     if (!direct) {
@@ -405,7 +405,7 @@
 
     GrColorType grColorType = SkColorTypeToGrColorType(c.colorType());
 
-    auto rtc = GrRenderTargetContext::Make(
+    auto rtc = GrSurfaceDrawContext::Make(
             context, grColorType, c.refColorSpace(), SkBackingFit::kExact,
             {c.width(), c.height()}, c.sampleCount(), GrMipmapped(c.isMipMapped()), c.isProtected(),
             c.origin(), budgeted, &c.surfaceProps());
@@ -480,7 +480,7 @@
 }
 
 sk_sp<SkSurface> SkSurface_Gpu::MakeWrappedRenderTarget(
-        GrRecordingContext* context, std::unique_ptr<GrRenderTargetContext> rtc) {
+        GrRecordingContext* context, std::unique_ptr<GrSurfaceDrawContext> rtc) {
     if (!context) {
         return nullptr;
     }
@@ -518,7 +518,7 @@
         return nullptr;
     }
 
-    auto rtc = GrRenderTargetContext::MakeFromBackendTexture(
+    auto rtc = GrSurfaceDrawContext::MakeFromBackendTexture(
             context, grColorType, std::move(colorSpace), tex, sampleCnt, origin, props,
             std::move(releaseHelper));
     if (!rtc) {
@@ -575,7 +575,7 @@
                                   sampleCnt, grColorType, true)) {
         return false;
     }
-    auto rtc = GrRenderTargetContext::MakeFromBackendTexture(
+    auto rtc = GrSurfaceDrawContext::MakeFromBackendTexture(
             context, oldRTC->colorInfo().colorType(), std::move(colorSpace), backendTexture,
             sampleCnt, origin, &this->props(), std::move(releaseHelper));
     if (!rtc) {
@@ -628,12 +628,12 @@
         return nullptr;
     }
 
-    auto rtc = GrRenderTargetContext::MakeFromBackendRenderTarget(context,
-                                                                  grColorType,
-                                                                  std::move(colorSpace),
-                                                                  rt,
-                                                                  origin,
-                                                                  props, std::move(releaseHelper));
+    auto rtc = GrSurfaceDrawContext::MakeFromBackendRenderTarget(context,
+                                                                 grColorType,
+                                                                 std::move(colorSpace),
+                                                                 rt,
+                                                                 origin,
+                                                                 props, std::move(releaseHelper));
     if (!rtc) {
         return nullptr;
     }
diff --git a/src/image/SkSurface_Gpu.h b/src/image/SkSurface_Gpu.h
index 424159c..e117c5c 100644
--- a/src/image/SkSurface_Gpu.h
+++ b/src/image/SkSurface_Gpu.h
@@ -23,7 +23,7 @@
 
     // This is an internal-only factory
     static sk_sp<SkSurface> MakeWrappedRenderTarget(GrRecordingContext*,
-                                                    std::unique_ptr<GrRenderTargetContext>);
+                                                    std::unique_ptr<GrSurfaceDrawContext>);
 
     GrRecordingContext* onGetRecordingContext() override;
 
diff --git a/src/image/SkSurface_GpuMtl.mm b/src/image/SkSurface_GpuMtl.mm
index b41e2f3..9b4d483 100644
--- a/src/image/SkSurface_GpuMtl.mm
+++ b/src/image/SkSurface_GpuMtl.mm
@@ -11,9 +11,9 @@
 #include "include/gpu/mtl/GrMtlTypes.h"
 #include "src/gpu/GrProxyProvider.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrResourceProvider.h"
 #include "src/gpu/GrResourceProviderPriv.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/image/SkSurface_Gpu.h"
 
 #if SK_SUPPORT_GPU
@@ -90,9 +90,9 @@
     GrSurfaceProxyView readView(proxy, origin, readSwizzle);
     GrSurfaceProxyView writeView(std::move(proxy), origin, writeSwizzle);
 
-    auto rtc = std::make_unique<GrRenderTargetContext>(rContext, std::move(readView),
-                                                       std::move(writeView), grColorType,
-                                                       colorSpace, surfaceProps);
+    auto rtc = std::make_unique<GrSurfaceDrawContext>(rContext, std::move(readView),
+                                                      std::move(writeView), grColorType, colorSpace,
+                                                      surfaceProps);
 
     sk_sp<SkSurface> surface = SkSurface_Gpu::MakeWrappedRenderTarget(rContext, std::move(rtc));
     return surface;
@@ -160,9 +160,9 @@
     GrSurfaceProxyView readView(proxy, origin, readSwizzle);
     GrSurfaceProxyView writeView(std::move(proxy), origin, writeSwizzle);
 
-    auto rtc = std::make_unique<GrRenderTargetContext>(rContext, std::move(readView),
-                                                       std::move(writeView), grColorType,
-                                                       colorSpace, surfaceProps);
+    auto rtc = std::make_unique<GrSurfaceDrawContext>(rContext, std::move(readView),
+                                                      std::move(writeView), grColorType, colorSpace,
+                                                      surfaceProps);
 
     sk_sp<SkSurface> surface = SkSurface_Gpu::MakeWrappedRenderTarget(rContext, std::move(rtc));
     return surface;
diff --git a/tests/BulkRectTest.cpp b/tests/BulkRectTest.cpp
index c0a4d99..8e37aa7 100644
--- a/tests/BulkRectTest.cpp
+++ b/tests/BulkRectTest.cpp
@@ -9,13 +9,13 @@
 #include "src/core/SkBlendModePriv.h"
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrProxyProvider.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/ops/GrFillRectOp.h"
 #include "src/gpu/ops/GrTextureOp.h"
 #include "tests/Test.h"
 
-static std::unique_ptr<GrRenderTargetContext> new_RTC(GrRecordingContext* rContext) {
-    return GrRenderTargetContext::Make(
+static std::unique_ptr<GrSurfaceDrawContext> new_RTC(GrRecordingContext* rContext) {
+    return GrSurfaceDrawContext::Make(
             rContext, GrColorType::kRGBA_8888, nullptr, SkBackingFit::kExact, {128, 128});
 }
 
@@ -53,9 +53,9 @@
         return;
     }
 
-    std::unique_ptr<GrRenderTargetContext> rtc = new_RTC(dContext);
+    std::unique_ptr<GrSurfaceDrawContext> rtc = new_RTC(dContext);
 
-    auto quads = new GrRenderTargetContext::QuadSetEntry[requestedTotNumQuads];
+    auto quads = new GrSurfaceDrawContext::QuadSetEntry[requestedTotNumQuads];
 
     for (int i = 0; i < requestedTotNumQuads; ++i) {
         quads[i].fRect = SkRect::MakeWH(100.5f, 100.5f); // prevent the int non-AA optimization
@@ -97,7 +97,7 @@
                                     bool allUniqueProxies,
                                     int requestedTotNumQuads, int expectedNumOps) {
 
-    std::unique_ptr<GrRenderTargetContext> rtc = new_RTC(dContext);
+    std::unique_ptr<GrSurfaceDrawContext> rtc = new_RTC(dContext);
 
     GrSurfaceProxyView proxyViewA, proxyViewB;
 
@@ -112,7 +112,7 @@
                                         GrSwizzle::RGBA());
     }
 
-    auto set = new GrRenderTargetContext::TextureSetEntry[requestedTotNumQuads];
+    auto set = new GrSurfaceDrawContext::TextureSetEntry[requestedTotNumQuads];
 
     for (int i = 0; i < requestedTotNumQuads; ++i) {
         if (!allUniqueProxies) {
diff --git a/tests/ClearTest.cpp b/tests/ClearTest.cpp
index be121e3..16d704e 100644
--- a/tests/ClearTest.cpp
+++ b/tests/ClearTest.cpp
@@ -23,7 +23,7 @@
 #include "src/gpu/GrColor.h"
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrImageInfo.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/ops/GrClearOp.h"
 #include "tests/Test.h"
 #include "tools/gpu/GrContextFactory.h"
@@ -31,7 +31,7 @@
 #include <cstdint>
 #include <memory>
 
-static bool check_rect(GrDirectContext* dContext, GrRenderTargetContext* rtc, const SkIRect& rect,
+static bool check_rect(GrDirectContext* dContext, GrSurfaceDrawContext* rtc, const SkIRect& rect,
                        uint32_t expectedValue, uint32_t* actualValue, int* failX, int* failY) {
     int w = rect.width();
     int h = rect.height();
@@ -61,8 +61,8 @@
     return true;
 }
 
-std::unique_ptr<GrRenderTargetContext> newRTC(GrRecordingContext* rContext, int w, int h) {
-    return GrRenderTargetContext::Make(
+std::unique_ptr<GrSurfaceDrawContext> newRTC(GrRecordingContext* rContext, int w, int h) {
+    return GrSurfaceDrawContext::Make(
             rContext, GrColorType::kRGBA_8888, nullptr, SkBackingFit::kExact, {w, h});
 }
 
@@ -71,7 +71,7 @@
     static const int kH = 10;
 
     SkIRect fullRect = SkIRect::MakeWH(kW, kH);
-    std::unique_ptr<GrRenderTargetContext> rtContext;
+    std::unique_ptr<GrSurfaceDrawContext> rtContext;
 
     // A rectangle that is inset by one on all sides and the 1-pixel wide rectangles that surround
     // it.
diff --git a/tests/CopySurfaceTest.cpp b/tests/CopySurfaceTest.cpp
index 069a083..f05dc86 100644
--- a/tests/CopySurfaceTest.cpp
+++ b/tests/CopySurfaceTest.cpp
@@ -18,8 +18,8 @@
 #include "src/gpu/GrCaps.h"
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrImageInfo.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrSurfaceContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrSurfaceProxy.h"
 #include "src/gpu/GrTextureProxy.h"
 #include "src/gpu/SkGr.h"
diff --git a/tests/DefaultPathRendererTest.cpp b/tests/DefaultPathRendererTest.cpp
index 50e039a..376f54c 100644
--- a/tests/DefaultPathRendererTest.cpp
+++ b/tests/DefaultPathRendererTest.cpp
@@ -27,8 +27,8 @@
 #include "src/gpu/GrFragmentProcessor.h"
 #include "src/gpu/GrImageInfo.h"
 #include "src/gpu/GrPaint.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrStyle.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/effects/generated/GrConstColorProcessor.h"
 #include "tests/Test.h"
 #include "tools/gpu/GrContextFactory.h"
@@ -39,7 +39,7 @@
     options->fGpuPathRenderers = GpuPathRenderers::kNone;
 }
 
-static SkBitmap read_back(GrDirectContext* dContext, GrRenderTargetContext* rtc,
+static SkBitmap read_back(GrDirectContext* dContext, GrSurfaceDrawContext* rtc,
                           int width, int height) {
 
     SkImageInfo dstII = SkImageInfo::MakeN32Premul(width, height);
@@ -84,7 +84,7 @@
     GrStyle style(SkStrokeRec::kFill_InitStyle);
 
     {
-        auto rtc = GrRenderTargetContext::Make(
+        auto rtc = GrSurfaceDrawContext::Make(
             dContext, GrColorType::kRGBA_8888, nullptr, SkBackingFit::kApprox,
             {kBigSize/2 + 1, kBigSize/2 + 1});
 
@@ -102,7 +102,7 @@
     }
 
     {
-        auto rtc = GrRenderTargetContext::Make(
+        auto rtc = GrSurfaceDrawContext::Make(
             dContext, GrColorType::kRGBA_8888, nullptr, SkBackingFit::kExact, {kBigSize, kBigSize});
 
         rtc->clear(SK_PMColor4fBLACK);
diff --git a/tests/DeferredDisplayListTest.cpp b/tests/DeferredDisplayListTest.cpp
index 92a7295..0928dd0 100644
--- a/tests/DeferredDisplayListTest.cpp
+++ b/tests/DeferredDisplayListTest.cpp
@@ -33,8 +33,8 @@
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrGpu.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrRenderTargetProxy.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTextureProxy.h"
 #include "src/gpu/SkGpuDevice.h"
 #include "src/gpu/gl/GrGLDefines.h"
diff --git a/tests/DrawOpAtlasTest.cpp b/tests/DrawOpAtlasTest.cpp
index 0551868..2e61d24 100644
--- a/tests/DrawOpAtlasTest.cpp
+++ b/tests/DrawOpAtlasTest.cpp
@@ -28,7 +28,7 @@
 #include "src/gpu/GrMemoryPool.h"
 #include "src/gpu/GrOnFlushResourceProvider.h"
 #include "src/gpu/GrOpFlushState.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTextureProxy.h"
 #include "src/gpu/GrXferProcessor.h"
 #include "src/gpu/ops/GrAtlasTextOp.h"
@@ -196,7 +196,7 @@
     auto gpu = context->priv().getGpu();
     auto resourceProvider = context->priv().resourceProvider();
 
-    auto rtc = GrRenderTargetContext::Make(
+    auto rtc = GrSurfaceDrawContext::Make(
             context, GrColorType::kRGBA_8888, nullptr, SkBackingFit::kApprox, {32, 32});
 
     SkPaint paint;
diff --git a/tests/EGLImageTest.cpp b/tests/EGLImageTest.cpp
index 6189974..b7e8c90 100644
--- a/tests/EGLImageTest.cpp
+++ b/tests/EGLImageTest.cpp
@@ -8,8 +8,8 @@
 #include "include/gpu/GrDirectContext.h"
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrProxyProvider.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrShaderCaps.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTexture.h"
 #include "src/gpu/GrTextureProxyPriv.h"
 #include "src/gpu/gl/GrGLGpu.h"
@@ -184,14 +184,14 @@
 
     // Should not be able to wrap as a RT
     {
-        auto temp = GrRenderTargetContext::MakeFromBackendTexture(context0,
-                                                                  colorInfo.colorType(),
-                                                                  /*color space*/ nullptr,
-                                                                  backendTex,
-                                                                  1,
-                                                                  origin,
-                                                                  /*surface props*/ nullptr,
-                                                                  /*release helper*/ nullptr);
+        auto temp = GrSurfaceDrawContext::MakeFromBackendTexture(context0,
+                                                                 colorInfo.colorType(),
+                                                                 /*color space*/ nullptr,
+                                                                 backendTex,
+                                                                 1,
+                                                                 origin,
+                                                                 /*surface props*/ nullptr,
+                                                                 /*release helper*/ nullptr);
         if (temp) {
             ERRORF(reporter, "Should not be able to wrap an EXTERNAL texture as a RT.");
         }
diff --git a/tests/GrCCPRTest.cpp b/tests/GrCCPRTest.cpp
index 06bbb9b..60fbe13 100644
--- a/tests/GrCCPRTest.cpp
+++ b/tests/GrCCPRTest.cpp
@@ -21,7 +21,7 @@
 #include "src/gpu/GrPaint.h"
 #include "src/gpu/GrPathRenderer.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTexture.h"
 #include "src/gpu/ccpr/GrCCPathCache.h"
 #include "src/gpu/ccpr/GrCoverageCountingPathRenderer.h"
@@ -41,7 +41,7 @@
 
 private:
     SkIRect getConservativeBounds() const final { return fPath.getBounds().roundOut(); }
-    Effect apply(GrRecordingContext* context, GrRenderTargetContext* rtc, GrAAType,
+    Effect apply(GrRecordingContext* context, GrSurfaceDrawContext* rtc, GrAAType,
                  bool hasUserStencilSettings, GrAppliedClip* out,
                  SkRect* bounds) const override {
         out->addCoverageFP(fCCPR->makeClipProcessor(
@@ -59,7 +59,7 @@
     CCPRPathDrawer(sk_sp<GrDirectContext> dContext, skiatest::Reporter* reporter, DoStroke doStroke)
             : fDContext(dContext)
             , fCCPR(fDContext->priv().drawingManager()->getCoverageCountingPathRenderer())
-            , fRTC(GrRenderTargetContext::Make(
+            , fRTC(GrSurfaceDrawContext::Make(
                       fDContext.get(), GrColorType::kRGBA_8888, nullptr, SkBackingFit::kExact,
                       {kCanvasSize, kCanvasSize}))
             , fDoStroke(DoStroke::kYes == doStroke) {
@@ -67,7 +67,7 @@
             ERRORF(reporter, "ccpr not enabled in GrDirectContext for ccpr tests");
         }
         if (!fRTC) {
-            ERRORF(reporter, "failed to create GrRenderTargetContext for ccpr tests");
+            ERRORF(reporter, "failed to create GrSurfaceDrawContext for ccpr tests");
         }
     }
 
@@ -127,7 +127,7 @@
 private:
     sk_sp<GrDirectContext> fDContext;
     GrCoverageCountingPathRenderer* fCCPR;
-    std::unique_ptr<GrRenderTargetContext> fRTC;
+    std::unique_ptr<GrSurfaceDrawContext> fRTC;
     const bool fDoStroke;
 };
 
diff --git a/tests/GrClipStackTest.cpp b/tests/GrClipStackTest.cpp
index 2af6c22..952754e 100644
--- a/tests/GrClipStackTest.cpp
+++ b/tests/GrClipStackTest.cpp
@@ -20,7 +20,7 @@
 #include "src/core/SkRectPriv.h"
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrProxyProvider.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 
 namespace {
 
@@ -1638,7 +1638,7 @@
 
     SkSimpleMatrixProvider matrixProvider = SkMatrix::I();
     sk_sp<GrDirectContext> context = GrDirectContext::MakeMock(&options);
-    std::unique_ptr<GrRenderTargetContext> rtc = GrRenderTargetContext::Make(
+    std::unique_ptr<GrSurfaceDrawContext> rtc = GrSurfaceDrawContext::Make(
             context.get(), GrColorType::kRGBA_8888, SkColorSpace::MakeSRGB(),
             SkBackingFit::kExact, kDeviceBounds.size());
 
@@ -1785,7 +1785,7 @@
 
     SkSimpleMatrixProvider matrixProvider = SkMatrix::I();
     sk_sp<GrDirectContext> context = GrDirectContext::MakeMock(nullptr);
-    std::unique_ptr<GrRenderTargetContext> rtc = GrRenderTargetContext::Make(
+    std::unique_ptr<GrSurfaceDrawContext> rtc = GrSurfaceDrawContext::Make(
             context.get(), GrColorType::kRGBA_8888, SkColorSpace::MakeSRGB(),
             SkBackingFit::kExact, kDeviceBounds.size());
 
@@ -1835,7 +1835,7 @@
 DEF_TEST(GrClipStack_SimpleApply, r) {
     SkSimpleMatrixProvider matrixProvider = SkMatrix::I();
     sk_sp<GrDirectContext> context = GrDirectContext::MakeMock(nullptr);
-    std::unique_ptr<GrRenderTargetContext> rtc = GrRenderTargetContext::Make(
+    std::unique_ptr<GrSurfaceDrawContext> rtc = GrSurfaceDrawContext::Make(
             context.get(), GrColorType::kRGBA_8888, SkColorSpace::MakeSRGB(),
             SkBackingFit::kExact, kDeviceBounds.size());
 
@@ -1965,7 +1965,7 @@
                          sk_gpu_test::GrContextFactory::IsRenderingContext,
                          r, ctxInfo, only_allow_default) {
     GrDirectContext* context = ctxInfo.directContext();
-    std::unique_ptr<GrRenderTargetContext> rtc = GrRenderTargetContext::Make(
+    std::unique_ptr<GrSurfaceDrawContext> rtc = GrSurfaceDrawContext::Make(
             context, GrColorType::kRGBA_8888, nullptr, SkBackingFit::kExact, kDeviceBounds.size());
 
     SkSimpleMatrixProvider matrixProvider = SkMatrix::I();
diff --git a/tests/GrMeshTest.cpp b/tests/GrMeshTest.cpp
index 6426269..1c5612d 100644
--- a/tests/GrMeshTest.cpp
+++ b/tests/GrMeshTest.cpp
@@ -21,8 +21,8 @@
 #include "src/gpu/GrOpFlushState.h"
 #include "src/gpu/GrOpsRenderPass.h"
 #include "src/gpu/GrProgramInfo.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
 #include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
 #include "src/gpu/glsl/GrGLSLVarying.h"
@@ -96,7 +96,7 @@
  */
 
 static void run_test(GrDirectContext*, const char* testName, skiatest::Reporter*,
-                     const std::unique_ptr<GrRenderTargetContext>&, const SkBitmap& gold,
+                     const std::unique_ptr<GrSurfaceDrawContext>&, const SkBitmap& gold,
                      std::function<void(DrawMeshHelper*)> prepareFn,
                      std::function<void(DrawMeshHelper*)> executeFn);
 
@@ -110,7 +110,7 @@
 #endif
     auto dContext = ctxInfo.directContext();
 
-    auto rtc = GrRenderTargetContext::Make(
+    auto rtc = GrSurfaceDrawContext::Make(
             dContext, GrColorType::kRGBA_8888, nullptr, SkBackingFit::kExact,
             {kImageWidth, kImageHeight});
     if (!rtc) {
@@ -583,7 +583,7 @@
 
 static void run_test(GrDirectContext* dContext, const char* testName,
                      skiatest::Reporter* reporter,
-                     const std::unique_ptr<GrRenderTargetContext>& rtc, const SkBitmap& gold,
+                     const std::unique_ptr<GrSurfaceDrawContext>& rtc, const SkBitmap& gold,
                      std::function<void(DrawMeshHelper*)> prepareFn,
                      std::function<void(DrawMeshHelper*)> executeFn) {
     const int w = gold.width(), h = gold.height(), rowBytes = gold.rowBytes();
diff --git a/tests/GrMipMappedTest.cpp b/tests/GrMipMappedTest.cpp
index 35e038a..96ef0ae 100644
--- a/tests/GrMipMappedTest.cpp
+++ b/tests/GrMipMappedTest.cpp
@@ -18,8 +18,8 @@
 #include "src/gpu/GrGpu.h"
 #include "src/gpu/GrProxyProvider.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrSemaphore.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrSurfaceProxyPriv.h"
 #include "src/gpu/GrTexture.h"
 #include "src/gpu/GrTextureProxy.h"
@@ -348,7 +348,7 @@
 }
 
 // Create a new render target and draw 'mipmapView' into it using the provided 'filter'.
-static std::unique_ptr<GrRenderTargetContext> draw_mipmap_into_new_render_target(
+static std::unique_ptr<GrSurfaceDrawContext> draw_mipmap_into_new_render_target(
         GrRecordingContext* rContext,
         GrColorType colorType,
         SkAlphaType alphaType,
@@ -365,12 +365,12 @@
                                        SkBudgeted::kYes,
                                        GrProtected::kNo);
 
-    auto rtc = GrRenderTargetContext::Make(rContext,
-                                           colorType,
-                                           nullptr,
-                                           std::move(renderTarget),
-                                           kTopLeft_GrSurfaceOrigin,
-                                           nullptr);
+    auto rtc = GrSurfaceDrawContext::Make(rContext,
+                                          colorType,
+                                          nullptr,
+                                          std::move(renderTarget),
+                                          kTopLeft_GrSurfaceOrigin,
+                                          nullptr);
 
     rtc->drawTexture(nullptr,
                      std::move(mipmapView),
@@ -426,7 +426,7 @@
         // dirty again until GrRenderTask::makeClosed().
         mipmapProxy->markMipmapsClean();
 
-        auto mipmapRTC = GrRenderTargetContext::Make(
+        auto mipmapRTC = GrSurfaceDrawContext::Make(
             dContext.get(), colorType, nullptr, mipmapProxy, kTopLeft_GrSurfaceOrigin, nullptr);
 
         mipmapRTC->clear({.1f,.2f,.3f,.4f});
diff --git a/tests/GrPipelineDynamicStateTest.cpp b/tests/GrPipelineDynamicStateTest.cpp
index bc7f743..fba900f 100644
--- a/tests/GrPipelineDynamicStateTest.cpp
+++ b/tests/GrPipelineDynamicStateTest.cpp
@@ -19,8 +19,8 @@
 #include "src/gpu/GrOpsRenderPass.h"
 #include "src/gpu/GrProgramInfo.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
 #include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
 #include "src/gpu/glsl/GrGLSLVarying.h"
@@ -186,7 +186,7 @@
     auto dContext = ctxInfo.directContext();
     GrResourceProvider* rp = dContext->priv().resourceProvider();
 
-    auto rtc = GrRenderTargetContext::Make(
+    auto rtc = GrSurfaceDrawContext::Make(
             dContext, GrColorType::kRGBA_8888, nullptr, SkBackingFit::kExact,
             {kScreenSize, kScreenSize});
     if (!rtc) {
diff --git a/tests/GrSurfaceTest.cpp b/tests/GrSurfaceTest.cpp
index 7c849f5..204dd8c 100644
--- a/tests/GrSurfaceTest.cpp
+++ b/tests/GrSurfaceTest.cpp
@@ -17,8 +17,8 @@
 #include "src/gpu/GrImageInfo.h"
 #include "src/gpu/GrProxyProvider.h"
 #include "src/gpu/GrRenderTarget.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTexture.h"
 #include "tests/Test.h"
 #include "tests/TestUtils.h"
@@ -289,7 +289,7 @@
                     {
                         std::unique_ptr<GrSurfaceContext> surfCtx;
                         if (renderable == GrRenderable::kYes) {
-                            surfCtx = GrRenderTargetContext::Make(
+                            surfCtx = GrSurfaceDrawContext::Make(
                                     dContext, combo.fColorType, nullptr, fit,
                                     {desc.fWidth, desc.fHeight}, 1, GrMipmapped::kNo,
                                     GrProtected::kNo, kTopLeft_GrSurfaceOrigin);
diff --git a/tests/GrThreadSafeCacheTest.cpp b/tests/GrThreadSafeCacheTest.cpp
index 7f8b88c..6db901b 100644
--- a/tests/GrThreadSafeCacheTest.cpp
+++ b/tests/GrThreadSafeCacheTest.cpp
@@ -18,8 +18,8 @@
 #include "src/gpu/GrOpFlushState.h"
 #include "src/gpu/GrProxyProvider.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrStyle.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrThreadSafeCache.h"
 #include "tests/Test.h"
 #include "tests/TestUtils.h"
@@ -35,17 +35,17 @@
     return SkImageInfo::Make(wh, wh, kRGBA_8888_SkColorType, kPremul_SkAlphaType);
 }
 
-static std::unique_ptr<GrRenderTargetContext> new_RTC(GrRecordingContext* rContext, int wh) {
-    return GrRenderTargetContext::Make(rContext,
-                                       GrColorType::kRGBA_8888,
-                                       nullptr,
-                                       SkBackingFit::kExact,
-                                       {wh, wh},
-                                       1,
-                                       GrMipMapped::kNo,
-                                       GrProtected::kNo,
-                                       kImageOrigin,
-                                       SkBudgeted::kYes);
+static std::unique_ptr<GrSurfaceDrawContext> new_RTC(GrRecordingContext* rContext, int wh) {
+    return GrSurfaceDrawContext::Make(rContext,
+                                      GrColorType::kRGBA_8888,
+                                      nullptr,
+                                      SkBackingFit::kExact,
+                                      {wh, wh},
+                                      1,
+                                      GrMipMapped::kNo,
+                                      GrProtected::kNo,
+                                      kImageOrigin,
+                                      SkBudgeted::kYes);
 }
 
 static void create_view_key(GrUniqueKey* key, int wh, int id) {
@@ -640,7 +640,7 @@
                                  const GrSurfaceProxyView& lazyView,
                                  sk_sp<GrThreadSafeCache::Trampoline> trampoline) {
 
-    std::unique_ptr<GrRenderTargetContext> rtc = new_RTC(dContext, wh);
+    std::unique_ptr<GrSurfaceDrawContext> rtc = new_RTC(dContext, wh);
 
     GrPaint paint;
     paint.setColor4f({0.0f, 0.0f, 1.0f, 1.0f});
diff --git a/tests/LazyProxyTest.cpp b/tests/LazyProxyTest.cpp
index 2004335..2bc4f3b 100644
--- a/tests/LazyProxyTest.cpp
+++ b/tests/LazyProxyTest.cpp
@@ -15,7 +15,7 @@
 #include "src/gpu/GrOnFlushResourceProvider.h"
 #include "src/gpu/GrProxyProvider.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrSurfaceProxy.h"
 #include "src/gpu/GrSurfaceProxyPriv.h"
 #include "src/gpu/GrTexture.h"
@@ -177,7 +177,7 @@
         SkIRect getConservativeBounds() const final {
             return SkIRect::MakeSize(fAtlas->dimensions());
         }
-        Effect apply(GrRecordingContext* context, GrRenderTargetContext*, GrAAType,
+        Effect apply(GrRecordingContext* context, GrSurfaceDrawContext*, GrAAType,
                          bool hasUserStencilSettings, GrAppliedClip* out,
                          SkRect* bounds) const override {
             GrProxyProvider* proxyProvider = context->priv().proxyProvider();
@@ -205,10 +205,10 @@
     for (bool nullTexture : {false, true}) {
         LazyProxyTest test(reporter);
         ctx->priv().addOnFlushCallbackObject(&test);
-        auto rtc = GrRenderTargetContext::Make(
+        auto rtc = GrSurfaceDrawContext::Make(
                 ctx.get(), GrColorType::kRGBA_8888, nullptr, SkBackingFit::kExact, {100, 100});
         REPORTER_ASSERT(reporter, rtc);
-        auto mockAtlas = GrRenderTargetContext::Make(
+        auto mockAtlas = GrSurfaceDrawContext::Make(
                 ctx.get(), GrColorType::kAlpha_F16, nullptr, SkBackingFit::kExact, {10, 10});
         REPORTER_ASSERT(reporter, mockAtlas);
         LazyProxyTest::Clip clip(&test, mockAtlas->asTextureProxy());
@@ -380,7 +380,7 @@
     sk_sp<GrDirectContext> ctx = GrDirectContext::MakeMock(&mockOptions, GrContextOptions());
     GrProxyProvider* proxyProvider = ctx->priv().proxyProvider();
     for (bool failInstantiation : {false, true}) {
-        auto rtc = GrRenderTargetContext::Make(
+        auto rtc = GrSurfaceDrawContext::Make(
                 ctx.get(), GrColorType::kRGBA_8888, nullptr, SkBackingFit::kExact, {100, 100});
         REPORTER_ASSERT(reporter, rtc);
 
diff --git a/tests/OnFlushCallbackTest.cpp b/tests/OnFlushCallbackTest.cpp
index 77bf5da..16a493d 100644
--- a/tests/OnFlushCallbackTest.cpp
+++ b/tests/OnFlushCallbackTest.cpp
@@ -17,8 +17,8 @@
 #include "src/gpu/GrOnFlushResourceProvider.h"
 #include "src/gpu/GrProgramInfo.h"
 #include "src/gpu/GrProxyProvider.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTexture.h"
 #include "src/gpu/effects/GrTextureEffect.h"
 #include "src/gpu/geometry/GrQuad.h"
@@ -467,9 +467,9 @@
                                               int start,
                                               GrSurfaceProxyView atlasView,
                                               SkAlphaType atlasAlphaType) {
-    auto rtc = GrRenderTargetContext::Make(
-            rContext, GrColorType::kRGBA_8888, nullptr, SkBackingFit::kApprox,
-            {3 * kDrawnTileSize, kDrawnTileSize});
+    auto rtc = GrSurfaceDrawContext::Make(
+            rContext, GrColorType::kRGBA_8888, nullptr,
+            SkBackingFit::kApprox, {3 * kDrawnTileSize, kDrawnTileSize});
 
     rtc->clear({ 1, 0, 0, 1 });
 
@@ -579,7 +579,7 @@
     static const int kFinalWidth = 6*kDrawnTileSize;
     static const int kFinalHeight = kDrawnTileSize;
 
-    auto rtc = GrRenderTargetContext::Make(
+    auto rtc = GrSurfaceDrawContext::Make(
             dContext, GrColorType::kRGBA_8888, nullptr, SkBackingFit::kApprox,
             {kFinalWidth, kFinalHeight});
 
diff --git a/tests/PathRendererCacheTests.cpp b/tests/PathRendererCacheTests.cpp
index f7af666..e8c091a 100644
--- a/tests/PathRendererCacheTests.cpp
+++ b/tests/PathRendererCacheTests.cpp
@@ -12,10 +12,10 @@
 #include "include/gpu/GrRecordingContext.h"
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrResourceCache.h"
 #include "src/gpu/GrSoftwarePathRenderer.h"
 #include "src/gpu/GrStyle.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/effects/GrPorterDuffXferProcessor.h"
 #include "src/gpu/geometry/GrStyledShape.h"
 #include "src/gpu/ops/GrTriangulatingPathRenderer.h"
@@ -31,7 +31,7 @@
 }
 
 static void draw_path(GrRecordingContext* rContext,
-                      GrRenderTargetContext* renderTargetContext,
+                      GrSurfaceDrawContext* renderTargetContext,
                       const SkPath& path,
                       GrPathRenderer* pr,
                       GrAAType aaType,
@@ -83,7 +83,7 @@
     dContext->setResourceCacheLimit(8000000);
     GrResourceCache* cache = dContext->priv().getResourceCache();
 
-    auto rtc = GrRenderTargetContext::Make(
+    auto rtc = GrSurfaceDrawContext::Make(
             dContext.get(), GrColorType::kRGBA_8888, nullptr, SkBackingFit::kApprox, {800, 800}, 1,
             GrMipmapped::kNo, GrProtected::kNo, kTopLeft_GrSurfaceOrigin);
     if (!rtc) {
diff --git a/tests/PrimitiveProcessorTest.cpp b/tests/PrimitiveProcessorTest.cpp
index dd42e5a..a4ab132 100644
--- a/tests/PrimitiveProcessorTest.cpp
+++ b/tests/PrimitiveProcessorTest.cpp
@@ -21,7 +21,7 @@
 #include "src/gpu/GrMemoryPool.h"
 #include "src/gpu/GrOpFlushState.h"
 #include "src/gpu/GrProgramInfo.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
 #include "src/gpu/glsl/GrGLSLGeometryProcessor.h"
 #include "src/gpu/glsl/GrGLSLVarying.h"
@@ -174,7 +174,7 @@
     GrGpu* gpu = context->priv().getGpu();
 #endif
 
-    auto renderTargetContext = GrRenderTargetContext::Make(
+    auto renderTargetContext = GrSurfaceDrawContext::Make(
             context, GrColorType::kRGBA_8888, nullptr, SkBackingFit::kApprox, {1, 1});
     if (!renderTargetContext) {
         ERRORF(reporter, "Could not create render target context.");
diff --git a/tests/ProcessorTest.cpp b/tests/ProcessorTest.cpp
index 92b632a..89557e5 100644
--- a/tests/ProcessorTest.cpp
+++ b/tests/ProcessorTest.cpp
@@ -15,13 +15,14 @@
 #include "src/gpu/GrImageInfo.h"
 #include "src/gpu/GrMemoryPool.h"
 #include "src/gpu/GrProxyProvider.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
 #include "src/gpu/glsl/GrGLSLFragmentShaderBuilder.h"
 #include "src/gpu/ops/GrFillRectOp.h"
 #include "src/gpu/ops/GrMeshDrawOp.h"
 #include "tests/TestUtils.h"
+
 #include <atomic>
 #include <random>
 
@@ -156,7 +157,7 @@
 
     for (bool makeClone : {false, true}) {
         for (int parentCnt = 0; parentCnt < 2; parentCnt++) {
-            auto renderTargetContext = GrRenderTargetContext::Make(
+            auto renderTargetContext = GrSurfaceDrawContext::Make(
                     context, GrColorType::kRGBA_8888, nullptr, SkBackingFit::kApprox, {1, 1});
             {
                 sk_sp<GrTextureProxy> proxy = proxyProvider->createProxy(
@@ -227,7 +228,7 @@
 }
 
 void test_draw_op(GrRecordingContext* rContext,
-                  GrRenderTargetContext* rtc,
+                  GrSurfaceDrawContext* rtc,
                   std::unique_ptr<GrFragmentProcessor> fp) {
     GrPaint paint;
     paint.setColorFragmentProcessor(std::move(fp));
@@ -240,7 +241,7 @@
 
 // The output buffer must be the same size as the render-target context.
 void render_fp(GrDirectContext* dContext,
-               GrRenderTargetContext* rtc,
+               GrSurfaceDrawContext* rtc,
                std::unique_ptr<GrFragmentProcessor> fp,
                GrColor* outBuffer) {
     test_draw_op(dContext, rtc, std::move(fp));
@@ -392,9 +393,9 @@
 
 // We tag logged data as unpremul to avoid conversion when encoding as PNG. The input texture
 // actually contains unpremul data. Also, even though we made the result data by rendering into
-// a "unpremul" GrRenderTargetContext, our input texture is unpremul and outside of the random
+// a "unpremul" GrSurfaceDrawContext, our input texture is unpremul and outside of the random
 // effect configuration, we didn't do anything to ensure the output is actually premul. We just
-// don't currently allow kUnpremul GrRenderTargetContexts.
+// don't currently allow kUnpremul GrSurfaceDrawContexts.
 static constexpr auto kLogAlphaType = kUnpremul_SkAlphaType;
 
 bool log_pixels(GrColor* pixels, int widthHeight, SkString* dst) {
@@ -544,7 +545,7 @@
 
     // Make the destination context for the test.
     static constexpr int kRenderSize = 256;
-    auto rtc = GrRenderTargetContext::Make(
+    auto rtc = GrSurfaceDrawContext::Make(
             context, GrColorType::kRGBA_8888, nullptr, SkBackingFit::kExact,
             {kRenderSize, kRenderSize});
 
@@ -909,7 +910,7 @@
 
     // Make the destination context for the test.
     static constexpr int kRenderSize = 1024;
-    auto rtc = GrRenderTargetContext::Make(
+    auto rtc = GrSurfaceDrawContext::Make(
             context, GrColorType::kRGBA_8888, nullptr, SkBackingFit::kExact,
             {kRenderSize, kRenderSize});
 
diff --git a/tests/ProgramsTest.cpp b/tests/ProgramsTest.cpp
index 633be6c..0008f7c 100644
--- a/tests/ProgramsTest.cpp
+++ b/tests/ProgramsTest.cpp
@@ -137,7 +137,7 @@
 static const int kRenderTargetHeight = 1;
 static const int kRenderTargetWidth = 1;
 
-static std::unique_ptr<GrRenderTargetContext> random_render_target_context(
+static std::unique_ptr<GrSurfaceDrawContext> random_render_target_context(
         GrRecordingContext* rContext,
         SkRandom* random,
         const GrCaps* caps) {
@@ -151,7 +151,7 @@
     // Above could be 0 if msaa isn't supported.
     sampleCnt = std::max(1, sampleCnt);
 
-    return GrRenderTargetContext::Make(
+    return GrSurfaceDrawContext::Make(
             rContext, GrColorType::kRGBA_8888, nullptr, SkBackingFit::kExact,
             {kRenderTargetWidth, kRenderTargetHeight}, sampleCnt, GrMipmapped::kNo,
             GrProtected::kNo, origin);
@@ -298,7 +298,7 @@
     direct->submit(false);
 
     // Validate that GrFPs work correctly without an input.
-    auto renderTargetContext = GrRenderTargetContext::Make(
+    auto renderTargetContext = GrSurfaceDrawContext::Make(
             direct, GrColorType::kRGBA_8888, nullptr, SkBackingFit::kExact,
             {kRenderTargetWidth, kRenderTargetHeight});
     if (!renderTargetContext) {
diff --git a/tests/RectangleTextureTest.cpp b/tests/RectangleTextureTest.cpp
index a340ba1..9d106de 100644
--- a/tests/RectangleTextureTest.cpp
+++ b/tests/RectangleTextureTest.cpp
@@ -11,7 +11,7 @@
 #include "include/gpu/GrDirectContext.h"
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrProxyProvider.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTexture.h"
 #include "src/gpu/SkGr.h"
 #ifdef SK_GL
@@ -24,7 +24,7 @@
 static void test_basic_draw_as_src(skiatest::Reporter* reporter, GrDirectContext* dContext,
                                    GrSurfaceProxyView rectView, GrColorType colorType,
                                    SkAlphaType alphaType, uint32_t expectedPixelValues[]) {
-    auto rtContext = GrRenderTargetContext::Make(
+    auto rtContext = GrSurfaceDrawContext::Make(
             dContext, colorType, nullptr, SkBackingFit::kExact, rectView.proxy()->dimensions());
     for (auto filter : {GrSamplerState::Filter::kNearest, GrSamplerState::Filter::kLinear}) {
         for (auto mm : {GrSamplerState::MipmapMode::kNone, GrSamplerState::MipmapMode::kLinear}) {
@@ -42,7 +42,7 @@
 
 static void test_clear(skiatest::Reporter* reporter, GrDirectContext* dContext,
                        GrSurfaceContext* rectContext) {
-    if (GrRenderTargetContext* rtc = rectContext->asRenderTargetContext()) {
+    if (GrSurfaceDrawContext* rtc = rectContext->asRenderTargetContext()) {
         // Clear the whole thing.
         GrColor color0 = GrColorPackRGBA(0xA, 0xB, 0xC, 0xD);
         rtc->clear(SkPMColor4f::FromBytes_RGBA(color0));
diff --git a/tests/RenderTargetContextTest.cpp b/tests/RenderTargetContextTest.cpp
index 76ee6aa..453c69b 100644
--- a/tests/RenderTargetContextTest.cpp
+++ b/tests/RenderTargetContextTest.cpp
@@ -12,18 +12,18 @@
 #include "include/gpu/GrDirectContext.h"
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrImageInfo.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTextureProxy.h"
 
 static const int kSize = 64;
 
-static std::unique_ptr<GrRenderTargetContext> get_rtc(GrRecordingContext* rContext) {
-    return GrRenderTargetContext::Make(
+static std::unique_ptr<GrSurfaceDrawContext> get_rtc(GrRecordingContext* rContext) {
+    return GrSurfaceDrawContext::Make(
             rContext, GrColorType::kRGBA_8888, nullptr, SkBackingFit::kExact, {kSize, kSize});
 }
 
 static void check_instantiation_status(skiatest::Reporter* reporter,
-                                       GrRenderTargetContext* rtCtx,
+                                       GrSurfaceDrawContext* rtCtx,
                                        bool wrappedExpectation) {
     REPORTER_ASSERT(reporter, rtCtx->asRenderTargetProxy()->isInstantiated() == wrappedExpectation);
 
@@ -36,8 +36,8 @@
 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(RenderTargetContextTest, reporter, ctxInfo) {
     auto dContext = ctxInfo.directContext();
 
-    // Calling instantiate on a GrRenderTargetContext's textureProxy also instantiates the
-    // GrRenderTargetContext
+    // Calling instantiate on a GrSurfaceDrawContext's textureProxy also instantiates the
+    // GrSurfaceDrawContext
     {
         auto rtCtx = get_rtc(dContext);
 
@@ -68,6 +68,6 @@
     }
 
     // TODO: in a future world we should be able to add a test that the majority of
-    // GrRenderTargetContext calls do not force the instantiation of a deferred
-    // GrRenderTargetContext
+    // GrSurfaceDrawContext calls do not force the instantiation of a deferred
+    // GrSurfaceDrawContext
 }
diff --git a/tests/SRGBReadWritePixelsTest.cpp b/tests/SRGBReadWritePixelsTest.cpp
index afc11a0..8bc0e1e 100644
--- a/tests/SRGBReadWritePixelsTest.cpp
+++ b/tests/SRGBReadWritePixelsTest.cpp
@@ -11,8 +11,8 @@
 #include "src/gpu/GrCaps.h"
 #include "src/gpu/GrDirectContextPriv.h"
 #include "src/gpu/GrImageInfo.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrSurfaceContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/SkGr.h"
 #include "tests/Test.h"
 
@@ -192,7 +192,7 @@
 static std::unique_ptr<GrSurfaceContext> make_surface_context(Encoding contextEncoding,
                                                               GrRecordingContext* rContext,
                                                               skiatest::Reporter* reporter) {
-    auto surfaceContext = GrRenderTargetContext::Make(
+    auto surfaceContext = GrSurfaceDrawContext::Make(
             rContext, GrColorType::kRGBA_8888, encoding_as_color_space(contextEncoding),
             SkBackingFit::kExact, {kW, kH}, 1, GrMipmapped::kNo, GrProtected::kNo,
             kBottomLeft_GrSurfaceOrigin, SkBudgeted::kNo);
diff --git a/tests/SkSLCross.cpp b/tests/SkSLCross.cpp
index 3669486..88a10c6 100644
--- a/tests/SkSLCross.cpp
+++ b/tests/SkSLCross.cpp
@@ -7,18 +7,19 @@
 
 #include "tests/Test.h"
 
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/glsl/GrGLSLFragmentProcessor.h"
 
-static void run_test(skiatest::Reporter*, GrDirectContext*, GrRenderTargetContext*, SkVector a,
+static void run_test(skiatest::Reporter*, GrDirectContext*,
+                     GrSurfaceDrawContext*, SkVector a,
                      SkVector b, float expectedCrossProduct);
 
 // This is a GPU test that ensures the SkSL 2d cross() intrinsic returns the correct sign (negative,
 // positive, or zero).
 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SkSLCross, reporter, ctxInfo) {
     GrDirectContext* directContext = ctxInfo.directContext();
-    auto rtc = GrRenderTargetContext::Make(directContext, GrColorType::kRGBA_8888, nullptr,
-                                           SkBackingFit::kExact, {1, 1});
+    auto rtc = GrSurfaceDrawContext::Make(directContext, GrColorType::kRGBA_8888, nullptr,
+                                          SkBackingFit::kExact, {1, 1});
     if (!rtc) {
         ERRORF(reporter, "could not create render target context.");
         return;
@@ -81,7 +82,7 @@
 }  // namespace
 
 static void run_test(skiatest::Reporter* reporter, GrDirectContext* directContext,
-                     GrRenderTargetContext* rtc, SkVector a, SkVector b,
+                     GrSurfaceDrawContext* rtc, SkVector a, SkVector b,
                      float expectedCrossProduct) {
     SkASSERT(rtc->width() == 1);
     SkASSERT(rtc->height() == 1);
diff --git a/tests/SurfaceTest.cpp b/tests/SurfaceTest.cpp
index 10898d6..369a526 100644
--- a/tests/SurfaceTest.cpp
+++ b/tests/SurfaceTest.cpp
@@ -22,8 +22,8 @@
 #include "src/gpu/GrGpuResourcePriv.h"
 #include "src/gpu/GrImageInfo.h"
 #include "src/gpu/GrRenderTarget.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrResourceProvider.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/SkGpuDevice.h"
 #include "src/image/SkImage_Base.h"
 #include "src/image/SkImage_Gpu.h"
@@ -691,7 +691,7 @@
 
 static bool supports_readpixels(const GrCaps* caps, SkSurface* surface) {
     auto surfaceGpu = static_cast<SkSurface_Gpu*>(surface);
-    GrRenderTargetContext* context = surfaceGpu->getDevice()->accessRenderTargetContext();
+    GrSurfaceDrawContext* context = surfaceGpu->getDevice()->accessRenderTargetContext();
     GrRenderTarget* rt = context->accessRenderTarget();
     if (!rt) {
         return false;
diff --git a/tests/TriangulatingPathRendererTests.cpp b/tests/TriangulatingPathRendererTests.cpp
index fb89215..96f20b5 100644
--- a/tests/TriangulatingPathRendererTests.cpp
+++ b/tests/TriangulatingPathRendererTests.cpp
@@ -11,8 +11,8 @@
 #include "include/effects/SkGradientShader.h"
 #include "include/gpu/GrDirectContext.h"
 #include "src/gpu/GrDirectContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrStyle.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/effects/GrPorterDuffXferProcessor.h"
 #include "src/gpu/geometry/GrStyledShape.h"
 #include "src/gpu/ops/GrTriangulatingPathRenderer.h"
@@ -701,7 +701,7 @@
 }
 
 static void test_path(GrRecordingContext* rContext,
-                      GrRenderTargetContext* renderTargetContext,
+                      GrSurfaceDrawContext* renderTargetContext,
                       const SkPath& path,
                       const SkMatrix& matrix = SkMatrix::I(),
                       GrAAType aaType = GrAAType::kNone,
@@ -734,7 +734,7 @@
 
 DEF_GPUTEST_FOR_ALL_CONTEXTS(TriangulatingPathRendererTests, reporter, ctxInfo) {
     auto ctx = ctxInfo.directContext();
-    auto rtc = GrRenderTargetContext::Make(
+    auto rtc = GrSurfaceDrawContext::Make(
             ctx, GrColorType::kRGBA_8888, nullptr, SkBackingFit::kApprox, {800, 800}, 1,
             GrMipmapped::kNo, GrProtected::kNo, kTopLeft_GrSurfaceOrigin);
     if (!rtc) {
diff --git a/tests/VkBackendSurfaceTest.cpp b/tests/VkBackendSurfaceTest.cpp
index b9f2847..1ad17ae 100644
--- a/tests/VkBackendSurfaceTest.cpp
+++ b/tests/VkBackendSurfaceTest.cpp
@@ -16,7 +16,7 @@
 #include "include/gpu/GrDirectContext.h"
 #include "include/gpu/vk/GrVkTypes.h"
 #include "include/gpu/vk/GrVkVulkan.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTexture.h"
 #include "src/gpu/GrTextureProxy.h"
 #include "src/gpu/SkGpuDevice.h"
diff --git a/tools/debugger/DebugCanvas.cpp b/tools/debugger/DebugCanvas.cpp
index f4cc125..fadc256 100644
--- a/tools/debugger/DebugCanvas.cpp
+++ b/tools/debugger/DebugCanvas.cpp
@@ -22,7 +22,7 @@
 
 #include "src/gpu/GrAuditTrail.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 
 #include <string>
 
@@ -212,7 +212,7 @@
 
         // get the render target of the top device (from the original canvas) so we can ignore ops
         // drawn offscreen
-        GrRenderTargetContext* rtc =
+        GrSurfaceDrawContext* rtc =
                 originalCanvas->internal_private_accessTopLayerRenderTargetContext();
         GrSurfaceProxy::UniqueID proxyID = rtc->asSurfaceProxy()->uniqueID();
 
diff --git a/tools/gpu/GrTest.cpp b/tools/gpu/GrTest.cpp
index fbc04bf..bd27345 100644
--- a/tools/gpu/GrTest.cpp
+++ b/tools/gpu/GrTest.cpp
@@ -19,10 +19,10 @@
 #include "src/gpu/GrGpuResourceCacheAccess.h"
 #include "src/gpu/GrMemoryPool.h"
 #include "src/gpu/GrRecordingContextPriv.h"
-#include "src/gpu/GrRenderTargetContext.h"
 #include "src/gpu/GrRenderTargetProxy.h"
 #include "src/gpu/GrResourceCache.h"
 #include "src/gpu/GrSemaphore.h"
+#include "src/gpu/GrSurfaceDrawContext.h"
 #include "src/gpu/GrTexture.h"
 #include "src/gpu/SkGr.h"
 #include "src/gpu/ccpr/GrCCPathCache.h"
@@ -137,7 +137,7 @@
 DRAW_OP_TEST_EXTERN(TriangulatingPathOp);
 DRAW_OP_TEST_EXTERN(TextureOp);
 
-void GrDrawRandomOp(SkRandom* random, GrRenderTargetContext* renderTargetContext, GrPaint&& paint) {
+void GrDrawRandomOp(SkRandom* random, GrSurfaceDrawContext* renderTargetContext, GrPaint&& paint) {
     auto context = renderTargetContext->recordingContext();
     using MakeDrawOpFn = GrOp::Owner (GrPaint&&, SkRandom*,
                                       GrRecordingContext*, int numSamples);