Make ProgramImpl::compileProgramExecutables D3D-only.

Finally we can isolate this method into the D3D-only code, and
remove the interface from ProgramImpl.

BUG=angleproject:1123

Change-Id: I253b15d44d4cf8bbb5dbeaa78bbcc431a5267bf7
Reviewed-on: https://chromium-review.googlesource.com/293765
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 f4f9a99..ba5e0f6 100644
--- a/src/libANGLE/renderer/d3d/ProgramD3D.cpp
+++ b/src/libANGLE/renderer/d3d/ProgramD3D.cpp
@@ -1100,7 +1100,6 @@
                             gl::InfoLog &infoLog,
                             gl::Shader *fragmentShader,
                             gl::Shader *vertexShader,
-                            int *registers,
                             std::map<int, gl::VariableLocation> *outputVariables)
 {
     ShaderD3D *vertexShaderD3D = GetImplAs<ShaderD3D>(vertexShader);
@@ -1127,10 +1126,10 @@
 
     // Map the varyings to the register file
     VaryingPacking packing = {};
-    *registers = mDynamicHLSL->packVaryings(infoLog, packing, fragmentShaderD3D, vertexShaderD3D,
-                                            mData.getTransformFeedbackVaryingNames());
+    int registers = mDynamicHLSL->packVaryings(infoLog, packing, fragmentShaderD3D, vertexShaderD3D,
+                                               mData.getTransformFeedbackVaryingNames());
 
-    if (*registers < 0)
+    if (registers < 0)
     {
         return LinkResult(false, gl::Error(GL_NO_ERROR));
     }
@@ -1139,7 +1138,7 @@
 
     std::vector<gl::LinkedVarying> linkedVaryings;
     if (!mDynamicHLSL->generateShaderLinkHLSL(
-            data, infoLog, *registers, packing, mPixelHLSL, mVertexHLSL, fragmentShaderD3D,
+            data, infoLog, registers, packing, mPixelHLSL, mVertexHLSL, fragmentShaderD3D,
             vertexShaderD3D, mData.getTransformFeedbackVaryingNames(), &linkedVaryings,
             outputVariables, &mPixelShaderKey, &mUsesFragDepth))
     {
@@ -1159,6 +1158,13 @@
 
     gatherTransformFeedbackVaryings(linkedVaryings);
 
+    LinkResult result = compileProgramExecutables(infoLog, registers);
+    if (result.error.isError() || !result.linkSuccess)
+    {
+        infoLog << "Failed to create D3D shaders.";
+        return result;
+    }
+
     return LinkResult(true, gl::Error(GL_NO_ERROR));
 }