Early-out of *TexSubImage* calls when the width, height or depth is zero.

BUG=angle:622

Change-Id: I74ef5b684151895b24a15fa8f799a633174622c2
Reviewed-on: https://chromium-review.googlesource.com/197270
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shannon Woods <shannonwoods@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index 6eb7b89..fe8002b 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -5178,6 +5178,12 @@
                 return;
             }
 
+            // Zero sized uploads are valid but no-ops
+            if (width == 0 || height == 0)
+            {
+                return;
+            }
+
             switch (target)
             {
               case GL_TEXTURE_2D:
@@ -6224,6 +6230,12 @@
                 return;
             }
 
+            // Zero sized uploads are valid but no-ops
+            if (width == 0 || height == 0 || depth == 0)
+            {
+                return;
+            }
+
             switch(target)
             {
               case GL_TEXTURE_3D:
@@ -6274,6 +6286,12 @@
                 return;
             }
 
+            // Zero sized copies are valid but no-ops
+            if (width == 0 || height == 0)
+            {
+                return;
+            }
+
             gl::Framebuffer *framebuffer = context->getReadFramebuffer();
             gl::Texture *texture = NULL;
             switch (target)
@@ -6391,6 +6409,12 @@
                 return;
             }
 
+            // Zero sized uploads are valid but no-ops
+            if (width == 0 || height == 0)
+            {
+                return;
+            }
+
             switch(target)
             {
               case GL_TEXTURE_3D: