Fix validation in TexSubImage.

We weren't properly checking the x and y offsets against the texture
boundary, and were in some cases producing D3D errors with out-of-bounds
writes. This was popping up in IncompleteTextureTest. The test itself
was also bugged.

BUG=angle:610

Change-Id: Id58cac088fed03cae2aabbf00bce234f17208753
Reviewed-on: https://chromium-review.googlesource.com/195410
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/tests/angle_tests/IncompleteTextureTest.cpp b/tests/angle_tests/IncompleteTextureTest.cpp
index 45b9c05..7499ef9 100644
--- a/tests/angle_tests/IncompleteTextureTest.cpp
+++ b/tests/angle_tests/IncompleteTextureTest.cpp
@@ -126,7 +126,7 @@
     fillTextureData(redTextureData, 255, 0, 0, 255);
     for (size_t i = 0; i < 7; i++)
     {
-        glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, redTextureWidth >> i, redTextureHeight >> i, 0, GL_RGBA, GL_UNSIGNED_BYTE,
+        glTexImage2D(GL_TEXTURE_2D, i, GL_RGBA, redTextureWidth >> i, redTextureHeight >> i, 0, GL_RGBA, GL_UNSIGNED_BYTE,
                      redTextureData.data());
     }
 
@@ -143,7 +143,7 @@
 
     for (size_t i = 0; i < 6; i++)
     {
-        glTexSubImage2D(GL_TEXTURE_2D, 0, greenTextureWidth >> i, greenTextureHeight >> i,
+        glTexSubImage2D(GL_TEXTURE_2D, i, greenTextureWidth >> i, greenTextureHeight >> i,
                         greenTextureWidth >> i, greenTextureHeight >> i, GL_RGBA, GL_UNSIGNED_BYTE,
                         greenTextureData.data());
     }