Normalize storage of shader strings in the cache

Adds a tag that can be used to verify the expected type
of shaders. My follow-up CL that adds SkSL editing to
Vulkan relies heavily on this.

Change-Id: Ifda420c2dcbaff07cdf1b8157d0ece02b1ab6c78
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/210262
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp
index d3545a6..ca82abb 100644
--- a/tools/viewer/Viewer.cpp
+++ b/tools/viewer/Viewer.cpp
@@ -1966,8 +1966,8 @@
                             entry.fKeyString.appendf("%02x", digest.data[i]);
                         }
 
-                        GrPersistentCacheUtils::UnpackCachedGLSL(data.get(), &entry.fInputs,
-                                                                 entry.fShader);
+                        entry.fShaderType = GrPersistentCacheUtils::UnpackCachedShaders(
+                                data.get(), entry.fShader, entry.fInputs, kGrShaderTypeCount);
                     };
                     fCachedGLSL.reset();
                     fPersistentCache.foreach(collectShaders);
@@ -2026,8 +2026,10 @@
                             entry.fShader[kFragment_GrShaderType] = highlight;
                         }
 
-                        auto data = GrPersistentCacheUtils::PackCachedGLSL(entry.fInputs,
-                                                                           entry.fShader);
+                        auto data = GrPersistentCacheUtils::PackCachedShaders(entry.fShaderType,
+                                                                              entry.fShader,
+                                                                              entry.fInputs,
+                                                                              kGrShaderTypeCount);
                         fPersistentCache.store(*entry.fKey, *data);
 
                         entry.fShader[kFragment_GrShaderType] = backup;