D3D11: Futher optimize input layout cache.

*re-land with fix for matrix attributes*
*re-re-land with fix for attributes with BindAttribLocation*

Using the new vertex format type enum, we can shrink the size
of the input layout tables and reduce draw call overhead
further.

BUG=angleproject:959

Change-Id: I181acd3d7d519f5587cbe180fb1bca8530b7cfc2
Reviewed-on: https://chromium-review.googlesource.com/285348
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/Program.h b/src/libANGLE/Program.h
index 17baa0d..949b61f 100644
--- a/src/libANGLE/Program.h
+++ b/src/libANGLE/Program.h
@@ -195,6 +195,7 @@
     void getActiveAttribute(GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
     GLint getActiveAttributeCount();
     GLint getActiveAttributeMaxLength();
+    const sh::Attribute *getLinkedAttributes() const { return mLinkedAttribute; }
 
     GLint getSamplerMapping(SamplerType type, unsigned int samplerIndex, const Caps &caps);
     GLenum getSamplerTextureType(SamplerType type, unsigned int samplerIndex);