ES31: Implement glSampleMaski on OpenGL

This patch intends to implement glSampleMaski on OpenGL
backends.
Refers to: https://chromium-review.googlesource.com/c/487603

BUG=angleproject:1592
TEST=dEQP-GLES31.functional.state_query.*.sample_mask*
TEST=dEQP-GLES31.functional.texture.multisample.*.sample_mask*

Change-Id: If5ddd6ab57259593919a482be80fbdbe29f6f54d
Reviewed-on: https://chromium-review.googlesource.com/573727
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/validationES3.cpp b/src/libANGLE/validationES3.cpp
index 115700a..16cb742 100644
--- a/src/libANGLE/validationES3.cpp
+++ b/src/libANGLE/validationES3.cpp
@@ -2319,6 +2319,18 @@
                 return false;
             }
             break;
+        case GL_SAMPLE_MASK_VALUE:
+            if (context->getClientVersion() < ES_3_1)
+            {
+                ANGLE_VALIDATION_ERR(context, InvalidEnum(), EnumRequiresGLES31);
+                return false;
+            }
+            if (index >= caps.maxSampleMaskWords)
+            {
+                ANGLE_VALIDATION_ERR(context, InvalidValue(), InvalidSampleMaskNumber);
+                return false;
+            }
+            break;
         default:
             context->handleError(InvalidEnum());
             return false;