Removed SwiftShader's custom Depth/Stencil comparison enums

- Replaced DepthCompareMode, StencilCompareMode and AlphaCompareMode
  by VkCompareOp.
- Replaced StencilOperation by VkStencilOp.

Bug b/118386749

Change-Id: I7dec0cff119012345865eb164599f086edf2c88a
Reviewed-on: https://swiftshader-review.googlesource.com/c/22768
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Device/Context.cpp b/src/Device/Context.cpp
index d955c79..590e58e 100644
--- a/src/Device/Context.cpp
+++ b/src/Device/Context.cpp
@@ -175,29 +175,29 @@
 		stencilBuffer = nullptr;
 
 		stencilEnable = false;
-		stencilCompareMode = STENCIL_ALWAYS;
+		stencilCompareMode = VK_COMPARE_OP_ALWAYS;
 		stencilReference = 0;
 		stencilMask = 0xFFFFFFFF;
-		stencilFailOperation = OPERATION_KEEP;
-		stencilPassOperation = OPERATION_KEEP;
-		stencilZFailOperation = OPERATION_KEEP;
+		stencilFailOperation = VK_STENCIL_OP_KEEP;
+		stencilPassOperation = VK_STENCIL_OP_KEEP;
+		stencilZFailOperation = VK_STENCIL_OP_KEEP;
 		stencilWriteMask = 0xFFFFFFFF;
 
 		twoSidedStencil = false;
-		stencilCompareModeCCW = STENCIL_ALWAYS;
+		stencilCompareModeCCW = VK_COMPARE_OP_ALWAYS;
 		stencilReferenceCCW = 0;
 		stencilMaskCCW = 0xFFFFFFFF;
-		stencilFailOperationCCW = OPERATION_KEEP;
-		stencilPassOperationCCW = OPERATION_KEEP;
-		stencilZFailOperationCCW = OPERATION_KEEP;
+		stencilFailOperationCCW = VK_STENCIL_OP_KEEP;
+		stencilPassOperationCCW = VK_STENCIL_OP_KEEP;
+		stencilZFailOperationCCW = VK_STENCIL_OP_KEEP;
 		stencilWriteMaskCCW = 0xFFFFFFFF;
 
-		alphaCompareMode = ALPHA_ALWAYS;
+		alphaCompareMode = VK_COMPARE_OP_ALWAYS;
 		alphaTestEnable = false;
 
 		rasterizerDiscard = false;
 
-		depthCompareMode = DEPTH_LESS;
+		depthCompareMode = VK_COMPARE_OP_LESS;
 		depthBufferEnable = true;
 		depthWriteEnable = true;
 
@@ -343,8 +343,8 @@
 	{
 		if(transparencyAntialiasing != TRANSPARENCY_NONE) return true;
 		if(!alphaTestEnable) return false;
-		if(alphaCompareMode == ALPHA_ALWAYS) return false;
-		if(alphaReference == 0.0f && alphaCompareMode == ALPHA_GREATEREQUAL) return false;
+		if(alphaCompareMode == VK_COMPARE_OP_ALWAYS) return false;
+		if(alphaReference == 0.0f && alphaCompareMode == VK_COMPARE_OP_GREATER_OR_EQUAL) return false;
 
 		return true;
 	}
diff --git a/src/Device/Context.hpp b/src/Device/Context.hpp
index 4d826b4..8db5ced 100644
--- a/src/Device/Context.hpp
+++ b/src/Device/Context.hpp
@@ -84,62 +84,6 @@
 		DRAW_LAST = DRAW_INDEXEDTRIANGLEFAN32
 	};
 
