Clean up Program::validate.

This method should really be an Impl method, since it corresponds to
a specific OpenGL call. Making it an Impl method also allows us to
remove applyUniforms, which doesn't correspond to a GL call.

BUG=angleproject:1123

Change-Id: I2abee3cfaa7393cad44566782d51ed701e84846b
Reviewed-on: https://chromium-review.googlesource.com/293825
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@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 8ff6ea5..c41dc78 100644
--- a/src/libANGLE/renderer/d3d/ProgramD3D.cpp
+++ b/src/libANGLE/renderer/d3d/ProgramD3D.cpp
@@ -1168,6 +1168,12 @@
     return LinkResult(true, gl::Error(GL_NO_ERROR));
 }
 
+GLboolean ProgramD3D::validate(const gl::Caps &caps, gl::InfoLog *infoLog)
+{
+    applyUniforms();
+    return validateSamplers(infoLog, caps);
+}
+
 void ProgramD3D::bindAttributeLocation(GLuint index, const std::string &name)
 {
 }