Allow the special format BGR5_A1 in CopyTexImage.

We use this format as a backbuffer texture for the EGL surface in
some configs. Thus, the app needs to be able to use it, since they
don't know when they are secretly using BGRA instead of RGBA,
similar to our existing logic which allows BGRA in CopyTexImage.

BUG=angle:811

Change-Id: I3748d38b3b085aa4ccaae67ce88711b13eb2c98e
Reviewed-on: https://chromium-review.googlesource.com/239192
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/validationES2.cpp b/src/libANGLE/validationES2.cpp
index 63a23c5..c1ccc4c 100644
--- a/src/libANGLE/validationES2.cpp
+++ b/src/libANGLE/validationES2.cpp
@@ -611,7 +611,8 @@
                 colorbufferFormat != GL_RGBA4 &&
                 colorbufferFormat != GL_RGB5_A1 &&
                 colorbufferFormat != GL_BGRA8_EXT &&
-                colorbufferFormat != GL_RGBA8_OES)
+                colorbufferFormat != GL_RGBA8_OES &&
+                colorbufferFormat != GL_BGR5_A1_ANGLEX)
             {
                 context->recordError(Error(GL_INVALID_OPERATION));
                 return false;
@@ -625,7 +626,8 @@
                   colorbufferFormat != GL_RGBA4 &&
                   colorbufferFormat != GL_RGB5_A1 &&
                   colorbufferFormat != GL_BGRA8_EXT &&
-                  colorbufferFormat != GL_RGBA8_OES)
+                  colorbufferFormat != GL_RGBA8_OES &&
+                  colorbufferFormat != GL_BGR5_A1_ANGLEX)
               {
                   context->recordError(Error(GL_INVALID_OPERATION));
                   return false;
@@ -639,7 +641,8 @@
                   colorbufferFormat != GL_RGBA4 &&
                   colorbufferFormat != GL_RGB5_A1 &&
                   colorbufferFormat != GL_BGRA8_EXT &&
-                  colorbufferFormat != GL_RGBA8_OES)
+                  colorbufferFormat != GL_RGBA8_OES &&
+                  colorbufferFormat != GL_BGR5_A1_ANGLEX)
               {
                   context->recordError(Error(GL_INVALID_OPERATION));
                   return false;
@@ -652,7 +655,8 @@
                   colorbufferFormat != GL_RGBA4 &&
                   colorbufferFormat != GL_RGB5_A1 &&
                   colorbufferFormat != GL_BGRA8_EXT &&
-                  colorbufferFormat != GL_RGBA8_OES)
+                  colorbufferFormat != GL_RGBA8_OES &&
+                  colorbufferFormat != GL_BGR5_A1_ANGLEX)
               {
                   context->recordError(Error(GL_INVALID_OPERATION));
                   return false;
@@ -664,7 +668,8 @@
                 colorbufferFormat != GL_RGBA4 &&
                 colorbufferFormat != GL_RGB5_A1 &&
                 colorbufferFormat != GL_BGRA8_EXT &&
-                colorbufferFormat != GL_RGBA8_OES)
+                colorbufferFormat != GL_RGBA8_OES &&
+                colorbufferFormat != GL_BGR5_A1_ANGLEX)
             {
                 context->recordError(Error(GL_INVALID_OPERATION));
                 return false;
@@ -675,7 +680,8 @@
             if (colorbufferFormat != GL_RGBA4 &&
                 colorbufferFormat != GL_RGB5_A1 &&
                 colorbufferFormat != GL_BGRA8_EXT &&
-                colorbufferFormat != GL_RGBA8_OES)
+                colorbufferFormat != GL_RGBA8_OES &&
+                colorbufferFormat != GL_BGR5_A1_ANGLEX)
             {
                 context->recordError(Error(GL_INVALID_OPERATION));
                 return false;