Implement GetMultismaplefvANGLE and SampleMaskiANGLE of texture multisample extension

This patch adds GetMultismaplefvANGLE and SampleMaskiANGLE api.

TEST=TextureMultisampleTest.CheckSamplePositions*
TEST=NegativeTextureMultisampleTest.Negtive*

BUG=angleproject:2275

Change-Id: Ib1e8b856059229bbe88328a28cf2a892f4673214
Reviewed-on: https://chromium-review.googlesource.com/c/1319252
Commit-Queue: Yizhou Jiang <yizhou.jiang@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/validationES31.cpp b/src/libANGLE/validationES31.cpp
index 8ae760b..037f24e 100644
--- a/src/libANGLE/validationES31.cpp
+++ b/src/libANGLE/validationES31.cpp
@@ -964,22 +964,7 @@
         return false;
     }
 
-    if (pname != GL_SAMPLE_POSITION)
-    {
-        context->validationError(GL_INVALID_ENUM, kInvalidPname);
-        return false;
-    }
-
-    Framebuffer *framebuffer = context->getGLState().getDrawFramebuffer();
-    GLint samples            = framebuffer->getSamples(context);
-
-    if (index >= static_cast<GLuint>(samples))
-    {
-        context->validationError(GL_INVALID_VALUE, kIndexExceedsSamples);
-        return false;
-    }
-
-    return true;
+    return ValidateGetMultisamplefvBase(context, pname, index, val);
 }
 
 bool ValidateGetMultisamplefvRobustANGLE(Context *context,
@@ -1823,13 +1808,7 @@
         return false;
     }
 
-    if (maskNumber >= context->getCaps().maxSampleMaskWords)
-    {
-        context->validationError(GL_INVALID_VALUE, kInvalidSampleMaskNumber);
-        return false;
-    }
-
-    return true;
+    return ValidateSampleMaskiBase(context, maskNumber, mask);
 }
 
 bool ValidateFramebufferTextureEXT(Context *context,