Correcting INVALID_OPERATION to INVALID_ENUM

Should return INVALID_ENUM when uncompressed texture passed to
compressed image constructor.

BUG=angleproject:1168

Change-Id: If30f0407e7455d6e19432831883d33a1e8bfec9a
Reviewed-on: https://chromium-review.googlesource.com/303750
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/validationES2.cpp b/src/libANGLE/validationES2.cpp
index 429f430..ea6b807 100644
--- a/src/libANGLE/validationES2.cpp
+++ b/src/libANGLE/validationES2.cpp
@@ -124,23 +124,10 @@
         return false;
     }
 
-    GLenum actualInternalFormat = isSubImage ? texture->getInternalFormat(target, level) : internalformat;
-    const InternalFormat &actualFormatInfo = GetInternalFormatInfo(actualInternalFormat);
-
-    if (isCompressed != actualFormatInfo.compressed)
-    {
-        context->recordError(Error(GL_INVALID_OPERATION));
-        return false;
-    }
-
     if (isCompressed)
     {
-        if (!ValidCompressedImageSize(context, actualInternalFormat, width, height))
-        {
-            context->recordError(Error(GL_INVALID_OPERATION));
-            return false;
-        }
-
+        GLenum actualInternalFormat =
+            isSubImage ? texture->getInternalFormat(target, level) : internalformat;
         switch (actualInternalFormat)
         {
           case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
@@ -166,7 +153,13 @@
             }
             break;
           default:
-            context->recordError(Error(GL_INVALID_ENUM));
+              context->recordError(Error(
+                  GL_INVALID_ENUM, "internalformat is not a supported compressed internal format"));
+              return false;
+        }
+        if (!ValidCompressedImageSize(context, actualInternalFormat, width, height))
+        {
+            context->recordError(Error(GL_INVALID_OPERATION));
             return false;
         }
     }