Add a hash of all vertex attributes to the GrProgramDesc key

Recent work to dynamically switch the CPU type of the color attribute
exposed this problem - we were ignoring the attribute types, and getting
cache hits on incorrect GrProgram objects with stale layout information.

This fixes GMs in configs that may use F16 colors (eg glenarrow).

Bug: skia:
Change-Id: Ic87c47601c26e53c2173713a6cf14d209af8e246
Reviewed-on: https://skia-review.googlesource.com/c/175243
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/src/gpu/GrProgramDesc.cpp b/src/gpu/GrProgramDesc.cpp
index aa84c98..d888a63 100644
--- a/src/gpu/GrProgramDesc.cpp
+++ b/src/gpu/GrProgramDesc.cpp
@@ -212,6 +212,7 @@
     GrProcessorKeyBuilder b(&desc->key());
 
     primProc.getGLSLProcessorKey(shaderCaps, &b);
+    primProc.getAttributeKey(&b);
     if (!gen_meta_key(primProc, shaderCaps, 0, &b)) {
         desc->key().reset();
         return false;