Add caps for texture size limits and other caps in the 6.28 table.
BUG=angle:658
Change-Id: Ia265fe1d3713db7701b41e8430d6d186f352ab4a
Reviewed-on: https://chromium-review.googlesource.com/201363
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libGLESv2/validationES2.cpp b/src/libGLESv2/validationES2.cpp
index a11ca9c..9c96c9a 100644
--- a/src/libGLESv2/validationES2.cpp
+++ b/src/libGLESv2/validationES2.cpp
@@ -131,6 +131,8 @@
return gl::error(GL_INVALID_OPERATION, false);
}
+ const gl::Caps &caps = context->getCaps();
+
gl::Texture *texture = NULL;
bool textureCompressed = false;
GLenum textureInternalFormat = GL_NONE;
@@ -140,8 +142,8 @@
{
case GL_TEXTURE_2D:
{
- if (width > (context->getMaximum2DTextureDimension() >> level) ||
- height > (context->getMaximum2DTextureDimension() >> level))
+ if (static_cast<GLuint>(width) > (caps.max2DTextureSize >> level) ||
+ static_cast<GLuint>(height) > (caps.max2DTextureSize >> level))
{
return gl::error(GL_INVALID_VALUE, false);
}
@@ -178,8 +180,8 @@
return gl::error(GL_INVALID_VALUE, false);
}
- if (width > (context->getMaximumCubeTextureDimension() >> level) ||
- height > (context->getMaximumCubeTextureDimension() >> level))
+ if (static_cast<GLuint>(width) > (caps.maxCubeMapTextureSize >> level) ||
+ static_cast<GLuint>(height) > (caps.maxCubeMapTextureSize >> level))
{
return gl::error(GL_INVALID_VALUE, false);
}
@@ -712,18 +714,20 @@
return gl::error(GL_INVALID_ENUM, false);
}
+ const gl::Caps &caps = context->getCaps();
+
switch (target)
{
case GL_TEXTURE_2D:
- if (width > context->getMaximum2DTextureDimension() ||
- height > context->getMaximum2DTextureDimension())
+ if (static_cast<GLuint>(width) > caps.max2DTextureSize ||
+ static_cast<GLuint>(height) > caps.max2DTextureSize)
{
return gl::error(GL_INVALID_VALUE, false);
}
break;
case GL_TEXTURE_CUBE_MAP:
- if (width > context->getMaximumCubeTextureDimension() ||
- height > context->getMaximumCubeTextureDimension())
+ if (static_cast<GLuint>(width) > caps.maxCubeMapTextureSize ||
+ static_cast<GLuint>(height) > caps.maxCubeMapTextureSize)
{
return gl::error(GL_INVALID_VALUE, false);
}