-	enum DepthCompareMode ENUM_UNDERLYING_TYPE_UNSIGNED_INT
-	{
-		DEPTH_ALWAYS,
-		DEPTH_NEVER,
-		DEPTH_EQUAL,
-		DEPTH_NOTEQUAL,
-		DEPTH_LESS,
-		DEPTH_LESSEQUAL,
-		DEPTH_GREATER,
-		DEPTH_GREATEREQUAL,
-
-		DEPTH_LAST = DEPTH_GREATEREQUAL
-	};
-
-	enum StencilCompareMode ENUM_UNDERLYING_TYPE_UNSIGNED_INT
-	{
-		STENCIL_ALWAYS,
-		STENCIL_NEVER,
-		STENCIL_EQUAL,
-		STENCIL_NOTEQUAL,
-		STENCIL_LESS,
-		STENCIL_LESSEQUAL,
-		STENCIL_GREATER,
-		STENCIL_GREATEREQUAL,
-
-		STENCIL_LAST = STENCIL_GREATEREQUAL
-	};
-
-	enum StencilOperation ENUM_UNDERLYING_TYPE_UNSIGNED_INT
-	{
-		OPERATION_KEEP,
-		OPERATION_ZERO,
-		OPERATION_REPLACE,
-		OPERATION_INCRSAT,
-		OPERATION_DECRSAT,
-		OPERATION_INVERT,
-		OPERATION_INCR,
-		OPERATION_DECR,
-
-		OPERATION_LAST = OPERATION_DECR
-	};
-
-	enum AlphaCompareMode ENUM_UNDERLYING_TYPE_UNSIGNED_INT
-	{
-		ALPHA_ALWAYS,
-		ALPHA_NEVER,
-		ALPHA_EQUAL,
-		ALPHA_NOTEQUAL,
-		ALPHA_LESS,
-		ALPHA_LESSEQUAL,
-		ALPHA_GREATER,
-		ALPHA_GREATEREQUAL,
-
-		ALPHA_LAST = ALPHA_GREATEREQUAL
-	};
-
 	enum CullMode ENUM_UNDERLYING_TYPE_UNSIGNED_INT
 	{
 		CULL_NONE,
@@ -275,25 +219,25 @@
 		DrawType drawType;
 
 		bool stencilEnable;
-		StencilCompareMode stencilCompareMode;
+		VkCompareOp stencilCompareMode;
 		int stencilReference;
 		int stencilMask;
-		StencilOperation stencilFailOperation;
-		StencilOperation stencilPassOperation;
-		StencilOperation stencilZFailOperation;
+		VkStencilOp stencilFailOperation;
+		VkStencilOp stencilPassOperation;
+		VkStencilOp stencilZFailOperation;
 		int stencilWriteMask;
 
 		bool twoSidedStencil;
-		StencilCompareMode stencilCompareModeCCW;
+		VkCompareOp stencilCompareModeCCW;
 		int stencilReferenceCCW;
 		int stencilMaskCCW;
-		StencilOperation stencilFailOperationCCW;
-		StencilOperation stencilPassOperationCCW;
-		StencilOperation stencilZFailOperationCCW;
+		VkStencilOp stencilFailOperationCCW;
+		VkStencilOp stencilPassOperationCCW;
+		VkStencilOp stencilZFailOperationCCW;
 		int stencilWriteMaskCCW;
 
 		// Pixel processor states
-		AlphaCompareMode alphaCompareMode;
+		VkCompareOp alphaCompareMode;
 		bool alphaTestEnable;
 
 		CullMode cullMode;
@@ -335,7 +279,7 @@
 		// Pixel processor states
 		bool rasterizerDiscard;
 		bool depthBufferEnable;
-		DepthCompareMode depthCompareMode;
+		VkCompareOp depthCompareMode;
 		bool depthWriteEnable;
 
 		bool alphaBlendEnable;
diff --git a/src/Device/PixelProcessor.cpp b/src/Device/PixelProcessor.cpp
index 79d3d63..be72211 100644
--- a/src/Device/PixelProcessor.cpp
+++ b/src/Device/PixelProcessor.cpp
@@ -343,12 +343,12 @@
 		context->setDepthBufferEnable(depthBufferEnable);
 	}
 
-	void PixelProcessor::setDepthCompare(DepthCompareMode depthCompareMode)
+	void PixelProcessor::setDepthCompare(VkCompareOp depthCompareMode)
 	{
 		context->depthCompareMode = depthCompareMode;
 	}
 
