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;