Store un-linked shader attributes in ProgramBinary.

Our caching of compiled vertex shaders according to their input
signature needs a consistent input signature to match up shaders.
Since the linking step currently shuffles attributes according
to API specified locations we need a separate list.

BUG=angle:560
Change-Id: Icc4d5df1d37ae895d5c882b86e60f05b5c268461
Reviewed-on: https://chromium-review.googlesource.com/185193
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libGLESv2/ProgramBinary.h b/src/libGLESv2/ProgramBinary.h
index 808f387..24825ee 100644
--- a/src/libGLESv2/ProgramBinary.h
+++ b/src/libGLESv2/ProgramBinary.h
@@ -212,6 +212,7 @@
     rx::ShaderExecutable *mPixelExecutable;
 
     sh::Attribute mLinkedAttribute[MAX_VERTEX_ATTRIBS];
+    sh::Attribute mShaderAttributes[MAX_VERTEX_ATTRIBS];
     int mSemanticIndex[MAX_VERTEX_ATTRIBS];
     int mAttributesByLayout[MAX_VERTEX_ATTRIBS];