-	void PixelProcessor::setAlphaCompare(AlphaCompareMode alphaCompareMode)
+	void PixelProcessor::setAlphaCompare(VkCompareOp alphaCompareMode)
 	{
 		context->alphaCompareMode = alphaCompareMode;
 	}
@@ -379,7 +379,7 @@
 		context->stencilEnable = stencilEnable;
 	}
 
-	void PixelProcessor::setStencilCompare(StencilCompareMode stencilCompareMode)
+	void PixelProcessor::setStencilCompare(VkCompareOp stencilCompareMode)
 	{
 		context->stencilCompareMode = stencilCompareMode;
 	}
@@ -408,17 +408,17 @@
 		stencilCCW.set(context->stencilReferenceCCW, stencilMaskCCW, context->stencilWriteMaskCCW);
 	}
 
-	void PixelProcessor::setStencilFailOperation(StencilOperation stencilFailOperation)
+	void PixelProcessor::setStencilFailOperation(VkStencilOp stencilFailOperation)
 	{
 		context->stencilFailOperation = stencilFailOperation;
 	}
 
-	void PixelProcessor::setStencilPassOperation(StencilOperation stencilPassOperation)
+	void PixelProcessor::setStencilPassOperation(VkStencilOp stencilPassOperation)
 	{
 		context->stencilPassOperation = stencilPassOperation;
 	}
 
-	void PixelProcessor::setStencilZFailOperation(StencilOperation stencilZFailOperation)
+	void PixelProcessor::setStencilZFailOperation(VkStencilOp stencilZFailOperation)
 	{
 		context->stencilZFailOperation = stencilZFailOperation;
 	}
@@ -440,22 +440,22 @@
 		context->twoSidedStencil = enable;
 	}
 
-	void PixelProcessor::setStencilCompareCCW(StencilCompareMode stencilCompareMode)
+	void PixelProcessor::setStencilCompareCCW(VkCompareOp stencilCompareMode)
 	{
 		context->stencilCompareModeCCW = stencilCompareMode;
 	}
 
-	void PixelProcessor::setStencilFailOperationCCW(StencilOperation stencilFailOperation)
+	void PixelProcessor::setStencilFailOperationCCW(VkStencilOp stencilFailOperation)
 	{
 		context->stencilFailOperationCCW = stencilFailOperation;
 	}
 
-	void PixelProcessor::setStencilPassOperationCCW(StencilOperation stencilPassOperation)
+	void PixelProcessor::setStencilPassOperationCCW(VkStencilOp stencilPassOperation)
 	{
 		context->stencilPassOperationCCW = stencilPassOperation;
 	}
 
-	void PixelProcessor::setStencilZFailOperationCCW(StencilOperation stencilZFailOperation)
+	void PixelProcessor::setStencilZFailOperationCCW(VkStencilOp stencilZFailOperation)
 	{
 		context->stencilZFailOperationCCW = stencilZFailOperation;
 	}
diff --git a/src/Device/PixelProcessor.hpp b/src/Device/PixelProcessor.hpp
index 6a2c4db..f429ecb 100644
--- a/src/Device/PixelProcessor.hpp
+++ b/src/Device/PixelProcessor.hpp
@@ -37,24 +37,24 @@
 			bool depthOverride                        : 1;   // TODO: Eliminate by querying shader.
 			bool shaderContainsKill                   : 1;   // TODO: Eliminate by querying shader.
 
-			DepthCompareMode depthCompareMode         : BITS(DEPTH_LAST);
-			AlphaCompareMode alphaCompareMode         : BITS(ALPHA_LAST);
+			VkCompareOp depthCompareMode              : BITS(VK_COMPARE_OP_END_RANGE);
+			VkCompareOp alphaCompareMode              : BITS(VK_COMPARE_OP_END_RANGE);
 			bool depthWriteEnable                     : 1;
 			bool quadLayoutDepthBuffer                : 1;
 
 			bool stencilActive                        : 1;
