Index: src/gpu/gl/builders/GrGLProgramBuilder.cpp |
diff --git a/src/gpu/gl/builders/GrGLProgramBuilder.cpp b/src/gpu/gl/builders/GrGLProgramBuilder.cpp |
index bb278be3953a5256c10f379785e7ccc4910adae5..088169622ccd3f397c2a185cd593bb75dcebcf7f 100644 |
--- a/src/gpu/gl/builders/GrGLProgramBuilder.cpp |
+++ b/src/gpu/gl/builders/GrGLProgramBuilder.cpp |
@@ -55,6 +55,12 @@ |
SkAutoTDelete<GrGLProgramBuilder> builder(CreateProgramBuilder(args, gpu)); |
GrGLProgramBuilder* pb = builder.get(); |
+ |
+ // emit code to read the dst copy texture, if necessary |
+ if (GrGLFragmentShaderBuilder::kNoDstRead_DstReadKey != pb->header().fDstReadKey && |
+ !gpu->glCaps().fbFetchSupport()) { |
+ pb->fFS.emitCodeToReadDstTexture(); |
+ } |
// TODO: Once all stages can handle taking a float or vec4 and correctly handling them we can |
// seed correctly here |