Use ShaderMap in Caps - Part I

This patch is the first one of the series that organize
implementation dependent resource limits on every type
of shader into ShaderMap and clean up all the related
code.

In the next patch all such resource limits are put in
the corresponding ShaderMaps.

BUG=angleproject:2169

Change-Id: I40cb58c55b2e82df33221ddb36eff0abcd7e8b22
Reviewed-on: https://chromium-review.googlesource.com/1034108
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/renderer/d3d/ProgramD3D.cpp b/src/libANGLE/renderer/d3d/ProgramD3D.cpp
index e2c2935..33edeac 100644
--- a/src/libANGLE/renderer/d3d/ProgramD3D.cpp
+++ b/src/libANGLE/renderer/d3d/ProgramD3D.cpp
@@ -328,45 +328,6 @@
     *infoOut = infoIter->second;
     return true;
 };
-
-// TODO(jiawei.shao@intel.com): remove this function once we use ShaderMap in gl::Caps.
-GLuint GetMaximumSamplersPerShader(gl::ShaderType shaderType, const gl::Caps &caps)
-{
-    switch (shaderType)
-    {
-        case gl::ShaderType::Fragment:
-            return caps.maxTextureImageUnits;
-        case gl::ShaderType::Vertex:
-            return caps.maxVertexTextureImageUnits;
-        case gl::ShaderType::Compute:
-            return caps.maxComputeTextureImageUnits;
-        case gl::ShaderType::Geometry:
-            return caps.maxGeometryTextureImageUnits;
-        default:
-            UNREACHABLE();
-            return 0u;
-    }
-}
-
-// TODO(jiawei.shao@intel.com): remove this function once we use ShaderMap in gl::Caps.
-GLuint GetMaximumShaderUniformBlocksPerShader(gl::ShaderType shaderType, const gl::Caps &caps)
-{
-    switch (shaderType)
-    {
-        case gl::ShaderType::Vertex:
-            return caps.maxVertexUniformBlocks;
-        case gl::ShaderType::Fragment:
-            return caps.maxFragmentUniformBlocks;
-        case gl::ShaderType::Compute:
-            return caps.maxComputeUniformBlocks;
-        case gl::ShaderType::Geometry:
-            return caps.maxGeometryUniformBlocks;
-        default:
-            UNREACHABLE();
-            return 0u;
-    }
-}
-
 }  // anonymous namespace
 
 // D3DUniform Implementation
@@ -733,7 +694,7 @@
 
     ASSERT(type != gl::ShaderType::InvalidEnum);
 
-    ASSERT(samplerIndex < GetMaximumSamplersPerShader(type, caps));
+    ASSERT(samplerIndex < caps.maxShaderTextureImageUnits[type]);
 
     const auto &samplers = mShaderSamplers[type];
     if (samplerIndex < samplers.size() && samplers[samplerIndex].active)
@@ -1667,7 +1628,8 @@
     gl::Shader *computeShader = mState.getAttachedShader(gl::ShaderType::Compute);
     if (computeShader)
     {
-        mShaderSamplers[gl::ShaderType::Compute].resize(data.getCaps().maxComputeTextureImageUnits);
+        mShaderSamplers[gl::ShaderType::Compute].resize(
+            data.getCaps().maxShaderTextureImageUnits[gl::ShaderType::Compute]);
         mImagesCS.resize(data.getCaps().maxImageUnits);
         mReadonlyImagesCS.resize(data.getCaps().maxImageUnits);
 
@@ -1696,7 +1658,7 @@
                 shadersD3D[shaderType] = GetImplAs<ShaderD3D>(mState.getAttachedShader(shaderType));
 
                 mShaderSamplers[shaderType].resize(
-                    GetMaximumSamplersPerShader(shaderType, data.getCaps()));
+                    data.getCaps().maxShaderTextureImageUnits[shaderType]);
 
                 shadersD3D[shaderType]->generateWorkarounds(&mShaderWorkarounds[shaderType]);
 
@@ -1889,7 +1851,7 @@
 
             unsigned int registerIndex = uniformBlock.mShaderRegisterIndexes[shaderType] -
                                          reservedShaderRegisterIndexes[shaderType];
-            ASSERT(registerIndex < GetMaximumShaderUniformBlocksPerShader(shaderType, caps));
+            ASSERT(registerIndex < caps.maxShaderUniformBlocks[shaderType]);
 
             std::vector<int> &shaderUBOcache = mShaderUBOCaches[shaderType];
             if (shaderUBOcache.size() <= registerIndex)