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/Program.cpp b/src/libANGLE/Program.cpp
index 8877fdf..cea9df1 100644
--- a/src/libANGLE/Program.cpp
+++ b/src/libANGLE/Program.cpp
@@ -966,12 +966,6 @@
     mProgram->getUniformuiv(location, v);
 }
 
-// Applies all the uniforms set for this program object to the renderer
-Error Program::applyUniforms()
-{
-    return mProgram->applyUniforms();
-}
-
 void Program::flagForDeletion()
 {
     mDeleteStatus = true;
@@ -985,12 +979,10 @@
 void Program::validate(const Caps &caps)
 {
     mInfoLog.reset();
-    mValidated = false;
 
     if (mLinked)
     {
-        applyUniforms();
-        mValidated = mProgram->validateSamplers(&mInfoLog, caps);
+        mValidated = (mProgram->validate(caps, &mInfoLog) == GL_TRUE);
     }
     else
     {