-			StencilCompareMode stencilCompareMode     : BITS(STENCIL_LAST);
-			StencilOperation stencilFailOperation     : BITS(OPERATION_LAST);
-			StencilOperation stencilPassOperation     : BITS(OPERATION_LAST);
-			StencilOperation stencilZFailOperation    : BITS(OPERATION_LAST);
+			VkCompareOp stencilCompareMode            : BITS(VK_COMPARE_OP_END_RANGE);
+			VkStencilOp stencilFailOperation          : BITS(VK_STENCIL_OP_END_RANGE);
+			VkStencilOp stencilPassOperation          : BITS(VK_STENCIL_OP_END_RANGE);
+			VkStencilOp stencilZFailOperation         : BITS(VK_STENCIL_OP_END_RANGE);
 			bool noStencilMask                        : 1;
 			bool noStencilWriteMask                   : 1;
 			bool stencilWriteMasked                   : 1;
 			bool twoSidedStencil                      : 1;
-			StencilCompareMode stencilCompareModeCCW  : BITS(STENCIL_LAST);
-			StencilOperation stencilFailOperationCCW  : BITS(OPERATION_LAST);
-			StencilOperation stencilPassOperationCCW  : BITS(OPERATION_LAST);
-			StencilOperation stencilZFailOperationCCW : BITS(OPERATION_LAST);
+			VkCompareOp stencilCompareModeCCW         : BITS(VK_COMPARE_OP_END_RANGE);
+			VkStencilOp stencilFailOperationCCW       : BITS(VK_STENCIL_OP_END_RANGE);
+			VkStencilOp stencilPassOperationCCW       : BITS(VK_STENCIL_OP_END_RANGE);
+			VkStencilOp stencilZFailOperationCCW      : BITS(VK_STENCIL_OP_END_RANGE);
 			bool noStencilMaskCCW                     : 1;
 			bool noStencilWriteMaskCCW                : 1;
 			bool stencilWriteMaskedCCW                : 1;
@@ -119,7 +119,7 @@
 
 			bool alphaTestActive() const
 			{
-				return (alphaCompareMode != ALPHA_ALWAYS) || (transparencyAntialiasing != TRANSPARENCY_NONE);
+				return (alphaCompareMode != VK_COMPARE_OP_ALWAYS) || (transparencyAntialiasing != TRANSPARENCY_NONE);
 			}
 
 			unsigned int hash;
@@ -209,8 +209,8 @@
 
 		void setWriteSRGB(bool sRGB);
 		void setDepthBufferEnable(bool depthBufferEnable);
-		void setDepthCompare(DepthCompareMode depthCompareMode);
-		void setAlphaCompare(AlphaCompareMode alphaCompareMode);
+		void setDepthCompare(VkCompareOp depthCompareMode);
+		void setAlphaCompare(VkCompareOp alphaCompareMode);
 		void setDepthWriteEnable(bool depthWriteEnable);
 		void setAlphaTestEnable(bool alphaTestEnable);
 		void setCullMode(CullMode cullMode, bool frontFacingCCW);
@@ -220,20 +220,20 @@
 		void setLogicalOperation(LogicalOperation logicalOperation);
 
 		void setStencilEnable(bool stencilEnable);
-		void setStencilCompare(StencilCompareMode stencilCompareMode);
+		void setStencilCompare(VkCompareOp stencilCompareMode);
 		void setStencilReference(int stencilReference);
 		void setStencilMask(int stencilMask);
-		void setStencilFailOperation(StencilOperation stencilFailOperation);
-		void setStencilPassOperation(StencilOperation stencilPassOperation);
-		void setStencilZFailOperation(StencilOperation stencilZFailOperation);
+		void setStencilFailOperation(VkStencilOp stencilFailOperation);
+		void setStencilPassOperation(VkStencilOp stencilPassOperation);
+		void setStencilZFailOperation(VkStencilOp stencilZFailOperation);
 		void setStencilWriteMask(int stencilWriteMask);
 		void setTwoSidedStencil(bool enable);
-		void setStencilCompareCCW(StencilCompareMode stencilCompareMode);
+		void setStencilCompareCCW(VkCompareOp stencilCompareMode);
 		void setStencilReferenceCCW(int stencilReference);
 		void setStencilMaskCCW(int stencilMask);
