Pass depth to computeBlockSize.
This was very wrong for 3D textures.
BUG=angleproject:1384
Change-Id: I7f042449e30e1e909778c0524d1ce99d20ddfd65
Reviewed-on: https://chromium-review.googlesource.com/348063
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/validationES3.cpp b/src/libANGLE/validationES3.cpp
index d2e4e21..acdffca 100644
--- a/src/libANGLE/validationES3.cpp
+++ b/src/libANGLE/validationES3.cpp
@@ -490,7 +490,7 @@
}
const gl::InternalFormat &formatInfo = gl::GetInternalFormatInfo(sizedFormat);
- auto copyBytesOrErr = formatInfo.computeBlockSize(type, width, height);
+ auto copyBytesOrErr = formatInfo.computeBlockSize(type, gl::Extents(width, height, depth));
if (copyBytesOrErr.isError())
{
context->handleError(copyBytesOrErr.getError());
@@ -1557,10 +1557,11 @@
}
const InternalFormat &formatInfo = GetInternalFormatInfo(internalformat);
- auto blockSizeOrErr = formatInfo.computeBlockSize(GL_UNSIGNED_BYTE, width, height);
+ auto blockSizeOrErr =
+ formatInfo.computeBlockSize(GL_UNSIGNED_BYTE, gl::Extents(width, height, depth));
if (blockSizeOrErr.isError())
{
- context->handleError(blockSizeOrErr.getError());
+ context->handleError(Error(GL_INVALID_VALUE));
return false;
}
if (imageSize < 0 || static_cast<GLuint>(imageSize) != blockSizeOrErr.getResult())
@@ -1905,7 +1906,8 @@
}
const InternalFormat &formatInfo = GetInternalFormatInfo(format);
- auto blockSizeOrErr = formatInfo.computeBlockSize(GL_UNSIGNED_BYTE, width, height);
+ auto blockSizeOrErr =
+ formatInfo.computeBlockSize(GL_UNSIGNED_BYTE, gl::Extents(width, height, depth));
if (blockSizeOrErr.isError())
{
context->handleError(blockSizeOrErr.getError());