Update end2end tests to function without EXT_texture_storage.
This also exposed an issue in our glTexSubImage2D validation where the
sized format would be used for the texture support check when the unsized
format was provided. The GL_ALPHA32F format is not valid unless
EXT_texture_storage is present but using GL_ALPHA + GL_FLOAT is valid.
BUG=angleproject:1958
Change-Id: Ice0b7549c39559990942176481c5175df17aaf92
Reviewed-on: https://chromium-review.googlesource.com/491246
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/validationES3.cpp b/src/libANGLE/validationES3.cpp
index a9b8653..572dcf2 100644
--- a/src/libANGLE/validationES3.cpp
+++ b/src/libANGLE/validationES3.cpp
@@ -199,15 +199,16 @@
// Validate texture formats
GLenum actualInternalFormat =
- isSubImage ? texture->getFormat(target, level).info->sizedInternalFormat : internalformat;
+ isSubImage ? texture->getFormat(target, level).info->internalFormat : internalformat;
if (isSubImage && actualInternalFormat == GL_NONE)
{
context->handleError(Error(GL_INVALID_OPERATION, "Texture level does not exist."));
return false;
}
- const gl::InternalFormat &actualFormatInfo =
- gl::GetSizedInternalFormatInfo(actualInternalFormat);
+ const gl::InternalFormat &actualFormatInfo = isSubImage
+ ? *texture->getFormat(target, level).info
+ : GetInternalFormatInfo(internalformat, type);
if (isCompressed)
{
if (!actualFormatInfo.compressed)