-		void setStencilFailOperationCCW(StencilOperation stencilFailOperation);
-		void setStencilPassOperationCCW(StencilOperation stencilPassOperation);
-		void setStencilZFailOperationCCW(StencilOperation stencilZFailOperation);
+		void setStencilFailOperationCCW(VkStencilOp stencilFailOperation);
+		void setStencilPassOperationCCW(VkStencilOp stencilPassOperation);
+		void setStencilZFailOperationCCW(VkStencilOp stencilZFailOperation);
 		void setStencilWriteMaskCCW(int stencilWriteMask);
 
 		void setBlendConstant(const Color<float> &blendConstant);
diff --git a/src/Device/QuadRasterizer.cpp b/src/Device/QuadRasterizer.cpp
index 0ab41c8..6251018 100644
--- a/src/Device/QuadRasterizer.cpp
+++ b/src/Device/QuadRasterizer.cpp
@@ -161,7 +161,7 @@
 
 			if(veryEarlyDepthTest && state.multiSample == 1 && !state.depthOverride)
 			{
-				if(!state.stencilActive && state.depthTestActive && (state.depthCompareMode == DEPTH_LESSEQUAL || state.depthCompareMode == DEPTH_LESS))   // FIXME: Both modes ok?
+				if(!state.stencilActive && state.depthTestActive && (state.depthCompareMode == VK_COMPARE_OP_LESS_OR_EQUAL || state.depthCompareMode == VK_COMPARE_OP_LESS))   // FIXME: Both modes ok?
 				{
 					Float4 xxxx = Float4(Float(x0)) + *Pointer<Float4>(primitive + OFFSET(Primitive,xQuad), 16);
 
diff --git a/src/Pipeline/PixelRoutine.cpp b/src/Pipeline/PixelRoutine.cpp
index 4a989a8..e3db352 100644
--- a/src/Pipeline/PixelRoutine.cpp
+++ b/src/Pipeline/PixelRoutine.cpp
@@ -339,43 +339,43 @@
 		sMask = SignMask(value) & cMask;
 	}
 
-	void PixelRoutine::stencilTest(Byte8 &value, StencilCompareMode stencilCompareMode, bool CCW)
+	void PixelRoutine::stencilTest(Byte8 &value, VkCompareOp stencilCompareMode, bool CCW)
 	{
 		Byte8 equal;
 
 		switch(stencilCompareMode)
 		{
-		case STENCIL_ALWAYS:
+		case VK_COMPARE_OP_ALWAYS:
 			value = Byte8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
 			break;
-		case STENCIL_NEVER:
+		case VK_COMPARE_OP_NEVER:
 			value = Byte8(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
 			break;
-		case STENCIL_LESS:			// a < b ~ b > a
+		case VK_COMPARE_OP_LESS:			// a < b ~ b > a
 			value += Byte8(0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80);
 			value = CmpGT(As<SByte8>(value), *Pointer<SByte8>(data + OFFSET(DrawData,stencil[CCW].referenceMaskedSignedQ)));
 			break;
-		case STENCIL_EQUAL:
+		case VK_COMPARE_OP_EQUAL:
 			value = CmpEQ(value, *Pointer<Byte8>(data + OFFSET(DrawData,stencil[CCW].referenceMaskedQ)));
 			break;
-		case STENCIL_NOTEQUAL:		// a != b ~ !(a == b)
+		case VK_COMPARE_OP_NOT_EQUAL:		// a != b ~ !(a == b)
 			value = CmpEQ(value, *Pointer<Byte8>(data + OFFSET(DrawData,stencil[CCW].referenceMaskedQ)));
 			value ^= Byte8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
 			break;
-		case STENCIL_LESSEQUAL:	// a <= b ~ (b > a) || (a == b)
+		case VK_COMPARE_OP_LESS_OR_EQUAL:	// a <= b ~ (b > a) || (a == b)
 			equal = value;
 			equal = CmpEQ(equal, *Pointer<Byte8>(data + OFFSET(DrawData,stencil[CCW].referenceMaskedQ)));
 			value += Byte8(0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80);
 			value = CmpGT(As<SByte8>(value), *Pointer<SByte8>(data + OFFSET(DrawData,stencil[CCW].referenceMaskedSignedQ)));
 			value |= equal;
 			break;
-		case STENCIL_GREATER:		// a > b
+		case VK_COMPARE_OP_GREATER:		// a > b
 			equal = *Pointer<Byte8>(data + OFFSET(DrawData,stencil[CCW].referenceMaskedSignedQ));
 			value += Byte8(0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80);
 			equal = CmpGT(As<SByte8>(equal), As<SByte8>(value));
 			value = equal;
 			break;
-		case STENCIL_GREATEREQUAL:	// a >= b ~ !(a < b) ~ !(b > a)
+		case VK_COMPARE_OP_GREATER_OR_EQUAL:	// a >= b ~ !(a < b) ~ !(b > a)
 			value += Byte8(0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80);
 			value = CmpGT(As<SByte8>(value), *Pointer<SByte8>(data + OFFSET(DrawData,stencil[CCW].referenceMaskedSignedQ)));
 			value ^= Byte8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
@@ -426,7 +426,7 @@
 
 		Float4 zValue;
 
-		if(state.depthCompareMode != DEPTH_NEVER || (state.depthCompareMode != DEPTH_ALWAYS && !state.depthWriteEnable))
+		if(state.depthCompareMode != VK_COMPARE_OP_NEVER || (state.depthCompareMode != VK_COMPARE_OP_ALWAYS && !state.depthWriteEnable))
 		{
 			if(!state.quadLayoutDepthBuffer)
 			{
@@ -444,19 +444,19 @@
 
 		switch(state.depthCompareMode)
 		{
-		case DEPTH_ALWAYS:
+		case VK_COMPARE_OP_ALWAYS:
 			// Optimized
 			break;
-		case DEPTH_NEVER:
+		case VK_COMPARE_OP_NEVER:
 			// Optimized
 			break;
-		case DEPTH_EQUAL:
+		case VK_COMPARE_OP_EQUAL:
 			zTest = CmpEQ(zValue, Z);
 			break;
-		case DEPTH_NOTEQUAL:
+		case VK_COMPARE_OP_NOT_EQUAL:
 			zTest = CmpNEQ(zValue, Z);
 			break;
-		case DEPTH_LESS:
+		case VK_COMPARE_OP_LESS:
 			if(complementaryDepthBuffer)
 			{
 				zTest = CmpLT(zValue, Z);
@@ -466,7 +466,7 @@
 				zTest = CmpNLE(zValue, Z);
 			}
 			break;
-		case DEPTH_GREATEREQUAL:
+		case VK_COMPARE_OP_GREATER_OR_EQUAL:
 			if(complementaryDepthBuffer)
 			{
 				zTest = CmpNLT(zValue, Z);
@@ -476,7 +476,7 @@
 				zTest = CmpLE(zValue, Z);
 			}
 			break;
-		case DEPTH_LESSEQUAL:
+		case VK_COMPARE_OP_LESS_OR_EQUAL:
 			if(complementaryDepthBuffer)
 			{
 				zTest = CmpLE(zValue, Z);
@@ -486,7 +486,7 @@
 				zTest = CmpNLT(zValue, Z);
 			}
 			break;
-		case DEPTH_GREATER:
+		case VK_COMPARE_OP_GREATER:
 			if(complementaryDepthBuffer)
 			{
 				zTest = CmpNLE(zValue, Z);
@@ -502,10 +502,10 @@
 
 		switch(state.depthCompareMode)
 		{
-		case DEPTH_ALWAYS:
+		case VK_COMPARE_OP_ALWAYS:
 			zMask = cMask;
 			break;
-		case DEPTH_NEVER:
+		case VK_COMPARE_OP_NEVER:
 			zMask = 0x0;
 			break;
 		default:
@@ -528,35 +528,35 @@
 
 		switch(state.alphaCompareMode)
 		{
-		case ALPHA_ALWAYS:
+		case VK_COMPARE_OP_ALWAYS:
 			aMask = 0xF;
 			break;
-		case ALPHA_NEVER:
+		case VK_COMPARE_OP_NEVER:
 			aMask = 0x0;
 			break;
-		case ALPHA_EQUAL:
+		case VK_COMPARE_OP_EQUAL:
 			cmp = CmpEQ(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4)));
 			aMask = SignMask(PackSigned(cmp, Short4(0x0000)));
 			break;
-		case ALPHA_NOTEQUAL:       // a != b ~ !(a == b)
+		case VK_COMPARE_OP_NOT_EQUAL:       // a != b ~ !(a == b)
 			cmp = CmpEQ(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4))) ^ Short4(0xFFFFu);   // FIXME
 			aMask = SignMask(PackSigned(cmp, Short4(0x0000)));
 			break;
-		case ALPHA_LESS:           // a < b ~ b > a
+		case VK_COMPARE_OP_LESS:           // a < b ~ b > a
 			cmp = CmpGT(*Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4)), alpha);
 			aMask = SignMask(PackSigned(cmp, Short4(0x0000)));
 			break;
-		case ALPHA_GREATEREQUAL:   // a >= b ~ (a > b) || (a == b) ~ !(b > a)   // TODO: Approximate
+		case VK_COMPARE_OP_GREATER_OR_EQUAL:   // a >= b ~ (a > b) || (a == b) ~ !(b > a)   // TODO: Approximate
 			equal = CmpEQ(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4)));
 			cmp = CmpGT(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4)));
 			cmp |= equal;
 			aMask = SignMask(PackSigned(cmp, Short4(0x0000)));
 			break;
