ES31: Add PROGRAM_SEPARABLE to ProgramParameter and GetProgram

BUG=angleproject:1939
TEST=angle_end2end_tests

Change-Id: I97ad11360f7c015947a2c0cc7d4a47f994726834
Reviewed-on: https://chromium-review.googlesource.com/454264
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/libANGLE/Program.h b/src/libANGLE/Program.h
index 7503cd3..1b21278 100644
--- a/src/libANGLE/Program.h
+++ b/src/libANGLE/Program.h
@@ -257,6 +257,7 @@
     std::map<int, VariableLocation> mOutputLocations;
 
     bool mBinaryRetrieveableHint;
+    bool mSeparable;
 };
 
 class Program final : angle::NonCopyable, public LabeledObject
@@ -308,6 +309,9 @@
     void setBinaryRetrievableHint(bool retrievable);
     bool getBinaryRetrievableHint() const;
 
+    void setSeparable(bool separable);
+    bool isSeparable() const;
+
     int getInfoLogLength() const;
     void getInfoLog(GLsizei bufSize, GLsizei *length, char *infoLog) const;
     void getAttachedShaders(GLsizei maxCount, GLsizei *count, GLuint *shaders) const;