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/validationES3.cpp b/src/libGLESv2/validationES3.cpp
index 92ee329..dfb0356 100644
--- a/src/libGLESv2/validationES3.cpp
+++ b/src/libGLESv2/validationES3.cpp
@@ -51,6 +51,8 @@
         return gl::error(GL_INVALID_VALUE, false);
     }
 
+    const gl::Caps &caps = context->getCaps();
+
     gl::Texture *texture = NULL;
     bool textureCompressed = false;
     GLenum textureInternalFormat = GL_NONE;
@@ -61,8 +63,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);
             }
@@ -92,7 +94,7 @@
                 return gl::error(GL_INVALID_VALUE, false);
             }
 
-            if (width > (context->getMaximumCubeTextureDimension() >> level))
+            if (static_cast<GLuint>(width) > (caps.maxCubeMapTextureSize >> level))
             {
                 return gl::error(GL_INVALID_VALUE, false);
             }
@@ -112,9 +114,9 @@
 
       case GL_TEXTURE_3D:
         {
-            if (width > (context->getMaximum3DTextureDimension() >> level) ||
-                height > (context->getMaximum3DTextureDimension() >> level) ||
-                depth > (context->getMaximum3DTextureDimension() >> level))
+            if (static_cast<GLuint>(width) > (caps.max3DTextureSize >> level) ||
+                static_cast<GLuint>(height) > (caps.max3DTextureSize >> level) ||
+                static_cast<GLuint>(depth) > (caps.max3DTextureSize >> level))
             {
                 return gl::error(GL_INVALID_VALUE, false);
             }
@@ -134,9 +136,9 @@
 
         case GL_TEXTURE_2D_ARRAY:
           {
-              if (width > (context->getMaximum2DTextureDimension() >> level) ||
-                  height > (context->getMaximum2DTextureDimension() >> level) ||
-                  depth > (context->getMaximum2DArrayTextureLayers() >> level))
+              if (static_cast<GLuint>(width) > (caps.max2DTextureSize >> level) ||
+                  static_cast<GLuint>(height) > (caps.max2DTextureSize >> level) ||
+                  static_cast<GLuint>(depth) > (caps.maxArrayTextureLayers >> level))
               {
                   return gl::error(GL_INVALID_VALUE, false);
               }
@@ -365,6 +367,8 @@
         return gl::error(GL_INVALID_OPERATION, false);
     }
 
+    const gl::Caps &caps = context->getCaps();
+
     gl::Texture *texture = NULL;
     switch (target)
     {
@@ -372,8 +376,8 @@
         {
             texture = context->getTexture2D();
 
-            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);
             }
@@ -389,7 +393,7 @@
                 return gl::error(GL_INVALID_VALUE, false);
             }
 
-            if (width > (context->getMaximumCubeTextureDimension()))
+            if (static_cast<GLuint>(width) > caps.maxCubeMapTextureSize)
             {
                 return gl::error(GL_INVALID_VALUE, false);
             }
@@ -400,9 +404,9 @@
         {
             texture = context->getTexture3D();
 
-            if (width > (context->getMaximum3DTextureDimension()) ||
-                height > (context->getMaximum3DTextureDimension()) ||
-                depth > (context->getMaximum3DTextureDimension()))
+            if (static_cast<GLuint>(width) > caps.max3DTextureSize ||
+                static_cast<GLuint>(height) > caps.max3DTextureSize ||
+                static_cast<GLuint>(depth) > caps.max3DTextureSize)
             {
                 return gl::error(GL_INVALID_VALUE, false);
             }
@@ -413,9 +417,9 @@
         {
             texture = context->getTexture2DArray();
 
-            if (width > (context->getMaximum2DTextureDimension()) ||
-                height > (context->getMaximum2DTextureDimension()) ||
-                depth > (context->getMaximum2DArrayTextureLayers()))
+            if (static_cast<GLuint>(width) > caps.max2DTextureSize ||
+                static_cast<GLuint>(height) > caps.max2DTextureSize ||
+                static_cast<GLuint>(depth) > caps.maxArrayTextureLayers)
             {
                 return gl::error(GL_INVALID_VALUE, false);
             }
@@ -463,6 +467,7 @@
         return false;
     }
 
+    const gl::Caps &caps = context->getCaps();
     if (texture != 0)
     {
         gl::Texture *tex = context->getTexture(texture);
@@ -488,7 +493,7 @@
             {
               case GL_TEXTURE_2D:
                 {
-                    if (level > gl::log2(context->getMaximum2DTextureDimension()))
+                    if (level > gl::log2(caps.max2DTextureSize))
                     {
                         return gl::error(GL_INVALID_VALUE, false);
                     }
@@ -511,7 +516,7 @@
               case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
               case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
                 {
-                    if (level > gl::log2(context->getMaximumCubeTextureDimension()))
+                    if (level > gl::log2(caps.maxCubeMapTextureSize))
                     {
                         return gl::error(GL_INVALID_VALUE, false);
                     }
@@ -537,12 +542,12 @@
             {
               case GL_TEXTURE_2D_ARRAY:
                 {
-                    if (level > gl::log2(context->getMaximum2DTextureDimension()))
+                    if (level > gl::log2(caps.max2DTextureSize))
                     {
                         return gl::error(GL_INVALID_VALUE, false);
                     }
 
-                    if (layer >= context->getMaximum2DArrayTextureLayers())
+                    if (static_cast<GLuint>(layer) >= caps.maxArrayTextureLayers)
                     {
                         return gl::error(GL_INVALID_VALUE, false);
                     }
@@ -558,12 +563,12 @@
 
               case GL_TEXTURE_3D:
                 {
-                    if (level > gl::log2(context->getMaximum3DTextureDimension()))
+                    if (level > gl::log2(caps.max3DTextureSize))
                     {
                         return gl::error(GL_INVALID_VALUE, false);
                     }
 
-                    if (layer >= context->getMaximum3DTextureDimension())
+                    if (static_cast<GLuint>(layer) >= caps.max3DTextureSize)
                     {
                         return gl::error(GL_INVALID_VALUE, false);
                     }
@@ -717,7 +722,7 @@
                 return gl::error(GL_INVALID_ENUM, false);
             }
 
-            if (attachments[i] >= GL_COLOR_ATTACHMENT0 + context->getMaximumRenderTargets())
+            if (attachments[i] >= GL_COLOR_ATTACHMENT0 + context->getCaps().maxColorAttachments)
             {
                 return gl::error(GL_INVALID_OPERATION, false);
             }