Fix stencil state plumbing
Bug: b/128715612
Test: dEQP-VK.pipeline.stencil.format.*
Change-Id: I4789c0ff77c43e91fc7cbd7e2aceab0b1ba9cdb3
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27429
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
diff --git a/src/Device/PixelProcessor.cpp b/src/Device/PixelProcessor.cpp
index c55dd5d..da40dbe 100644
--- a/src/Device/PixelProcessor.cpp
+++ b/src/Device/PixelProcessor.cpp
@@ -118,92 +118,6 @@
context->setColorWriteMask(index, rgbaMask);
}
- void PixelProcessor::setStencilEnable(bool stencilEnable)
- {
- context->stencilEnable = stencilEnable;
- }
-
- void PixelProcessor::setStencilCompare(VkCompareOp stencilCompareMode)
- {
- context->stencilCompareMode = stencilCompareMode;
- }
-
- void PixelProcessor::setStencilReference(int stencilReference)
- {
- context->stencilReference = stencilReference;
- stencil.set(stencilReference, context->stencilMask, context->stencilWriteMask);
- }
-
- void PixelProcessor::setStencilReferenceCCW(int stencilReferenceCCW)
- {
- context->stencilReferenceCCW = stencilReferenceCCW;
- stencilCCW.set(stencilReferenceCCW, context->stencilMaskCCW, context->stencilWriteMaskCCW);
- }
-
- void PixelProcessor::setStencilMask(int stencilMask)
- {
- context->stencilMask = stencilMask;
- stencil.set(context->stencilReference, stencilMask, context->stencilWriteMask);
- }
-
- void PixelProcessor::setStencilMaskCCW(int stencilMaskCCW)
- {
- context->stencilMaskCCW = stencilMaskCCW;
- stencilCCW.set(context->stencilReferenceCCW, stencilMaskCCW, context->stencilWriteMaskCCW);
- }
-
- void PixelProcessor::setStencilFailOperation(VkStencilOp stencilFailOperation)
- {
- context->stencilFailOperation = stencilFailOperation;
- }
-
- void PixelProcessor::setStencilPassOperation(VkStencilOp stencilPassOperation)
- {
- context->stencilPassOperation = stencilPassOperation;
- }
-
- void PixelProcessor::setStencilZFailOperation(VkStencilOp stencilZFailOperation)
- {
- context->stencilZFailOperation = stencilZFailOperation;
- }
-
- void PixelProcessor::setStencilWriteMask(int stencilWriteMask)
- {
- context->stencilWriteMask = stencilWriteMask;
- stencil.set(context->stencilReference, context->stencilMask, stencilWriteMask);
- }
-
- void PixelProcessor::setStencilWriteMaskCCW(int stencilWriteMaskCCW)
- {
- context->stencilWriteMaskCCW = stencilWriteMaskCCW;
- stencilCCW.set(context->stencilReferenceCCW, context->stencilMaskCCW, stencilWriteMaskCCW);
- }
-
- void PixelProcessor::setTwoSidedStencil(bool enable)
- {
- context->twoSidedStencil = enable;
- }
-
- void PixelProcessor::setStencilCompareCCW(VkCompareOp stencilCompareMode)
- {
- context->stencilCompareModeCCW = stencilCompareMode;
- }
-
- void PixelProcessor::setStencilFailOperationCCW(VkStencilOp stencilFailOperation)
- {
- context->stencilFailOperationCCW = stencilFailOperation;
- }
-
- void PixelProcessor::setStencilPassOperationCCW(VkStencilOp stencilPassOperation)
- {
- context->stencilPassOperationCCW = stencilPassOperation;
- }
-
- void PixelProcessor::setStencilZFailOperationCCW(VkStencilOp stencilZFailOperation)
- {
- context->stencilZFailOperationCCW = stencilZFailOperation;
- }
-
void PixelProcessor::setBlendConstant(const Color<float> &blendConstant)
{
// FIXME: Compact into generic function // FIXME: Clamp
diff --git a/src/Device/PixelProcessor.hpp b/src/Device/PixelProcessor.hpp
index 3c4dcce..2d4437a 100644
--- a/src/Device/PixelProcessor.hpp
+++ b/src/Device/PixelProcessor.hpp
@@ -158,23 +158,6 @@
void setColorLogicOpEnabled(bool colorLogicOpEnabled);
void setLogicalOperation(VkLogicOp logicalOperation);
- void setStencilEnable(bool stencilEnable);
- void setStencilCompare(VkCompareOp stencilCompareMode);
- void setStencilReference(int stencilReference);
- void setStencilMask(int stencilMask);
- void setStencilFailOperation(VkStencilOp stencilFailOperation);
- void setStencilPassOperation(VkStencilOp stencilPassOperation);
- void setStencilZFailOperation(VkStencilOp stencilZFailOperation);
- void setStencilWriteMask(int stencilWriteMask);
- void setTwoSidedStencil(bool enable);
- void setStencilCompareCCW(VkCompareOp stencilCompareMode);
- void setStencilReferenceCCW(int stencilReference);
- void setStencilMaskCCW(int stencilMask);
- void setStencilFailOperationCCW(VkStencilOp stencilFailOperation);
- void setStencilPassOperationCCW(VkStencilOp stencilPassOperation);
- void setStencilZFailOperationCCW(VkStencilOp stencilZFailOperation);
- void setStencilWriteMaskCCW(int stencilWriteMask);
-
void setBlendConstant(const Color<float> &blendConstant);
void setAlphaBlendEnable(bool alphaBlendEnable);
@@ -197,8 +180,6 @@
void setRoutineCacheSize(int routineCacheSize);
// Other semi-constants
- Stencil stencil;
- Stencil stencilCCW;
Factor factor;
private:
diff --git a/src/Device/Renderer.cpp b/src/Device/Renderer.cpp
index d803e61..7a08703 100644
--- a/src/Device/Renderer.cpp
+++ b/src/Device/Renderer.cpp
@@ -328,8 +328,8 @@
if(pixelState.stencilActive)
{
- data->stencil[0] = stencil;
- data->stencil[1] = stencilCCW;
+ data->stencil[0].set(context->stencilReference, context->stencilMask, context->stencilWriteMask);
+ data->stencil[1].set(context->stencilReferenceCCW, context->stencilMaskCCW, context->stencilWriteMaskCCW);
}
data->lineWidth = context->lineWidth;