Vulkan: SPIR-V Gen: Support OES_sample_variables

Built-ins from this extension are now decorated.

Bug: angleproject:4889
Change-Id: I12f80d67e3595f94fc64bdc8cb3031d36b98c279
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3048319
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
diff --git a/src/compiler/translator/OutputSPIRV.cpp b/src/compiler/translator/OutputSPIRV.cpp
index a2780df..4147cab 100644
--- a/src/compiler/translator/OutputSPIRV.cpp
+++ b/src/compiler/translator/OutputSPIRV.cpp
@@ -446,6 +446,9 @@
         case EvqFragCoord:
         case EvqFrontFacing:
         case EvqPointCoord:
+        case EvqSampleID:
+        case EvqSamplePosition:
+        case EvqSampleMaskIn:
         case EvqPatchVerticesIn:
         case EvqTessCoord:
         case EvqPrimitiveIDIn:
@@ -459,6 +462,7 @@
             return spv::StorageClassInput;
 
         case EvqFragDepth:
+        case EvqSampleMask:
         case EvqPrimitiveID:
             return spv::StorageClassOutput;
 
@@ -541,6 +545,24 @@
             name              = "gl_FragDepth";
             builtInDecoration = spv::BuiltInFragDepth;
             break;
+        case EvqSampleMask:
+            name              = "gl_SampleMask";
+            builtInDecoration = spv::BuiltInSampleMask;
+            break;
+        case EvqSampleMaskIn:
+            name              = "gl_SampleMaskIn";
+            builtInDecoration = spv::BuiltInSampleMask;
+            break;
+        case EvqSampleID:
+            name              = "gl_SampleID";
+            builtInDecoration = spv::BuiltInSampleId;
+            mBuilder.addCapability(spv::CapabilitySampleRateShading);
+            break;
+        case EvqSamplePosition:
+            name              = "gl_SamplePosition";
+            builtInDecoration = spv::BuiltInSamplePosition;
+            mBuilder.addCapability(spv::CapabilitySampleRateShading);
+            break;
         case EvqHelperInvocation:
             name              = "gl_HelperInvocation";
             builtInDecoration = spv::BuiltInHelperInvocation;