-		case ALPHA_LESSEQUAL:      // a <= b ~ !(a > b)
+		case VK_COMPARE_OP_LESS_OR_EQUAL:      // a <= b ~ !(a > b)
 			cmp = CmpGT(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4))) ^ Short4(0xFFFFu);   // FIXME
 			aMask = SignMask(PackSigned(cmp, Short4(0x0000)));
 			break;
-		case ALPHA_GREATER:        // a > b
+		case VK_COMPARE_OP_GREATER:        // a > b
 			cmp = CmpGT(alpha, *Pointer<Short4>(data + OFFSET(DrawData,factor.alphaReference4)));
 			aMask = SignMask(PackSigned(cmp, Short4(0x0000)));
 			break;
@@ -624,7 +624,7 @@
 
 		Float4 zValue;
 
-		if(state.depthCompareMode != DEPTH_NEVER || (state.depthCompareMode != DEPTH_ALWAYS && !state.depthWriteEnable))
+		if(state.depthCompareMode != VK_COMPARE_OP_NEVER || (state.depthCompareMode != VK_COMPARE_OP_ALWAYS && !state.depthWriteEnable))
 		{
 			if(!state.quadLayoutDepthBuffer)
 			{
@@ -661,9 +661,9 @@
 			return;
 		}
 
-		if(state.stencilPassOperation == OPERATION_KEEP && state.stencilZFailOperation == OPERATION_KEEP && state.stencilFailOperation == OPERATION_KEEP)
+		if(state.stencilPassOperation == VK_STENCIL_OP_KEEP && state.stencilZFailOperation == VK_STENCIL_OP_KEEP && state.stencilFailOperation == VK_STENCIL_OP_KEEP)
 		{
-			if(!state.twoSidedStencil || (state.stencilPassOperationCCW == OPERATION_KEEP && state.stencilZFailOperationCCW == OPERATION_KEEP && state.stencilFailOperationCCW == OPERATION_KEEP))
+			if(!state.twoSidedStencil || (state.stencilPassOperationCCW == VK_STENCIL_OP_KEEP && state.stencilZFailOperationCCW == VK_STENCIL_OP_KEEP && state.stencilFailOperationCCW == VK_STENCIL_OP_KEEP))
 			{
 				return;
 			}
@@ -720,7 +720,7 @@
 		*Pointer<Byte4>(buffer) = Byte4(newValue);
 	}
 
-	void PixelRoutine::stencilOperation(Byte8 &newValue, Byte8 &bufferValue, StencilOperation stencilPassOperation, StencilOperation stencilZFailOperation, StencilOperation stencilFailOperation, bool CCW, Int &zMask, Int &sMask)
+	void PixelRoutine::stencilOperation(Byte8 &newValue, Byte8 &bufferValue, VkStencilOp stencilPassOperation, VkStencilOp stencilZFailOperation, VkStencilOp stencilFailOperation, bool CCW, Int &zMask, Int &sMask)
 	{
 		Byte8 &pass = newValue;
 		Byte8 fail;
@@ -753,32 +753,32 @@
 		}
 	}
 
