Make GrPipeline::CreateAt take GrRenderTarget and not GrRenderTargetContext

This is needed in order to create pipelines at flush time.

Change-Id: I0bcd64d503d45c3383dbb932b048e2d7faa07c67
Reviewed-on: https://skia-review.googlesource.com/8849
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/GrRenderTargetOpList.cpp b/src/gpu/GrRenderTargetOpList.cpp
index cd22541..eb80cbc 100644
--- a/src/gpu/GrRenderTargetOpList.cpp
+++ b/src/gpu/GrRenderTargetOpList.cpp
@@ -292,7 +292,12 @@
     GrPipeline::CreateArgs args;
     pipelineBuilder.initPipelineCreateArgs(&args);
     args.fAppliedClip = &appliedClip;
-    args.fRenderTargetContext = renderTargetContext;
+    // This forces instantiation of the render target. Pipeline creation is moving to flush time
+    // by which point instantiation must have occurred anyway.
+    args.fRenderTarget = renderTargetContext->accessRenderTarget();
+    if (!args.fRenderTarget) {
+        return;
+    }
     args.fCaps = this->caps();
     args.fAnalysis = &analysis;
     if (analysis.usesPLSDstRead() || fClipOpToBounds) {