Fixed a bug where ES3 was validating the texture size in non-CopySubImage calls.

TRAC #23276

Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods
Author: Geoff Lang
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index 7d0b154..5a34f04 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -1189,17 +1189,20 @@
         }
     }
 
-    if (xoffset + width > textureLevelWidth ||
-        yoffset + height > textureLevelHeight ||
-        zoffset >= textureLevelDepth)
+    if (isSubImage)
     {
-        return gl::error(GL_INVALID_VALUE, false);
-    }
+        if (xoffset + width > textureLevelWidth ||
+            yoffset + height > textureLevelHeight ||
+            zoffset >= textureLevelDepth)
+        {
+            return gl::error(GL_INVALID_VALUE, false);
+        }
 
-    if (!gl::IsValidCopyTexImageCombination(textureInternalFormat, colorbufferInternalFormat,
-                                            context->getClientVersion()))
-    {
-        return gl::error(GL_INVALID_OPERATION, false);
+        if (!gl::IsValidCopyTexImageCombination(textureInternalFormat, colorbufferInternalFormat,
+                                                context->getClientVersion()))
+        {
+            return gl::error(GL_INVALID_OPERATION, false);
+        }
     }
 
     return true;