-	void PixelRoutine::stencilOperation(Byte8 &output, Byte8 &bufferValue, StencilOperation operation, bool CCW)
+	void PixelRoutine::stencilOperation(Byte8 &output, Byte8 &bufferValue, VkStencilOp operation, bool CCW)
 	{
 		switch(operation)
 		{
-		case OPERATION_KEEP:
+		case VK_STENCIL_OP_KEEP:
 			output = bufferValue;
 			break;
-		case OPERATION_ZERO:
+		case VK_STENCIL_OP_ZERO:
 			output = Byte8(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
 			break;
-		case OPERATION_REPLACE:
+		case VK_STENCIL_OP_REPLACE:
 			output = *Pointer<Byte8>(data + OFFSET(DrawData,stencil[CCW].referenceQ));
 			break;
-		case OPERATION_INCRSAT:
+		case VK_STENCIL_OP_INCREMENT_AND_CLAMP:
 			output = AddSat(bufferValue, Byte8(1, 1, 1, 1, 1, 1, 1, 1));
 			break;
-		case OPERATION_DECRSAT:
+		case VK_STENCIL_OP_DECREMENT_AND_CLAMP:
 			output = SubSat(bufferValue, Byte8(1, 1, 1, 1, 1, 1, 1, 1));
 			break;
-		case OPERATION_INVERT:
+		case VK_STENCIL_OP_INVERT:
 			output = bufferValue ^ Byte8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
 			break;
-		case OPERATION_INCR:
+		case VK_STENCIL_OP_INCREMENT_AND_WRAP:
 			output = bufferValue + Byte8(1, 1, 1, 1, 1, 1, 1, 1);
 			break;
-		case OPERATION_DECR:
+		case VK_STENCIL_OP_DECREMENT_AND_WRAP:
 			output = bufferValue - Byte8(1, 1, 1, 1, 1, 1, 1, 1);
 			break;
 		default:
diff --git a/src/Pipeline/PixelRoutine.hpp b/src/Pipeline/PixelRoutine.hpp
index 8e8e074..c6a4f16 100644
--- a/src/Pipeline/PixelRoutine.hpp
+++ b/src/Pipeline/PixelRoutine.hpp
@@ -66,9 +66,9 @@
 	private:
 		Float4 interpolateCentroid(Float4 &x, Float4 &y, Float4 &rhw, Pointer<Byte> planeEquation, bool flat, bool perspective);
 		void stencilTest(Pointer<Byte> &sBuffer, int q, Int &x, Int &sMask, Int &cMask);
-		void stencilTest(Byte8 &value, StencilCompareMode stencilCompareMode, bool CCW);
-		void stencilOperation(Byte8 &newValue, Byte8 &bufferValue, StencilOperation stencilPassOperation, StencilOperation stencilZFailOperation, StencilOperation stencilFailOperation, bool CCW, Int &zMask, Int &sMask);
-		void stencilOperation(Byte8 &output, Byte8 &bufferValue, StencilOperation operation, bool CCW);
+		void stencilTest(Byte8 &value, VkCompareOp stencilCompareMode, bool CCW);
+		void stencilOperation(Byte8 &newValue, Byte8 &bufferValue, VkStencilOp stencilPassOperation, VkStencilOp stencilZFailOperation, VkStencilOp stencilFailOperation, bool CCW, Int &zMask, Int &sMask);
+		void stencilOperation(Byte8 &output, Byte8 &bufferValue, VkStencilOp operation, bool CCW);
 		Bool depthTest(Pointer<Byte> &zBuffer, int q, Int &x, Float4 &z, Int &sMask, Int &zMask, Int &cMask);
 
 		// Raster operations