Revert "Revert "more relaxed precision decorations for SPIR-V output""

This reverts commit d15b908f9496b2280514a6dbcb1c32c4b0dc47c0.

Bug: skia:
Change-Id: I514bd96fdeaaa81dc7310f901c156438303c09f3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/202129
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
diff --git a/src/sksl/SkSLSPIRVCodeGenerator.h b/src/sksl/SkSLSPIRVCodeGenerator.h
index 3681cfe..422c0e7 100644
--- a/src/sksl/SkSLSPIRVCodeGenerator.h
+++ b/src/sksl/SkSLSPIRVCodeGenerator.h
@@ -101,6 +101,11 @@
         kTexture_SpecialIntrinsic,
     };
 
+    enum class Precision {
+        kLow,
+        kHigh,
+    };
+
     void setupIntrinsics();
 
     SpvId nextId();
@@ -120,6 +125,8 @@
     SpvId getPointerType(const Type& type, const MemoryLayout& layout,
                          SpvStorageClass_ storageClass);
 
+    void writePrecisionModifier(Precision precision, SpvId id);
+
     void writePrecisionModifier(const Type& type, SpvId id);
 
     std::vector<SpvId> getAccessChain(const Expression& expr, OutputStream& out);