Pass integer texture format bit count to shaders on D3D11

This will be needed in the future when integer texture wrap mode support
will be added by sampling integer textures through FLOAT/UNORM/SNORM
SRVs.

The bit count needs to be passed for 8-, 10- and 16-bit textures. 32-bit
integer textures are the ones left over. Only passing the bit counts for
the absolute minimum number of formats avoids unnecessary driver constant
buffer updates.

BUG=angleproject:1244
BUG=angleproject:1095
TEST=angle_end2end_tests

Change-Id: I28a84588842b2eb9a1661454437d21c22ce794b7
Reviewed-on: https://chromium-review.googlesource.com/326944
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
diff --git a/src/compiler/translator/OutputHLSL.cpp b/src/compiler/translator/OutputHLSL.cpp
index 3337022..31a62de 100644
--- a/src/compiler/translator/OutputHLSL.cpp
+++ b/src/compiler/translator/OutputHLSL.cpp
@@ -858,7 +858,7 @@
 
         if (textureFunction->method == TextureFunction::SIZE)
         {
-            out << "int baseLevel = samplerMetadata[samplerIndex];\n";
+            out << "int baseLevel = samplerMetadata[samplerIndex].x;\n";
             if (IsSampler2D(textureFunction->sampler) || IsSamplerCube(textureFunction->sampler))
             {
                 if (IsSamplerArray(textureFunction->sampler) ||