added support for flat and noperspective modifiers in SPIR-V

Bug: skia:
Change-Id: I41f90464377be5de6813d6011b7e53dbac9230b6
Reviewed-on: https://skia-review.googlesource.com/26345
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
diff --git a/src/sksl/SkSLSPIRVCodeGenerator.cpp b/src/sksl/SkSLSPIRVCodeGenerator.cpp
index 1f8f224..d367df9 100644
--- a/src/sksl/SkSLSPIRVCodeGenerator.cpp
+++ b/src/sksl/SkSLSPIRVCodeGenerator.cpp
@@ -2932,6 +2932,13 @@
             fCurrentBlock = 0;
         }
         this->writeLayout(var->fModifiers.fLayout, id);
+        if (var->fModifiers.fFlags & Modifiers::kFlat_Flag) {
+            this->writeInstruction(SpvOpDecorate, id, SpvDecorationFlat, fDecorationBuffer);
+        }
+        if (var->fModifiers.fFlags & Modifiers::kNoPerspective_Flag) {
+            this->writeInstruction(SpvOpDecorate, id, SpvDecorationNoPerspective,
+                                   fDecorationBuffer);
+        }
     }
 }