Clean up interface to ProgramImpl::link.

We no longer need to pass mutable shaders with the changed to packed
varyings.

BUG=angleproject:1123

Change-Id: I0a4bbf5d770ff48e10e3de2146840d8987b1e826
Reviewed-on: https://chromium-review.googlesource.com/295194
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/d3d/ProgramD3D.cpp b/src/libANGLE/renderer/d3d/ProgramD3D.cpp
index 179186a..7a77fd4 100644
--- a/src/libANGLE/renderer/d3d/ProgramD3D.cpp
+++ b/src/libANGLE/renderer/d3d/ProgramD3D.cpp
@@ -1128,24 +1128,24 @@
     return LinkResult(linkSuccess, gl::Error(GL_NO_ERROR));
 }
 
-LinkResult ProgramD3D::link(const gl::Data &data,
-                            gl::InfoLog &infoLog,
-                            gl::Shader *fragmentShader,
-                            gl::Shader *vertexShader)
+LinkResult ProgramD3D::link(const gl::Data &data, gl::InfoLog &infoLog)
 {
-    ShaderD3D *vertexShaderD3D = GetImplAs<ShaderD3D>(vertexShader);
-    ShaderD3D *fragmentShaderD3D = GetImplAs<ShaderD3D>(fragmentShader);
+    const gl::Shader *vertexShader   = mData.getAttachedVertexShader();
+    const gl::Shader *fragmentShader = mData.getAttachedFragmentShader();
 
-    mSamplersPS.resize(data.caps->maxTextureImageUnits);
+    const ShaderD3D *vertexShaderD3D   = GetImplAs<ShaderD3D>(vertexShader);
+    const ShaderD3D *fragmentShaderD3D = GetImplAs<ShaderD3D>(fragmentShader);
+
     mSamplersVS.resize(data.caps->maxVertexTextureImageUnits);
-
-    mPixelHLSL = fragmentShaderD3D->getTranslatedSource();
-    fragmentShaderD3D->generateWorkarounds(&mPixelWorkarounds);
+    mSamplersPS.resize(data.caps->maxTextureImageUnits);
 
     mVertexHLSL = vertexShaderD3D->getTranslatedSource();
     vertexShaderD3D->generateWorkarounds(&mVertexWorkarounds);
     mShaderVersion = vertexShaderD3D->getShaderVersion();
 
+    mPixelHLSL = fragmentShaderD3D->getTranslatedSource();
+    fragmentShaderD3D->generateWorkarounds(&mPixelWorkarounds);
+
     if (mRenderer->getRendererLimitations().noFrontFacingSupport)
     {
         if (fragmentShaderD3D->usesFrontFacing())