Wire up alphaToCoverage support

All the real work was already done; this just needed connecting.

Bug: b/118386749
Test: dEQP-VK.pipeline.multisample.alpha_to_coverage.*
Change-Id: Ib1e2b7a64a76d8d7df9ed5c93e4cc738efdd83b3
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/29648
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Pipeline/PixelRoutine.cpp b/src/Pipeline/PixelRoutine.cpp
index 9aac2e6..7d59143 100644
--- a/src/Pipeline/PixelRoutine.cpp
+++ b/src/Pipeline/PixelRoutine.cpp
@@ -62,7 +62,8 @@
 			Long pipeTime = Ticks();
 		#endif
 
-		const bool earlyDepthTest = !spirvShader->getModes().DepthReplacing && !state.alphaTestActive();
+		// TODO: consider shader which modifies sample mask in general
+		const bool earlyDepthTest = !spirvShader->getModes().DepthReplacing && !state.alphaToCoverage;
 
 		Int zMask[4];   // Depth mask
 		Int sMask[4];   // Stencil mask
@@ -194,7 +195,7 @@
 
 				alphaPass = alphaTest(cMask);
 
-				if((spirvShader && spirvShader->getModes().ContainsKill) || state.alphaTestActive())
+				if((spirvShader && spirvShader->getModes().ContainsKill) || state.alphaToCoverage)
 				{
 					for(unsigned int q = 0; q < state.multiSample; q++)
 					{
@@ -2476,6 +2477,6 @@
 
 	bool PixelRoutine::colorUsed()
 	{
-		return state.colorWriteMask || state.alphaTestActive() || (spirvShader && spirvShader->getModes().ContainsKill);
+		return state.colorWriteMask || state.alphaToCoverage || (spirvShader && spirvShader->getModes().ContainsKill);
 	}
 }