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());
}