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;