Move GrShaderVar to an appending model for layout qualifiers

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5144

Change-Id: I05e88961e50bd679cfe5863f413f3ec65bc9fd95
Reviewed-on: https://skia-review.googlesource.com/5144
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/include/gpu/GrShaderVar.h b/include/gpu/GrShaderVar.h
index 81a7566..aaae107 100644
--- a/include/gpu/GrShaderVar.h
+++ b/include/gpu/GrShaderVar.h
@@ -271,10 +271,17 @@
     void setPrecision(GrSLPrecision p) { fPrecision = p; }
 
     /**
-     * Set the layout qualifier
+     * Appends to the layout qualifier
      */
-    void setLayoutQualifier(const char* layoutQualifier) {
-        fLayoutQualifier = layoutQualifier;
+    void addLayoutQualifier(const char* layoutQualifier) {
+        if (!layoutQualifier || !strlen(layoutQualifier)) {
+            return;
+        }
+        if (fLayoutQualifier.isEmpty()) {
+            fLayoutQualifier = layoutQualifier;
+        } else {
+            fLayoutQualifier.appendf(", %s", layoutQualifier);
+        }
     }
 
     void addModifier(const char* modifier) {